C语言模拟试题及答案.doc
如有侵权,请联系网站删除,仅供学习与交流C语言模拟试题及答案【精品文档】第 34 页一、单项选择题 (50分,每题2分)1不合法的字符常量是 ( ) 。A) t B) “A” C) a D)x322假定x和y为double型,则表达式x=2,y=x+3/2的值是 ( ) 。A)3.500000 B)3 C)2.000000 D)3.0000003putchar ( )函数可以向终端输出一个 ( ) 。A)整型变量表达式值 B)实型变量值C)字符串 D)字符或字符型变量值4在C语言中,要求参加运算的数必须时整数的运算符是 ( ) 。A)/ B)* C)% D) =5执行下列程序片段时输出结果是 ( ) 。 int x=13,y=5; printf(“%d”,x%=(y/=2);A)1 B)2 C)3 D)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);7C语言的程序一行写不下时,可以 ( ) 。A)用逗号换行 B)用分号换行C)在任意一空格处换行 D)用回车符换行8putchar ( )函数可以向终端输出一个 ( ) 。A)整型变量表达式值 B)实型变量值C)字符串 D)字符或字符型变量值9执行下列程序片段时输出结果是( ) 。 int x=13,y=5; printf(“%d”,x%=(y/=2);A)3 B)2 C)1 D)010逻辑运算符两侧运算对象的数据类型( ) 。A)可以是任何类型的数据 B)只能是0或非0正数C)只能是整型或字符型数据 D)只能是0或1 11C语言对嵌套if语句的规定是:else总是与( ) 。 A)其之前最近的if配对 B)其之前最近的且尚未配对的if配对 C)缩进位置相同的if配对 D)第一个if配对12设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为( ) 。A)1 B)2 C)3 D)413以下程序片段( ) 。 main ( ) int x=0,y=0,z=0;if (x=y+z) printf(“*”);else printf(“#”); A)输出:# B)输出:* C)可以编译,但不能通过连接,所以不能运行 D)有语法错误,不能通过编译14以下程序输出结果是( ) 。main ( ) int x=1,y=0,a=0,b=0; switch(x) case 1:switch (y) case 0 : a+ ; break ; case 1 : b+ ; break ; case 2:a+; b+; break; case 3:a+; b+; printf(“a=%d,b=%d”,a,b); A)a=1,b=0 B)a=2,b=1 C)a=1,b=1 D)a=2,b=215下面程序段 int k=2;while (k=0) printf(“%d”,k);k-;则下面描述中正确的是( ) 。 A)while循环执行10次 B)循环是无限循环 C)循环题语句一次也不执行 D)循环体语句执行一次16下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择( ) 填空。main ( ) int m=0,n=0; char c; 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若有定义:int a10,则对数组a元素的正确引用是( ) A)a10 B)a3.5 C)a(5) D)a018定义如下变量和数组:int i; int x33=1,2,3,4,5,6,7,8,9;则语句for(i=0;i<3;i+) printf("%d ",xi2-i); 的输出结果是( )。A) 1 5 9 B)1 4 7 C) 3 5 7 D) 3 6 9 19不能把字符串:Hello!赋给数组b的语句是( )。A)char b10='H','e','l','l','o','!' B)char b10; b="Hello!"C)char b10; strcpy(b,"Hello!"); D)char b10="Hello!"20以下说法中正确的是( )。A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分21若调用一个函数,且此函数中没有return语句,则正确的说法是 ( )。A)该函数没有返回值 B)该函数返回若干个系统默认值C)能返回一个用户所希望的函数值 D)返回一个不确定的值22以下程序的输出结果是( )。 char str15=”hello!”;printf(“%dn”,strlen(str);A) 15 B) 14 C) 7 D) 623在函数中默认存储类型说明符的变量应该是( )存储类型。 A内部静态 B. 外部 C自动 D. 寄存器24C语言规定,函数返回值的类型是由( )决定的。A)return语句中的表达式类型 B)调用该函数时的主调函数类型C)在定义函数时所指定的函数类型 D)调用该函数时由系统临时25以下正确的描述是( ) 。A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套二、判断题 (10分,每题1分)1main函数必须写在一个C程序的最前面。( )2自增运算符(+)或自减运算符(-)只能用于变量,不能用于常量或表达式。( )3C语言不允许混合类型数据间进行运算。( )4逻辑运算符 && | ! 的运算顺序是 ! 优先于 && 优先于 | ( ) 5多个case可以执行相同的程序段。( )6continue语句只能用于三个循环语句中。 ( )7在while循环中允许使用嵌套循环,但只能是嵌套while循环。( )8在定义数组时,有时可以将该数组的维数省略。( )9数组名代表数组的首地址。( ) 10在函数的定义和调用过程中,形式参数和实在参数数目可以不一致。( ) 三、填空题 (20分,每题2分)1C语言中基本的数据类型有:整型、_、_ 。2C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为_。3一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:_ 。4设int a; float f; double i; 则表达式10+a+i*f值的数据类型是_ 。5设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为_。6有int x=3,y=-4,z=5;则表达式(x&&y)=(x|z)的值为 _ 。7以下程序输出x,y,z三个数中的最小值,请填空使程序完整。main ( ) int x=4,y=5,z=8 ; int u,v; u = x v = u printf (“%d”,v);8C语言三个循环语句分别while语句、_语句和_语句。9若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12的值为_,a21得到的值为_。10C语言变量按其作用域分为 全局变量和局部变量。按其生存期分为_存储 和_存储 。四、程序设计(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.#incude<stdio.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.#include "stdio.h"main() char c; int letters=0,space=0,digit=0,others=0; printf("please input some charactersn"); while(c=getchar()!='n') if(c>='a'&&c<='z'|c>='A'&&c<='Z') letters+; else if(c=' ') space+; else if(c>='0'&&c<='9') digit+; else others+; printf("all in all:char=%d space=%d digit=%d others=%dn",letters, space,digit,others); 2.main() float a33,sum=0; int i,j; printf("please input rectangle element:n"); for(i=0;i<3;i+) for(j=0;j<3;j+) scanf("%f",&aij); for(i=0;i<3;i+) sum=sum+aii; printf("duijiaoxian he is %6.2f",sum); 一、填空题(每空2分,共20分)。1、表达式a=3*5,a*4的值是_。2、C语言本身不提供输入输出语句,输入和输出操作是由_来实现的。3、设a=12,a定义为整型变量,表达式a*=2+3的值为_。4、程序 main() float x; x=3.6; printf(“i=%d”, (int)x); 的输出结果是 。5、有定义int a=-1; 则pirntf(“%d,%o”,a,a”)的输出结果是 。6、4 && 0 | 2的值为 。7、C语言程序的三种基本结构是顺序结构、选择结构和 。8、函数的返回值是通过函数的 语句获得的。9、C程序中的变量按其定义位置及作用域可分为 两种。10、有定义char str=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) 100 B) E3 C) 30.6E-2 D) 1.2352、为表示关系xyz,应使用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) "9" C) How do you do D) '$abd'4、C语言中,运算对象必须是整型数的运算符是_。 A)% B) / C) %和/ D) * 5、设有如下定义: int x=10,y=3,z; 则语句 printf("%dn",z=(x%y,x/y); 的输出结果是_。 A)1 B)0 C)4 D)36、下面哪一个不是字符常量_。 A) 'a' B) '?' C) '9' D) "a"7、下列语句中符合C语言语法的赋值语句是A) a=7+b+c=a+7; B) a=7+b+=a+7; C) a=7+b,b+,a+7 D) a=7+b,c=a+7;8、以下程序的输出结果是_。 main() int x=10,y=11; printf("%d %dn",x-,-y); A)10 10 B)9 9 C)9 10 D)10 99、定义如下变量: int n=10; 则下列循环的输出结果是_。 while(n>7) n-; printf("%dn",n); A)10 B)9 C)10 D)9 9 8 9 8 8 7 8 7 7 610、已有定义:char a="xyz",b='x','y','z',以下叙述中正确的是_。A)数组a和b的长度相同 B)a数组长度小于b数组长度C)a数组长度大于b数组长度 D)上述说法都不对11、设函数fun的定义形式为_。 void fun(char ch, float x ) 则以下对函数fun的调用语句中,正确的是 A)fun("abc",3.0); B)t=fun('D',16.5); C)fun('65',2.8); D)fun(32,32);12、下面的程序A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环main() int x=3;do printf("%dn",X-=2);while(!(-x);13、以下叙述中错误的是_。A)C语句必须以分号结束 B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句14、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是_。A)(!a= =1)&&(!b= =0) B)(a<B)&& !c|1 C)a && b D)a|(b+b)&&(c-a)15、以下能正确定义且赋初值的语句是A)int n1:=n2:=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5;16、下面的程序A) 有语法错误不能通过编译B) 输出* * * *。C) 可以通过编译,但是不能通过连接,因而不能运行。D) 输出# # # #。main() int x=3,y=0,z=0;if(x=y+z)printf("* * * *");else printf("# # # #");17、以下关于函数的叙述中正确的是_。A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数18、表达式k=1*3 ? 2 : 0的值是_。A)3 B)2 C)1 D)019、与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x=0)y=0; else y=-1; else y=-1;20、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main() char s100; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); printf("%c,%d,%s n",c,i,s);21、阅读以下程序:main() int x;scanf(“%d”,&x);if(x-<5) printf(“%d”x);else printf(“%d”x+);程序运行后,如果从键盘上输人5,则输出结果是A)3B) 4 C) 5D) 622、以下程序的输出结果是main() int a44=1,3,5,2,4,6,3,5,7;printf(“%d%d%d%dn”,a03,a12,a21,a30;A) 0650 B) 1470 C) 5430 D) 输出值不定23、执行下面程序后,a的值是A) 65 B) 20 C) 15 D) 10main() int a;printf("%dn",(a=3*5,a*4,a+5);24、以下能正确定义一维数组的选项是_。A)int a5=0,1,2,3,4,5; B)char a=1,2,3,4,5,6;C)char a='s','d','k' D)int a5="0123"25、算法可使用下面 方法来描述。A)N-S图 B) PAD图 C) 伪代码 D)以上都是四、编程题(每题10分,共20分) 1、编程计算圆面积和圆周长。设圆半径r=1.5,面积为s。要求用scanf函数输入半径,输出结果中应包含适当的文字说明。 2、有一个45的矩阵,要求编程求出其中值最小的那个元素的值,以及其所在的行号和列号。参考答案一、 填空题(每空2分,共20分) 二、判断正误,正确的打、错误的打(每小题 1分,共10)1602函数3604i=35-1,17777761 (或真)7循环结构8return(或返回语句)9全局变量和局部变量10Dog12345678910三、 单项选择题(每小题2分,共50分)12345678910BABADDDABC11121314151617181920DBCABDBBAD2122232425BACBD四、 编程题(每题10分,共20分)1、 参考相关程序2、 参考相关程序一、判断题。(共10分,每小题1分)。1. C程序设计语言是结构化语言。A.对 B.错2. C程序设计语言是机器语言。A.对 B.错3一个C源程序必须包含一个main函数。A.对 B.错4. C程序的每行中只能写一条语句。A.对 B.错5. 一个C源程序可由一个或多个函数组成。A.对 B.错6. C语言本身没有输入输出语句。 A.对 B.错7. 在C程序中,注释说明只能位于一条语句的后面。 A.对 B.错8. putchar函数可以向终端输出一个字符或字符型变量值。 A.对 B.错9. 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中, b中的值不变。 A.对 B.错10. 在C程序中,MAX和max是两个不同的变量。A.对 B.错二、单选题(每题2分,共50分)。1.下面叙述不正确的是【 】。A) C语句末尾必须有分号B) C语言中无论是整数还是实数都能准确的表示C) 运算符“%”只能用于整数运算D) 乘除运算符优先级高于加减运算符2.以下叙述正确的是【 】。A) C语句前面必须有行号B) C程序中每行只能写一条语句C) C语言本身没有输入输出语句D) 注释必须跟在一行语句的后面3.复合语句应用【 】括起来。A) 小括号 B) 方括号 C) 大括号 D) 尖括号4将二进制数101101101111转换成十六进制数是【 】。A) 5557 B) B6F C) 7555 D) F6B5.将十进制数0.625转换成二进制数是【 】。A) 0111 B) 0.101 C) 0.5 D) 0.A6.C语言语句一行写不下时,可以【 】。A) 用逗号换行 B) 用分号换行 C) 用回车换行 D) 在任意一空格处换行7.C语言允许将一条语句写在两行上,下列语句不正确是【 】。A) int a, B) int a C) int D) int a,b b; ,b; a,b; 8.下面程序的输出是【 】。(“”表示一个空格)int a=3366;printf("|%-08d|",a);A) |-0003366| B) |00003366| C) |3366| D) 输出格式非法9.若有说明语句:int a; float b;,以下输入语句正确的是【 】。A) scanf("%f%f",&a,&b);B) scanf("%f%d",&a,&b);C) scanf("%d,%f",&a,&b);D) scanf("%6.2f%6.2f",&a,&b);10.以下程序的输出结果是【 】。main( ) int x=11,y=11;printf("%d%dn",x-,-y);A) 11,11 B) 10,10 C) 10,11 D) 11,1011将八进制数307转换成二进制数是【 】。A) 100110011 B) 11000111 C) 1100000111 D) 11100001112执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【 】。int x,y;scanf("%d%d",&x,&y);A) 空格 B) Tab键 C) 回车 D) 逗号13.下面合法的语句是【 】。A) int a=8,b;b=+a+;printf("%d,%d",a,b+);B) int a;printf(""%d"",scanf("%d",&a);C) char a;scanf("%c",&a);char b=scanf("b=%c",&b);D) char c=getchar( ); putchar(int)c);14.执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是【 】。int a;float b;scanf("a=%d,b=%f",&a,&b);A) 252.5 B) 25,2.5 C) a=25,b=2.5 D) a=25b=2.515.与数学公式ab/xy不等价的语句是【 】。A) a*b/x*y B) a*b/x/y C) a*b/(x*y) D) a/(x*y)*b16计算机内部运算使用的数是【 】。A) 十进制数 B) 十六进制数 C) 二进制数 D) 八进制数17.一个字长的二进制位数是【 】。A) 2个BYTE,即16个bit B) 3个BYTE,即24个bit C) 4个BYTE,即32个bit D) 随计算机系统不同而不同。18.在C语言系统中,假设int类型数据占2个字节,则double、long、unsigned int、char类型数据所占字节数分别多少【 】。A) 8,2,4,1 B) 2,8,4,1 C) 4,2,8,1 D) 8,4,2,119.下面程序段执行结果是【 】。int i=5,k;k=(+i)+(+i)+(i+);printf("%d,%d",k,i);A) 24,8 B) 21,8 C) 21,7 D) 24,7。20.下面程序段执行结果是【 】。int i=5;printf("%d,%d,%d", i,(+i)+(+i)+(i+),i);A) 8,20,5 B) 8,21,5 C) 5,20,8 D) 5,21,821.下面程序段的输出结果是【 】。int i=32769;printf("%dn",i);A) 32769 B) 32767 C) -32767 D) 输出不是确定的数22.下面的程序运行后输出为【 】。main( ) int a=-32769;ptintf("%8Un",a);A) 32769 B) %8U C) 32767 D) -3276723.下面对C语言特点,不正确描述的是【 】。A) C语言兼有高级语言和低级语言的双重特点,执行效率高B) C语言既可以用来编写应用程序,又可以用来编写系统软件C) C语言的可移植性较差D) C语言是一种结构式模块化程序设计语言24.C语言源程序的最小单位是【 】。A) 程序行B) 语句C) 函数D) 字符25.以下四项中属于C语言关键字的是【 】。A) CHAR B) define C) unsigned D) return三、填空题(共20分,每空2分)1.表达式5%(-3)的值是【1】,表达式-5%(-3)的值是【2】。2.在C语言中,格式输入库函数为【3】,格式输出库函数为【4】。3.下面程序的输出结果是【5】。int x=-32769;printf("%d",x);4.执行下列程序的输出结果是【6】。main( )float a=1,b;b=+a*+a;printf("%fn",b);5.执行下列程序的输出结果是【7】。main( )int x=5,y;y=+x*+x;printf("y=%dn",y);#include #include #include Float fun (float)Main Float x, y; Int flag; Printf(“Enter x:”); Scanf(“ %f ”,