《C复习题及答案.docx》由会员分享,可在线阅读,更多相关《C复习题及答案.docx(27页珍藏版)》请在优知文库上搜索。
1、C复习题及答案1 .以下选项中合法的变量名是(A)。A._am7B.4gp3C.scanfD.B.HJack2 .若有说明语句intij;则计算表达式i=(j=3,j+J=5J+5)后i的值为(D)。A.3B.4C.5D.103 .关于if后一对圆括号中的表达式,以下叙述中正确的是(C)。A.只能用逻辑表达式B.只能用关系表达式C.可用任意表达式D.可用逻辑表达式也可用关系表达式4 .设有定义语句:charcl=3zc2=3;,则以下表达式中值为O的是(A)oA.c1c2B.cl&c2C.clc2D.c25 .调用函数时,基本类型变量作函数实参,它与对应的形参(八)oA,各自占用独立的存储单元
2、8 .共占用一个存储单元C.同名时才能共用存储空间D.不占用存储单元6.若有如下结构体类型的定义和语句:Dstructstudentcharname10;charsex;intage;stdz*ps;ps=&std;则下面对结构体成员的引用错误的是()。A.std.sexB.ps-ageC.(*ps).ageD.student.sex7 .以下关于文件包含的叙述中正确的是(B)。A.用#吊(:110命令所包含的文件其后缀只能是h8 .根据需要的鼠1皿6命令行可以出现在源程序任意行的起始位置C.对有错误的被包含文件进行修改后,包含它的源文件不必重新编译D.用#吊加加命令行所包含的头文件可以是目标
3、文件9 .若要打开A盘上user子目录下名为data.txt的文本文件,进行读写,下面符合此要求的函数调用是(C)。A.fopen(A:userdata.txtrb)B.fopen(A:userdata.txt,r)C.fopen(A:userdata.txt,r+)D.fopen(A:userdata.txt,w)10 以下叙述不正确的是(CQ)。A.C程序的main函数可以没有参数。BC程序的main函数可以有参数。C.C程序的main函数若有参数时,第一个参数的值最少是IoD.C程序的main函数若有参数时,第一个参数的值一定要大于等于0。11 .以下关于数组的叙述中不正确的是(D)。A
4、.数组的名称其实是数组在内存中的首地址。12 数组元素是按顺序存放在内存中。C.当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改。D.一个数组可以存储多种不同类型的变量。1 .C语言规定:函数返回值的类型是由_DARetUrn语句中的表达式类型规定的B调用该函数时的主调函数类型所决定的C调用该函数时系统临时决定的D在定义该函数时所指定的函数类型所决定的2 .在宏定义#1冶已PI3.1415926中,用宏名Pl代替一个_D_A常量B单精度数C双精度数D字符串3 .若以下对fun函数的调用是正确的:=fun(fun(azbzc),(a+bza+c)za+b+c);则fun函数的形参
5、个数为-A。Ax3B、4U5D、64 .C语言用C表示逻辑真值。A.TrueB.t或yC.非零整型值D.整型值O5 .为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总与B配对。A.缩排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if6 .凡是函数中未指定存储类别的局部变量,其隐含的存储类别是_AoA.autoB.staticC.externD.register7 .若用数组名作为函数调用的实参,传递给形参的是AA.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数8 .设有定义:chars81;inti=0;以下不能
6、将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是(C)。A.gets(s);9 .while(si+=getchar()!=,n,);si=,0;C.scanf(,%snzs);D.doscanf(,%csi)jwhile(si+!=,n);si=,0,;10 .以下说法正确的是AA.实参和与其对应的形参各自占用独立的存储单元B.实参和与其对应的形参共同占用一个存储单元C.只有当实参和与其对应的形参同名时才共同占用存储单元D.形参是虚拟的,不占用存储单元11 .在位运算中,操作数每左移一位,其结果相当于AA.操作数乘2B.操作数除2C.操作数乘10D.操作数除101 .定义了
7、一维int型数组a10后,下面错误的引用是_BA. a0=l;B. a10=2;C. a0=5*2;D. al=a2*a0;2 .若有定义:int10,*p=x;,贝(J*(p+5)表示_B-A.数组元素x5的地址B,数组元素x5的值C.数组元素x6的地址D.数组元素x6的值3 .以下关于switch语句和break语句的描述正确的是-DA.在switch语句中必须使用break语句B.break语句只能用于SWitCh语句体中C.break语句只能用于循环语句中D.在switch语句中可以使用break语句4.若程序中定义了以下函数doublemyadd(doubleazdoubleb)re
8、turn(ab);并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是AA.doublemyadd(doubleazb);B. doublemyadd(doublezdouble);C. doublemyadd(doublebzdoublea);D. doublemyadd(doublex,doubley);5 .一个c程序的执行是从AoA.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束6 .
9、凡是函数中未指定存储类别的局部变量,其隐含的存储类别是AA.autoB.staticC.externD.register7 .对于下面语句描述不正确的是_B-structStudentfunsignedlongid;charname30;charcalss30;Stul;A.structStudent为用户自定义类型B.Student为用户自定义类型C.name为结构体成员变量D.Stul为结构体变量名称8 .若有定义int(*pt)3;,则下列说法正确的是_D。A.定义了基类型为int的三个指针变量B.定义了基类型为int的具有三个元素的指针数组ptC.定义了一个名为*pt、具有三个元素的整
10、型数组D.定义了一个名为pt的指针变量,它指向含有三个整数元素的一维数组9 .下面的描述错误的是CA.函数可以有多个形式参数B.函数可以没有返回值C.函数内可以嵌套定义函数D.函数可以被其他函数调用10 .有以下定义和语句Dstructworkersintnum;charname20;charc;structintday;intmonth;intyear;s;wz*pw;PW=&w;能给w中year成员赋1980的语句是A.*pw.year=198O;B.w.year=1980;C.pw-year=1980;D.w.s.yar=1980;二、阅读程序代码写结果(每题4分,共32分)1、main
11、()*%intx=0zy=2zz=3;switch()case0:switch(y=2)case1:printf(*);case2:printf(%n);break;casel:switch(z)case1:printf($);break;case2:printf(#);break;default:printf(Mn);2、voidSWaP(int*pzint*q)a=10,b=20int*t;t=p;p=q;q=t;mai()inta=10zb=20;SWaP(&a,&b);printf(wa=%dzb=%dn,r,azb);)3、main()5,4,6inta,b,c,d,ij,k;a=1
12、0;b=c=d=5;i=j=k=O;for(;ab;+b)i+;while(a+c)j+;dok+;while(ad+);Printfe,%d,%d,%c,ij,k);)4xintfunl(intajntb)4intc;a+=a;b+=b;c=fun2(azb);returnc*c;intfu2(intazintb)intc;c=a*b%3;returnc;main()intx=llzy=19;printf(,%dn,zfunl(xzy);)5、defineHl523#defineH2Hl+3main()intk;k=H2*H2H2;printf(,%d,);)6.fun(int*sjntnl
13、jntn2)4321098765inti,j,t;i=nl;j=2;while(ij)j)t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;i+;j-;)main()inta10=L2,3,4,5,6,7,8,9,0,i9p=a;fun(pz0z3);fun(pA9);for(i=0;i10;i+)printf(%dzai);7.intfun(inta)5intb=O;staticintc=3;a=c+zb+;returna;main()inta=2zizk;for(i=0;i);printf(%dl(+p)-x);printf(%d,z+(*p-y);)11 以下程序的输出结果是(2)#includemain()inta=2zb=-lzc=2;if(ab)b)if(b0)fun(x2);printf(%d,x);)main()fun(3);printf(nn);)13 以下程序的运行结果是(90z90z110,)#includemain()intj,a=