您好,欢迎访问三七文档
第1页共13页常见考试题型选择题(13年20题,每题1分,共20分)填空题(13年20分,基本概念、写程序运行结果、完善程序)判断题(13年10题、每题1分,共10分)编程题(13年4题,共40分)其他题型练习题选讲选择题(1)一个C程序的执行是从。A)本程序的main函数开始,本程序的main函数结束B)本程序的第一个函数开始,本程序的最后一个函数结束C)本程序的main函数开始,本程序的最后一个函数结束D)本程序的第一个函数开始,本程序的main函数结束(2)C语言源程序名的后缀是。A).exeB).cC).objD).cpp(3)以下不能用作C语言中的标识符的是。A)_ab12cdB)ab12cd_C)12abcdD)ab12_cd(4)下面关于字符常量的说法错误的是。A)一个字符常量代表ASCII字符集中的一个字符B)单引号中的大写字母和小写字母代表不同的字符常量C)字符常量只能包含一个字符D)字符常量可以用单引号或双引号括起来(5)以下程序运行后的输出结果是。#includestdio.hmain(){inta=1,b=0;第2页共13页printf(“%d,”,b=a+b);printf(“%d\n”,a=2*b);}A)0,0B)1,0C)3,2D)1,2(6)以下关于C语言中初始化的说法中正确的是。A)若整型变量在定义时没有初始化,则此时变量的值为0B)若整型变量在定义时没有初始化,则变量的值是空值C)若整型数组在定义时做了不完全初始化,则无法确定未指定值的数组元素的取值D)变量定义时如果没有初始化,则无法确定该变量的值(7)已知字符A的ASCII码值是65,以下程序。#includestdio.hvoidmain(){chara='A';intb=20;printf(%d,%o,(a=a+1),b);}A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,142D)输出结果为66,24(8)下列说法中错误的是。A)只能在循环体内使用break语句B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C)在while和do-while循环中,continue语句并没有使整个循环终止D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,继续执行下次循环(9)若变量已正确定义并赋值,不符合C语言语法的表达式是。A)a=a+7B)a=7+b+c,8C)ab&&bcD)a=a+7=c+b(10)设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是。A)0至255B)0至65535C)0至32767D)-32768至32767(11)以下程序的输出结果是。main(){intx=10,y=10;printf(“%d%d\n”,x--,--y);}A)109B)99C)910D)1010(12)若以下选项中的变量已正确定义,则正确的赋值语句是。A)x1=26.8%3B)x3=0x12C)1+2=x2D)x4=1+2=3;(13)以下表示数学式子“abc”的逻辑表达式中错误的是。A)abcB)ab&&bcC)!(a=b)&&!(b=c)D)!(a=b||b=c)(14)已知字符A的ASCII码值是65,以下程序。第3页共13页#includestdio.hvoidmain(){chara='A';intb=20;printf(%d,%o,(a=a+1),b);}A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,142D)输出结果为66,24(15)在下面的条件语句中(其中s1和s2代表C语言的语句),只有一个在功能上与其它三个语句不等价,它是【13】。A.if(a)s1;elses2;B.if(a==0)s2;elses1;C.if(a!=0)s1;elses2;D.if(a==0)s1;elses2;(16)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是。A)k%2B)k%2==1C)(k%2)!=0D)!k%2==1(17)已知x=3,y=2,则表达式x*=y+8的值为【4】。A)3B)2C)30D)10(18)读下列程序:#includestdio.hmain(){floata,b,t;scanf(%f,%f,&a,&b);if(ab){t=a;a=b;b=t;}printf(%5.2f,%5.2f,a,b);}运行时从键盘输入3.8和–3.4,则正确的输出结果是。A)–3.40,–3.80B)–3.40,3.80C)–3.4,3.8D)3.80,–3.40(19)运行以下程序,输入6以后的输出结果是。#includestdio.hvoidmain(){intx,y;scanf(%d,&x);y=0;if(x=0){if(x0)y=1;}elsey=-1;printf(%d\n,y);}第4页共13页A)0B)1C)-1D)不确定(20)已知:intx,a,b;下列选项中错误的if语句是。A)if(a=b)x++;B)if(a=b)x++;C)if(x)x++;D)if(a-b)x++;(21)两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是。#includestdio.hvoidmain(){intx;scanf(%d,&x);if(x++5)printf(%d,x);elseprintf(%d\n,x--);}A)7和5B)6和3C)7和4D)6和4(22)以下程序运行后的输出结果是。#includestdio.hvoidmain(){inta;scanf(“%d”,&a);if(a100)printf(%d\n,a100);elseprintf(%d\n,a=100);}A)100B)1C)0D)不确定(23)若变量已正确定义,则以下程序段的输出结果是:。x=0;y=2;z=3;switch(x){case0:switch(y==2){case1:printf(*);break;case2:printf(%);break;}case1:switch(z){case1:printf($);case2:printf(*);break;default:printf(#);}第5页共13页}A)*B)*#C)*%#D)*%$*(24)设有程序段intk=10;while(k=0)k=k-1;则下面描述中正确的是。A)while循环执行10次B)循环时无限循环C)循环体语句一次也不执行D)循环体语句执行一次(25)有以下程序main(){ints,i=0,x=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;};printf(%d\n,s);}程序运行后的输出结果是。A.10B.13C.21D.程序进入死循环(26)运行以下程序,输入ADescriptorCR(CR表示回车),则输出结果是。#includestdio.hmain(){charc;intv1=0,v2=0;do{switch(c=getchar()){case'A':case'e':case'i':case'o':default:v1=v1+1;v2+=1;}}while(c!='\n');第6页共13页printf(v1=%d,v2=%d\n,v1,v2);}A)v1=0,v2=0B)v1=4,v2=4C)v1=11,v2=11D)v1=12,v2=12(27)若a、b均为int型变量且a=100,则对以下for循环语句的正确判断是。for(b=100;a!=b;++a,b++)printf(-----\n);A)循环体只执行一次B)是死循环C)循环体一次也不执行D)以上说法都不对(28)以下程序运行后的输出结果是。#includestdio.hvoidmain(){intn=2,k=0;while(k++&&n++2);printf(“%d%d\n”,k,n);}A)12B)13C)57D)02(29)判断字符串s1是否大于字符串s2,应当使用【10】。A)if(s1s2)B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)0)D)if(strcmp(s1,s2)0)(30)若有以下语句,则正确的描述是。charx[]=12345;chary[]={'1','2','3','4','5'};A)x数组和y数组的长度相同B)x数组长度大于y数组的长度C)x数组长度小于y数组的长度D)x数组等价于y数组(31)下列选项中,能正确定义数组的语句是。A)intnum[0..2008];B)intnum[];C)intN=2008;intnum[N];D)#defineN2008intnum[N];(32)下列关于输出函数的说法中,不正确的。A)putchar()函数只能输出一个字符B)printf()函数在输出整数时,使用%f格式控制符C)scanf()函数既可以输入数值,也可以输入字符串D)strcpy()函数可以实现字符串拷贝(33)若有以下定义intx[10],*pt=x;则对x数组元素的正确引用是。A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+3(34)为了判断两个字符串s1和s2是否相等,应当使用。第7页共13页A)if(s1==s2)B)if(s1=s2)C)if(strcpy(s1,s2))D)if(strcmp(s1,s2)==0)(35)现有如下定义语句int*p,s[20],i;p=s;表示数组元素s[i]的表达式不正确的是。A)*(s+i)B)*(p+i)C)*(s=s+i)D)*(p=p+i)(36)设有定义doublea[10],*s=a;,以下能够代表数组元素a[3]的是。A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(37)以下程序的运行结果是。#includestdio.hstructst{intx,y;}data[2]={1,10,2,20};main(){structst*p=data;printf(%d,,p-y);printf(%d\n,(++p)-x);}A)10,1B)20,1C)10,2D)20,2有以下程序运行后的输出结果是。#includestdio.hvoidfun(char*c,intd){*c=*c+1;d=d+1;printf(%c,%c,,*c,d);}main(){charb='a',a='A';fun(&b,a);printf(%c,%c\n,b,a);}A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(38)有以下程序#includestdio.h#includestring.hstructA{inta;charb[10];doublec;};voidf(structAt);main()第8页共13页{structAa={1001,ZhangDa,1098.0};f(a);printf(%d,%s,%6.1f\n,a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,ChangRong);t.c=1202.0;}程序运行后的输出结果是A。A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.0D)1002,ZhangDa,1202.0(39)以下程序的输出结果是。#includestdio.hvoidfun(intx){printf(%d\n,++x);}voidmain(){fun(12+5);}A)12B)13C)17D)18(40)以下叙述中不正确的是。A)在不同的函数中可以使用相同的名字的变量B)函数中的形
本文标题:C语言常见考试题型
链接地址:https://www.777doc.com/doc-4904751 .html