C复习题及答案.docx
《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 以下程序的输出结果
14、是(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=1030,5070,90l110l130x150,*p=a+5;for(j=3;j;j-)switch(j)case1:case2:Printf(%dj,*p+);break;case3:Printf(%dj,*(-p);14 以下程序的输出结果是(1,2,3,4,5,6,7,8,9,10,)includevoidf
15、un(intajntb)intt;t=a;a=b;b=t;)main()intc10=lz2,3A57z8z9z10J;for(i=0;i10;i+=2)fun(cixci+1);for(i=0;i10;i+)printf(n%dz,zci);printf(,n);)15 以下程序的输出结果是(321,6,7,8,)#includevoidfun(intaJntn)inti,t;for(i=Ojit=ai;ai=an-l-i;an-l-i=t;)main()intk10=l,234,5,6,7,8,9,10,i;fun(k,5);for(i=2;i8;i+)printf(,%dlxki);pr
16、intf(,n);)16 以下程序的运行结果是(2,8)#includevoidswap(int*ajnt*b)int*t;t=a;a=b;b=t;)mai()inti=2j=8/p=&iz*q=&j;swap(pzq);printf(%d,%dn,*pz*q);)17 以下程序的运行结果是(1,3)#includevoidf(int*pzint*q);main()intm=n=2r=m;f(r,&n);Printf(%d,%d,m,n);)voidf(int*pzint*q)p=p+l;*q=*q+l;18 以下程序的运行结果是(10,28,)#includeintb=2;intfun(in
17、t*k)b=*k+b;return(b);main()inta10=lz2,3A5l6z7z8,i;for(i=2;i4;i+)b=fun(ai)+b;printf(%d,n,b);)printf(,n);)19 以下程序的输出结果是(IoOLZhangDa,1098.0)*include#includestructAinta;charb10;doublec;voidf(structAt);voidmain()structAa=1001znZhangDa,z1098.0;f(a);Printf(%d,%s,%6.1%r,a.a,a.b,ac);)voidf(structAt)t.a=1002;
18、strcpy(t.bzChangRong)jtc=1202.0;20 以下程序的运行结果是(10,14)#includevoidmain()inta=lzb=2;for(;a8;a+)b+=a;a+=2;printf(%dz%dnzazb);)21 以下程序的输出结果是(a=1.500000)#includevoidsub(floatxzfloat*yzfloat*z)*y=*y-l.O;*z=*z+x;)voidmain()floata=2.5zb=9.0z*paz*pb;pa=&a;pb=&b;sub(b-alpazpb);printf(a=%nla);)22 以下程序的输出结果是(357
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习题 答案
链接地址:https://www.desk33.com/p-788999.html