一、单项选择题(50分,每题2分)1.不合法的字符常量是()。A)‘\t’B)“A”C)‘a’D)’\x32’2.假定x和y为double型,则表达式x=2,y=x+3/2的值是()。A)3.500000B)3C)2.000000D)3.0000003.putchar()函数可以向终端输出一个()。A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值4.在C语言中,要求参加运算的数必须时整数的运算符是()。A)/B)*C)%D)=5.执行下列程序片段时输出结果是()。intx=13,y=5;printf(“%d”,x%=(y/=2));A)1B)2C)3D)06.已知i,j,k为int型变量,若从键盘输入:1,2,3回车,使I的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是()。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);7.C语言的程序一行写不下时,可以()。A)用逗号换行B)用分号换行C)在任意一空格处换行D)用回车符换行8.putchar()函数可以向终端输出一个()。A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值9.执行下列程序片段时输出结果是()。intx=13,y=5;printf(“%d”,x%=(y/=2));A)3B)2C)1D)010.逻辑运算符两侧运算对象的数据类型()。A)可以是任何类型的数据B)只能是0或非0正数C)只能是整型或字符型数据D)只能是0或111.C语言对嵌套if语句的规定是:else总是与()。A)其之前最近的if配对B)其之前最近的且尚未配对的if配对C)缩进位置相同的if配对D)第一个if配对12.设:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&&(n=cd)后n的值为()。A)1B)2C)3D)413.以下程序片段()。main(){intx=0,y=0,z=0;if(x=y+z)printf(“***”);elseprintf(“###”);}A)输出:###B)输出:***C)可以编译,但不能通过连接,所以不能运行D)有语法错误,不能通过编译14.以下程序输出结果是()。main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(“a=%d,b=%d”,a,b);}A)a=1,b=0B)a=2,b=1C)a=1,b=1D)a=2,b=215.下面程序段intk=2;while(k=0){printf(“%d”,k);k--;}则下面描述中正确的是()。A)while循环执行10次B)循环是无限循环C)循环题语句一次也不执行D)循环体语句执行一次16.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择()填空。main(){intm=0,n=0;charc;while(()!=’\n’){if(c=’A’&&c=’Z’)m++;if(c=’a’&&c=’z’)n++;}}A)c=getchar()B)getchar()C)c==getchar()D)scanf(“%c”,&c)17.若有定义:inta[10],则对数组a元素的正确引用是()A)a[10]B)a[3.5]C)a(5)D)a[0]18.定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则语句for(i=0;i3;i++)printf(%d,x[i][2-i]);的输出结果是()。A)159B)147C)357D)36919.不能把字符串:Hello!赋给数组b的语句是()。A)charb[10]={'H','e','l','l','o','!'};B)charb[10];b=Hello!;C)charb[10];strcpy(b,Hello!);D)charb[10]=Hello!;20.以下说法中正确的是()。A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分21.若调用一个函数,且此函数中没有return语句,则正确的说法是()。A)该函数没有返回值B)该函数返回若干个系统默认值C)能返回一个用户所希望的函数值D)返回一个不确定的值22.以下程序的输出结果是()。charstr[15]=”hello!”;printf(“%d\n”,strlen(str));A)15B)14C)7D)623.在函数中默认存储类型说明符的变量应该是()存储类型。A.内部静态B.外部C.自动D.寄存器24.C语言规定,函数返回值的类型是由()决定的。A)return语句中的表达式类型B)调用该函数时的主调函数类型C)在定义函数时所指定的函数类型D)调用该函数时由系统临时25.以下正确的描述是()。A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套二、判断题(10分,每题1分)1.main函数必须写在一个C程序的最前面。()2.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。()3.C语言不允许混合类型数据间进行运算。()4.逻辑运算符&&||!的运算顺序是!优先于&&优先于||()5.多个case可以执行相同的程序段。()6.continue语句只能用于三个循环语句中。()7.在while循环中允许使用嵌套循环,但只能是嵌套while循环。()8.在定义数组时,有时可以将该数组的维数省略。()9.数组名代表数组的首地址。()10.在函数的定义和调用过程中,形式参数和实在参数数目可以不一致。()三、填空题(20分,每题2分)1.C语言中基本的数据类型有:整型、__________、__________。2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为_______________。3.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:__________。4.设inta;floatf;doublei;则表达式10+’a’+i*f值的数据类型是___________。5.设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4为___________。6.有intx=3,y=-4,z=5;则表达式(x&&y)==(x||z)的值为____________。7.以下程序输出x,y,z三个数中的最小值,请填空使程序完整。main(){intx=4,y=5,z=8;intu,v;u=xv=uprintf(“%d”,v);}8.C语言三个循环语句分别while语句、__________语句和___________语句。9.若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为_______,a[2][1]得到的值为_________。10.C语言变量按其作用域分为全局变量和局部变量。按其生存期分为________存储和_________存储。四、程序设计(20分每题10分)1、输入一行字符以’\n’作为输入结束符,分别统计出其中英文字母,空格,数字和其他字符的个数。2、求一个3*3矩阵对角线元素之和。C语言第一套试卷参考答案一、单项选择题(25×2分=50分)题号12345678910答案BDDCACDDCA题号11121314151617181920答案BBABCADCBC题号2122232425答案DDCCB二、判断题(10×1分=10分)题号12345678910答案FTFTTTFTTF三、填空题(10×2分=20分)1.(1)实型(2)字符型2.字母或下划线3.#incudestdio.h(或#incude“stdio.h”)4.double(双精度型)5.2.56.17.(1)x:y(2)u:z8.(1)do-while语句(2)for语句9.(1)0(2)610.(1)动态(2)静态四、程序设计(2×10分=20分)1.#includestdio.hmain(){charc;intletters=0,space=0,digit=0,others=0;printf(pleaseinputsomecharacters\n);while((c=getchar())!='\n'){if(c='a'&&c='z'||c='A'&&c='Z')letters++;elseif(c=='')space++;elseif(c='0'&&c='9')digit++;elseothers++;}printf(allinall:char=%dspace=%ddigit=%dothers=%d\n,letters,space,digit,others);}2.main(){floata[3][3],sum=0;inti,j;printf(pleaseinputrectangleelement:\n);for(i=0;i3;i++)for(j=0;j3;j++)scanf(%f,&a[i][j]);for(i=0;i3;i++)sum=sum+a[i][i];printf(duijiaoxianheis%6.2f,sum);}一、填空题(每空2分,共20分)。1、表达式a=3*5,a*4的值是__________。2、C语言本身不提供输入输出语句,输入和输出操作是由_______________来实现的。3、设a=12,a定义为整型变量,表达式a*=2+3的值为__________。4、程序main(){floatx;x=3.6;printf(“i=%d”,(int)x);}的输出结果是。5、有定义inta=-1;则pirntf(“%d,%o”,a,a”)的输出结果是。6、4&&0||2的值为。7、C语言程序的三种基本结构是顺序结构、选择结构和。8、函数的返回值是通过函数的语句获得的。9、C程序中的变量按其定义位置及作用域可分为两种。10、有定义charstr[]={‘D’,’o’,’g’,’\0’};若执行puts(str);则输出结果为。二、判断题,叙述正确的打√,错误打ⅹ(10分)。1、C语言中的常量没有大小范围限制。()2、字符常量与字符串是两种不同的常量。()3、一个C程序要经过编译链接才能执行。()4、if语句不可以嵌套使用。()5、变量就是其值可以变化的量。()6、静态局部变量的值在函数调用结束后不消失而保留原值()7、数组中的每一个元素可以属于不同数据类型。()8、使用不带参数的for(;;)语句可以正常控制循环。()9、在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。()10、数组元素可以作为函数参数。()三、单项选择题(每小题2分,共50分)。1、下列形式的常数中,C程序不允许出现的是_________。A)100B)E3C)30.6E-2D)1.2352、为表示关系x≥y≥z,应使用C语言表达式________。A)(x=y)&&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)3、下列数据中为字符串常量的是________。A)'A'B)9C)HowdoyoudoD)'$abd'4、C语言中,运算对象必须是整型数的运算符是________。A)%B)/C)%和/D)