您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > C语言复习题 带答案
一、选择题1、以下叙述中正确的是(A)A、构成C程序的基本单位是函数B、可以在一个函数中定义另一个函数C、main()函数必须放在其它函数之前D、所有被调用的函数一定要在调用之前进行定义2、以下选项中合法的实型常数是(D)A、5E2.0B、E-3C、.2ED、1.3E13、以下选项中合法的用户标识符是(B)A、longB、_2TestC、3DmaxD、A.dat4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’101’是(A)A、字符AB、字符aC、字符eD、非法的常量5、以下非法的赋值语句是(C)A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j0;6、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)A、6.500000B、6C、5.500000D、6.0000007、已知i、j、k为int型变量,若从键盘输入:1,2,3回车,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)A、scanf(“%2d%2d%2d”,&i,&j,&k);B、scanf(“%d%d%d”,&i,&j,&k);C、scanf(“%d,%d,%d”,&i,&j,&k);D、scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);8、与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是(C)A、3*x^n/(2*x-1)B、3*x**n/(2*x-1)C、3*pow(x,n)*(1/(2*x-1))D、3*pow(n,x)/(2*x-1)9、设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是(B)A、printf(“x=%d“,x);B、printf(“x=%ld“,x);C、printf(“x=%8dL“,x);D、printf(“x=%LD“,x);10、若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf(”%d,%d”,m,i);}执行后的输出结果是(C)A、8,6B、8,3C、6,4D、7,411、已有定义:intx=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是(D)A、6B、0C、2D、112、有一函数y=以下程序段中不能根据x的值正确计算出y的值的是(C)A、if(x0)y=1;elseif(x==0)y=0;elsey=-1;B、y=0;if(x0)y=1;elseif(x0)y=-1;C、y=0;if(x=0)if(x0)y=1;elsey=-1;D、if(x=0)if(x0)y=1;elsey=0;elsey=-1;13、以下选项中,与k=n++完全等价的表达式是(A)A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+114、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n=10;n++){for(k=1;k=4,k++){scanf(“%f”,&score);sum+=score;}ave=sum/4.0;printf(“NO%d:%f“,n,ave);}}上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确,这条语句是(A)A、sum=0.0;B、sum+=score;C、ave=sum/4.0;D、printf(“NO%d:%f“,n,ave);15、有以下程序段intn=0,p;do{scanf(“%d”,&p);n++}while(p!=12345&&n3);此处do-while循环的结束条件是(D)A、p的值不等于12345并且n的值小于3B、p的值等于12345并且n的值大于等于3C、p的值不等于12345或者n的值小于3D、p的值等于12345或者n的值大于等于316、有以下程序(A)main(){inta=15,b=21,m=0;switch(a%3){case0;m++;break;case1;m++;switch(b%2){default:m++;case0;m++;break;}}printf(“%d”,m);}A、1B、2C、3D、417、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是(B)A、voidB、intC、floatD、double18、有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i3;i++)j+=f(i);printf(’%d”,j);}程序运行后的输出结果是(B)A、4B、3C、2D、119、C语言规定,在一个源程序中,main()函数的位置(C)A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后20、下列数据中,不合法的C语言实型数据是(C)A、0.123B、123e3C、2.1e3.5D、789.021、下面4个选项中,均是不合法的用户标识符的选项是(C)A、AP_0doB、floata0_AC、b-agotointD、_123tempint22、设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f值的数据类型为(C)A、intB、floatC、doubleD、不确定23、能正确表示逻辑关系:”a10或a0”的C语言表达式是(D)A、a=10ora=0B、a=10|a=0C、D、a=10||a=024、设以下变量均为int类型,表达式的值不为7的是(C)A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)25、若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是(D)A、a的值是字符CB、a的值是浮点型C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上126、有如下程序main(){intx=23;do{printf(“%d”x--);}while(!x);}该程序的执行结果是(B)A、321B、23C、不输出任何内容D、陷入死循环27、若变量c为char类型,能正确判断出c为小写字母的表达式是(D)A、’a’=c=’z’B、(c=’a’)||(c=’z’)C、(’a’=c)and(’z’=c)D、(c=’a’)&&(c=’z’)28、以下不正确的定义语句是(B)A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5.3]={0,1,3,5,7,9};C、charc1[]={‘1’,’2’,’3’,’4’,’5’};D、charc2[]={‘\x10’,’\xa’,’\x8’};29、有以下程序fun(intx,inty,intz){z=x*y;}main(){inta=4,b=2,c=6;fun(a,b,c);printf(“%d”,c);}程序运行后的输出结果是(B)A、16B、6C、8D、1230、下列函数的运行结果是(A)main(){inti=2,p;intj,k;j=i;k=++i;p=f(j,k);printf(”%d”,p);}intf(inta,intb){intc;if(ab)c=1;elseif(a==b)c=0;elsec=-1;returnc;}A、-1B、1C、2D、编译出错,无法运行31、下面可以作为C语言程序中标识符的是(A)A、_total3B、num(10)C、2DateD、long32、已知字符‘A’的ASCII值为65,则‘\103’表示的字符是(C)A、字符AB、字符BC、字符CD、非法常量33、每个C语言程序都必须有一个(B)函数,C程序总是从该函数开始执行。A、include()B、main()C、scanf()D、printf()34、下面说法中,正确的是(D)A、C语言是机器语言B、C语言程序不用编译就可以直接运行C、C语言程序总是从第一个函数开始执行D、C语言程序可以由一个或多个函数构成35、设i,j,k为int型变量,若从键盘输入1#2#3回车,下面(A)输入语句可以使i的值为1,j的值为2,k的值为3。A、scanf(“%d#%d#%d”,&i,&j,&k)B、scanf(“%d,%d,%d”,&i,&j,&k)C、scanf(“%d%d%d”,&i,&j,&k)D、scanf(“%d%d%d”,&i,&j,&k)36、下面能够正确表示字符串常量的表达式是(B)。A、’test’B、”test”C、testD、’test\0’37、在C语言中,运用对象必须是整型数的运算符是(A)A、%B、\C、%和\D、**38、有定义语句:intb,charc[10];则正确的输入语句是(B)A、scanf(“%d%s”,&b,&c);B、scanf(“%d%s”,&b,c);C、scanf(“%d%s”,b,c);D、scanf(“%d%s”,b,&c);39、假设所有变量均为int型,则执行语句a=(b=5,c=b++);后,a、b、c的值分别为(C)A、6,6,5B、5,5,6C、5,6,5D、5,6,640、设x,y,z为int型变量,执行下面的语句后,z的值为(D)for(x=0,y=10;x=y;x++,y—)z=x+y;A、7B、8C、9D、1041、设x、y均为整型变量,且x=y=5,则下面语句的输出结果是(B)printf(”%d,%d\n”,x++,++y);A、5,5B、5,6C、6,5D、6,642、下面关于字符串的叙述中,正确的是(B)A、C语言中有字符串变量B、空串一定比空格打头的字符串小C、可以用关系运算符对字符串的大小进行比较D、两个字符串中的字符个数相同时才能进行字符串大小的比较43、下列数据中,(B)是合法的实型数据。A、0.123eB、123e3C、1e3.5D、.e144、设以下变量均为int类型,表达式的值不为3的是(D)A、a=b=2,a+b,b+1B、a=b=2,b=a+b,a+1C、b=2,b+1,a=b,a+1D、a=2,a=a+1,b=1,a+b45、下列说法中,正确的是(C)inti,x;for(i=0,x=0;i=5&&x!=4;i++);A、循环体一次也不执行B、是无限循环C、最多执行6次D、最多执行5次46、已知字符‘a’的ASCII码值是97,字符变量c1的值是‘a’,c2的值是‘e’。执行语句printf(”%d,%d”,c1,c2—2);后,输出的结果是(D)A、a,cB、a,101C、97,101D、97,9947、下面程序的运行结果是是(D)#includestdio.hvoidmain(){inti;for(i=0;i=6;i++){{if(i%2)printf(”%d”,i);printf(”#”);}}A、0#2#4#6B、1#3#5#C、0##2##4##6#D、#1##3##5##48、结构化程序所规定的三种最基本的控制结构是(C)A、输入、处理、输出B、树形、网形、环形C、顺序、选择、循环D、主程序、子程序、函数49、把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项的含义不同的是(A)A、k%2B、k%2==1C、k%2!=0D、!k%2==150、设有intx=11,则表达式(x++*1/3)的值是(D)A、3B、4C、11D、12二、程序填空(20分每小题5分)1、小写字母转大写字母voidmain(){charch1,ch2;ch1=’a’;ch2=’b’;ch1=__ch1-32__;ch2=__ch2-32__;printf(“%c,%c”,ch1,ch2);}2、输出两个数中较大的数
本文标题:C语言复习题 带答案
链接地址:https://www.777doc.com/doc-7028812 .html