《C语言程序设计》题库C及答案
发布时间:2023-11-29 10:11:23浏览次数:55[试题分类]:C 语言程序设计1. 下列选项中,不属于 C 语言特点的是A. 能实现汇编语言的大部分功能B. 语言简洁、紧凑、使用方便C. 数据类型丰富,可移植性好D. 有较强的网络操作功能答案:D2. 下列选项中,正确的 C 语言标识符是A. \nB. %dC. _123D. #dene答案:C3. 若有定义“int x=5,y=5,z=5;”,执行语句“x%=y+z;”后,x 的值是A. 6B. 5C. 1D. 0答案:B4. 若有定义“int x=3,y=4,z=5;”,则下列表达式中值不为 1 的是A. 'x'&&'y'B. x<=yC. x||y+z&&y-zD. !((x<y)&&!z||1)答案:D1
5. 逗号表达式“(a=3*5,a*4),a+15”的值是A. 15B. 60C. 30D. 不确定答案:C6. {若有定义“int x=1,y=1,m=1,n=0;”,则执行下列语句后,变量 x 和 y 的值分别是 switch (m) \{ case 0: x=x*2; case 1: switch (n) \{ case 1: x=x*2; case 2: y=y*2; break; default: x++; \} case 2: x++; y++; case 3: x*=2; y*=2; break; default: x++;y++; \}}A. x=6,y=4B. x=2,y=1C. x=3,y=2D. x=7,y=5答案:A7. 若有定义“int n=4;”,则执行语句“while(n--) printf("%d",--n);”后的输出结果是A. 20B. 31C. 210D. 3212
答案:A8. {若有定义“int x=3;”,则执行下列语句后的输出结果是 do \{ printf("%d ",x-=2); \} while(!(--x));}A. 1B. 3 0C. 1 -2D. 死循环答案:C9. 下列关于数组定义、初始化或赋值语句中,正确的是A. int x[5]={1,2,3,4,5,6};B. int n=8; int score[n];C. int a[8]; a[8]=100;D. int x[]={1,2,3,4,5,6};答案:D10. C 语言程序中,调用函数时A. 实参和形参共用一个存储空间B. 实参和形参各自占用一个独立的存储空间C. 由用户指定实参和形参是否共用存储空间D. 由系统指定实参和形参是否共用存储空间答案:B11. 下述函数首部定义形式正确的是A. int f(int x,y)B. int f(int x; int y)3
C. int f(x,y: int)D. int f(int x, int y)答案:D12. 若 p1 和 p2 为指向同一字符串的指针变量,c 为字符变量,则下列语句中,不能正确执行的是A. p2=cB. c=*p2C. p1=p2D. c=*p1+*p2;答案:A13. 下列程序段中,枚举变量 c1 和 c2 的值分别是 enum color {red, yellow, blue=4, green, white}; enum colorc1=yellow, c2=white;A. 2,6B. 1,6C. 2,5D. 2,4答案:B14. {若有如下定义: struct student\{ int num; int age; \} data , *p=&data;则下列选项中,引用 data 中成员 num 正确的是}A. (*p).data.numB. p->data.aC. p.data.aD. (*p).a答案:D4
15. C 语言中,对文件进行存取的基本单位是A. 记录B. 字节C. 元素D. 簇答案:B16. 若 y 是 int 型变量,则判断 y 为奇数的关系表达式为__________。答案:(y%2)==1 或 y%2 或(y%2)!=017. 若 有 语 句 “ scanf("%d %c %f",&a,&b,&c);” , 假 设 输 入 序 列 为2223a123o.12,则变量 a 和 c 的值分别为 (1) 和 (2) 。答案:(1) 2223 (2) 12318. 下列语句序列执行后的输出结果是__________。int m=5;if(m++>5) printf("%d\n",m);else printf("%d\n",m--);答案:619. {下列语句序列执行后,变量 y 和 a 的值分别是 (1) 和 (2) 。int x=3,y=6,a=0;while(x++!=(y-=1)) \{ a+=1; if(y<x) break;\}}答案:(1) 4 (2) 15
20. {下列语句序列执行后的输出结果是__________。 for(int i=1; i<6; i++) \{ if (i%2) \{ printf("#"); continue; \} printf("*"); \}}答案:#*#*#21. 若 有 定 义 “ char s1[15]="Good", s2[10]="Morning";” , 则 语 句“printf("%d", strlen(strcpy(s1,s2)));”执行后的输出结果为__________。答案:722. {若有定义“int a[ ]=\{1,2,3,4,5,6,7,8,9,0\},*p; ” ,则执行语句序列“p=a;printf("%d", *p+9); ”后的输出结果是 。}答案:1023. 函数调用语句“func((exp1,exp2), exp3, (exp4,exp5));”中含有__________个实参。答案:324. {下列程序的功能是调用函数 sum 完成 1~m 的累加和,并输出结果。请将划线处的语句补充完整。#include <stdio.h>long sum(int n) \{6
(1) ;while(n>0)s=s+ (2) ;return s;\}int main() \{ int m;long s;scanf("%d",&m);s= (3) ;printf("s=%ld\n",s); return 0;\}}答案:(1) long s=0 (2) n-- (3) sum(m)25. C 语言允许直接访问物理地址。答案:√26. C 语言中,参与运算的变量的数据类型必须完全一致。答案:×27. C 语言中,运算符“=”用于判断两个数是否相等。答案:×28. 在 if 语句中,else 前一个语句可不加语句结束符“;”。答案:×29. C 语言中,for 语句后表示循环控制的三个表达式必须都出现。答案:×30. C 语言中,函数中只能有一个 return 语句。7
答案:×31. 定义“int *a[3]”和“int (*a)[3]”具有相同的含义。答案:×32. 对指向一维数组的指针不能进行关系运算。答案:×33. {请写出下列程序的输出结果。#include <stdio.h>#dene N 4 int main() \{ int x1=1,x2=2,i; for(i=1;i<=N;i++) \{ printf("%4d%4d",x1,x2); if(i%2==0) printf("\n"); x1=x1+x2; x2=x2+x1; \} return 0;\}}答案:1 2 3 5 8 13 21 3434. {请写出下列程序的输出结果。#include <stdio.h>int fun(int a) \{ int b=0;static int c=3; b++;c++; return (a+b+c);\}int main() \{ 8
int a=2,i; for(i=0;i<3;i++)printf("%4d",fun(a));return 0;\}}答案:7, 8, 935. {请写出下列程序的输出结果。#include <stdio.h>int main() \{ char *str="abcde";printf("%c ",*str);printf("%c ",*str++);printf("%c ",*++str);printf("%c ",*(str++));printf("%c ",*(++str));return 0;\}}答案:a a c c e9