《C复习题及答案.docx》由会员分享,可在线阅读,更多相关《C复习题及答案.docx(26页珍藏版)》请在第一文库网上搜索。
1、C复习题及答案1 .以下选项中合法的变量名是(A)。A._am7B.4gp3C.scanfD.B.HJack2 .若有说明语句inti,j;则计算表达式i=(j=3,j+,j=5,j+5)后i的值为(D)。A.3B.4C.5D.103 .关于if后一对圆括号中的表达式,以下叙述中正确的是(C)。A.只能用逻辑表达式B.只能用关系表达式C.可用任意表达式D.可用逻辑表达式也可用关系表达式4 .设有定义语句:charc1=3,c2=3;,则以下表达式中值为O的是(A)。A.c1c2B.c1&c2C.c1c2D.c25 .调用函数时,基本类型变量作函数实参,它与对应的形参(A)oA.各自占用独立的存
2、储单元8 .共占用一个存储单元C.同名时才能共用存储空间D.不占用存储单元6.若有如下结构体类型的定义和语句:Dstructstudentcharname10;charsex;intage;std,*ps;PS=&std;则下面对结构体成员的引用错误的是()。A.std.sexB.ps-ageC.(*ps).ageD.student.sex7 .以下关于文件包含的叙述中正确的是(B)。A.用的叱心(命令所包含的文件其后缀只能是h8 .根据需要的此回16命令行可以出现在源程序任意行的起始位置C.对有错误的被包含文件进行修改后,包含它的源文件不必重新编译D.用胸叱116命令行所包含的头文件可以是目
3、标文件9 .若要打开A盘上user子目录下名为data.txt的文本文件,进行读写,下面符合此要求的函数调用是(C)。A.fopen(A:userdata.txt,rb)B.fopen(A:userdata.txtr)C.fopen(A:userdata.txtr+)D.fopen(A:userdata.txtn)10 .以下叙述不正确的是(C.D)。A.C程序的main函数可以没有参数。B.C程序的main函数可以有参数。C.C程序的main函数若有参数时,第一个参数的值最少是IoD.C程序的main函数若有参数时,第一个参数的值一定要大于等于0。11 .以下关于数组的叙述中不正确的是(D)
4、。A.数组的名称其实是数组在内存中的首地址。12 数组元素是按顺序存放在内存中。C.当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改。D.一个数组可以存储多种不同类型的变量。1 .C语言规定:函数返回值的类型是由_DARetUm语句中的表达式类型规定的B调用该函数时的主调函数类型所决定的C调用该函数时系统临时决定的D在定义该函数时所指定的函数类型所决定的2 .在宏定义#(吊6PI3.1415926中,用宏名P1代替一个_口_A常量B单精度数C双精度数D字符串3 .若以下对fun函数的调用是正确的:x=fun(fun(a,b,c),(a+b,a+c),a+b+c);则fun函数的
5、形参个数为_AOA、3B、4C、5D、64 .C语言用C表示逻辑真值。A.TrueB.t或yC.非零整型值D.整型值O5 .为了避免在嵌套的条件语句if-e1se中产生二义性,C语言规定:e1se子句总与B配对。A.缩排位置相同的ifB.其之前最近的ifC.其之后最近的ifD.同一行上的if6 .凡是函数中未指定存储类别的局部变量,其隐含的存储类别是-AoA.autoB.staticC.externD.register7 .若用数组名作为函数调用的实参,传递给形参的是A。A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数8 .设有定义:chars81;inti=0;
6、以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是(C)。A.gets(s);9 .whi1e(si+=getchar()!=,n,);si=,0,;C.scanf(%s,s);D.doscanf(%cz8tsi)Jwhi1e(si+!=,n,);si=,0,;10 .以下说法正确的是AA.实参和与其对应的形参各自占用独立的存储单元B.实参和与其对应的形参共同占用一个存储单元C.只有当实参和与其对应的形参同名时才共同占用存储单元D.形参是虚拟的,不占用存储单元11 .在位运算中,操作数每左移一位,其结果相当于AA.操作数乘2B.操作数除2C.操作数乘10D.操作数除10
7、1 .定义了一维int型数组a10后,下面错误的引用是_BA. a0=1;B. a10=2;C. a0=5*2;D. a1=a2*a0;2 .若有定义:intx10,*p=x;,贝(p+5)表示_B-A.数组元素x5的地址B.数组元素x5的值C.数组元素x6的地址D.数组元素x6的值3 .以下关于switch语句和break语句的描述正确的是-DoA.在switch语句中必须使用break语句B.break语句只能用于SWitCh语句体中C.break语句只能用于循环语句中D.在switch语句中可以使用break语句4 .若程序中定义了以下函数doub1emyadd(doub1ea,doub
8、1eb)return(a+b);)并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是_AoA.doub1emyadd(doub1ea,b);B. doub1emyadd(doub1e,doub1e);C. doub1emyadd(doub1eb,doub1ea);D. doub1emyadd(doub1ex,doub1ey);5 .一个C程序的执行是从AoA.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序m
9、ain函数结束6 .凡是函数中未指定存储类别的局部变量,其隐含的存储类别是A0A.autoB.staticC.externD.register7 .对于下面语句描述不正确的是一BstructStudentfunsigned1ongid;charname30;charca1ss30;Stu1;A.structStudent为用户自定义类型B.Student为用户自定义类型C.name为结构体成员变量D.Stu1为结构体变量名称8 .若有定义it(*pt)3;,则下列说法正确的是_D0A.定义了基类型为int的三个指针变量B.定义了基类型为int的具有三个元素的指针数组ptC.定义了一个名为*pt
10、、具有三个元素的整型数组D.定义了一个名为pt的指针变量,它指向含有三个整数元素的一维数组9 .下面的描述错误的是CA.函数可以有多个形式参数B.函数可以没有返回值C.函数内可以嵌套定义函数D,函数可以被其他函数调用10 .有以下定义和语句Dstructworkersintnum;charname20;charc;structintday;intmonth;intyear;s;w,*pw;PW=&w;能给W中year成员赋1980的语句是A.*pw.year=198O;B.w.year=1980;C.pw-year=1980;D.w.s.year=1980;二、阅读程序代码写结果(每题4分,共
11、32分)1smain()*%intx=0zy=2zz=3;switch(x)case0:switch(y=2)case1:printf(*);case2:printf(%);break;case1:switch(z)case1:printf($);break;case2:printf(#);break;defau1t:printf();2、voidswap(int*p,int*q)a=10zb=20int*t;t=p;p=q;q=t;main()inta=10zb=20;swap(8iaz&b);Printf(a=%d,b=%dr,azb);)3、main()5,4,6inta,b,c,d,i
12、,j,k;a=10;b=c=d=5;i=j=k=O;for(;ab;+b)i+;whi1e(a+c)j+;dok+;whi1e(ad+);pntf(,%dz%dz%d1,zizjzk);)4sintfun1(intazintb)4intc;a+=a;b+=b;c=fun2(a,b);returnc*c;intfun2(intazintb)intc;c=a*b%3;returnc;main()intx=11zy=19;pntf(,%dn,zfun1(xzy);)5、#defineH1523#defineH2H1+3main()intk;k=H2*H2H2;printf(%c1zk);)6.fun
13、(int*s,intn1zintn2)4321098765intijzt;i=n1;j=n2;whi1e(ij)j)t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;i+;j-;)main()nta10=1,2,3A5,6,7,8,9,0,i,*p=a;fun(pzOz3);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;ix);printf(%c1z,z(+p)-x);Printf(%c,+(*p-y);)11 以下程序的输出结果是(2)#inc1udemain()inta=2zb=-1zc=2;if(ab)bdsfid=,278p=b)if(b0)fun(x2);printf(%c1,zx);)main()fun(3);printf(n);)13 以下程序的运行结果是(90,90,110,)#inc1udem