2017年上学期《C语言》期中试题

2016年上学期《C语言》期中试题

考试得分

} }

C.switch(a+b) D.switch(a+b)

{ case 1: printf(\ case 2+1: printf(\

装 : 号 学 订:名 姓 : 级 班业 专 线一、 选择题(请选择一个或多个正确选项,2分×30=60分) 1、1.C语言是一种______。

A.汇编语言 B.“解释型”语言 C.“编译型”语言 D. 面向对象语言 2、4.下面有关C语言特点的说法中,错误的是______。

A.C语言编写的代码较为紧凑,执行速度也较快

B.C语言不仅适合编写各种应用软件,还适于编写各种系统软件 C.C语言是一种模块化和结构化的语言 D.C语言编写的程序通常不具备移植性 3、下列标识符中,合法的用户标识符为_________。 A.month B.5xy C.int D.your name 4. 37.对于int型常量,不正确的是__________。

A.029 B.-25 C.0x2A D.-0X28

5、若ch为字符型变量,则不能使ch表示字符'B'的语句是__________。

A.ch=B; B.ch=66; C.ch='\\102'; D.ch='\\x42'; 6. 以下程序运行后的输出结果是______。 #include main()

{ int m=12,n=34;

printf(\ printf(\

A.12353514 B.12353513 C.12343514 D.12343513

7有以下程序段:int k=0,a=1,b=2,c=3; k=a+=b-=c;,执行该程序段后,k的值是______。 A.0 B.1 C.2 D.3

8. 设变量已经正确定义并赋值,以下正确的表达式是________。

A.x=y*5=x+z B.int(15.8%5) C.x=y+z*5,++y D.x=25%5.0 9. 若有定义int a=3,b=2,c=1;,以下选项中错误的赋值表达式是________。 A.a=(b=4)=3 B.a=b=c+1; C.a=(b=4)+c; D.a=1+(b=c=4); 10. 以下运算符中优先级最高的运算符为______。

A.! B.&& C.!= D.%

11、若有说明:int a[3][4]; 则对a数组元素的正确引用是______。

A.a[2][4] B.a[1,3] C.a[1+1][0] D.a(2)(1) 12. 下列表达式中,______不是关系表达式。

A.x%2= =0 B.!(x%2) C.(x/2*2-x)= =0 D.x%2!=0

13、若有定义:float x=1.5;int a=1,b=3,c=2; ,则正确的switch语句是______。

A.switch(x)//()里为整型,字符,枚举 B.switch(int(x))

{ case 1.0: printf(\

case 2.0: printf(\

(怀化市旅游学校)试卷 第1页 } }

14、下列程序的输出结果是_______。

#inlude main()

{ int a=0,b=0,c=0;

if(++a>0||++b>0) ++c; //短路运算,++b未作运算。 printf(\

A.0,0,0 B.1,1, C.1,0,1 D. 0,1,1

15. 设变量x和y均已正确定义并赋值,则以下if语句中,在编译时将产生错误信息的是_______。A.if(x++); B.if(x>y&&y!=0) ; C.if(x>0) x- - D.if(y<0){;} else y++; else x++;

16. 已知:int t=0; while(t=1) { ... } ,则以下叙述正确的是______。 A.循环表达式的值为0 B.循环表达式的值为1 C.循环表达式不合法 D.以上说法都不对 17. 下面程序的输出结果是______。

#include void main()

{ int n=9; while(n>6){n--; printf(\A.987 B.876 C.8765 D.9876 18 以下程序段的运行结果是______。

i=0; do printf(\

A.0,0 B.0,1 C.1,1 D.程序进入无限循环 19、判断字符串 a 和 b 是否相等,应当使用______。

A.if(a==b) B.if(a=b) C.if(strcat(a,b)) D.if(strcmp(a,b)) 20、以下程序的输出结果是_______。

#include \void main() { int a=1,b;

for(b=1;b<=10;b++) {if(a>=8)break;

if(a%2==1){a+=5;continue; } a-=3; }

printf(\

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

21、下面程序的功能是输出以下形式的金字塔图。在下划线处应填入的是_______。

* ***

(怀化市旅游学校)试卷 第2页

***** ******* #include \void main( ) { int i,j;

for(i=1;i<=4;i++)

{ for(j=1;j<=4-i;j++) printf(\

for(j=1;j<=_______;j++) printf(\ printf(\}

A.i B.2*i-1 C.2*i+1 D.i+2 22、设有两字符串“Good”、“Morning”分别存放在字符数组 str1[10]、str2[10]中,下面语句中能把“Morning”连接到“Good”之后的是______。 A.strcpy(str1,str2); B.strcpy(str1, \C.strcat(str1, \ D.strcat(\23、以下对一维整型数组 a 定义正确的是______。

A.int a(10); B.int n=10,a[n];

C.int n;scanf(\ D.#define SIZE 10 int a[SIZE];

24、下列字符串赋值语句中,不能正确把字符串“Hello World”赋给数组的语句是______。

A.char a1[]={'H','e ','l','l','o',' ','W','o','r','l','d','\\0'}; B.char a2[15]; strcpy(a2,\C.char a3[15]; a3=\D.char a4[10]={ \

25、用 scanf 函数输入一个字符串到数组 str 中,下面正确的语句是______。

A.scanf(\ B.scanf(\C.scanf(\ D.scanf(\

26、假设 array 是一个有 10 个元素的整型数组, 则下列写法中正确的是______。

A.array[0]=10; B.array=0; C.array[10]=0; D.array[-1]=0; 27、下面程序的运行结果是______。

#include main()

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

for(i=0;i<=2;i++) printf(\

A.3 5 7 B.3 6 9 C.1 5 9 D.1 4 7 28、下面程序的运行结果是______。

#include main()

{ char c[5]={'a','b','\\0','c','\\0'}; printf(\

A.'a' 'b' B.ab C.ab c D.ab\\0c\\0 29、以下合法的数组定义是______。

A.int a[]=\ B.int a[5]={0,1,2,3,4,5}; C.char a=\ D.char a[]={\

(怀化市旅游学校)试卷 第3页

30、设char s[10]= \,则s和t在内存中分配的字节数分别是______。

A. 6和5 B. 6和6 C. 10和5 D. 10和6

二、判断题( 2分×10=20分)

31、判断字符变量ch的值是否为数字字符的表达式为(ch>='0') && (ch<='9')。( ) 32、for、while和do while循环结构的循环体均为紧接其后的第一个语句(含复合语句)。( ) 33、由i=-1;while(i<10) i+=2;i++;可知,此while循环的循环体执行次数为6次。( ) 34、数组名代表数组的首地址。( )

35、函数strcpy(str1,str2)是将字符串 str2 连接到字符串 str1之后。( ) 36、在C语言中,同一行上可以写一条或多条语句,但一条语句不能写在多行上。( ) 37、 在C语言中,扩展名为.h的文件称为头文件,常用于组织C标准函数库中的函数。( ) 38、运算符“%”的操作数不允许为单精度和双精度浮点型,允许为字符型和整型。( ) 39、若scanf函数的格式说明中有一个空格,在输入时也一定要在对应位置输入一个空格。( ) 40、在switch语句中,每一个case后的常量表达式的值不能相同,因为选择结构中只允许一个分支所对应

的语句组被执行。( ) 三、编程题(10分×20=20分 )

1、从键盘输入整数,统计其中大于 2、输入10个数,输出其中的正数。 0的整数和小于0的整数的个数。 (怀化市旅游学校)试卷 第4页

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4