上海市计算机二级考试C语言复习资料题目.docx
- 文档编号:6365506
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:70
- 大小:233.68KB
上海市计算机二级考试C语言复习资料题目.docx
《上海市计算机二级考试C语言复习资料题目.docx》由会员分享,可在线阅读,更多相关《上海市计算机二级考试C语言复习资料题目.docx(70页珍藏版)》请在冰豆网上搜索。
上海市计算机二级考试C语言复习资料题目
上海理工大学
上海市计算机二级考试(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.C
21.C
22.B
23.B
24.C
25.D
26.B
27.B
28.D
29.C
30.C
31.D
32.C
33.C
34.B
35.C
36.D
37.C
38.B
39.C
40.B
41.C
42.B
43.C
44.B
45.B
46.A
47.D
48.D
49.D
50.D
51.A52.C
第一部份:
基础知识
1.下述循环的循环次数是(B)因为没有进入循环
intk=2;while(k=0)printf("%d",k);
k--;printf("\n");
A、无限次B、0次C、1次D、2次
2.在下列选项中,没有构成死循环的程序段是(C)
A、inti=100;B、for(;;)
while
(1){i=i%100+1;
if(i>100)break;
}
C、intk=1000;D、ints=36;
do{++k;}while(k>=10000);while(s);--s;
3.若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是(C)
inta[]={0,1,2,3,4,5,6,7,8,9},*p,i;
D、*(&a[i])
有四个字符包括结束符
P=a;
A、*(a+i)B、a[p-a]C、p+i
4.下面能正确将字符串"Boy"进行完整赋值操作的语句是(B)
A、chars[3]={'B','o','y'};
s[0]='B';s[1]='o';s[2]='y';
5.以下程序段的输出结果是(D)
chararr[]="ABCD";char*ptr;
for(ptr=arr;ptr A、ABCDB、AC、D 6.C语言的auto型变量是(A) A、存储在动态存储区中。 B、存储在静态存储区中。 C、存储在计算机CPU的寄存器中。 D、存储在外存储器中。 7.测试文件是否结束函数的函数名是(A) A、feofB、EOFC、eof 8.下面程序段的输出结果是(C) inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4]; p=a; printf(“r%d,*(*(p)+2));*3=3 A、1B、5C、3 9. D、ABCD BCD CD D D、FEOF C语言规定: 在一个源程序中,main函数的位置是(C) A、必须在最开始B、必须在系统调用的函数的后面 D、必须在最后 C、可以任意 10.一个C程序的执行是从(A) A、本程序的main函数开始,到main函数结束 B、本程序的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 11.下面的四个选项中,均是不合法的用户标识符的选项是( A、AB、float P_0la0 do_A 12.下面四个选项中,均是合法转义字符的选项是( 017' n' 13.sizeof(float)是(B) A、一个双精度型的表达式 C、一种函数调用 14.下述循环的循环次数是(B) intk=2; while(k=0)printf("%d",k);k--;printf("\n"); A、无限次 求长度 B、 15.若有以下定义和语句,且 inta[]={0,1,2,3,4, b-a D、_123 goto temp int INT A) '018' D、'0' ‘, 101' 'xab' 'x1f' C) C、 C、 B、一个整型表达式 D、一个不合法的表达式 C、1次 0次 0<=i<10,则对数组元素的错误引用是() 5,6,7,8,9},*p,i; P=a; A、*(a+i) 16.若二维数组 A、j*m+i 17.对两个数组 chara[]= charb[]={ B、a[p-a]C、p+i a有m列,则在a[i][j]前的元素个数为(B) C、i*m+j-1 B、i*m+j a和b进行如下初始化 ”ABCDEF; 'A','B','C' E','F'}; *(&a[i]) i*m+j+1 则以下叙述正确的是(D)A、a与b数组完全相同C、a和b中都存放字符串 a与b长度相同 a数组比b数组长度长 18.C语言中有关全局变量的说法,正确的是(B) A、在使用到它的所有文件中均需定义 B、在函数体外定义一次 C、在main函数中定义 E、在main函数外定义 19.若有数组名作为函数调用时的实参,则传递给该函数形参的是( A、数组的首地址 C、数组中全部元素的值 20.下面程序段的输出结果是() inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3]; P=a;printf("n%d,*(*(pH)+2)); B、4 A) 数组的第一个元素的值数组元素的个数 21. 22. C、 不属于C语言程序基本结构的是()A)顺序结构B)选择结构 若有定义及赋值: inta[6][6],*p;p=*a; 则下列各式中能表示兀素a[0][1]列地址的表达式是 C)函数结构 D)循环结构 A)&a[0]+1 B)a[0]+1 C)*(p+1) D) p+1 23.十进制数123转换成十六进制数是 o A)7AH B)7BH C)7CH D)7DH 24.C语言中合法的字符常量是 o A)'\058' B)'ab' C)'\xab' D) ”0” 25.下列字符中 ascn码值最小的是 o A)A B)a C)0 D) 空格 o 26.下面程序输出结果是 main() {intk=0;charc='A: do {switch(c++) {case'A': k++;break;case'B': k--; caseC: k+=2;break; D)k=0 -&++y));的输出结果是() D)2 D)char*w[7]; D)10.5 case'D': k=k%2;continue; case'E': k=k*10;break; default: k=k/3; } k++; }while(c<'G'); printf("k=%d\n",k); } A)k=3B)k=4C)k=2 27.设有如下定义: intx=l,y=-1;,则语句: printf("%d\n",(x A)1B)0C)-1 28.C语言规定,函数返回值的类型是由。 A)return语句中的表达式类型所决定 B)调用函数时的主调函数类型所决定 C)调用函数时系统临时决定 D)在定义该函数时所指定的函数类型所决定 29.下列定义中,不是指针数组定义的是。 A)int*p[5];B)float*q[4];C)int(*r)[6]; 30.以下程序运行结果为 #definePT3.5 #defineS(x)PT*x*x main() {inta=1,b=2; printf("%4.1f\n",S(a+b)); } A)14.0B)31.5C)7.5 31.下面程序输出结果是() main() {chara[]="ABCDEFG",k,*p; fun(a,0,2);fun(a,4,6); printf("%s\n",a); } fun(char*s,intp1,intp2) {charc; while(p1 {c=s[p1];s[p1]=s[p2]; s[p2]=c;p1++;p2--; } } A)ABCDEFGB)DEFGABCC)GFEDCBAD)CBADGFE 32.以下程序的输出结果是() main() {inta=1,i; for(i=0;i<4;i++)printf("%d",func(a)); } func(a) inta; {intb=0;staticintc=1; b++;c++;return(a+b+c); } A)4444B)4455C)4567D)5678 33.执行下面的程序后,y的值是 main() {inta[]={2,4,6,8,10}; inty=1,x,*p=a+1; for(x=0;x<3;x++)y+=*(p+x); printf("%d\n",y); } A)17B)18C)19D)20 34.若使用下述程序段将整数30和浮点数5.5分别赋给变量a和b,那么输入应该是()inta; floatb; scanf("a=%d,b=%f",&a,&b); A)305.0B)a=30,b=5.5C)30,5.5D)a=30b=5.5 35.设有如下定义: int(*ptr)(); 则以下叙述中正确的是() A)ptr是指向一维数组的指针变量 B)ptr是指向int型数据的指针变量 C)ptr是指向函数的指针,该函数返回一个int型数据 D)ptr是一个函数名,该函数的返回值是指向int型数据的指针 36.设有以下定义: inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*ptr)[3]=a,*p=a[0]; 则以下能够正确表示数组元素a[1][2]的表达式的是() A)*(*ptr+1)[2]B)*(*(p+5)) C)(*ptr+1)+2D)*(*(a+1)+2) 37.若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是() inta[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a; A)*(a+i)B)a[p-a]C)p+iD)*(&a[i]) 38.执行下面的程序后,a的值是()#defineSQR(X)X*X main() {inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a); } A)10B)1C)9D)0 39.表达式18/4*sqrt(4.0)/8的值的数据类型为() A)intB)float C)doubleD)不确定 40.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是() if(a if(c else if(a if(b elsex=3; elsex=6; elsex=7; A)1B)2C)3D)6 41.判断char型变量ch是否为大写字母的正确表达式() A)'A'<=ch<='Z'B)(ch>='A')and(ch<='z') C)(ch>=‘A')&&(ch<='Z')D)(‘A'<=c||(h‘)Z'>=ch) 42.以下程序的输出结果是() main() {inti,k,a[10],p[3];k=5; for(i=0;i<10;i++)a[i]=i; for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); D)23 A)20B)21C)22 43.下面程序的运行结果是() main() {charch[7]={"65ab21"}; inti,s=0; main() main() {intk=0;charc='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<'G');printf("k=%d\n",k); } A)(a>=0IIb>=0)&&(a<0IIb<0)B)(a>=0&&b>=0)&&(a<0&&b<0) C)(a+b>0)&&(a+b<=0)D)a*b>0 48.要把高级语言编写的源程序转换为目标程序,需要使用() D)编译程序 D的ASCII码为() D)68 A)编辑程序B)驱动程序C)诊断程序 49.英文小写字母d的ASCII码为100(十进制),英文大写字母 A)50B)66C)52 50.下面程序输出结果是()voidprtv(int*x) {printf("%d\n",++*x); } main() {inta=25;prtv(&a); } A)23B)24 51.下面程序的输出是() intaa[3][3]={{2},{4},{6}}; main() {inti,*p=&aa[O][O]; for(i=0;i<2;i++) {if(i==0)aa[i][i+1]=*p+1; else ++p; printf("%d",*p);} } A)23B)26 52.该程序的执行结果是() #include #include main() {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(s1 {t=*s1++; *s1=*s2--; *s2=t; } } A)1234567B)7654321 53.试写出下列数学表达式的C语言表达式 C)25 C)33 C)1711717 D)26 D)36 D)7177171 、xJy 2(xy) 54.下面程序的输出结果是() #include main() {char*a="1234";fun(a);printf("\n");} fun(char*s) {chart; if(*s){t=*++s;putchar(t);fun(s);} } 55.若有定义及赋值: inta[6][6],*p;p=*a;则下列各式中能表示元素a[0][1]列地址的表达式是() A)&a[0]+1B)a[0]+1C)*(p+1)D)p+1 56.如果用八位二进制补码表示带符号的定点整数,则能表示的十进制数的范围是() A)-127到+127B)-128到+128 C)-127到+128 D)-128到+127 57.若有定义及赋值: inty,*p,*p1; p=&y;p1=p;*p1=4; 则可以输出变量y的地址的语句是() A)printf("%u\n",y); B)printf("%u\n", *p1); C)printf("%u\n",*p); D)printf("%u\n", &y); 58.设有inty,u=0,x=15,下列各项中不能使 y值为0的是() A)y=xAx;B、y=x1u; C、y=x>>4; D、y=x&u; 59.二进制数1111111.101B转换成十六进制数是() A)FF.AHB)FF.5H C)7F.AH D)7F.5H 60.字符串”123在”计算机内所占用的字节数是 ()个。 A)1B)2 C)3 D)4 61.C语言中最基本的数据类型包括() A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)整型、实型、逻辑型 、字符型 62.C语言中有关do—while循环的说法,正确的是() A)在if语句内不能再使用do-while语句构成的循环 B)do-while语句构成的循环必须用break语句才能退出 C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环 63.在C语言中,不正确的int类型的常数是() A)32768B)0C)037D)Xaf 64.设有如下定义: inta=2,b=1,c=3,d=4,m=2,n=2; 则执行表达式: (m=a>b)&&(n=c>d)后,n的值为() A)1B)2C)3D)0 65.设a,b类型正确,语句: printf("%d",(a=2)&&(b=-2));的执行结果是() A)2B)—C)1D)0 66.设有如下定义: intx=l,y=-1;,则语句: printf("%d\n",(x--&++y));的输出结果是() A)1B)0C)-1D)2 67.若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是() inta[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a; 输入数据分隔符的是() 72.为表示关系x>=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)inta[2][3]={0}; B)inta[][3]={{1,2},{0}}; C)inta[2][3]={{1,2},{3,4},{5,6}}; D)inta[][3]={1,2,3,4,5,6}; 74.以下不正确的描述是() A)break语句不能用于循环语句和switch语句外的任何其它语句 B)在switch语句中使用break语句或continue语句的作用相同 C)在循环语句中使用continue语句结束本次循环,但不会终止整个循环 D)在循环语句中使用break语句是,会跳出循环体,提前结束循环 75.若有以下定义和语句chars[12]="abook! "; printf("%d",strlen(s)); 则输出结果是() A)12B)8C)7D)6 76.以下程序的输出结果是() main() {inta=2,i; for(i=0;i<3;i++)printf("%d",func(a)); } func(a) inta; {intb=0;staticintc=3; b++;c++;return(a+b+c); } A)777B)777C)789D)789 77.执行下面的程序后,y的值是()main() {inta[]={2,4,6,8,10}; inty=1,x,*p=a+1; for(x=0;x<3;x++)y+=*(p+x); printf("%d\n",y); } A)17B)18C)19D)20 78.下面程序的输出是()intaa[3][3]={{2},{4},{6}}; main() {inti,*p=&aa[0][0]; for(i=0;i<2;i++) {if(i==0)aa[i][i+1]=*p+1; else ++p; printf("%d",*p);} } A)23B)26C)33D)36 79.设有以下定义: inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*ptr)[3]=a,*p=a[0]; 则以下能够正确表示数组元素a[1][2]值的表达式的是()A)*(*ptr+1)[2]B)*(*(P+5)) C)(*ptr+1)+2D)*(*(a+1)+2) 80.设有如下的程序段: charstr[]="Hello"; char*ptr;ptr=str; 执行完上面的程序段后,*(ptr+5) 的值为() A)'o'B)'\0'C) 不确定的值D)'o'的地址 81.假设已定义chara[10] 和char*p=a,下面的赋值语句中,正确的是() A)a[10]="TurboC" B)a="TurboC" C)*p="TurboC" D)p="TurboC" 82.下面程序输出结果是()main()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海市 计算机 二级 考试 语言 复习资料 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)