您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > 上海市计算机二级考试(C语言)复习资料题目
上海理工大学上海市计算机二级考试(C语言)复习资料题目C语言是一种面向过程的程序设计语言,函数、指针、地址和递归概念是它的难点。本复习资料以教学大纲为依据,提供各类题型和练习,重在“基本概念”、“常用算法”、“阅读分析程序”、“编程技能”等诸方面的强化训练,按照上海市计算机二级考试(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=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、a[p-a]C、p+iD、*(&a[i])4.下面能正确将字符串Boy进行完整赋值操作的语句是()A、chars[3]={'B','o','y'};B、chars[]=Boy;C、chars[3]={Boy};D、chars[3];s[0]='B';s[1]='o';s[2]='y';5.以下程序段的输出结果是()chararr[]=ABCD;char*ptr;for(ptr=arr;ptrarr+4;ptr++)printf(%s\n,ptr);A、ABCDB、AC、DD、ABCDBCDCDD6.C语言的auto型变量是()A、存储在动态存储区中。B、存储在静态存储区中。C、存储在计算机CPU的寄存器中。D、存储在外存储器中。7.测试文件是否结束函数的函数名是()A、feofB、EOFC、eofD、FEOF8.下面程序段的输出结果是()inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a;printf(“%d\n”,*(*(p)+2));A、1B、5C、3D、79.C语言规定:在一个源程序中,main函数的位置是()A、必须在最开始B、必须在系统调用的函数的后面C、可以任意D、必须在最后10.一个C程序的执行是从()A、本程序的main函数开始,到main函数结束B、本程序的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束11.下面的四个选项中,均是不合法的用户标识符的选项是()A、AB、floatC、b-aD、_123P_0la0gototempdo_AintINT12.下面四个选项中,均是合法转义字符的选项是()A、’\’’B、’\’C、’\018’D、’\\0’‘\\’‘\017’‘\f’‘\101’‘\n’‘\”’‘xab’‘x1f’13.sizeof(float)是()A、一个双精度型的表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式14.下述循环的循环次数是()intk=2;while(k=0)printf(%d,k);k--;printf(\n);A、无限次B、0次C、1次D、2次15.若有以下定义和语句,且0=i10,则对数组元素的错误引用是()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])16.若二维数组a有m列,则在a[i][j]前的元素个数为()A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+117.对两个数组a和b进行如下初始化chara[]=”ABCDEF”;charb[]={‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是()A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长18.C语言中有关全局变量的说法,正确的是()A、在使用到它的所有文件中均需定义B、在函数体外定义一次C、在main函数中定义E、在main函数外定义19.若有数组名作为函数调用时的实参,则传递给该函数形参的是()A、数组的首地址B、数组的第一个元素的值C、数组中全部元素的值D、数组元素的个数20.下面程序段的输出结果是()inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A、3B、4C、6D、721.不属于C语言程序基本结构的是()A)顺序结构B)选择结构C)函数结构D)循环结构22.若有定义及赋值:inta[6][6],*p;p=*a;则下列各式中能表示元素a[0][1]列地址的表达式是。A)&a[0]+1B)a[0]+1C)*(p+1)D)p+123.十进制数123转换成十六进制数是。A)7AHB)7BHC)7CHD)7DH24.C语言中合法的字符常量是。A)'\058'B)'ab'C)'\xab'D)”\0”25.下列字符中,ASCⅡ码值最小的是。A)AB)aC)0D)空格26.下面程序输出结果是__________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)k=3B)k=4C)k=2D)k=027.设有如下定义:intx=l,y=-1;,则语句:printf(%d\n,(x--&++y));的输出结果是()A)1B)0C)-1D)228.C语言规定,函数返回值的类型是由。A)return语句中的表达式类型所决定B)调用函数时的主调函数类型所决定C)调用函数时系统临时决定D)在定义该函数时所指定的函数类型所决定29.下列定义中,不是指针数组定义的是。A)int*p[5];B)float*q[4];C)int(*r)[6];D)char*w[7];30.以下程序运行结果为__________#definePT3.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf(%4.1f\n,S(a+b));}A)14.0B)31.5C)7.5D)10.531.下面程序输出结果是()main(){chara[]=ABCDEFG,k,*p;fun(a,0,2);fun(a,4,6);printf(%s\n,a);}fun(char*s,intp1,intp2){charc;while(p1p2){c=s[p1];s[p1]=s[p2];s[p2]=c;p1++;p2--;}}A)ABCDEFGB)DEFGABCC)GFEDCBAD)CBADGFE32.以下程序的输出结果是()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的值是__________main(){inta[]={2,4,6,8,10};inty=1,x,*p=a+1;for(x=0;x3;x++)y+=*(p+x);printf(%d\n,y);}A)17B)18C)19D)2034.若使用下述程序段将整数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.535.设有如下定义: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=i10,则对数组元素的错误引用是()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*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(%d\n,a);}A)10B)1C)9D)039.表达式18/4*sqrt(4.0)/8的值的数据类型为()A)intB)floatC)doubleD)不确定40.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()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是否为大写字母的正确表达式()A)’A’=ch=’Z’B)(ch=’A’)and(ch=’z’)C)(ch=‘A’)&&(ch=’Z’)D)(‘A’=ch)||(‘Z’=ch)42.以下程序的输出结果是()main(){inti,k,a[10],p[3];k=5;for(i=0;i10;i++)a[i]=i;for(i=0;i3;i++)p[i]=a[i*(i+1)];for(i=0;i3;i++)k+=p[i]*2;printf(%d\n,k);}A)20B)21C)22D)2343.下面程序的运行结果是()main(){charch[7]={65ab21};inti,s=0;for(i=0;ch[i]='0'&&ch[i]='9';i+=2)s=10*s+ch[i]-'0';printf(%d\n,s);}A)12ba56B)6521C)6D)6244.以下程序运行后的结果是()。main(){chars[]=12345678;intv[4]={0,1,1,0},k,i;for(k=0;s[k];k++){switch(s[k]){case'1':i=0;case'2':i=1;case'3':i=2;case'4':i=3;}v[i]++;}for(k=0;k4;k++)printf(%d,v[k]);}A)0123B)0118C)5678D)024645.下面程序输出结果是()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)k=3B)k=4C)k=2D)k=046.二进制数1110111B转换成十六进制数是()A)77HB)37HC)73HD)E7H47.能正确表示a和b同时为正或同时为负的逻辑表达式是()A)(a=0‖b=0)&&(a0‖b
本文标题:上海市计算机二级考试(C语言)复习资料题目
链接地址:https://www.777doc.com/doc-5591856 .html