




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海理工大学上海市计算机二级考试(C语言)复习资料题目C语言是一种面向过程的程序设计语言,函数、指针、地址和递归概念是它的难点。本复习资料以教学大纲为依据,提供各类题型和练习,重在“基本概念”、“常用算法”、“阅读分析程序”、“编程技能”等诸方面的强化训练,按照上海市计算机二级考试(C语言)的框架,提供“基础知识、读程序写结果、改错、编程序和程序指令填空”几部份,供学生学习参考,文末附习题参考解答。1. B 2. C 3. C 4. B 5. D 6. A 7. A 8. C 9. C 10. A 11. C 12. A 13. B 14. B 15. C 16. B 17. D 18.B 19. A 20. C21. C 22. B 23. B 24. C 25. D 26. B 27. B 28. D 29. C 30. C31. D 32. C 33. C 34. B 35. C 36. D 37. C 38. B 39. C 40. B41. C 42. B 43. C 44. B 45. B 46. A 47. D 48. D 49. D 50. D51. A 52. C 第一部份:基础知识1. 下述循环的循环次数是(B)因为没有进入循环 int k=2; while(k=0)printf(%d,k); k-;printf(n); A、无限次 B、0次 C、1次 D、2次2. 在下列选项中,没有构成死循环的程序段是(C) A、int i=100; B、for(;) while(1) i=i%100+1; if(i100)break; C、int k=1000; D、int s=36; do +k; while(k=10000); while(s);-s;3. 若有以下定义和语句,且0=i10,则对数组元素的错误引用是(C) int a=0,1,2,3,4,5,6,7,8,9,*p,i; p=a; A、*(a+i) B、ap-a C、p+i D、*(&ai)4. 下面能正确将字符串Boy进行完整赋值操作的语句是(B)有四个字符包括结束符 A、char s3=B,o,y; B、char s =Boy; C、char s3=Boy; D、char s3;s0=B;s1=o;s2=y;5. 以下程序段的输出结果是(D ) char arr =ABCD; char*ptr; for(ptr=arr;ptrarr+4;ptr+) printf(%sn,ptr); A、ABCD B、 A C、 D D、 ABCD BCD CD D6. C语言的auto型变量是(A) A、存储在动态存储区中。 B、存储在静态存储区中。 C、存储在计算机CPU的寄存器中。 D、存储在外存储器中。7. 测试文件是否结束函数的函数名是(A) A、feof B、EOF C、eof D、FEOF8. 下面程序段的输出结果是(C) int a4=1,2,3,4,5,6,7,8,9,10,11,12,(*p)4; p=a; printf(“%dn”,*(*(p)+2); *3=3 A、1 B、5 C、3 D、79. C语言规定:在一个源程序中,main函数的位置是(C) A、必须在最开始 B、必须在系统调用的函数的后面 C、可以任意 D、必须在最后10. 一个C程序的执行是从(A)A、 本程序的main函数开始,到main函数结束B、 本程序的第一个函数开始,到本程序文件的最后一个函数结束 C、 本程序的main函数开始,到本程序文件的最后一个函数结束D、 本程序文件的第一个函数开始,到本程序main函数结束11. 下面的四个选项中,均是不合法的用户标识符的选项是(C) A、A B、float C、b-a D、_123P_0 la0 goto tempdo _A int INT12. 下面四个选项中,均是合法转义字符的选项是(A) A、 B、 C、018 D、0 017 f 101n ” xab x1f13. sizeof(float)是(B) 求长度 A、一个双精度型的表达式 B、一个整型表达式 C、一种函数调用 D、一个不合法的表达式14. 下述循环的循环次数是(B) int k=2; while(k=0)printf(%d,k); k-;printf(n); A、无限次 B、0次 C、1次 D、2次15. 若有以下定义和语句,且0=i10,则对数组元素的错误引用是() int a=0,1,2,3,4,5,6,7,8,9,*p,i; p=a; A、*(a+i) B、ap-a C、p+i D、*(&ai)16. 若二维数组a有m列,则在aij前的元素个数为(B) A、j*m+i B、i*m+j C、i*m+j-1 D、i*m+j+117. 对两个数组a和b进行如下初始化char a =”ABCDEF”;char b =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函数中定义E、 在main函数外定义19. 若有数组名作为函数调用时的实参,则传递给该函数形参的是(A) A、数组的首地址 B、数组的第一个元素的值 C、数组中全部元素的值 D、数组元素的个数20. 下面程序段的输出结果是() int a3=1,2,3,4,5,6,7,8,9,10,11,12,(*p)3; p=a; printf(“%dn”,*(*(p+1)+2); A、3 B、4 C、6 D、721. 不属于C语言程序基本结构的是( )A)顺序结构 B)选择结构 C)函数结构 D)循环结构22. 若有定义及赋值:int a66,*p;p=*a;则下列各式中能表示元素a01列地址的表达式是 。A)&a0+1B)a0+1C)*(p+1) D)p+123. 十进制数123转换成十六进制数是 。 A) 7AH B) 7BH C) 7CH D) 7DH 24. C语言中合法的字符常量是 。A) 058B) abC) xabD) ”0”25. 下列字符中,ASC码值最小的是 。A) A B) a C) 0 D) 空格26. 下面程序输出结果是_main()int k=0; char c=A; do switch( c+ ) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; continue; case E: k=k*10; break; default: k=k/3; k+;while( cG ); printf( k=%dn,k );A)k=3 B)k=4 C)k=2 D)k=027. 设有如下定义:int x=l,y=-1;,则语句:printf(%dn,(x-&+y);的输出结果是( )A)1 B)0 C)-1 D)228. C语言规定,函数返回值的类型是由 。A) return语句中的表达式类型所决定B) 调用函数时的主调函数类型所决定C) 调用函数时系统临时决定D) 在定义该函数时所指定的函数类型所决定29. 下列定义中,不是指针数组定义的是 。A)int *p5;B)float *q4;C)int (*r)6;D)char *w7;30. 以下程序运行结果为_ #define PT 3.5 #define S(x) PT*x*xmain() int a=1, b=2; printf(%4.1fn,S(a+b);A)14.0 B)31.5 C)7.5 D)10.531. 下面程序输出结果是( )main() char a=ABCDEFG, k, *p; fun(a, 0, 2); fun(a, 4, 6); printf(%sn, a);fun(char *s, int p1, int p2) char c; while(p1p2) c=sp1; sp1=sp2; sp2=c; p1+; p2-; A)ABCDEFG B)DEFGABC C)GFEDCBA D)CBADGFE32. 以下程序的输出结果是( )main() int a=1,i; for(i=0;i4;i+) printf(%d,func(a);func(a)int a; int b=0; static int c=1; b+;c+; return(a+b+c);A)4444 B)4455 C)4567 D)567833. 执行下面的程序后, y 的值是_main() int a=2,4,6,8,10; int y=1, x, *p=a+1; for( x=0; x3; x+ ) y+=*(p+x); printf( %dn, y );A)17 B)18 C)19 D)2034. 若使用下述程序段将整数30和浮点数5.5分别赋给变量a和b,那么输入应该是( )int a;float b;scanf(a=%d,b=%f,&a,&b);A) 30 5.0 B) a=30,b=5.5 C) 30,5.5 D) a=30 b=5.535. 设有如下定义:int (*ptr)();则以下叙述中正确的是( )A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数的返回值是指向int型数据的指针36. 设有以下定义:int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*ptr)3=a, *p = a0;则以下能够正确表示数组元素a12的表达式的是( )A)*(*ptr+1)2 B)*(*(p+5)C)(*ptr+1)+2 D)*(*(a+1)+2)37若有以下定义和语句,且0=i10,则对数组元素的错误引用是( ) int a=0,1,2,3,4,5,6,7,8,9,*p,i;p=a;A) *(a+i) B) ap-a C) p+i D) *(&ai)38. 执行下面的程序后,a的值是( )#define SQR(X) X*Xmain() int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf(%dn,a);A)10 B)1 C)9 D)039. 表达式18/4*sqrt(4.0)/8的值的数据类型为( )A)intB)float C)double D)不确定40. 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 ( ) if (ab) if (cd)x=1; else if (ac) if (bd)x=2; else x=3; else x=6; else x=7; A)1 B)2 C)3 D)641. 判断char 型变量ch 是否为大写字母的正确表达式 ( )A) A=ch=A)and (ch = A)&(ch =Z) D) (A=ch)42. 以下程序的输出结果是 ( ) main() int i, 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)12ba56 B)6521 C)6 D)6244. 以下程序运行后的结果是( )。main() char s=; int v4=0,1,1,0,k,i; for (k=0; sk;k+) switch (sk) case1: i=0; case2: i=1; case3: i=2; case4: i=3; vi+; for(k=0;k4;k+) printf(%d ,vk); A)0 1 2 3 B)0 1 1 8 C)5 6 7 8 D)0 2 4 645. 下面程序输出结果是 ( )main()int k=0; char c=A; do switch( c+ ) case A: k+; break; case B: k-; case C: k+=2; break; case D: k=k%2; continue; case E: k=k*10; break; default: k=k/3; k+; while( c=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b048. 要把高级语言编写的源程序转换为目标程序,需要使用 ( )A) 编辑程序 B) 驱动程序 C) 诊断程序 D) 编译程序49英文小写字母d的ASCII码为100(十进制),英文大写字母D的ASCII码为 ( )A)50 B) 66 C) 52 D) 6850. 下面程序输出结果是 ( )void prtv(int *x) printf(%dn,+*x);main() int a=25;prtv(&a);A)23 B)24 C)25 D)2651. 下面程序的输出是( )int aa33 = 2,4,6;main() int i, *p = &aa00; for (i = 0; i 2; i+) if(i = 0) aaii+1 = *p + 1; else +p; printf(%d, *p);A)23 B)26 C)33 D)3652. 该程序的执行结果是( )#include #include main() int fun(char*,int); char *p; p=; fun(p,strlen(p); puts(p);int fun(char *w,int n) char t,*s1,*s2; s1=w; s2=w+n-1; while (s1s2) t=*s1+; *s1=*s2-; *s2=t; A) B) C) D)53. 试写出下列数学表达式的C语言表达式54. 下面程序的输出结果是( )#include main() char *a=1234; fun(a); printf(n); fun(char *s) char t; if (*s) t=*+s; putchar(t); fun(s); 55. 若有定义及赋值:int a66,*p;p=*a;则下列各式中能表示元素a01列地址的表达式是 ( )A)&a0+1B)a0+1C)*(p+1)D)p+156. 如果用八位二进制补码表示带符号的定点整数, 则能表示的十进制数的范围是 ( )A) -127到+127 B) -128到+128 C) -127到+128 D) -128到+12757. 若有定义及赋值:int y,*p,*p1;p=&y;p1=p;*p1=4;则可以输出变量y的地址的语句是 ( )A)printf(un,y);B)printf(un,*p1);C)printf(un,*p);D)printf(un,&y);58. 设有int y,u=0,x=15,下列各项中不能使y值为0的是()A) y=xx;B、y=xu;C、y=x4;D、y=x&u;59二进制数.101B转换成十六进制数是 ( )A) FF.AH B) FF.5H C)7F.AH D)7F.5H 60字符串”123”在计算机内所占用的字节数是 ( ) 个。A) 1 B) 2 C) 3 D) 461. C语言中最基本的数据类型包括 ( )A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型62. C语言中有关dowhile循环的说法,正确的是 ( )A)在if语句内不能再使用do-while语句构成的循环 B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环63在C语言中,不正确的int类型的常数是( )A) 32768 B) 0 C) 037 D) Xaf64. 设有如下定义: int a=2,b=1,c=3,d=4,m=2,n=2; 则执行表达式:(m=ab)&(n=cd)后,n的值为 ( )A) 1 B) 2 C) 3 D) 065设a,b类型正确,语句:printf(%d,(a=2)&(b= -2);的执行结果是( )A) 2 B) 2 C) 1 D) 066设有如下定义:int x=l,y=-1;,则语句:printf(%dn,(x-&+y);的输出结果是( )A)1 B)0 C)-1 D)267. 若有以下定义和语句,且0=i10,则对数组元素的错误引用是( )int a=0,1,2,3,4,5,6,7,8,9,*p,i;p=a;A) *(a+i) B) ap-a C) p+i D) *(&ai)68. 以下程序段的输出结果是 ( )char arr =ABCD;char *ptr;for(ptr=arr;ptr=y=z,应使用C语言表达式( )A)(x=y)&(y=z) B)(x=y)AND(y=z)C)(x=y=z) D)(x=y)&(y=z)73. 以下不能对二维数组a进行正确初始化的语句是( )A) int a23 = 0;B) int a 3 = 1,2,0;C) int a23 = 1,2,3,4,5,6;D) int a 3 = 1,2,3,4,5,6;74. 以下不正确的描述是( )A)break语句不能用于循环语句和switch语句外的任何其它语句B)在switch语句中使用break语句或continue语句的作用相同C)在循环语句中使用continue语句结束本次循环,但不会终止整个循环D)在循环语句中使用break语句是,会跳出循环体,提前结束循环75. 若有以下定义和语句char s12=a book!;printf(%d,strlen(s);则输出结果是( )A)12 B)8 C)7 D)676. 以下程序的输出结果是( )main() int a=2,i; for(i=0;i3;i+) printf(%d,func(a);func(a)int a; int b=0; static int c=3; b+;c+; return(a+b+c);A)777 B)7 7 7 C)789 D)7 8 977. 执行下面的程序后, y 的值是( )main() int a=2,4,6,8,10; int y=1, x, *p=a+1; for( x=0; x3; x+ ) y+=*(p+x); printf( %dn, y );A)17 B)18 C)19 D)2078. 下面程序的输出是( )int aa33 = 2,4,6;main() int i, *p = &aa00; for (i = 0; i 2; i+) if(i = 0) aaii+1 = *p + 1; else +p; printf(%d, *p);A)23 B)26 C)33 D)3679. 设有以下定义:int a43=1,2,3,4,5,6,7,8,9,10,11,12;int (*ptr)3=a, *p = a0;则以下能够正确表示数组元素a12值的表达式的是( )A)*(*ptr+1)2 B)*(*(P+5)C)(*ptr+1)+2 D)*(*(a+1)+2)80. 设有如下的程序段:char str=Hello;char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值为( )A)o B)0 C)不确定的值 D)o的地址81. 假设已定义 char a10 和 char *p=a,下面的赋值语句中,正确的是( )A)a10=Turbo CB)a=Turbo CC)*p=Turbo CD)p=Turbo C82. 下面程序输出结果是( )main() char a=ABCDEFG, k, *p; fun(a, 0, 2); fun(a, 4, 6); printf(%sn, a);fun(char *s, int p1, int p2) char c; while(p1p2) c=sp1; sp1=sp2; sp2=c; p1+; p2-; A)ABCDEFG B)DEFGABC C)GFEDCBA D)CBADGFE83. 下列程序的输出结果是( )main() int a5=2,4,6,8,10,*p,*k; p=a; k=&p; printf(%d ,*(p+); printf(%dn,*k);A)4 4 B)2 2 C)2 4 D)4 684. 如有 struct student int no; char name20; char sex; struct int year; int month; int day; birth;struct student s;对变量s赋值1984年11月11日正确方式是( )A)year=1984; month=11; day=11;B)birth.year=1984; birth.month=11; birth.day=11;C)s.year=1984; s.month=11; s.day=11;D)s.birth.year=1984; s.birth.month=11; s.birth.day=11;85. 以下程序的输出结果是( )main() union char i2; int k; r; r.i0=0; r.i1=2; printf(%d n, r.k);A)2 B)512 C)0 D)不确定86. C语言中,文件由_A)记录组成 B)由数据行组成C)由数据块组成 D)由字符(字节)序列组成87. 要判断char型变量m是否是数字字符,可以使用表达式( )A) 0=m & m=9 B) 0=m & m=9C) 0=m & m=9 D) 0=m & m=988. 以下正确的语句是( )A) int a14 = 1,2,3,4,5;B) float x3 = 1,2,3;C) long b23 = 1,1,2,1,2,3;D) double y 3 = 0;89. 执行下面的程序后,a的值为( )main() int a,b; for(a=1,b=1;a=20) break; if(b%3=1) b+=3;continue; b-=5; A)7 B)8 C)9 D)1090. 下面程序的运行结果是( )main() char ch7=65ab21; int i,s=0; for(i=0;chi=0&chiage93. 若有以下的说明,则输出结果为( )union un int a; char c2; w;w.c0=0x49;w.c1=0x48;printf(%xn,w.a);A)4948 B)4849 C) D)94. C语言中的文件类型只有( )A)索引文件和文本文件两种 B)ASCII文件和二进制文件两种C)文本文件一种 D)二进制文件一种95. 请写出将整数n(0n9)转化为数字字符(ASCII字符)的表达式。96. 写出表达式 (0x1234 & 0xDF) 8 的16进制结果。97. 分别写出下面两式的计算结果(括号内是二进制数):()&() 和 ()&()98. 试计算以下表达式的值( int) ( float )32 / 5 + (int )(6.8) * 2.5 ) * 4)99. 表达式 (115) 的结果为:100. 设有如下定义 int x = 6;执行语句 x+=x=x*x; 后 请写出 x 的值第二部分 读程序,写结果1. 设有数组a的定义:int a=1,2,3,4;语句:a3=-a0?a1+:a2+;执行后,数组a的各元素依次为 。2. 下面的程序段执行后,#define ROUND3(x) (int)(x*1000+0.5)/1000.0printf(“%f”,ROUND3(3.1416);输出的结果是 。3. 设有函数段如下:int efg(int a,int b) if (a%b=0)return b; else return efg(b,a%b); c=efg(48,8);则 c 的值是 。4. 假设m是一个三位数,从左到右用a,b,c表示各位上的数字,现将该三位数上的百位数与十位数交换,则从左到右各位数字是bac的三位数其表达式是 。5. 执行下面的程序后,#include main() char *p1,*p2; p1=How_are_you?; p2=p1+strlen(p1)-1; while(p2=p1) printf(%c,*p2-); for (p2=p1; *p2!=0;p2=p2+2) printf(%c,*p2); printf(n);输出的结果是 。6. 以下程序运行后, struct ks int a; int *b; s4,*p;main() int n=1,i; printf(n); for (i=0;ia,(p+)-a);则结果是 。7. 从键盘上输入123,该程序的输出结果是 。#includemain() int c; while(c=getchar()!=n) switch(c-1) case 0: case 1: putchar(c+4); case 2: putchar(c+3);break; case 3: putchar(c+2); case 4: putchar(c+1);break; printf(n);8. 以下程序运行时,输入10个整型数,输出结果是 。int a,b;void found_value(int array,int n) int *p,*array_end; array_end=array+n; a=b=*array; for (p=array+1;pa) a=*p; else if (*pb) b=*p; return;main() int i,number10; printf( enter 10 integer numbers : n); for(i=0;i10;i+) scanf(%d,&numberi); found_value(number,10); printf(n a=%d, b=%dn,a,b);9. 执行该程序时,输出结果是 。 main() int y=10; do y-; while (-y); printf(%dn,+y);10. 运行以下程序,从键盘上输入china#,则输出结果是 #include main() int v1=0,v2=0; char ch; while (ch=getchar()!=#) switch(ch) case a :case h : default : v1+; case o : v2+; printf(%d,%dn,v1,v2);11. #include void printletter() static int c=57; if (c=48) putchar(c); c-; printletter(); main() printletter();12. main() int a5=1,3,5,7,9; int *num5; int *p,i; for (i=0;i5;i+) numi=&ai; p=num; for (i=0;i5;i+) printf(%3d,*p); p+;13. main() int fun (int *, int );int j = 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机外勤仪表、电气工职业素养考核试卷及答案
- 打击乐器制作工岗位应急处置技术规程
- 石英晶体滤波器制造工协助他人积极性考核试卷及答案
- 2025房产贷款借款合同
- 2026届河南省淮阳县数学九上期末检测模拟试题含解析
- 个人土地承包合同范例
- 山东省无棣县2026届数学八年级第一学期期末监测模拟试题含解析
- 广东省深圳市光明区2026届数学七年级第一学期期末预测试题含解析
- 2025年物联网MQTT协议性能评估试卷
- 兽医专业知识培训课件
- 江苏省宿迁市沭阳县第一次城乡联考2026届九年级上学期9月月考语文试卷(含答案)
- 颅脑外伤创伤课件
- 生活委员课件
- 民事赔偿赔协议书
- 成人术中非计划低体温预防与护理-中华护理学会团体标准
- 2025春江苏开放大学教师发展与职业道德过程性作业二参考答案
- 防蛇安全小常识中班
- WiFi6基础知识培训
- 文学名著红楼梦故事解读
- 非口服药物的吸收(生物药剂学与药物动力学课件)
- DL-T5706-2014火力发电工程施工组织设计导则
评论
0/150
提交评论