上海市计算机二级考试C语言复习资料题目复习过程.doc





《上海市计算机二级考试C语言复习资料题目复习过程.doc》由会员分享,可在线阅读,更多相关《上海市计算机二级考试C语言复习资料题目复习过程.doc(142页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。上海市计算机二级考试C语言复习资料题目-上海理工大学上海市计算机二级考试(C语言)复习资料题目C语言是一种面向过程的程序设计语言,函数、指针、地址和递归概念是它的难点。本复习资料以教学大纲为依据,提供各类题型和练习,重在“基本概念”、“常用算法”、“阅读分析程序”、“编程技能”等诸方面的强化训练,按照上海市计算机二级考试(C语言)的框架,提供“基础知识、读程序写结果、改错、编程序和程序指令填空”几部份,供学生学习参考,文末附习题参考解答。1.B2.C3.C4.B5.D6.A7.A8.C9.C10.A11
2、.C12.A13.B14.B15.C16.B17.D18.B19.A20.C21.C22.B23.B24.C25.D26.B27.B28.D29.C30.C31.D32.C33.C34.B35.C36.D37.C38.B39.C40.B41.C42.B43.C44.B45.B46.A47.D48.D49.D50.D51.A52.C第一部份:基础知识1.下述循环的循环次数是()intk=2;while(k=0)printf(%d,k);k-;printf(n);A、无限次B、0次C、1次D、2次2.在下列选项中,没有构成死循环的程序段是()A、inti=100;B、for(;)while(1)i
3、=i%100+1;if(i100)break;C、intk=1000;D、ints=36;do+k;while(k=10000);while(s);-s;3.若有以下定义和语句,且0=i10,则对数组元素的错误引用是()inta=0,1,2,3,4,5,6,7,8,9,*p,i;p=a;A、*(a+i)B、ap-aC、p+iD、*(&ai)4.下面能正确将字符串Boy进行完整赋值操作的语句是(B)A、chars3=B,o,y;B、chars=Boy;C、chars3=Boy;D、chars3;s0=B;s1=o;s2=y;5.以下程序段的输出结果是(D)chararr=ABCD;char*pt
4、r;for(ptr=arr;ptrarr+4;ptr+)printf(%sn,ptr);A、ABCDB、AC、DD、ABCDBCDCDD6.C语言的auto型变量是(A)A、存储在动态存储区中。B、存储在静态存储区中。C、存储在计算机CPU的寄存器中。D、存储在外存储器中。7.测试文件是否结束函数的函数名是(A)A、feofB、EOFC、eofD、FEOF8.下面程序段的输出结果是(C)inta4=1,2,3,4,5,6,7,8,9,10,11,12,(*p)4;p=a;printf(“%dn”,*(*(p)+2);A、1B、5C、3D、79.C语言规定:在一个源程序中,main函数的位置是(
5、C)A、必须在最开始B、必须在系统调用的函数的后面C、可以任意D、必须在最后10.一个C程序的执行是从(A)A、 本程序的main函数开始,到main函数结束B、 本程序的第一个函数开始,到本程序文件的最后一个函数结束C、 本程序的main函数开始,到本程序文件的最后一个函数结束D、 本程序文件的第一个函数开始,到本程序main函数结束11.下面的四个选项中,均是不合法的用户标识符的选项是(C)A、AB、floatC、b-aD、_123P_0la0gototempdo_AintINT12.下面四个选项中,均是合法转义字符的选项是(A)A、B、C、018D、0017f101n”xabx1f13.
6、sizeof(float)是(B)A、一个双精度型的表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式14.下述循环的循环次数是(B)intk=2;while(k=0)printf(%d,k);k-;printf(n);A、无限次B、0次C、1次D、2次15.若有以下定义和语句,且0=i10,则对数组元素的错误引用是(C)inta=0,1,2,3,4,5,6,7,8,9,*p,i;p=a;A、*(a+i)B、ap-aC、p+iD、*(&ai)16.若二维数组a有m列,则在aij前的元素个数为(B)A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+117.对两个数组a和b
7、进行如下初始化chara=”ABCDEF”;charb=A,B,C,D,E,F;则以下叙述正确的是(D)A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长18.C语言中有关全局变量的说法,正确的是(B)A、在使用到它的所有文件中均需定义B、在函数体外定义一次C、 在main函数中定义D.在main函数外定义19.若有数组名作为函数调用时的实参,则传递给该函数形参的是(A)A、数组的首地址B、数组的第一个元素的值C、数组中全部元素的值D、数组元素的个数20.下面程序段的输出结果是(C)inta3=1,2,3,4,5,6,7,8,9,10,11,12,(*p)
8、3;p=a;printf(“%dn”,*(*(p+1)+2);A、3B、4C、6D、721.不属于C语言程序基本结构的是(C)A)顺序结构B)选择结构C)函数结构D)循环结构22.若有定义及赋值:inta66,*p;p=*a;则下列各式中能表示元素a01列地址的表达式是B。A)&a0+1B)a0+1C)*(p+1)D)p+123.十进制数123转换成十六进制数是B。A)7AHB)7BHC)7CHD)7DH24.C语言中合法的字符常量是C。A)058B)abC)xabD)”0”25.下列字符中,ASC码值最小的是D。A)AB)aC)0D)空格26.下面程序输出结果是_B_main()intk=0
9、;charc=A;doswitch(c+)caseA:k+;break;caseB:k-;caseC:k+=2;break;caseD:k=k%2;continue;caseE:k=k*10;break;default:k=k/3;k+;while(cG);printf(k=%dn,k);A)k=3B)k=4C)k=2D)k=027.设有如下定义:intx=l,y=-1;,则语句:printf(%dn,(x-&+y);的输出结果是(B)A)1B)0C)-1D)228.C语言规定,函数返回值的类型是由D。A) return语句中的表达式类型所决定B) 调用函数时的主调函数类型所决定C) 调用函数
10、时系统临时决定D) 在定义该函数时所指定的函数类型所决定29.下列定义中,不是指针数组定义的是C。A)int*p5;B)float*q4;C)int(*r)6;D)char*w7;30.以下程序运行结果为_C_#definePT3.5#defineS(x)PT*x*xmain()inta=1,b=2;printf(%4.1fn,S(a+b);A)14.0B)31.5C)7.5D)10.531.下面程序输出结果是(D)main()chara=ABCDEFG,k,*p;fun(a,0,2);fun(a,4,6);printf(%sn,a);fun(char*s,intp1,intp2)charc;
11、while(p1p2)c=sp1;sp1=sp2;sp2=c;p1+;p2-;A)ABCDEFGB)DEFGABCC)GFEDCBAD)CBADGFE32.以下程序的输出结果是(C)main()inta=1,i;for(i=0;i4;i+)printf(%d,func(a);func(a)inta;intb=0;staticintc=1;b+;c+;return(a+b+c);A)4444B)4455C)4567D)567833.执行下面的程序后,y的值是_C_(不应该错!)main()inta=2,4,6,8,10;inty=1,x,*p=a+1;for(x=0;x3;x+)y+=*(p+x
12、);printf(%dn,y);A)17B)18C)19D)2034.若使用下述程序段将整数30和浮点数5.5分别赋给变量a和b,那么输入应该是(B)inta;floatb;scanf(a=%d,b=%f,&a,&b);A)305.0B)a=30,b=5.5C)30,5.5D)a=30b=5.535.设有如下定义:int(*ptr)();则以下叙述中正确的是(C)(是圆括号不是方括号)A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针36.设有以下定义:in
13、ta43=1,2,3,4,5,6,7,8,9,10,11,12;int(*ptr)3=a,*p=a0;则以下能够正确表示数组元素a12的表达式的是(D)A)*(*ptr+1)2B)*(*(p+5)C)(*ptr+1)+2D)*(*(a+1)+2)37若有以下定义和语句,且0=i10,则对数组元素的错误引用是(C)inta=0,1,2,3,4,5,6,7,8,9,*p,i;p=a;A)*(a+i)B)ap-aC)p+iD)*(&ai)38.执行下面的程序后,a的值是(B)#defineSQR(X)X*Xmain()inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);prin
14、tf(%dn,a);解法如下!宏展开后类似于这样a/=k+m*k+m/K+m*k+m;a/=2+1*2+1/2+1*2+1;a/=7;a=10/7=1;整数除法,忽略小数A)10B)1C)9D)039.表达式18/4*sqrt(4.0)/8的值的数据类型为(C)(在编译器里自动转为double)A)intB)floatC)doubleD)不确定40.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是(B)if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;A)1B)2C)3D)641.判断char型变量ch是否为
15、大写字母的正确表达式(C)A)A=ch=A)and(ch=A)&(ch=Z)D)(A=ch)42.以下程序的输出结果是(B)main()inti,k,a10,p3;k5;for(i0;i10;i+)ai=i;for(i0;i3;i+)pi=ai*(i+1);for(i0;i=0&chi=9;i+=2)s=10*s+chi-0;printf(%dn,s);A)12ba56B)6521C)6D)6244.以下程序运行后的结果是(B)。main()chars=12345678;intv4=0,1,1,0,k,i;for(k=0;sk;k+)switch(sk)case1:i=0;case2:i=1;
16、case3:i=2;case4:i=3;vi+;for(k=0;k4;k+)printf(%d,vk);A)0123B)0118C)5678D)024645.下面程序输出结果是(B)(+-运算符的先后顺序!)main()intk=0;charc=A;doswitch(c+)caseA:k+;break;caseB:k-;caseC:k+=2;break;caseD:k=k%2;continue;caseE:k=k*10;break;default:k=k/3;k+;while(c=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b048.要把高级语言编写的源程序转换为目标程序,需要使
17、用(D)A)编辑程序B)驱动程序C)诊断程序D)编译程序49英文小写字母d的ASCII码为100(十进制),英文大写字母D的ASCII码为(D)A)50B)66C)52D)6850.下面程序输出结果是(D)(+-运算符的先后顺序)voidprtv(int*x)printf(%dn,+*x);main()inta=25;prtv(&a);A)23B)24C)25D)2651.下面程序的输出是(A)intaa33=2,4,6;main()inti,*p=&aa00;for(i=0;i2;i+)if(i=0)aaii+1=*p+1;else+p;printf(%d,*p);A)23B)26C)33D
18、)3652.该程序的执行结果是(B)#include#includemain()intfun(char*,int);char*p;p=1234567;fun(p,strlen(p);puts(p);intfun(char*w,intn)chart,*s1,*s2;s1=w;s2=w+n-1;while(s1s2)t=*s1+;*s1=*s2-;*s2=t;A)1234567B)7654321C)1711717D)717717153.试写出下列数学表达式的C语言表达式(sqrt(x)+sqrt(y)/(2*(x+y);54.下面程序的输出结果是()#includemain()char*a=123
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海市 计算机 二级 考试 语言 复习资料 题目 复习 过程

限制150内