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、 -1 1 B、 0 0 C、 0 1 D、 1 0 答案: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);”执行后的输出结果为__________。 } 答案: 题型:填空题 知识点:第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; for ( i=0; i<3; i++ ) 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