《福建C语言考试资料.pdf》由会员分享,可在线阅读,更多相关《福建C语言考试资料.pdf(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一部分:选 择 题(4 0 分,2 0 小题/套)概述1、下面关于C 语言的叙述中,正确的是()A.每行只能写一条语句B.程序中必须包含有输入语句C.main函数必须位于文件的开头 D.每条语句最后必须有一个分号2、下面关于C 语言的叙述中,错误的是()A.若一条语句较长,也可分写在下一行上B.构成C 语言源程序的基本单位是表达式C.C 语言源程序中大、小写字母是有区别的D.一个C 语言源程序可由一个或多个函数组成3、关于C 语言数据类型的叙述,正确的是()A.枚举类型不是基本类型 B.数组不是构造类型C.变量必须先定义后使用 D.不允许使用空类型4、C 程序中main函数的位置()A.必须
2、在最开始 B.必须在系统库函数后面C.可以在自定义函数后面 D.必须在最后5、C 语言的函数体由()括起来A.()B.C.D./*/6、关于C 语言的叙述中,不正确的是()A.C 程序可由一个或多个函数组成 B.C 程序必须包含一个main。函数C C 程序的基本组成单位是函数 D.注释说明只能位于一条语句的后面7、一个程序的执行是从()A.本程序的第一个函数开始,到最后一个函数结束B.本程序的main函数开始,到 main函数结束C.本程序的main函数开始,到最后一个函数结束D.本程序的第一个函数开始,到 main函数结束8、结构化程序设计的三种基本结构是()A.函数结构、分支结构、判断结
3、构C.顺序结构、分支结构、循环结构9、调试程序是指对程序进行()A.编辑 B.编译 C.查错和排错B.函数结构、嵌套结构、平行结构D.分支结构、循环结构、嵌套结构D.连接10、C 语言中,复合语句的构成是将一系列语句置于()A.begin与 end之间 B.一对圆括号()之间C.一对花括号“”之间 D.一对方括号“U”之间11、构成C 语言源程序的基本单位是()A.语句 B,过程 C.表达式 D.函数语法基础12、在 C 语言中,正确的用户标识符是()A.3f B._for C.struct D._f.513、C 语言的基本数据类型包括()A.整型、实型、字符型 B.整型、实型、字符型、逻辑型
4、C.整型、字符型、逻辑型 D.整型、实型、逻辑型14、以 下()是正确的常量A.E-5 B.1E5.1 C.al2 D.32766L15、以 下()是正确的变量名A.a.bee B.-pl 1 C.int D.p_l 116、以 下。是正确的字符常量A.c B.7/!,C.*W D.32a”17、以 下()是不正确的字符串常量Aabc B,1212 C.0 D.18、C 语言的整型数据在内存中的存储形式是()A.原码 B.反码 C.补码 D.ASCII码19、以 下()是正确的浮点数A.e3 B.62 C.2e4.5 D.12320、下列不属于C 语言关键字的是()A.continue B.i
5、nteger C.static D.signed21、C 语言的字符型数据在内存中的存储形式是()A.原码 B.补码 C.反码 D.ASCII22、在 C 语言中,变量所分配的内存空间大小是()A.由变量的类型决定 B.由用户自己决定C.任意的 D.均为两个字节23、若有定义:inta=2;则正确的赋值表达式是()A.a-=(a*3)B,double(-l)C.a*3 D,a*4=324、语句x=(a=3,b=+a);运行后,x、a、b 的值依次为()A.3,3,4 B.4,4,3 C.4,4,4 D.3,4,325、语句a=(3/4)+3%2;运行后,a 的 值 为()A.0 B.1 C.2
6、 D.326、以下四项中,符合C 语言语法的语句是()A.int a+b=c;B.int a=12:b=12:c=12;C.int a=12,b=12,c=12;D.int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+l);运 行 后,x、a 的值依次为()A.3,3 B.4,4 C.4,3 D.3,428、若变量已正确定义并赋值,符合C 语言语法的表达式是()A.a=8+b+c,a+B.a=3a C.int(12.3%4)D.a=a+l=c+b29、若有定义:int a,b;double x;则以下不符合C 语言语法的表达式是()A.x%(-3)
7、B.a+=-l C.a=b=2 D.x=a+b30、若有定义:intx=2,y=3;float i;则以下符合C 语言语法的表达式是()A.x=x*3=2 B.x=(y=l)C.i=float(x)D.i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x 的 值 是()A.8 B.7 C.6 D.532、下面关于C 语言变量的叙述中,错误的是()A.可以用const关键字定义变量 B.在 C 程序中,SUM和 sum是不同的变量C.变量名必须山字母或下划线组成 D.变量的类型确定了变量的取值范围33、若有定义:intx=5,y=6;则表达式x=(y=6)的 值 为(
8、)A.5 B.1 C.6 D.034、下面叙述正确的是()A.2/3 与 2.0/3。等价 B.(int)2.0/3 与 2/3 等价C.+5与 6 等价 D.W 与“A”等价35、下面叙述中,错误的是()A.C 语言基本的算术运算符不包含模运算符“”B.算术运算符的优先级高于关系运算符C.自加和自减运算符的结合方向是“自右向左”D.C 语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是。A.强制类型转换运算的优先级高于算术运算 B.若 a 和 b 是整型变量,(a+b)+是合法的C.A+B 是不合法的 D.“6 中记”是合法的37、若有定义:inti=l,j
9、=5;则表达式(+j)*(i-)的 值 为()A.1 B.0 C.6 D.738、设整型变量a 为 5,使 b 不为2 的表达式是()A.b=(+a)/3 B.b=6-(-a)C.b=a%2 D.b=a/239、若有定义:inta=l,b=2,c=3;则语句+all+b&+c;运行后b 的 值 为()A.1 B.0 C.2 D.340、若有定义:inti,j;则表达式(i=2,j=5,i+,i+j+)的 值 是()A.7 B.8 C,9 D.1041、若有定义:inta,b;则表达式(a=2,b=5,a*2,b+,a+b)的 值 是()A.7 B.8 C.9 D.1042、若有定义:inti=
10、2,j=5;则表达式(i+l,j+l,(+i+(j-)的 值 为()A.8 B.6 C.7 D.543、若已定义:inti=3,k;则语句k=(i-)+(i-);运行后k 的 值 为()A.4 B.5 C.6 D.744、C 语言的运算符按运算对象的个数可以分为()A.单目运算符-一 种 B.单目和双目运算符C.单目、双目和三目运算符 D.单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()A.scanf(t4%5.2f&m);B.scanf(t4%3.2f&m);C.scanfC46.2f&m);D.scanf(6 成m)
11、;46、J 知 double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A.scanf(ld”,&a);B.scanf(4t%lf&a);C.scanf(%c,&a);D.scanf(u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()A.scanf(%d,&a);B.scanf(%lF,&a);C.scanf(%c,&a);D.scanf(%u,&a);48、putchar。函数的功能是向终端输出()A.多个字符 B.一个字符 C.一个实型变量值 D.一个整型变量表达式49、以下程序段运行后的输出结果是()int
12、k=ll;printfC4k=%d,k=%o,k=%xn,k,k,k);A.k=ll,k=13,k=c B.k=l l,k=12,k=13C.k=ll,k=13,k=b D.k=ll,k=13,k=a50、若有定义:intx=1234,y=123,z=12;则语句 printf(4d+%3d+%2d”,x,y,z);运行后的输出结果 为()A.123412312 B.12341234123412341231231231212C.1234+1234+1234 D,1234+123+1251、已有如下定义和输入语句,int a;char cl,c2;scanf(%d%c%c,&a,&c I,&c2
13、);若要求a、c l、c2 的值分别为10 A 和 B,正确的数据输入是()A.10 AB B.10 A B C.10A B D.10 AB52、以下程序段的运行结果是()int a=0,b=0,c=0;if(a&+b)C+;printfC%d,%dn,b,c);A.0,0 B.1,2 C.2,2 D.1,053、以下程序的运行结果是()void main()(int a=65;char c=,A;printff%x,%d,b,c);)A.65,a B.41,a C.65,65 D.41,6554、若已定义:inia=5;floatb=63.72;以下语句中能输出正确值的是()A.printf
14、(b;运行后c 的 值 为()A.1 B.0 C.t D.f57、在 C 语言中,判定逻辑值为“真”的最正确的叙述是()A.1 B.非 0 的数 C,大于0 的数 D.非 0 的整数58、若已定义:int a=-36,b=-30,c;则语句c=a=y=500的 C 语言表达式为()A.(y=500)B.(y=500)C.800=y=500 D.(y=500)60、若有定义:intx=3,y=4;则表达式!xlly的 值 为()A.1 B.0 C.3 D.461、若有定义:inti=7,j=8;则表达式i=jllij的 值 为()A.1 B.变量i 的值 C.O D.变量j 的值62、若希望当a
15、 的值为奇数时,表达式的值为“真”,a 的值为偶数时,表达式的值为“假。则不能满足要求的表达式是()A.a%2=l B.!(a%2=0)C.!(a%2)D.a%263、若有定义:intx=3,y=4,z=5;则值为0 的表达式是()A.x&y B.x=yC.xlly+z&y-z D.!(xy)&!zlll)64、若有定义:inta=5,b=2,c=l;则表达式abcllb=c的 值 是()A.O B.1 C.3 D.-165、C 语言中,能正确表示条件10 x20的逻辑表达式是()A.10 x10llx10&10)&(xb)&(y=ba)的 值 是()A.8 B.1 C.5 D.O73、若有定
16、义:inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y 的 值 是()A.3.5 B.3.0 C.2.5 D.2.074、若有定义:intb=7;fk)ata=2.5,c=4.7;则表达式 a+(b/2*(int)(a+c)/2)%4 的 值 是()A.2.5 B.3.5 C.4.5 D.5.575、若有定义:血 2=6内=2岫 21*川=/82=为;则表达式2+6%5+2的 值 是()A.7 B.8 C.9 D.表达式错误76、在下列运算符中,优先级最高的运算符是()A.10)printfC*%dn,a);elseprin
17、tf(dn”,+a);A.2 B.11 C.379、以下程序的运行结果是()void main()(int x,y=l,z;z=-l;if(z=O)z=-z;elsex=y0?3:5;printf(dn”,x);)A.-l B.3 C.180、对于整型变量x,下属if语句A.if(x%2!=0)x=0;else x=l;C.if(x%2=0)x=I;else x=0;D.12D.5()与赋值语句:x=x%2=0?l:0;不等价B.if(x%2)x=l;else x=0;D.if(x%2=l)x=0;else x=I;81、以下程序段运行的结果是()int a,b,c,x;a=b=c=0;x=1
18、5;if(!a)x-;else if(b);if(c)x=3;elsex+=4;printf(%dn,x);A.15 B.17 C.18 D.1982、若有定义:inta=l,b=2,c=3;则执行以下程序段后a,b,c的值分别为()if(a6)printf(u%dn,n);elseprintf(dn”,+n);A.4 B.5 C.6 D.787、下面关于switch语句的叙述中,错误的是()A.case后面的表达式可以是关系表达式B.switch语句是多分支选择语句C.每一个case后面的值必须互不相同,否则会出现矛盾的现象D.在执行一个case分支后,可 用 一 个 break语句使流程跳
19、出switch语句88、若有定义:inta=l,b=2,c=3;则以下程序段运行后c 的 值 为()if(ab)c=a*b;elsec=a-b;A.2 B.0 C.1 D.-189、若有定义:int x;以下不会产生死循环的是()A.for(;(x=getchar()!=,n,;);B.while。)x+;C.for(i=10;i+);D.for(;x+=l);90、在循环语句的循环体中,break语句的作用是()A.暂停程序的运行 B.结束本次循环C.继续执行break语句之后的循环体各语句D.提前结束循环,接着执行该循环后续的语句91、以下程序段运行后,循环体中的“coum+=2;”语句运
20、行的次数为()int i,j,count=0;for(i=l;i=4;i+)count+=2;printf(%d”,count);)A.4 次 B.10 次 C.16 次 D.20 次92、在 c 语言中while循环和do-while循环的主要区别是()A.do-while循环体内可以使用break语句,while循环体内不能使用break语句B.do-while的循环体至少无条件执行一次,while的循环体不是C.do-while循环体可以使用continue语句,while循环体内不能使用continue语句D.while的循环体至少无条件执行一次,do-while的循环体不是93、以下
21、程序段运行后,循环体运行的次数为()int i=O,x;for(;i 10;i+)x=x+i;A.10 B.O C.1 D.无限94、以下程序段运行后变量n 的 值 为()int i=l,n=l;for(;i3;i+)continue;n=n+i;A.4 B.3 C.2 D.195、有以下程序:void main()(int i;for(i=0;i3;i+)switch(i)(case l:printf(d”,i);case 2:printf(%d”,i);case 3:printf(%d,i);)执行后输出的结果是OA.11122 B.01222 C.013020 D.12096、以下程序的
22、运行结果是()void main()(int sum=0,item=0;while(item=6)break;)printf(dn”,sum);)A.10 B.15 C.6 D.797、以下程序的运行结果是()voin main()(int sum=0,item=0;while(item5)item+;if(item=2)continue;sum+=item;)printf(“dnsum);)A.10 B.13 C.15 D.198、以下程序段执行后变量sum 的 值 为()int i,j=l,sum=0;for(i=l,i=3,i+)sum+=j;j+;)A.5 B.3 C.6 D.499、
23、以下程序的运行结果是()#includemain()(int y=10;doy-;while(-y);printf(u%dn,y-);)A.1 B.2 C.-1 D.0数组100,C 语言中数组元素下标的数据类型是()A.实型常量 B,整型常量或整型表达式C.任何类型的表达式 D.字符型常量101、下列数组定义中,正确的是()A.int a10J;B.int n=10,an;C.int N=10;int aN;D.int n;scanf(%d,&n);int an;102、若已定义:inta13;则不能正确引用a 数组的元素的是()A.a0 B.aI0 C.a10+3 D.a13-5103、若
24、有定义:inta 引=0,1,2;则 al的 值 为()A.0 B.1 C.2 D.3104、若有定义:inta5=1,2,345;则语句 al=a2+a2+2-a3-l;运行后 al的 值 为()A.6 B.5 C.I D.2105、以下合法的数组定义是()A.int a=string”;B.int a5=0,l,2,3,4,5;C.ch ar a =0,l,2,3,4,5);1 0 6、若有如下程序段:ch ar s 1 0 ;s=ab cd”;p r i n t f(5);f o r(i=0;i 2);f o r(i=0;i 5;i+)p r i n t f(%d ,a i );A.1
25、1 2 3 4 5 B.1 2 3 4 5C.1 1 1 2 1 3 1 4 1 5 D.1 1 1 2 3 4 51 0 9、西面关于数组的叙述中,正确的是()A.数组必须先定义,然后使用B,定义数组时,可不加类型说明符C.定义数组后,可通过赋值运算符“二”对该数组名直接赋值D.在数据类型中,数组属于基本类型110、一下程序段的运行结果是()i n t i=0,a =6,5,3,7);doa i +;w h i l e(a i 4);f o r(i=0;i 4;i+)p r i n t f(n%dn,a i );A.6537 B.7563 C.7537 D.5673111、有如下程序段:i
26、n t t 3=1,2,3,4,5,6,7,8,9,10,11,12);p r i n t f(%d n”,t 川);则执行该程序段后输出结果是()A.8 B.7 C.4 D.2112、以下程序段运行后s的 值 是()i n t a 3 3=l,2,3,l,2,3,l,2,3;i n t i,j,s=l;f o r(i=0;i 3;i+)f o r(j=i;j 3;j+)s*=a i皿;A.18 B.10 8 C.2 D.12113、以下不能对二维数组a r r进行正确初始化的语句是()A.i n t a r r 2 3=0;B.i n t a r r 3=l ,2,3,4,5;C.i n t
27、 a r r 3=1,2,3,4,5,6;D.i n t a r r 2 3=l,3,4,5;114、若有定义:皿如3 4=1,2,0,1,2,3;则2 1 1的 值 为()A.0 B.1,2 C.1 D.3115、若有定义:i n t a 3 3;则表达式&a的 值 为()A.7 B.8 C.6 D.9116、若有定义:山口=0 H=0 m 2 3 3=1,2,3,4,5,6,7,8,9;则以下程序段运行后*的值为()f o r(;i 3;i+)x+=a i 2-i ;A.O B.12 C.15 D.18117、若有定义i n t a 2 3;则对数组元素的非法引用的是()A.a 0 l/2
28、 B.a l l C.a 4-4 0 D.a 0 3118、以下数组定义中,正确的是()A.i n t a 2 =1,2,3,4,5;B.i n t a口 2=0,;C.i n t a =1,2,3;D.i n t a =1,2,3,4);119、若有定义 i n t 3=1,2,3,4,5,6,7,8,9;贝!|表达式 s i ze o f(a)/s i ze o f(a 0 )的 值 为()A.3 B.4 C.5 D.9120、以下程序段运行后s的 值 是()i n t a 3 3=1,23,4,5,1,2,3,4);i n t i,j,s=l;f o r(i=0;i 3;i+)f o r
29、(j=i+l;j 若有定义:亩1=2;则语句=5 1 5(“115”,“11”);运 行 后 的 值 为()A.1 B.0 C.-1 D.2128、以下对C 语言字符数组描述中,正确的是()A.可以用lenglh函数计算字符数组中字符串的长度B.可以在赋值语句中通过赋值运算符三”对字符数组整体赋值C.存放在字符数组中的字符串,以(T作为该字符串结束标志D.字符数组只能存放字符串,不能存放字符129、以下程序段运行后屏幕输出为()char str80;strcpy(str,Hhellou);printf(n%d,strlen(str);A.5 B.6 C.7 D.80130 若有定 义:char
30、 strl|6=abcdm,*ps,*str2=abcdeF;则()是正确的A.strcpy(strl,str2);B.表达式 strcmp(strl,sti2)的值大于 0C.strl=str2;D.表达式 strlen(strl)的值为 6131 已有定义:char strl15=university,str215;则以下语句中正确的是()A.str2=strl;B.str2=college”;C.scanf(%s”,&str2);D.printf(%s”,strl);132 设已定义:char si20=You are”,s29=welcome!”;若要形成字符串You are welc
31、ome!M,正确的语句是OA.strcat(sl,s2);B.strcpy(sl,s2);C.sl+s2;D.sl&s2函数133、在 C 语言中,数组名作为函数调用的实参时,传递给形参的是()A.数组元素的个数 B.数组的第一个元素值C.数组中全部元素的值 D.数组的首地址134、以下程序的运行结果是()int fun(int array4Jl4J)(intj;for(j=0;j4;j+)printf(n%2d array j);printf(nn n);)main()(int al4Jl4J=0,l,2,0J,0,0,420,0,5,0,4,5。;fun(a);)A.20 0 5 B.1
32、0 04 C.0 120 D.04 5 0135、C 语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A.float 型 B.long 型 C.int 型 D.double 型136、以下程序运行后屏幕输出为()#includeint f(int x,int y)(return(x+y);)main()(int a=2,b=3,c;c=f(a,b);printf(H%d+%d=%dn H,a,b,c);)A.0 B.2+3=5 C.2+3=0 D.3+2=5137、以下程序运行后屏幕输出为()#includeint a=2,b=3;int max(int a,int b)int c;c
33、=ab?a:b;return(c);)main()(int a=4;printf(n%d,max(a,b);)A.3,2 B.2 C.3 D.4138、以下程序的运行结果是()fun(int i)(int a=2;a=i+;printf(u%d,a);)main()(int a=5,c=3;fun(c);printf(n%du,a);)A.4 5 B.3 5 C.4 4 D.3 3139、若有如下函数定义:int fun()static int k=0;return+k;)以下程序段运行后屏幕输出为()int i;for(i=l;i=5;i+)fun();printf(%d*,fun();A.
34、O B.1 C.5 D.6140、下面程序的输出结果是:()#includeint global=100;fun()(int global=5;return+global;)void main()(printf(%dn,fun();)A.100 B.101 C.5 D.6141、下列关于C 语言函数的描述中,正确的是()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用都可以嵌套D.函数的定义和函数的调用都不可以嵌套142、以下程序的运行结果是()fun(int x,int y)(int z;z=(xy)z=y;else z=
35、x;return(z);)A.-7.9 B.-7 C.-6.3 D.-6144、以下程序的运行结果是()#define M(a,b)a*bmain()(int x=3,y=2,sl,s2;sl=M(x+y,x-y);s2=M(x-y,x+y);printf(%d,%dnH,sl,s2);)A.-1,7 B.5,5 C.7,-1 D.5,-5145、以下叙述中,正确的是()A.#define PRICE=30”定义了与30等价的符号常量PRICEB.预编译处理命令行都必须以“#开头C.程序中使用带参的宏时,参数类型要与宏定义时一致D.宏名只能包含大写字母和数字字符146、以下叙述中,正确的是()
36、A.宏展开不占用运行空间,只占用编译时间B.预编译处理命令行必须以分号结束C.一个源程序只能有一个预编译处理命令行D.使用带参数的宏定义时,应该说明每个参数的数据类型147、以下的叙述中不正确的是()A.宏展开不占用运行时间,只占用编译时间 B.宏名无类型C.宏名必须用大写字母表示 D.预处理命令行都必须以#号开始148、若有定义:#define PI 3,在表达式PI*2*2的 值 为()A.12 B.4 C.3 D.不确定149、以下程序运行后,屏幕输出为()#define MIN(a,b)(a)下列#include命令中,正确的是()A.#inclue string.h B.#inclu
37、de string.hC.#include(string.h)D.#include151、F 面程序的输出结果是()#include#define ONE 1#define TWO ONE+1#define THREE TWO+1void main()(printf(%dnM,THREE-ONE);)A.产生错误 B.1 C.2 D.3152、以下叙述中正确的是()A.预处理命令行必须位于C 源程序的起始位置B.在 C 语言中,预处理命令行都以,铲开头C.每个C 程序必须在开头包含预处理命令行:#includeD.C 语言的预处理只能实现宏定义和条件编译的功能153、以下程序的运行结果是()#
38、define ADD(x)x+xmain()(int m=l,n=2,k;k=ADD(m+n)*3;printf(u%du,k);)A.9 B.10 C.12 D.18154、下面程序的运行结果是()#define M 10#define S(x)x*x#define F(x)(x*x)main()(int nl,n2;nl=1000/S(M);n2=1000/F(M);printf(%d,%dnH,n l,n2);)A.10,10 B.1000,10 C.10,1000 D.1000,1000指针155、设有以下语句,则()是对a 数组元素的不正确引用,其中0=i10。int a10=0,l
39、,2,3,4,5,6,7,8,9 ,*p=a;A.ap-a B.*(&ai)C.pi D.*(*(a+i)156、若有定义int*pl,*p2;则指针变量p l、p2不能进行运算的是()A.B.=C.+D.-157、以下关于指针概念的叙述中,错误的是()A.一个指针变量只能指向同一类型的变量 B.一个变量的地址称为该变量的指针C.两个同类型的指针变量可以作加减运算D.任何指针变量都可以与空指针NULL进行比较158、以下程序段运行后*(p+3)的 值 为()char a=,good,*;char*p;p=a;A.d B.l0 C.存放d 的地址159、以下程序段运行后*(+p)的 值 为()c
40、har a5=work”;char*p;p=a;Aw B.存放,w,的地址 C.V D.存放,o,的地址160、若有定义:int*p,a=4;p=&a;则以下均代表地址的是()A.a,p B.&a,p C.&a,*p D,a,*p161、若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是()A.*p=&a;scanf(%f,p);B.*p=&a;scanf(%lF,*p);C.p=&a,scanf(l,*p);D.p=&a;scanf(t4%lf p);162、若已定义:intx=12;对int*p=&x;和*p=x;这两条语句的正确理解是()A.语句是在
41、对指针变量p 定义时初始化,使 p 指 向 x;而语句是将变量x 的值赋给指针变量P 所指向的变量B.语句和中的*p 含义相同,都表示给指针变量赋值C.语句是在对指针变量p 定义时初始化,使 p 指向x;而语句是将变量x 的值赋给指针变量PD.语句和的执行结果都是把变量x 的地址赋给指针变量p163、下面语句正确的是()A.int*p;*p=20 B.char*s=abcdeF;printf(%sn,s);C.char str=),abcd,;str+;D.char str=a,b,c;printf(%s”,str);164、若有定义血22网 4=20;则以下不能表示数组元素如1工 2的 是(
42、)A.*(a IJ+2)B.*(pl+2)C.p5J D.*(p+5)165、若已定义:int a=5,*p;且 p=&a;则以下表示中不正确的是()A.&(*p)=&a B.*(&a)=a C.&(*p)=p D.*(p+)=a+166、若有以下程序段,其中0=i4,0=j3,则不能正确访问a 数组元素的是()int ij,(*p)3;int a3=1,2,3,4,5,6,7,8,9,10,11,12);p=a;A.*(*(a+i)+j)B.piU C.(*(p+i)Ul D.pi+j167、以下程序段的运行结果是()int x=2,3,4,5,6,7,*p=x;int i,s=O;for(
43、i=l;i6;i+)s+=pi+;printf(u%d,s);A.12 B.15 C.25 D.27168、5面程序的运行结果是()main()(int x=36,y=63;intp=&x;q=&y;t=P;p二 q;q=t;printf(u%d,%dn,x,y);)A.36,36 B.63,63 C.36,63 D.63,36169、以下程序段运行后x 的 值 为()int a=1,2,345,6,7;int i,x,*p;x=l;p=&a2;for(i=0;i3;i+)x*=*(p+i);A.不确定 B.24 C.120 D.60170、以下程序段运行后x 的 值 为()int a=l,2
44、,3,b=4,2,5);int*p,*q;int i,x;p=a;q=b;for(i=0;i3;i+)if(*(p+i)=*(q+i)x=*(p+i)*2;A.2 B.4 C.5 D.不确定171、以下程序运行结果是()main()char a=1357H,*p;for(p=a;pa+4;p+)printf(,%s,p);A.1357 B.1357357577 C.7531 D.7531531311172、下面程序的输出结果是()#includevoid main()(int i;char*s=nabc;for(i=0;i3;i+)printf(%snH,s+i);)A.abcbecB.cbe
45、abcC.abccbeD.aababc173、下面程序的输出结果是()#includevoid main()char*str=12345,*ps=str+4;printf(0%cnM,ps-4);)A.1 B.2 C.3 D.错误174、以下程序执行时,输 入 1 2 3 4 5 回车,输 出 为()#include#define N 5void main()(int aN;int*p=a;while(pa)printf(,%d,*(p);)A.5 4 3 2 1 B.1 23 45 C.2 3 4 5 1 D.4 3 2 1 5175.以下程序段的运行结果是()int x=2,3 A5,6,
46、7),*p=x;int i,s=O;for(i=l;i6;i+=2)s+=*(p+i);printf(n%du,s);A.27B.25C.12D.15176.以下程序运行结果()main()(int a=9,8,7,6,5,4,*p,*q,i;p=a;q=p+5;for(i=0;i6;i+)printf(%d%d”,*(p+i),*(q-i);A.948576675849 B.948576 C.495867 D.495867768594结构体和共用体177.以下程序段的运行结果()union(int num;char str2;s;s.num=20;s.strO=*A;s.strl=W;pri
47、ntf(%du,s.num);A.20 B.65 C.O D.A178.定义一个结构体变量后,该变量所占内存大小是()A.结构体中第一个成员所需内存容量B.结构体中最后一个成员所需内存容量C.结构体中各成员所需内存容量总和D.结构体成员中占内存容量最大者所需的容量179,设有如下定义:union u_type(int x;float y;double z;char m;a,b,c;执行语句a.x=8;a.y=7.5;a.m=N;b.x=9;后,共用体变量a 中的 值 为()A.9 B.N C.7.5 D.8180.若有定义:struct teacherint num;char name 10;
48、char sex;int age;float score;)teacher 1;则变量teacher 1所占用的内存字节数是()A.5 B.14 C.19 D.20181.下列对结构体类型变量定义不正确的是()A.struct teacher(int num;int age;teach 1;B.struct(int num;int age;teach l,teach2;C.struct(int num;int age;(teacher;struct teacher teach 1;D.struct teacher(int num;int age;);struct teacher teach 1
49、;182.若有定义:struct teacher(int num;char sex;int age;teacher 1;则下列叙述不正确的是OA.struct是结构体类型的关键字B.struct teacher是用户定义的结构体类型C.num,sex,age都是结构体变量teacher 1 的成员D.teacherl是结构体类型名183.以下程序的运行结果是()#includeunion Utype(int i;float f;u2;void main()(printf(%dn,sizeof(u);)A.2 B.4 C.6 D.8184.以下程序的运行结果是()#includeunion Ut
50、ype(int i;flaot f;);struct(char ch2;int i;union Utype u;a;void main()(printf(M%dn,sizeof(a);)A.5 B.6 C.7 D.8185.以下C 语言共用体类型数据的描述中,不正确的是()A.共用体变量占的内存大小等于所需内存最大的成员所占的内存B.共用体类型可以出现在结构体类型定义中C.在定义共用体变量的同时允许对第一个成员的值进行初始化D.同共用体各成员的首地址不相同186.设有如下语句:struct student(int num;int age;);struct student stu3=101,18