2019-北京理工大学-成教-《C语言程序设计》期末测试卷(4)
[ 试题分类 ]: C 语言程序设计
1.下列叙述中,错误的是
A.一个 C 语言程序必须有且只有一个主函数
B.C 语言程序的注释必须位于语句之后
C.一个 C 语言程序可以有多个函数
D.C 语言程序的基本结构是函数
答案: B
题型:单选题
知识点:第 2 章 C 语言概述
难度: 1
2.下列选项中,所有符号均为 C 语言关键字的选项是
A.enum,if
B.include,else
C.scanf,struct
D.continue,repeat
答案: A
题型:单选题
知识点:第 2 章 C 语言概述
难度: 1
3.下列选项中,可以正确表示字符型常数的是
A.297
B."a"
C."\n"
D.'\t'
答案: D
题型:单选题
知识点:第 3 章数据类型与运算规则
难度: 1
4. 下列 C 语言运算符中,要求操作数必须是int 类型的是
A.++
B.--
C.%
D./
答案: C
题型:单选题
知识点:第 3 章数据类型与运算规则
难度: 1
5.若有定义“ int w=1,x=2,y=3,z=4; ”,则条件表达式“ w>x ? w : y A.4 B.3 C.2 D.1 答案: B 题型:单选题 知识点:第 3 章数据类型与运算规则 难度: 2 6.若有定义“ int x; ”,则执行完逗号表达式“ (x=4*5,x*5),x+25 ”后,变量 x 的值是 A.20 B.100 C.45 D.125 答案: A 题型:单选题 知识点:第 3 章数据类型与运算规则 难度: 2 7.若有定义“ int i=-1,j=1; ”,则执行下列语句后的输出结果是 if((++i<0) && !(j--<0)) printf("%d %d\n",i,j); else printf("%d %d\n",j,i); A.-11 B.00 C.01 D.10 答案: D 题型:单选题 知识点:第 5 章选择结构的程序设计 难度: 2 8.下列叙述中,错误的是 A.循环语句中使用 continue 语句是为了结束本次循环,而不是终止整个循环 B.循环语句中使用 break语句是为了使流程跳出循环体,提前结束循环 C.switch 语句中使用 break 语句或 continue 语句的作用是相同的 D.break语句不能用于循环语句和 switch 语句以外的其他语句 答案: C 题型:单选题 知识点:第 5 章选择结构的程序设计 难度: 2 9.若有定义“ int x=10,i; ”,则下列语句执行后的结果是 for (i=0; x>8; ) printf ("%d ",--x); A.10 9 B.9 8 C.死循环 D.语句错误 答案: B 题型:单选题 知识点:第 6 章循环结构的程序设计 难度: 2 10.若有定义“ int n=0; ”,则执行语句“ while(n<=2) printf("%d", ++n); ”后的输出结果 是 A.01 B.12 C.012 D.123 答案: D 题型:单选题 知识点:第 6 章循环结构的程序设计 难度: 2 11. { 若有定义“ int x=1,y=10; ”,则执行下列语句后变量x 的值是 do \{ y-=x; x++; \} while(y--<0); } A.8 B.5 C.2 D.-4 答案: B 题型:单选题 知识点:第 6 章循环结构的程序设计 难度: 2 12.下列对字符数组 str 的定义、初始化或赋值语句中,正确的是 A.char str[ ]={"Hello Ice!"}; B.char str[10]; str={"Hello Ice!"}; C. char str[10]; strcpy(str, "Hello Ice!"}; D. char str[10]={"Hello Ice!"}; 答案: A 题型:单选题 知识点:第 7 章数组 难度: 1 13.{ 若有定义“ int aa[3][3]=\{1,2,3,4,5,6,7,8,9\},i; ”,则执行下列语句后的输出结果是for(i=0;i<3;i++) printf("%d,",a[2-i][i]); } A.9,5,1, B.9,4,1 C.7,5,3, D.7,6,1, 答案: C 题型:单选题 知识点:第 7 章数组 难度: 2 14.C 语言中,确定函数返回值类型的是 A.调用该函数时由系统默认 B.调用该函数时的主调函数 C.return语句中的表达式 D.定义该函数时指定 答案: D 题型:单选题 知识点:第 8 章函数 难度: 1 15.函数调用语句“ fun(x1,x2+x3,(x4,x5)); ”中包含的实参个数是 A.3 B.4 C.5 D.有语法错误 答案: A 题型:单选题 知识点:第 8 章函数 难度: 1 16. 若有定义“ int a[5],*p=a; ”,则下列选项中,对数组 a 中元素引用正确的是 A.*&a[5] B.*(a+2) C.*(p+5) D.a+2 答案: B 题型:单选题 知识点:第 9 章指针 难度: 2 17.{ 执行下列语句序列后的输出结果是 int arr[ ]=\{1,2,3,4,5\}, *ptr=arr; *(ptr+2)+=2;printf("%d,%d",*ptr,*(ptr+2)); } A.3,5 B.1,3 C.2,4 D.1,5 答案: D 题型:单选题 知识点:第 9 章指针 难度: 2 18.{ 若有定义“ enum color \{red, yellow=2, blue, white, black\} c1; ”,则执行语句“ printf("%d", c1=white); ”后的输出结果是 } A.4 B.3 C.2 D.1 答案: A 题型:单选题 知识点:第 10 章结构、联合与枚举类型 难度: 2 19.当定义一个结构体变量时,系统为它分配的内存空间是 A.结构体中占内存容量最大成员所需内存容量 B.结构体中任意一个成员所需内存容量 C.结构体中各成员所需内存容量之和 D.结构体中第一个成员所需内存容量 答案: C 题型:单选题 知识点:第 10 章结构、联合与枚举类型 难度: 2 20.已知函数调用“ fread(buffer, size,count, fp);”,其中 fp 代表的是 A.一个整数,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项 答案: B 题型:单选题 知识点:第 11 章文件 难度: 1 21. 字符串 "\"EOF\n=-\61\"" 的长度是。 答案: 9 题型:填空题 知识点:第 3 章数据类型与运算规则 难度: 1 22.为表示关系 x>y>z ,应使用的表达式是 __________。 答案: (x>y)&&(y>z) 题型:填空题 知识点:第 3 章数据类型与运算规则 难度: 1 23. 下列语句序列执行后,变量s 和 y 的值分别是和。 int x=1,y=1,z=1,s; s=++x||++y&&++z; 答案: (1) 1(2) 1 题型:填空题 知识点:第 3 章数据类型与运算规则 难度: 1 24. { 当输入为 1 时,下列语句序列执行后的输出结果是__________。 int k;scanf("%d",&k); switch(k) \{ case 1: printf("%d",k++); case 2: printf("%d",k++); break; default: printf("n"); \} } 答案: 12 题型:填空题 知识点:第 5 章选择结构的程序设计 难度: 2 25. { 下列语句序列执行后,变量 x 和 m 的值分别是(1)和(2)。 int x=1,m=1,n=10; while(x<=n) \{ m*=2; x+=3; \} } 答案: (1) 13(2) 16 题型:填空题 知识点:第 6 章循环结构的程序设计 难度: 2 26.{ 下列语句序列执行后的输出结果是 __________。 int x; for(x=3;x>0;x--) if(x--<3)printf("%d",x); else printf("%d",x++); } 答案: 21 题型:填空题 知识点:第 6 章循环结构的程序设计 难度: 1 27. { 若有定义“ char s[8]=\{ '1', '2', '3', '0', '1', '2', '3', '\0'\}; ”,语句“ printf("%s",s); ”执行后的输出结果为 __________。 } 答案: 1230123 题型:填空题 知识点:第 7 章数组 难度: 1 28.{ 若有如下函数定义,则函数调用“ fun("Hello!") ”的返回值是 __________。 int fun(char s[]) \{ int i=0; while(s[i]) i++; return i; \} } 答案: 6 题型:填空题 知识点:第 8 章函数 难度: 2 29.下列语句序列执行后的输出结果是 __________。 char *s="abcde"; s+=2;printf("%s",s); 答案: cde 题型:填空题 知识点:第 9 章指针 难度: 2 30.{ 若有定义: int a[2]=\{10,20\}; struct \{ int x;int *y; \} d[2]=\{\{1,&a[0]\}, \{2,&a[1]\}\}; 则执行语句“ printf("%d", *( d[0].y)+d[0].x*d[1].x); ”的结果是。 } 答案: 12 题型:填空题 知识点:第 10 章结构、联合与枚举类型 难度: 2 31. { 下列程序的功能是将输入的十进制正整数n 转换为二进制数并输出。 #include int main() \{ int i,n,bin[32]; printf("Please input n(n>0):\n"); scanf("%d",&n); for(i=0;(1);i++) \{ bin[i]=(2); n=n/2; \} for(;i!=0;i--) printf("%d",bin(3)); return 0; \} } 答案: (1) n!=0 (2) n%2(3) [i-1] 题型:填空题 知识点:第 6 章循环结构的程序设计 难度: 2 32.一个算法应该具备有穷性、确定性、输入、输出和有效性。 答案:√ 题型:判断题 知识点:第 1 章程序设计基础知识 难度: 1 33.C 语言中,变量可以先使用再定义。 答案:× 题型:判断题 知识点:第 3 章数据类型与运算规则 难度: 1 34.逗号运算符的求值顺序是从左到右,逗号表达式的值为第一个表达式的值。 答案:× 题型:判断题 知识点:第 3 章数据类型与运算规则 难度: 1 35.C 语言中没有逻辑型数据,因此不能使用逻辑表达式。 答案:× 题型:判断题 知识点:第 3 章数据类型与运算规则 难度: 1 36.C 语言中, while 和 do_while 的功能完全相同。 答案:× 题型:判断题 知识点:第 6 章循环结构的程序设计 难度: 1 37.在二维数组 a[3][4] 中, a+1 与 a[1]都是第一行的首地址。 答案:√ 题型:判断题 知识点:第 7 章数组 难度: 1 38.标准 C 语言中,所有函数在调用之前都要进行声明。 答案:× 题型:判断题 知识点:第 8 章函数 难度: 1 39.两个指针变量相减所得之差是两个指针所指向的数组元素之间相差的元素个数。 答案:√ 题型:判断题 知识点:第 9 章指针 难度: 1 40.共同体变量所占内存长度是其占最大内存的成员所占的内存长度。 答案:√ 题型:判断题 知识点:第 10 章结构、联合与枚举类型 难度: 1 41.C 语言中,以“ w”方式进行文件操作时,若被打开的文件已存在,则原文件内容 将被覆盖。 答案:√ 题型:判断题 知识点:第 11 章文件 难度: 1 42.{ 请写出下列程序的输出结果。 #include int main() \{ char arr[][4]=\{\{ '*', '*', '*', '*'\},\{'*',' ', ' ','*'\}, \{'*',' ', ' ','*'\},\{ '*', '*', '*', '*'\}\}; int i,j; for(i=0;i<4;i++) \{ for(j=0;j<4;j+ +) printf("%c",arr[i][j]); printf("\n"); \} \} } 答案: **** * * * * **** 题型:阅读程序题 知识点:第 6 章循环结构的程序设计 难度: 2 43.{ 请写出下列程序的输出结果。 #include int main() \{ int i; 14 switch (i) \{ case 1: printf("%d ", i); case 2: printf("%d ", i); default: printf("%d ", i); \} \} } 答案: 011122 题型:阅读程序题 知识点:第 5 章选择结构的程序设计 难度: 2 44.{ 请写出下列程序的输出结果。 #include int fun(int n) \{ if(n==0) return 0; else return(n+fun(n-1)); \} int main() \{ int x,y=5; x=fun(y); printf("x=%d\n",x); return 0; \} } 答案: x=15 题型:阅读程序题 知识点:第 8 章函数 难度: 2 45. { 若执行下列程序时,从键盘上输入“Good Luck”请写出下列程序的输出结果。 #include char fun(char *ch) \{ if ((*ch<='Z')&&(*ch>='A')) *ch-='A'-'a'; return *ch; \} int main() \{ char s[80],*q=s; gets(s); while(*q) \{ *q=fun(q); putchar(*q); q++; \} putchar('\n'); return 0; \} } 答案: good luck 题型:阅读程序题 知识点:第 5 章选择结构的程序设计 第8章函数 第9章指针 难度: 2