《2023年福建省高等学校计算机等级考试二级C语言选择题试题.pdf》由会员分享,可在线阅读,更多相关《2023年福建省高等学校计算机等级考试二级C语言选择题试题.pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、福建省高等学校计算机等级考试(二级C 语言)选择题试题库答案试题C1.在 C 语言源程序中,以下叙述对的的是()。A.main函数必须位于文献的开头B.每行只能写一条语句C.程序中的一个语句可以写成多行D.每个语句的最后必须有点号C2.关于C 语言的源程序的叙述中,错误的是()。A.C 语言的源程序由函数构成B.main函数可以书写在自定义函数之后C.必须包具有输入语句D.一行可以书写多个语句C3.关于C 语言数据类型的叙述,对的的是()。A.枚举类型不是基本类型B.数组不是构造类型C.变量必须先定义后使用D.不允许使用空类型C4.C 程序中main函数的位置()。A.必须在最开始B,必须在系
2、统库函数后面C.可以在自定义函数后面D.必须在最后B5.C 语言的函数体由()括起来。A.()B.)C.JD./*/D6.关于C 语言的叙述中,不对的的是()。A.C 程序可由一个或多个函数组成B.C 程序必须包含一个main()函数C.C 程序的基本组成单位是函数D.注释说明只能位于一条语句的后面7.以下叙述不对的的是()A.C 程序的执行总是从main函数开始B.一个C 源程序必须包含一个main函数C.C 语言程序的基本组成单位是函数D.在编译C 程序源程序时,可发现注释中的拼写错误C8.结构化程序设计的三种基本结构是()。A.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构
3、C.顺序结构、分支结构、循环结构D.分支结构、循环结构、嵌套结构C9.对于C 语言源程序,以下叙述错误的是()oA.可以有空语句B.函数之间是平等的,在一个函数内部不能定义其它函数C.程序调试时假如没有提醒错误,就能得到对的结果D.注释可以出现在语句的前面D1 0.下面关于C 语言用户标记符的描述,对的的是()。A.不区分大小写B.用户标记符不能描述常量C.类型名也是用户标记符D.用户标记符可以作为变量名D1 1.以 下()是对的的变量名。A.5fB.ifC.f.5D._f51D1 2.以 下()是对的的常量。A.E-5B.1E5.1C.fal2D.32766LD1 3.以 下()是对的的变量
4、名。A.a.beeB.-pHC.intD.p.llc1 4.以 下()是对的的字符常量。单引号括起来A.B.C.WD.”32a”A1 5.以 下()是不对的的字符串常量。双引号括起来A.abcB.”1212”C.O,D.”“B1 6.以 下()是错误的整型常量。A.-OxcdfB.018 八进制数不能超过8C.OxeD.011B1 7.以 下()是对的的浮点数。A.e3 e 前面必须有数字,指数必须为整数B.62C.2e4.5D.123A18.若有说明语句:charc=95;则变量c 包 含()个字符。A.1 ddd:表达1到 3 位八进制数所代表的字符B.2 xhh表 达 1到 2 位十六进
5、制数所代表的字符C.3D.语法错误A1 9.若有定义:inta=2;则对的的赋值表达 式 是()。A.a-=(a*3)B.double(-a)/(double)(-a)C.a*3D.a*4=3C2 0.语句x=(a=3,b=+a);运营后,x、a b 的值依 次 为()。A.3,3,4 逗号运算符及逗号表达式B.4,4,3C.4,4,4D.3,4,3B2 1.语句a=(3/4)+3%2;运营后,a 的 值 为()。A.0B.1 注意除号/两边均为整型时,结果为整数(不含小数点)C.2D.3A22.char型变量存放的是()。考察变量类型A.ASCH代码值B.字符自身C.十进制代码值D.十六进制
6、代码值c2 3.若有定义:ini x,a;则语句x=(a=3,a+l);运营后,x、a 的值依次为()。A.3,3 考察逗号表达式及逗号运算符B.4,4C.4,3D.3,4B2 4.若有定义:inta;则语句=(3*4)+2%3;运营后,a 的 值 为()。A.12B.14C.11D.17A2 5.若有定义:ini a,b;double x,则以下不符合C 语言语法的表达式是()。A.x%(-3)/%两侧均应为整型数据B.a+=-2C.a=b=2D.x=a+bB2 6.若有定义:intx=2,y=3;floati;,则以下符合C 语言语法的表达式是()A.x=x*3=2 x*3不是一个变量名B
7、.x=(y=l)C.i=f l o a t(x)应改为 i=(f l o a t)xD.i%(-3)两侧均应为整型数据c2 7.设d o ub l e型变量a,b,c,e均有值;对代数式(3 a e)/(b c),不对的的C语言表达式是()。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*c 改为 3*a*e/b/cD.a*e/c/b*3B2 8.下面叙述对的的是()(.A.2/3 与 2.0/3.0 等价B.(i n t)2.O/3 与 2/3 等价C.+5与6等价 单独写+5是错误的,可以写成a=+5D JA 与A 等价A2 9.下面叙述中,错误的是()oA.其算术运算对象
8、不包含函数B.%(模运算符)的运算对象只能为整型量C.算术运算符的结合方向是“自左至右D.自加和自减运算符的结合方向是自右至左A3 0.下面叙述对的的是()。/+-只能用于变量,而不能用于常量或表达式A.强制类型转换运算的优先级高于算术运算B.若a和b是整型变量,(a+b)+是合法的C.是不合法的D.A+B 是合法的B3 1.若有定义:或t k,i=2,j=4;则表达式k=(+i)*(j)的 值 是()oA.8B.12 注意前缀 后缀的区别C.6D.91c3 2.设整型变量a为5,使b不为2的表达式是()。A.b=(+a)/3B.b=6-(a)C.b=a%2 结果为1D.b=a/2c3 3.若
9、有定义:int a=l,b=2,c=3;则语句+a|+b&+c;运营后b的 值 为()。A.1B.OC.2 注意运算的不完全性D.3B3 4.若有定义:int i,j;则表达式(k2户5/+/+)+)的 值 是()。A.7B.8C.9D.10B3 5.若有定义:int a,b;则表达式(a=2,b=5,a*2,b+,a+b)的 值 是()。A.7B.8C.9D.10B3 6.若有定义:int m=5,n=3;则表达式(m+l,n+l,(-m)+(n-)的 值 是()。A.6B.7C.8D.9B3 7.已知int a;使用scanf()函数输入一个整数给变量a,对的的函数调用是()。A.scan
10、f(u%du,a);B.scanf(”d”,&a);C.scanf(u%fn,&a);D.scanf(%ir,&a);卜3 8.已知double a;使用scanf()函数输入一个数值给变量a,对的的函数调用是()。A.scanf(n%ldn,&a);B.scanf(u%du,&a);C.scanf(n%7.2r,&a);输入数据时不能规定精度D.scanf(n%ir,&a);B3 9.已知char a;使用scanf()函数输入一个字符给变量a,不对的的函数调用是()。A.scanf(u%d,&a);B.scanf(%lf;&a);字符型变量与整型等价,但不与浮点型等价C.scanf(c”,
11、&a);D.scanf(u”,&a);B40.putchar()函数的功能是向终端输出()。/char*strO;.;puts(strO);A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式D41.getchar。函数的功能是从终端输入()。A.一个整型变量值B.一个实型变量值C.多个字符D.一个字符D4 2.若有定义定t x=1234,y=123,z=12;则语句 printf(n%4d+%3d+%2d,x,y,z);运营后的输出结果为()。A.B.31212C.1234+1234+1234D.1234+123+12A4 3.已有如下定义和输入语句,int a;c ha r c
12、 l,c 2;s c a nf(%d%c%c ;&a,&c l,&c 2);若规定a、c l、c 2的值分别为10、A和B,对的的数据输入是()。A.10A B/输入数据时,遇空格、回车、T A B、及非法输入 或按规定的宽度结束B.10 A BC.10A BD.10 A BB4 4.已有如下定义和输入语句:int a,b;s c a nf(d,%d”,&a,&b);“格式控制”字符串中除了格式说明尚有其他字符,则输入/时应在相应位置输入若规定a、b的值分别为10和2 0,对的的数据输入是()oA.10 2 0B.10,2 0C.a=10,b=2 0D.10;2 0D4 5.以下程序的运营结果
13、是()ov o id m a in()int a=6 5;c ha r c-A1;pr int f(,%x,%d,a,c);)A.6 5,aB.4 1,aC.6 5,6 5D.4 1,6 5A4 6.下面叙述中,()不是结构化程序设计中的三种基本结构之一。A.数据结构B.选择结构C.循环结构D.顺序结构A4 7.下面叙述中,()不是结构化程序设计三种基本结构的共同特点。A.先判断后执行B.单入口,单出口C.程序中没有执行不到的语句D.无死循环A4 8.结构化程序设计不涉及()。A.最优化B.自顶而下,逐步细化C.模块化设计D.结构化编码D4 9.以下运算符中优先级最高的是()。A.B.|C.&
14、D.+/初等运算符()口 单目 算 术 关 系 逻 辑(不含!)赋值逗号A5 0.若有定义:int x=3,y=4;则表达式!x|y的 值 为()。A.1B.0C.3D.4A5 1.若有定义:inti=7,j=8;则表达式i=j|ij的 值 为()。A.1B.变量i 的值C.0D.变量j 的值C5 2.若希望当a 的值为奇数时,表达式的值为“真”,a 的值为偶数时,表达式的值为“假”。则不能满足规定的表达式是()。A.a%2=lB.!(a%2=0)C.!(a%2)D.a%2D5 3.若有定义:intx=3,y=4,z=5;则值为0 的表达式是()。A x&yB.x=yC.x|y+z&y-zD.
15、!(x1)&。=0(1)的 值 为()。A.0B.1C.5D.6A6 1.若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y 的值是()。(floal)(a+b)/2=2.5A.3.5B.3.0C.2.5D.2.0C6 2.若有定义:足出=7;11021=2.58=4.7;则表达式+(1)/2*(血)(2+0/2)%4的 值 是()。A.2.5/(b/2*(int)(a+c)/2)=10 注意运算顺序B.3.5C.4.5D.5.5C6 3.若有定义:int a=6,b=2;char cl=R,c2=b;则表达式
16、 a+b%5+c2-cl 的 值 是()。A.7B.8C.9D.表达式错误B6 4.以下的if语句中,x 的值一定被重新赋值的是()。A.if(x=y)x+=y;B.if(xy&x!=y);注意if语句后的空语句;x+=y;C.if(x!=y)scanf(%dn,&x);elsescanf(%dH,&y);D.if(xy)z=x+y;else z=x-y;A.3B.-1C.4D.不拟定D6 8.若有定义:inta=l,b=2,c=3;则执行以下程序段后a,b,c的值分别为()。if(a=6)printf(d n”,n);elseprintf(,%d n,+n);A.4B.5C.6D.7B7 3
17、.设有整型变量x,下述语句()不会出现死循环。A.for(;x+=l);B.for(;(x=getchar()!=,n,;);C.while(l)x+;D.for(x=10;x);1B7 4.对于整型变量x,与 while(!x)等价的是()。A.while(x!=0)B.while(x=0)C.while(x!=l)D.while(x)A7 5.对于整型变量x 和 y,语句for(x=0,y=0;(y!=123)&(x4);x+)y+;中的+;”被 执 行()。A.4 次B.0 次C.123 次D.3 次B7 6.在 c 语言中while循环和do while循环的重要区别是()。A.do-
18、while循环体内可以使用break语句,while循环体内不能使用break语句B.do-while的循环体至少无条件执行一次,while的循环体不是C.do-while循环体内可以使用continue语句,while循环体内不能使用continue语句D.while的循环体至少无条件执行一次,do-while的循环体不是B7 7.以下程序段运营后,循环体运营的次数为()。int i=10,x;for(;i10;i+)x=x+i;A.10B.0C.1D.无限D7 8.以下程序段运营后变量n 的 值 为()oint i=l,n=l;for(;i3;i+)continue;n=n+i;A.4B.
19、3C.2D.1B7 9.以下程序的运营结果是()ovoid main()(int sum=0,item=0;while(item 5)(item+;sum+=item;if(sum=5)break;)printf(d n”,sum);)A.10B.15C.5D.6c8 0.以下程序的运营结果是()0void main()(int sum=0,item=0;while(item=6)break;)printf(n%d n,sum);)A.10B.15C.6D.7B8 1.以下程序的运营结果是()。void main()(int sum=0,item=0;while(item 5)(item+;i
20、f(item=2)continue;sum+=item;)printf(%d n,sum);)A.10B.13C.15D.1A8 2.下列数组定义中,对的的是()。A.int a5=0;B.inta=0 1 2;/int a=0,1,2);注意元素与元素之间加逗号C.int a51=0;/int a5=0;D.int a口;必须指明数组大小A8 3.下列数组定义中,对的的是()。A.int a101;B.int n=10,a|n;下标必须是常量表达式C.i n t N=1 0;i n t a N J;D.i n t n;s c a n f(n%dn,&n);i n t a n ;A84.已知i
21、 n t a 1 0J;则对a数组元素引用不对的的是()。A.a 1 0 1 0个元素的数组下标范围从0到9 ,故此题越界B.a 3+5 C.a 1 0-1 0 引用数组元素时,下标可以是整型常量或整型表达式D.a 5 B8 5.若有定义:i n t a 3 =01,2;则a l 的 值 为()。A.0B.1C.2D.3A8 6.若有定义:i n t a 5 =1,2,3,4,5;则语句 a l =a 3 +a 2+2 -a 3-l ;运营后 a l 的值为()oA.6B.5C.1D.2卜87.以下能对一维数组a进行对的初始化的语句是()。A.i n t a 5 =(0,0,0,0,0);B.
22、i n t a 5 =0;注意使用大括号C.i n t 2 5 =1,2,3,4,5,6,7;多余 2 个D.i n t a =0;定 义 一 个只有个元素的-一维数组,指为0D8 8.下面程序段的运营结果是()oi n t i=0,a =3,4,5,4,3);d o a i +;w h i l e(a +i 5);f o r(i=0;i 5);f o r(i=0;i 2);f o r(i=0;i 5;i+)p r i n t f(n%d u,a i );A.1 1 2 3 4 5B.1 2 3 4 5C.1 1 1 2 1 3 1 4 1 5D.1 1 1 2 3 4 5C9 1.设有如下程
23、序段:i n t a 3 3 =1,0,2,1,0,2,1,0,1),i,j,s=0;f o r(i=0;i 3;i+)f o r(j=0;j i;j+)s=s+a i j ;则执行该程序段后,s的 值 是()oA.OB.1C.2D.3B9 2.有如下定义i n t a 3 =l,2,3,4,5,6,7,8;考察二维数组的初始化则数组a的行数是()。A.2B.3C.4D.无法拟定的D93.以下数组定义中,对的的是()。A.抽1 2 3 =1,2,3,4,5,6,7;多余 1 个B.i n t a =l,2,3,4,5,6,7,8,9);第二维长度不能省C.i n t a 2 =1,2,3,4,
24、5,6);D.i n t a 4 =6;A9 4.若有定义:血址3 4 =1,2,0,1 2 3;则上1 1 的 值 为()。A.0B.1,2 C.1D.3A9 5.若有定义:i n t a 3 3 ;则表达式&a -a的 值 为()。A.7&a 2 1 -a代表两者之间的元素个数,类似指向同种类型的指针相减B.8C.6D.9c9 6.若有定义:i n t i=0,x=0;in t a3 3=l,2,3,4,5,6 7 8,9 ;则以下程序段运营后x的值为()of o r (;i 3;i+)x+=aiJ l 2-i;A.OB.12C.15D.18D9 7.若有定义in t a ;则对数组元素的
25、非法引用是()。A.a0l/2B.al l C.a4-4 0D.a03 c98.以下数组定义中,对的的是()。A.in t a2=1,2,3,4,5);B.in t aM2=0,;C.in t a2H2=l,2,3 ;D.in t a=1,2,3,4 1;D9 9.若有定义 in t 2引=1,2,3,4,5,6,7,8,9 ;则表达式 s iz e o f(a)/s iz e o f(a0)的 值 为()。A.3B.4C.5D.9A1 0 0.设有以下变量定义:c h ar s t r l=ns t r in gn,s t r 28,*s t r 3,*s t r 4=s t r in gn
26、;()是对的的。A.s t r c p y(s t r l,C h in a);B.s t r 2=nC h in aM;C.s t r c p y(*s t r 3,C h in a1);D.s t r c p y(s t r 4 0,C h in a);D10 1.有如下定义:c h ar s t r 6=a/b/W/dVe Vf ;则语句:p r in t f(%s,s t r);的输出结果是()。A.ab B.ab de fC.ab 0D.abC1 0 2.设有如下数组定义:c h ar s t r 8=Tu J ian,);则分派给数组str的存储空间是()个字节。A.6B.7C.8
27、D.9B103.若有定义:char a口 二 abcdef”;char b口 二“xyz”;则以下程序段运营后屏幕输出为()。strcpy(a,b);printf(”c”,a);A.cB.zC.0D.dc104.以下程序段运营后屏幕输出为()。char a=abc 0misn;printf(,%d,strlen(a);A.5B.8C.3D.4B105.若有定义:int a=2;则语句a=strcmp(“missJmiss);运营后a 的 值 为()。A.1 相等返回0,字符串1 字符串2,返回一个正整数,否则返回负整数B.0/strcmp(str 1 ,str2)C.-lD.2B106.以下程
28、序段运营后屏幕输出为()。char str=nab cdn;注意 代表一个反斜杠字符printf(%d,strlen(str);A.4B.5C.6D.7A107.以下程序段运营后屏幕输出为()ochar strr80;strcpy(str,helloH);printf(u%d,strlen(str);A.5B.6C.7D.80B108.若有定 义:charstrl6=,abcdm,*ps,*str2=nabcdef,;()是对的的。A.strcpy(strl,str2);B.表达式strcmp(strl,str2)的值大于0C.strl=str2;D.表达式strlen(strl)的值为6A1
29、09.设有如下函数定义:in t f u n(c h ar *s t r)c h ar *p=s t r;w h il e (*p !=0)p+;r e t u r n (p-s t r);)则以下语句执行后的输出结果是()O 返回字符串个数p r in t f(,%d n,f u n(,S t u de n tM);A.7B.8C.9D.101A1 1 0.以下程序的运营结果是()。in t f u n(in t ar r ay 4 4)in t j;for(j=0;j 4;j+)p r in t f(n%2 dM,ar r ay 2j);p r in t f(n n,);)m ain()i
30、n t a4 4=0,1,2,03,0,0,4,2,0,0,5,0,4,5,0);f u n(a);)A.2 0 0 5B.1 0 0 4C.0 1 2 0D.0 4 5 0C111.如下f u n函数的类型是()。f u n(f l o at x)do u b l e y;in t z ;y=x *x ;z=(in t)y ;r e t u r n(z);A.v o idB.do u b l eC.in tD.f l o atB1 1 2.以下程序运营后屏幕输出为()o#in c l u de in t f(in t x,in t y)r e t u m(x+y);m ain()(in t
31、a=2,b=3,c;c=f(a,b);p r in t f(H%d+%d=%d nH,a,b,c);)A.OB.2+3=5C.2+3=0D.3+2=5D1 1 3.以下程序运营后屏幕输 出 为()o 考察全局变量与局部变量的区别及范围#in c l u de in t a=2,b=3;in t m ax(in t a,in t b)(in t c;c=a b?a:b;r e t u r n(c);)m ain()(in t a=4;p r in t f(,%d,m ax(a,b);A.2,3B.2C.3D.4B1 1 4.以下程序运营后屏幕输出为()o#in c l u de v o id f
32、(in t i)两个函数中的a不同样in t a=2;a=i+;p r in t f(n%d,n,a);)m ain()(in t a=l,c=3;f(c);a=C+;p r in t f(M%d,a);)A.4,3B.3,3C.4,5D.3,5D115.若有如下函数定义:/注意静态变量的使用int fun()(static int k=0;return+k;)以下程序段运营后屏幕输出为()oint i;for(i=l;i=5;i+)fun();printf(n%d,fun();A.OB.1C.5D.6D116.下面程序的输出结果是()o#include int global=100;fun(
33、)(int global=5;return+global;)void main()(printf(%d n,fun();)A.100B.101C.5D.6B117.下列关于C 语言函数的描述中,对的的是()。A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用都可以嵌套D.函数的定义和函数的调用都不可以嵌套D118.若有以下宏定义,#define MOD(x,y)x%y则执行以下程序段后,z 的 值 是()。int z,a=15,b=100;z=MOD(b,a);A.100B.15C.11D.10B119.以下叙述中,对的的是(
34、)。A.#define PRICE=30”定义了与30等价的符号常量PRICEB.预编译解决命令行都必须以“铲 开头C.宏名只能包含大写字母和数字字符可以涉及小写字母D.在程序的一行上可以书写几个有效的宏定义A120.以下叙述中,对的的是()。A.宏展开不占用运营时间,只占用编译时间B.预编译解决命令行必须以分号结束C.一个源程序只能有一个预编译解决命令行D.使用带参数的宏定义时,应当说明每个参数的数据类型C121.以下的叙述中不对的的是()。A.宏展开不占用运营时间,只占用编译时间B,宏名无类型C.宏名必须用大写字母表达D.预解决命令行都必须以#号开始A122.若有定义:#definePI3
35、,则表达式PI*2*2的 值 为()。A.12B.4C.3D.不拟定c123.以下程序运营后,屏幕输出为()o#define MIN(a,b)(a)(b)?(a):(b)main()int x=2,y=3,z;z=2*MIN(x,y);printf(%d,z);)A.2B.3C.4D.6A124.下面程序的输出结果是()。#include#define SQR(x)(x*x)void main()int a,b=3;a=SQR(b+2);printf(,n%d,a);)A.11B.25C.不定值D.产生错误c125.下面程序的输出结果是()。#include#define ONE 1#defi
36、neTWO ONE+1#define THREE TWO+1void main()(printf(n%d nn,THREE-ONE);)A.产生错误B.1C.2D.3B126.以下叙述中对的的是()。A.预解决命令行必须位于C 源程序的起始位置B.在 C 语言中,预解决命令行都以#开头C.每个C 程序必须在开头包含预解决命令行:#includeD.C 语言的预解决不能实现宏定义和条件编译的功能D127.设有以下语句,则()是对a 数组元素的不对的引用,其中0MV10。int a 10=0,1,2,3,4,5,6,7,8,9,*p=a;A.ap-aB.*(&ai)C.piD.*(*(a+i)c1
37、28.对于基类型相同的两个指针变量之间,不能进行的运算是()。A.B.=C.+D.-B129.执行以下程序段的输出结果是()oint a=10,*p=&a;printf(“d”,+*p);A.10B.11C.变量a 的地址D.变量a 的地址+1A130.以下程序段运营后*(p+3)的 值 为()ochar a=ngood;char*p;p=a;A.dB 0C.存放d 的地址D.oc131.以下程序段运营后*(+p)的 值 为()。char a5=,workn;char*p;P=a;A.wB.存放W 的地址C.oD.存放官的地址B132.若有定义:int*p,a=4;p=&a;则以下均代表地址的
38、是()。A.a,pB.&a,pC.&a,*pD.a,*pD133.若有说明语句:double*p,a;则能通过scanf语句对的给输入项读入数据的程序段是()。A.*p=&a;scanf(1,%lf,p);B.*p=&a;scanf(,%lf,*p);C.p=&a;scanf(u%lf,*p);D.p=&a;scanf(n%lf 1,p);A134.在 16位编译系统上,若有定义int a=10,20,30,*p=&a;当执行p+;后下列叙述错误的是()。A.p 向高地址移了一个字节B.p 与 a+1等价C.语句 printf(%d,*p);输出 20D.p 指向数组元素aIJB135.下面语
39、句对的的是()。A.int*p;*p=20;B.char*s=,abcdef,;printf(%s n,s);C.char strJ=nabcdn;str+;数组名不能改变D.char str=,a,;b,;c,;printf(,%s,str);/%s 输出字符串,必须以0结束D136.若有以下程序段,且 0Wi4,0 j 3,则不能对的访问a 数组元素 的 是()。int i,j,(*p)3;int a3=l,2,34,5,6,7,8,9,10,11,12;p=a;A.*(*(a+i)+j)B.pijC (*(p+i)jD.p(i+jB137.若函数fun的函数头为:int fun(int
40、i,int j)且函数指针变量p定义如下:i n t(*p)(i n t i,i n t j);则要使指针p指向函数f u n的赋值语句是()。A.p=*f un;B.p=f un;C.p=f un(i,j);D.p=&f un;D1 3 8,设有如下变量定义:c h a r a a l 3 =a,b,;c,;d,;e,;f;c h a r(*p)3 =a a;则以下程序段的运营结果是()oP+;A.aB.bC.cD.dD1 3 9.以下程序段运营后x的 值 为()oi n t a =1,2,3 4 5,6,7,8;i n t i,x,*p;x=l;p=&a 2 ;f or(i=0;i 3;i
41、+)x*=*(p+i);A.不拟定B.2 4C.1 2 0D.6 0B1 4 0.以下程序段运营后x的 值 为()。i n t a =l,2,3,b =4,2,5);i n t*p,*q;i n t i,x;p=a;q=b;f or(i=0;i 3;i+)i f(*(p+i)=*(q+i)x=*(p+i)*2;A.2B.4C.6D.不拟定c1 4 1.以下程序段运营后x的 值 为()。i n t a 9 =1,2,3,4,5,6 3,8,9);i n ti n t i,x;p=&aOJ;q=&a8;for(i=0;i3;i+)if(*(p+i)=*(q-i)x=*(p+i)*2;A.2B.4C
42、.6D.不拟定A142.下面程序的输出结果是()。#includevoid main()(int i;char*s=,abc;for(i=0;i3;i+)printf(n%s nn,s+i);)A.abcbecB.cbeabcC.abccbeD.aababcA143.下面程序的输出结果是()o#include void main()(char*str=12345,ps=str+4;printf(M%c nn,ps-4);)A.1B.2C.3D.错误A144.以下程序执行时,输 入 1 2 3 4 5 回车,输出为:#include#define N 5void main()(int aN;in
43、t*p=a;while(pa)printf(n%d”,*(-p);)A.5 4 3 2 1B.1 23 45C.2 3 4 5 1D.4 3 2 1 5c145.设有以下定义语句:struct student int num;char name10;float score;wang,zhang;则不对的的叙述是()。A.struct是结构体类型的关键字B.zhang是结构体变量名C.wang是结构体类型名D.num,name,score都是结构体类型student的成员名B146.设有以下定义语句:struct student int num;char name10;float score;w
44、ang,zhang;则变量wang所占的内存字节数是()oA.14B.16C.18D.20B147.设有如下定义语句:union u_type inti;二个字节double x;八个字节float f;四个字节);struct str_type char str100;union u_type u2;则语句午rintfC%d”,sizeof(structstr_type);”的输出结果是()。A.100B.116C.120D.200C148.若有定义:struct teacherint num;char name10;char sex;int age;float score;teacher
45、1;则变量teacherl所占用的内存字节数是()。A.5B.14C.19D.20c149.下列对结构体类型变量定义不对的的是()。A.struct teacherint num;int age;Jteachl;B.structint num;int age;teach l,teach2;C.structint num;int age;teacher;struct teacher teach 1;D.struct teacherint num;int age;;struct teacher teach 1;D150.若有定义:struct teacherint num;char sex;int
46、 age;teacherl;则下列叙述不对的的是()oA.struct是结构体类型的关键字B.struct teacher是用户定义的结构体类型C.num,sex,age都是结构体变量teacher 1 的成员D.teacher 1是结构体类型名D151.以下程序的运营结果是()o#include union Utypeint i;float f;)u2J;void main()(printf(sizeof(u):%d n,sizeof(u);)A.2B.4C.6D.8152.以下程序的运营结果是()o#include union Utypeint i;float f;D3struct cha
47、r ch2J;int i;union Utype u;a;void main()(printf(nsizeof(a):%d nu,sizeof(a);)A.5B.6C.7D.8D153.以下C 语言共用体类型数据的描述中,不对的的是()。A.共用体变量占的内存大小等于所需内存最大的成员所占的内存B.共用体类型可以出现在结构体类型定义中C.在定义共用体变量的同时允许对第一个成员的值进行初始化D.同一共用体中各成员的首地址不相同A154.若有以下定义:struct link int data;struct link next;)*head,*p;并已建立如下图所示的链表结构:I I I I I I
48、head|data|next-1|data|next-|-.-|data|NULL|指针p 指向如下结点:I I Ip|data|next|I I I则可以把p 所指结点插入到链表中成为链表第2 个结点的程序段是()oA.p-next=head-next;head-next=p;B.head-next=p;p-next=head-next;C.p.next=head.next;head.next=p;D.(*head).next=p;(*p).next=(*head).next;155.若有以下定义:struct link int data;struct link*next;a,b,c,*he
49、ad,*p;其中,指针head指向变量a,p 指向变量c,a.next指向变量b,链表结构如下图所示:a b chead|data|next-|data|NULL|p|data|next|A则可以把c 插入到a 和 b 之间并形成新链表的程序段是()。A.a.next=c;c.next=b;B.head.next=p;p.next=head.next;C.head-next=&c;p-next=head-next;D.(*head).next=p;(*p).next=&b;156.若有以下定义:struct link int data;struct link next;*head,*p;并已建
50、立如下图所示的链表结构:PII I I I I I I I Ihead 一|data|n e x t-|data|next-|-.-|data|NULL|I _I _I I _I _ I I _ I _I则能保存链表其它结点,而删除p 所指向结点的程序段是()。A.head-next=p-next;free(p);B.head-next=p;p-next=head-next;free(p);C.free(p);head-next=p;p-next=head-next;D.free(p);head-next=p-next;A157.若有定义:struct node int data;struct