当前位置:文档之家› C语言模拟试题6卷+答案

C语言模拟试题6卷+答案

C语言模拟试题6卷+答案
C语言模拟试题6卷+答案

计算机公共课C语言模拟试题一

本试题满分100分,考试时间120分钟。

题号一二三四五六七八总分

得分

评分人

一、单项选择题(50分,每题2分)

1.不合法的字符常量是(B) 。

A)…\t? B) “A”C)…a? D)?\x32?

2.假定x和y为double型,则表达式x=2,y=x+3/2的值是(D ) 。

A)3.500000 B)3 C)2.000000 D)3.000000

3.putchar ( )函数可以向终端输出一个(D) 。

A)整型变量表达式值B)实型变量值

C)字符串D)字符或字符型变量值

4.在C语言中,要求参加运算的数必须时整数的运算符是c ) 。

A)/ B)* C)% D) =

5.执行下列程序片段时输出结果是(A) 。

int x=13,y=5;

printf(“%d”,x%=(y/=2));

A)1 B)2 C)3 D)0

6.已知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);

7.C语言的程序一行写不下时,可以(d) 。

A)用逗号换行B)用分号换行

C)在任意一空格处换行D)用回车符换行

8.putchar ( )函数可以向终端输出一个(d ) 。

A)整型变量表达式值B)实型变量值

C)字符串D)字符或字符型变量值

9.执行下列程序片段时输出结果是(c ) 。

int x=13,y=5;

printf(“%d”,x%=(y/=2));

A)3 B)2 C)1 D)0

10.逻辑运算符两侧运算对象的数据类型(a) 。

A)可以是任何类型的数据B)只能是0或非0正数

C)只能是整型或字符型数据D)只能是0或1

11.C语言对嵌套if语句的规定是:else总是与(B) 。

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的值为( B ) 。A)1 B)2 C)3 D)4

13.以下程序片段( ) 。

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 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=2

15.下面程序段

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 a[10],则对数组a元素的正确引用是( d )

A)a[10] B)a[3.5] C)a(5) D)a[0]

18.定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};

则语句for(i=0;i<3;i++) printf("%d ",x[i][2-i]); 的输出结果是( c )。

A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9

19.不能把字符串:Hello!赋给数组b的语句是()。

A)char b[10]={'H','e','l','l','o','!'}; B)char b[10]; b="Hello!";

C)char b[10]; strcpy(b,"Hello!"); D)char b[10]="Hello!";

20.以下说法中正确的是()。

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用的函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

21.若调用一个函数,且此函数中没有return语句,则正确的说法是()。

A)该函数没有返回值B)该函数返回若干个系统默认值

C)能返回一个用户所希望的函数值D)返回一个不确定的值

22.以下程序的输出结果是()。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A)15 B)14 C)7 D)6

23.在函数中默认存储类型说明符的变量应该是()存储类型。

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.在函数的定义和调用过程中,形式参数和实在参数数目可以不一致。()

答案 F T F T T T F T T F

1.(1)实型(2)字符型

2.字母或下划线

3.#incude(或#incude“stdio.h”)

4. double(双精度型)

5. 2.5

6. 1

7. (1) x:y (2) u:z

8.(1)do-while语句 (2) for语句

9.(1)0 (2)6

10.(1)动态(2)静态

三、填空题(20分,每题2分)

1.C语言中基本的数据类型有:整型、__________、__________ 。

2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为_______________。

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=8,y=5,z=4 ;

int u,v;

if(x>y)

{u = x;//8

x = y;//5

y = u;}//8

else if(x>z)

{u=x;//5

X=z;//4

printf (“%d”,x);

}

8.C语言三个循环语句分别while语句、__________语句和___________语句。

9.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]的值为____0___,a[2][1]得到的值为____6_____。

10.C语言变量按其作用域分为全局变量和局部变量。按其生存期分为________存储和

_________存储。

四、程序设计(20分每题10分)

1、输入一行字符以?\n?作为输入结束符,分别统计出其中英文字母,空格,数字和其他字符的个数。

2、求一个3*3矩阵对角线元素之和。

C语言第一套试卷参考答案

一、单项选择题(25×2分=50分)

题号 1 2 3 4 5 6 7 8 9 10

答案 B D D C A C D D C A

题号11 12 13 14 15 16 17 18 19 20

答案 B B A B C A D C B C

题号21 22 23 24 25

答案 D D C C B

二、判断题(10×1分=10分)

题号 1 2 3 4 5 6 7 8 9 10

答案 F T F T T T F T T F

三、填空题(10×2分=20分)

1.(1)实型(2)字符型

2.字母或下划线

3.#incude(或#incude“stdio.h”)

4. double(双精度型)

5. 2.5

7. (1) x:y (2) u:z

8.(1)do-while语句 (2) for语句

9.(1)0 (2)6

10.(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 characters\n");

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=%d\n",letters, space,digit,others);

}

2.

main()

{

float a[3][3],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",&a[i][j]);

for(i=0;i<3;i++)

sum=sum+a[i][i];

printf("duijiaoxian he is %6.2f",sum);

}

C语言第2套模拟试题

一、填空题(每空2分,共20分)。

1、表达式a=3*5,a*4的值是_____60_____。

2、C语言本身不提供输入输出语句,输入和输出操作是由_____函数__________来实现的。

3、设a=12,a定义为整型变量,表达式a*=2+3//a=a*(2+3)的值为___60____。

4、程序main()

{ float x;

x=3.6;

printf(“i=%d”, (int)x);

}

的输出结果是i=3 。

5、有定义int a=-1; 则pirntf(“%d,%o”,a,a”)的输出结果是-1 。

6、4 && 0 || 2的值为 1 。

7、C语言程序的三种基本结构是顺序结构、选择结构和循环结构。

8、函数的返回值是通过函数的return 语句获得的。

9、C程序中的变量按其定义位置及作用域可分为全局变量和局部变量两种。

10、有定义char str[]={…D?,?o?,?g?,?\0?};若执行puts(str);则输出结果为Dog 。

二、判断题,叙述正确的打√,错误打ⅹ(10分)。

1、C语言中的常量没有大小范围限制。(F)

2、字符常量与字符串是两种不同的常量。(T)

3、一个C程序要经过编译链接才能执行。(T)

4、if语句不可以嵌套使用。(F)

5、变量就是其值可以变化的量。(T)

6、静态局部变量的值在函数调用结束后不消失而保留原值(T)

7、数组中的每一个元素可以属于不同数据类型。(F)

8、使用不带参数的for(;;)语句可以正常控制循环。(F)

9、在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。(T)

1 ╳

2 √

3 √

4 ╳

5 √

6 √

7 ╳

8 ╳

9 √

10 √

1 2 3 4 5 6 7 8 9 10

B A B A D D D A B C

11 12 13 14 15 16 17 18 19 20

三、单项选择题(每小题2分,共50分)。

1、下列形式的常数中,C程序不允许出现的是_________。

A) 100 B) E3 C) 30.6E-2 D) 1.235

2、为表示关系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) "9" C) How do you do D) '$abd'

4、C语言中,运算对象必须是整型数的运算符是________。

A)% B) / C) %和/ D) *

5、设有如下定义:

int x=10,y=3,z;

则语句

printf("%d\n",z=(x%y,x/y));

的输出结果是________。

A)1 B)0 C)4 D)3

6、下面哪一个不是字符常量___________________。

A) 'a' B) '?' C) '9' D) "a"

1 2 3 4 5 6 7 8 9 10

B A B A D D D A B C

11 12 13 14 15 16 17 18 19 20

D B C A B D B B A D

21 22 23 24 25

B A

C B D

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 %d\n",x--,--y);

}

A)10 10 B)9 9 C)9 10 D)10 9

9、定义如下变量:

int n=10;

则下列循环的输出结果是________。

while(n>7)

{ n--;

printf("%d\n",n);

}

A)10 B)9 C)10 D)9

9 8 9 8

8 7 8 7

7 6

10、已有定义: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("%d\n",X-=2);

}while(!(--x));}

11 12 13 14 15 16 17 18 19 20

D B C A B D B B A D

21 22 23 24 25

B A

C B D

13、以下叙述中错误的是________。

A)C语句必须以分号结束B)复合语句在语法上被看作一条语句

C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句

14、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是________。

A)(!a= =1)&&(!b= =0) B)(a

A)int n1:=n2:=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5;

16、下面的程序

A) 有语法错误不能通过编译

B) 输出* * * *。

D) 输出# # # #。

main()

{ int x=3,y=0,z=0;

if(x=y+z)printf("* * * *");

e l se printf("# # # #");}

17、以下关于函数的叙述中正确的是________。

A)每个函数都可以被其它函数调用(包括main函数)

B)每个函数都可以被单独编译

C)每个函数都可以单独运行

D)在一个函数内部可以定义另一个函数

18、表达式k=1*3 ? 2 : 0的值是________。

A)3 B)2 C)1 D)0

19、与 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 s[100]; int c, i;

scanf("%c",&c); scanf("%d",&i); scanf("%s",s);

printf("%c,%d,%s \n",c,i,s);

}

21、阅读以下程序:

main()

{ int x;

scan f(“%d”,&x);

if(x--<5) p rintf(“%d”’x);

else p rintf(“%d”’x++);

}

程序运行后,如果从键盘上输人5,则输出结果是

A)3 B) 4 C) 5 D) 6

22、以下程序的输出结果是

main()

{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};

pri ntf(“%d%d%d%d\n”,a[0][3],a[1][2],a[2][1],a[3][0];

}

A) 0650 B) 1470 C) 5430 D) 输出值不定

23、执行下面程序后,a的值是

A) 65 B) 20 C) 15 D) 10

main()

{ int a;

printf("%d\n",(a=3*5,a*4,a+5));}

21 22 23 24 25

B A

C B D

24、以下能正确定义一维数组的选项是______。

A)int a[5]={0,1,2,3,4,5}; B)char a[]={1,2,3,4,5,6};

C)char a={'s','d','k'}; D)int a[5]="0123";

25、算法可使用下面方法来描述。

A)N-S图B) PAD图C) 伪代码D)以上都是

四、编程题(每题10分,共20分)

1、编程计算圆面积和圆周长。设圆半径r=1.5,面积为s。要求用scanf函数输入半径,输出

2、有一个4╳5的矩阵,要求编程求出其中值最小的那个元素的值,以及其所在的行号和列号。

参考答案

一、填空题(每空2分,共20分) 二、判断正误,正确的打√、错误的打╳(每小

题 1分,共10)

三、单项选择题(每小题2分,共50分)

1 2 3 4 5 6 7 8 9 10 B A B A D D D A B C 11 12 13 14 15 16 17 18 19 20 D B C A B D B B A D 21 22 23 24 25 B

A

C

B

D

四、编程题(每题10分,共20分) 1、 参考相关程序 2、 参考相关程序

1 ╳

2 √

3 √

4 ╳

5 √

6 √

7 ╳

8 ╳

9 √ 10

1 60

2 函数

3 60

4 i=3

5 -1,177777

6 1 (或真)

7 循环结构

8 return(或返回语句)

9 全局变量和局部变量

10 Dog

C语言第3套模拟试题

一、判断题。(共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语句前面必须有行号

C) C语言本身没有输入输出语句

D) 注释必须跟在一行语句的后面

3.复合语句应用【】括起来。

A) 小括号 B) 方括号 C) 大括号 D) 尖括号

4.将二进制数101101101111转换成十六进制数是【】。

A) 5557 B) B6F C) 7555 D) F6B

5.将十进制数0.625转换成二进制数是【】。

A) 0.111 B) 0.101 C) 0.5 D) 0.A

6.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%d\\n",x--,--y);

}

A) 11,11 B) 10,10 C) 10,11 D) 11,10

11.将八进制数307转换成二进制数是【】。

A) 100110011 B) 11000111 C) 1100000111 D) 111000011

12.执行下面程序段,给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;

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) 25□2.5 B) 25,2.5 C) a=25,b=2.5 D) a=25□b=2.5

15.与数学公式a?b/x?y不等价的语句是【】。

A) a*b/x*y B) a*b/x/y C) a*b/(x*y) D) a/(x*y)*b

16计算机内部运算使用的数是【】。

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,1

19.下面程序段执行结果是【】。

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,8

21.下面程序段的输出结果是【】。

int i=32769;

printf("%d\\n",i);

A) 32769 B) 32767 C) -32767 D) 输出不是确定的数

22.下面的程序运行后输出为【】。

main( )

{ int a=-32769;

ptintf("%8U\\n",a);

}

A) 32769 B) %8U C) 32767 D) -32767

23.下面对C语言特点,不正确描述的是【】。

A) C语言兼有高级语言和低级语言的双重特点,执行效率高

B) C语言既可以用来编写应用程序,又可以用来编写系统软件

C) C语言的可移植性较差

D) C语言是一种结构式模块化程序设计语言

24.C语言源程序的最小单位是【】。

A) 程序行B) 语句C) 函数D) 字符

25.以下四项中属于C语言关键字的是【】。

三、填空题(共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("%f\\n",b);

}

5.执行下列程序的输出结果是【7】。

main( )

{

int x=5,y;

y=++x*++x;

printf("y=%d\\n",y);

}

#include

#include

#include

Float fun (float)

Main

{ Float x, y;

Int flag;

Printf(“Enter x:”);

Scanf(“ %f ”, &x);

flag=fun(x);

if (﹍﹍【8】﹍﹍)

printf(“x=%f is out of range.\n”, x);

else

printf(“x=%f,y=%f\n”, x, fun(x) );

}

﹍﹍【9】﹍﹍ fun(float x)

{

Float s;

If ( abs(x)>1 )

Return (2);

Else

{

s=sqrt (1-x*x);

﹍﹍【10】﹍﹍;

}

四、编程题(共20分,每题10分)

1.题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

2. 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

参考答案:

1.判断题(1)A (2)B (3)A (4)B (5)A (6)A (7)B (8)A (9)A (10)A

2.选择题(1)B (2)C (3)C (4)B (5)B (6)D (7)D (8)C (9)C (10)D (11)B (12)D (13)D (14)C (15)A (16)C (17)D (18)D (19)B (20)A (21)C (22)B (23)C (24)D (25)C

3.填空题【1】 2 【2】 -2 【3】 scanf 【4】 printf 【5】 32767 【6】 6.000000 【7】 49 【8】flag==2 【8】float 【10】 return(s)

4.编程题1. main()

{ int i,j,k,n;

printf("'water flower'number is:");

for(n=100;n<1000;n++)

{

i=n/100;/*分解出百位*/

j=n/10%10;/*分解出十位*/

k=n%10;/*分解出个位*/

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

{

printf("%-5d",n);

}

}

printf("\n");

2.、main()

{int a,i,aa[4],t; scanf("%d",&a);

aa[0]=a%10;

aa[1]=a%100/10;

aa[2]=a%1000/100; aa[3]=a/1000;

for(i=0;i<=3;i++) {aa[i]+=5;

aa[i]%=10;

}

for(i=0;i<=3/2;i++) {t=aa[i];

aa[i]=aa[3-i]; aa[3-i]=t;

}

for(i=3;i>=0;i--) printf("%d",aa[i]); }

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与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; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

C语言程序设计模拟试题2(附答案)new

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 )

C语言模拟试题1

一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表:

下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

C语言模拟题

一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b

C语言程序设计模拟试题A(附答案)

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5]={0,1,2,3,4,5};B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) {printf(“*”); x- -; } A) ****B) ***C) **D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。 解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。

A)9B) 8C) 5D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 A) 数组的首地址B) 数组第一个元素的值 C) 数组中全部元素的值D) 数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。 A)void B)double C)int D)char 8、下面不能正确进行字符串赋值操作的语句是(C)。 A) char s[5]={"ABCD"};B) char s[5];s="ABCD"; C) char *s;s="ABCDEF";D) char *s="ABCD"; 解析:这样理论上的没错的把s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样char s[] = "ABCDEF"; 或char s[8];strcpy(s, "ABCDEF"); 9、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(C)。 A)++p B)++(*p)C) *(++p)D) *(p+=2) 解析: A是把p得地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x,int y) { int m=3; return( x*y-m); } main( ) { int a=7,b=5;

C语言程序设计试题第3套

C语言程序设计试题(第3套) 一、单项选择题(30分,每题2分) 1.下面关于C语言的说法,错误的是______。 A、一个C程序总是从执行main开始。 B、C程序可以用/<*……*>/ 对程序作注释。 C、C语言本身没有输入输出语句,输入、输出操作由库函数scanf和printf等来完成。 D、在C程序中,数据定义的最后必须写上一个分号。 2.判断字符串s1是否大于字符串s2,应当使用。 A、if (s1>s2) B、if (strcmp(s1,s2)) C、if (strcmp(s2,s1)>0) D、if (strcmp(s1,s2)>0) 3. 下列表达式错误的是______。 A、4/7 B、4.0/7.0 C、(-4)%(-7) D、4.0%7.0 4. 以下能定义为用户标识符的是______。 A、scanf B、printf C、_3com_ D、int 5. 能正确表示a和b 同时为正或同时为负的逻辑表达式是______。 A、(a>=0‖b>=0)&&(a< 0‖b<0) B、(a>=0&&b>=0)&&(a< 0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0 6. 若有以下程序段:int c1=1, c2=2 ,c3; c3=2.0+c1%c2 ; 则执行后,c3的值是______。 A、2.0 B、2 C、3.0 D、3 7.已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使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); 8. 以下程序输出结果是。 A、7 B、6 C、5 D、4 main() { int m=5; if(m++>5) printf("%d\n",m); esle printf("%d\n",m- -); } 9. 有以下程序段 #include main() {int sum=0,i; scanf("%d",&i); do {sum=sum+i;i++;} while(i<=10); printf("sum=%d\n",sum); } 若运行时从键盘输入11,则循环体会执行。 A、11次 B、10次 C、1次 D、0次 10.二维数组int a[4][4]前5个元素在内存中的排列次序为。 A、a[0][0] a[1][1] a[2][2] a[3][3] a[4][4] B、a[0][0] a[0][1] a[0][2] a[0][3] a[1][0]

C语言模拟试题

C语言模拟试题 一、单项选择题(共40分每题1分) 说明:答案必须填写在答题卡的相应位置上,否则不得分。 1.C语言中字符型(char)数据在内存中的存储形式是____D____。 A、原码 B、反码 C、补码 D、ASCII码 2.C语言中基本的数据类型包括___B_____。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 3.在C语言中,int类型数据在内存中占用____C____。 A、2字节 B、4字节 C、由编译系统决定 D、由用户决定4.运算符有优先级,C语言中关于运算符优先级的正确叙述是____B____。 A、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。 5.下面关于C语言语句的叙述,错误的是___C_____。 A、C语言一行可以允许写多条语句; B、C语言语句用分号结束; C、语句一行写不下时,可以用逗号换行; D、语句一行写不下时,可在任意一空格处回车换行。 6.下面数据中不属于字符型常量的是____A____。 A、“\n” B、…\0? C、…A? D、…\t? 7.11.以下选项中,当x为大于1的奇数时,值为0的表达式______D____ 。 A、x%2==1 B、x/2 C、x%2!=0 D、x%2==0 8.C语言源程序名的后缀是____B____ 。 A 、.exe B、.C C、.obj D、.cp 9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是____D____。 A、7 B、8 C、6 D、2 10.若有说明语句:int a;float b;,以下输入语句正确的是___C_____。 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); 11.已知int a,b; 用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是_____A___。 A、, B、空格 C、回车 D、[Tab] 12.C语言对嵌套if语句的规定是:else总是与___D___配对。 A、与之前最近的if B、第一个if C、缩进位置相同的if D、其之前最近的且尚为配对的if 13.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是___D___。 A、if(a)s1; else s2; B、if(a==0)s2; else s1; C、if(a!=0)s1; else s2; D、if(a==0)s1; else s2;

计算机二级c语言第3套笔试模拟试卷

第3套笔试模拟试卷 一选择题: (1)下列叙述中正确的是()。 A)一个算法的空间复杂度大,则其时间复杂度必定大 B)一个算法的空间复杂度大,则其时间复杂度必定小 C)一个算法的时间复杂度大,则其空间复杂度必定小 D)上述三种说法都不对 (2)下列叙述中错误的是()。 A)线性表是由n个元素组成的一个有限序列 B)线性表是一种线性结构 C)线性表的所有结点有且仅有一个前件和后件 D)线性表可以是空表 (3)数据的存储结构是指()。 A)数据所占的存储空间 B)数据的逻辑结构在计算机中的存放形式 C)数据在计算机中的顺序存储方式 D)存储在计算机外存中的数据 (4)下面对对象概念描述正确的是()。 A)任何对象都必须有继承性 B)对象是属性和方法的封装体 C)对象间的通信靠信息传递 D)方法是对象的静态属性 (5)有下列二叉树,对此二叉树前序遍历的结果为()。 A)ACFXDBEYZ B)ABEFXYZCD C)ABCDEFXYZ D)ABDYECFXZ (6)两个或两个以上模块之间联系的紧密程度称为()。 A)耦合性 B)内聚性 C)复杂性 D)数据传输特性 (7)在下列关于二叉树的叙述中,正确的一项是()。 A)在二叉树中,任何一个结点的度都是2 B)二叉树的度为2 C)在二叉树中至少有一个结点的度为2 D)一棵二叉树的度可以小于2

(8)待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。 A)3 B)5 C)7 D)9 (9)以下所述中,是软件调试技术的是()。 A)错误推断 B)集成测试 C)回溯法 D)边界值分析 (10)设有如下关系表: A)T=R/S B)T=R×S C)T=R∩S D)T=R∪S (11)C语言程序的执行是()。 A)从程序的主函数开始,到程序的主函数结束 C)从程序的主函数开始,到程序的最后一个函数结束 B)从程序的第一个函数开始,到程序的最后一个函数结束 D)从程序的第一个函数开始,到程序的主函数结束 (12)下列不合法的用户标识符是()。 A)j2_KEY B)Double C)4d D)_8_ (13)若变量已正确定义,以下表达式错误的是()。 A)a/b+c B)a%(5.0) C)a=1/3*(x=y=10,x*2) D)a=b=c (14)下列不合法的数值常量是()。 A)011

C语言模拟题

一、单项选择题 1、以下字符中不是转义字符的是(A)。 A、'\c' B、'\b' C、'\\' D、'\a' 2、设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为(A)。 A、0 B、144 C、132 D、12 3、已定义float x=1.25,y=3.37; 根据下面的输出结果,正确的输出语句是(C). y+x=4.62,y-x=2.12 A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x); B、printf("y+x=%f,y-x=%f\n",y+x,y-x); C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x); D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x); 4、执行下面程序段后,b的值为(A). int s=35; char t='A'; int b; b=((s&&4)&&(t<'a')); A、1 B、3 C、2 D、0 5、若k是整型,则以下程序段的执行结果是:(B) k=-3; if(k<=0) printf("####") else printf("&&&&"); A、#### B、有语法错误,无结果 C、&&&& D、####&&&& 6、设j和k都是int类型,则下面的for循环语句(D)。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);

A、最多执行9次 B、是无限循环 C、循环体一次也不执行 D、最多执行10次 7、以下正确的描述是(A). A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 8、以下能对一维数组a进行正确初始化的语句是(B)。 A、int a[10]={}; B、int a[]={0}; C、int a[10]={10*1}; D、int a[10]=(0,0,0,0,0) 9、以下正确的说法是(A). A、函数的类型决定返回值的类型 B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式 D、如果形参与实参的类型不一致,以实参类型为准 10、以下程序的输出结果为(C)。 main() {int a=1,b=2,c=3,d=4,e=5; printf("%d\n",func((a+b,b+c,c+a),(d+e))); } int func(int x,int y) { return(x+y); } A、9 B、15 C、13 D、函数调用出错 11、以下正确的说法是(D)。 A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 B、用户若需调用标准库函数,调用前必须重新定义 C、系统根本不允许用户重新定义标准库函数 D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义 12、在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是

C语言三套考题与答案

C语言三套考题与答案(1) 选择题 1、在计算机上可以直接运行的程序是(C)。 A、高级语言程序 B、汇编语言程序 C、机器语言程序 D、C语言源程序 2. 以下正确的C语言自定义标识符是__A____。 A. _1a B. 2a_ C. do D. a.12 3、C语言程序的基本单位是(B )。 A、程序行 B、语句 C、函数 D、字符 4、下列运算符的优先级最高的是(C)。 A、关系运算符 B、赋值运算符 C、算术运算符 D、逻辑运算符 5.逗号表达式a=2*6,a*3,a+5的值是_____B____。 A. 12 B. 17 C.36 D. 41 6、‘A’ + 3 的结果是(B )。 A.’A’B.’D’的ASCⅡ码C.65 D.3 7、sizeof(float) 是(C )。 A、一种函数调用 B、一个不合法的表示形式 C、一个整形表达式 D、一个浮点表达式 8、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C)。 A、1 B、2 C、2.0 D、2.5 9、设有如下定义语句 Char ch=?\77?; 则下列说法中正确的是(A )。 A、ch中含有1个字符 B、ch中含有2个字符 C、h中含有3个字符 D、语法出错 10)若有定义语句:int x=10;,则表达式x-=x+x的值为( B ) A)-20 B)-10 C)0 D)10 11、以下程序运行后的输出结果是(B )。 #include void main() {

int a=666,b=888; printf(“%d\n”,a,b); } A、错误信息 B、666 C、888 D、666,888 (12)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是 ( D ) (A)必须是逻辑值(B)必须是整数值 (C)必须是正数(D)可以是任意合法的数值 13、假定从键盘输入23456< 回车>,下面程序的输出结果是:(C )void main ( ) { int m,n;scanf(“%2d%3d”,&m,&n);printf(“m=%d n=%d\n”,m,n);} A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 14、以下程序执行后的输出结果是(D )。 #include void main() { int i=1,j=2,k=3; if(i++= =1&&(++j= =3||k++= =3)) printf(“%d?%d?%d\n”,i,j,k); } A、1 2 3 B、2 3 4 C、2 2 3 D、2 3 3 15. 设int a=11, b=2;执行下述程序段后,变量a和b的值分别是___B____。 do { a/=b++; }while(a>b); A. 1,3 B. 1,4 C. 2,3 D. 2,4 (16)有以下程序 #include main() { int s; scanf(“%d”,&s); while(s>0) { switch(s) {case 1:printf(“%d”,s+5); case 2:printf(“%d”,s+4);break; case 3:printf(“%d”,s+3); default:printf(“%d”,s+1);break; } scanf(“%d”,&s); }

C语言模拟试题(答案)

一、选择题 1.有如下程序: main() { int a=1,b=2; a+=b;b=a-b;a-=b; printf("%d,%d\n",a,b); } 该程序的输出结果是【】。 A.1,2 B.2,1 C.2,2 D.3,2 2.有以下程序: main() { int i; for(i=0;i<3;i++) switch(i) { case 1:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } 执行后输出的结果是【】。 A.011122 B.012 C.012020 D.120。3.有以下程序: main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } 执行后输出结果是【】。 A.5 B.4 C.6 D.不确定 4.有如下程序: f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c) ;

} main() { int a=2,i; for(i=0;i<3;i++) printf("%2d",f(a)); } 该程序的输出结果是【】。 A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 8 5.有如下程序段: main() { int a,b,c=246; a=c/100%9; b=(-1) && (-1); printf("%d,%d\n",a,b); } 输出结果是【】。 A.2,1 B. 3,2 C. 4,3 D. 2,-1 6.有如下程序: main() { char str[ ][20]={"Hello","Beijing"}, *p=str; printf("%d\n",strlen(p+22)); } 该程序的输出结果是【】。 A.0 B.5 C.7 D.20 7.有如下程序: #define U 2 #define V U+2 #define X V*V/2 main() { printf("%d\n",5*X); } 该程序的输出结果是【】。 A.10 B.20 C.15 D.40 8.有以下程序: main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=a[i][1];

相关主题
文本预览
相关文档 最新文档