C语言程序设计习题集及答案.doc

上传人:坚持 文档编号:4208959 上传时间:2019-10-04 格式:DOC 页数:36 大小:237KB
下载 相关 举报
C语言程序设计习题集及答案.doc_第1页
第1页 / 共36页
C语言程序设计习题集及答案.doc_第2页
第2页 / 共36页
C语言程序设计习题集及答案.doc_第3页
第3页 / 共36页
C语言程序设计习题集及答案.doc_第4页
第4页 / 共36页
C语言程序设计习题集及答案.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、基础知识 一 单项选择题(每题 2 分,共 44 分) 1 以下叙述正确的是。 A C 程序基本组成单位是语句 B C 程序每一行只能写一个语句 C 简单 C 语句必须以分号作为结束符 D 注释语句可以嵌套 2 一个 C 语言程序是从开始执行的。 A 程序中第一个函数 B 名为 main 的函数 C 包含文件(头文件)的第一个函数 D 程序中的第一个语句 3 请选出合法的 C 语言赋值语句。 A a=b=58 B i+; C a=58,b=58 D k=int(a+b); 4 下面标识符中,合法的用户标识符是 。 A 1abc B include C a-b-c123 D char 5 以下所

2、列的 C 语言整形常量中,正确的是。 A 0x10 B 0976 C 076L D 01ff 6 C 语言中下列运算符的操作数必须为整型的是。 A % B + C / D = 7 设 a 和 b 均为 int 型变量,则执行以下语句后的输出为。 int a=20; int b=3; printf(“%dn“,a+=(b%=2); A 20 B 21 C 0 D 23 8 已知 int i;,则执行语句 i=2.6;后,i 的值为。 A 2 B 3 C 2.6 D 不确定 9 以下合法的字符常量为。 A ab B 482 C D xaf 10 若 y 为 int 型变量,则执行以下语句后,y 的

3、值是。 y=8; y+=y-=y*y; A 64 B 56 C 112 D 48 11 以下合法的浮点型常量是。 A e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +5 12 设 int 数据占用两个字节,float 数据占用四个字节,double 数据占用 8 个字节,且已知 float a=2;int b=3;则执行下列 语句输出为。 printf(“%d“,sizeof(a*b)+2/5); A 4 B 8 C 6 D 7 13 设 int 型占 2 个字节,且 int i=-2;,则语句 printf(“%u“,i);的输出结果为。 A 0 B -2 C 655

4、34 D 65535 14 若 x、y、z 均为整型常量,且 a=100,则执行下列语句后的 z 值为。 x=a+; y=-a; z=x+y-a-; A 100 B 400 C 200 D 300 15 若有以下定义和语句:int u=010,v=0x10,w=10,printf(“%d,%d,%dn“,u,v,w);,则输出结果是。 A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,10 16 设 x、y 为 int 型变量,则执行下列语句后,y 的值是。 x=5; y=x+*x+; y=-y*-y; A 529 B 2401 C 1209 D 625 17 假设在程

5、序中 a,b,c 均被定义成整型,并且已赋大于 1 的值,则下列能正确表示代数式abc1 的表达式是。 A 1/a*b*c B 1/(a*b*c) C 1/a/b/(float)c D 1.0/a/b/c 18 若有定义:int a=8,b=5,c;char d=A;,则执行语句 c=a/b+d%a+0.5;后 c 的值为。 A 2 B 2.5 C 3 D 类型不一致,无法计算,编译出错 19 在有以下程序: main() int i=10,j=1; i=i+j+; printf(“%d,%d,%dn“,i+,+j,i); 执行后输出结果是。 A 12,3,11 B 12,2,11 C 11,

6、3,11 D 12,3,12 20 已知 int i=65;,则 putchar(i);printf(“%d“,i);printf(“%c“,i);的输出结果为。 A A,65,A B 65,65,A C A,A,65 D A,A,A 21 已知 int y,a,i=1;,则语句 printf(“%d,%d“,-i+,(y=a=3.6*3);的输出结果为。 A -1,10 B -2,1.8 C 0,3 D 1,18 22 有以下程序: main() char a,b,c,d; a=; b=xbc; c=0xab; d=023; printf(“%c%c%c%cn“,a,b,c,d); 编译时出

7、现错误,以下叙述中正确的是。 A 程序中只有 a=;语句不正确 B b=xbc ;语句不正确 C d=023;语句不正确 D a=;和 c=0xab;语句都不正确 二 填空题(第 1 题 2 分,其余每题 3 分,共 56 分) 1 设 x 为 int 型变量,请写出描述“x 是偶数”的表达式是。 2 已知 scanf(“a=%d,b=%d,c=%d“,,若从键盘输入 2、3、4 三个数分别作为变量 a、b、c 的值则正确的输入形式是 。 3 设有语句 int a=3;,则执行了语句 a+=a-=a*a 后,变量 a 的值是。 4 以下程序的输出结果是。 main() int a=-10,b=

8、-3; printf(“%dn“,-a+); printf(“%dn“,-a+b); 5 以下程序的输出结果是。 main() char c; c=0362; printf(“%dn“,c); 6 以下程序段(n 所赋的是八进制数)执行后输出结果是。 int m=32767,n=032767; printf(“%d,%on“,m,n); 7 字符串“name101ddressbxaf“ 的长度为:。 8 有以下程序段: int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%dn“,m,c,n); 若从键盘上输入:10A10,则输出结果是。

9、9 以下程序的输出结果是。 main() printf(“%d,%o,%xn“,10,10,10); printf(“%d,%d,%dn“,10,010,0x10); printf(“%d,%xn“,012,012); 10 设 a、b、c 为整形变量,且 a=2、b=3、c=4,则执行完语句 a*=16+(b+)-(+c);之后,变量 a 的值为。 11 以下程序的输出结果为。 main() int x=023; printf(“%xn“,-x); 12 以下程序的结果为。 main() int a=2,b=3,c,d; c=(a+)+(a+)+(a+); d=(+b)+(+b)+(+b);

10、 printf(“a=%d c=%dn“,a,c); printf(“b=%d d=%dn“,a,d); 13 以下程序 main() char ch1,ch2,ch3; scanf(“%c%c%c“, printf(“%c%c%c%c%c“,ch1,#,ch2,#,ch3); 当输入 ABC 时运行结果为 【1】 ,当输入 A BC 时运行结果为 【2】 。 14 若有定义:float x;,以下程序段的输出结果是。 x=5.16894; printf(“%fn“,(int)(x*1000+0.5)/(float)1000); 15 以下程序的功能是:输入一个小写字母,输出对应的大写字母,将

11、程序补充完整。 main() char ch; 【1】 /* 从键盘输入一个小写字母 */ 【2】 /* 将该字母转换为大写字母 */ 【3】 /* 输出转换后的结果 */ 16 当运行以下程序时,在键盘上从第一列开始输入 9876543210(此处代表回车),则程序的输出结果是。 main() int a; float b,c; scanf(“%2d%3f%4f“, printf(“na=%d,b=%f,c=%fn“,a,b,c); 17 以下程序的运行结果是。 main() printf(“%12.5fn“,123.1234567); printf(“%12fn“,123.1234567)

12、; printf(“%12.8dn“,12345); printf(“%12.8sn“,“abcdefghij“); 18 运行以下程序时,如从键盘上输入 abcdefg,则输出结果是。 main() char ch1,ch2,ch3; ch1=getchar(); ch2=getchar(); ch3=getchar(); putchar(ch1); putchar(ch2); putchar(ch3); putchar(n); 19 运行以下程序时,如从键盘上输入:a=3,b=535,35.12abc后,结果是。 main() int a,b; float x,y; char c1,c2;

13、 scanf(“a=%d,b=%d“, scanf(“%f,%e“, scanf(“%c%c%c“, printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn“,a,b,x,y,c1,c2); 顺序、选择结构程序设计 一 单项选择题(每题 2 分,共 40 分) 1 以下程序运行后的输出结果是。 main() int a=0,b=0; a=10; b=20; printf(“a+b=%dn“,a+b); A a+b=10 B a+b=30 C 30 D 出错 2 以下程序运行后的输出结果是。 main() double d=3.2; int x,y; x=1.2; y=

14、(x+3.8)/5.0; printf(“%dn“,d*y); A 3 B 3.2 C 0 D 3.07 3 以下程序运行后的输出结果是。 main() double d; float f; long l; int i; i=f=l=d=20/3; printf(“%d %ld %.1f %.1fn“,i,l,f,d); 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 4 以下程序运行后的输出结果是。 main() int a=1,b=2; a=a+b; b=a-b; a=a-b; printf(“%d,%dn“,a,b); A

15、1,2 B 1,1 C 2,2 D 2,1 5 以下程序运行后的输出结果是。 main() int x,y,z; x=y=2; z=3; y=x+-1; printf(“%d %d “,x,y); y=+x-1; printf(“%d %dn“,x,y); y=z-1; printf(“%d %d “,z,x); y=-z-1; printf(“%d %dn“,z,x); A 3 1 4 3 B 3 1 3 3 C 3 1 4 3 D 2 1 3 2 2 4 1 4 2 4 2 2 2 4 1 2 1 3 1 2 6 以下程序运行后的输出结果是。 main() int x,y,z; x=y=1

16、; z=x+,y+,+y; printf(“%d,%d,%dn“,x,y,z); A 2,3,3 B 2,3,2 C 2,3,1 D 2,2,1 7 以下程序运行后的输出结果是。 main() int x=4,y=7; x-=y; y+=x; printf(“%d %dn“,x,y); A 4 7 B -3 -3 C -3 11 D -3 4 8 以下程序运行后的输出结果是。 main() unsigned short a=65536; int b; printf(“%dn“,b=a); A 65536 B 0 C 1 D -1 9 以下程序: #include main() char c1,

17、c2,c3,c4,c5,c6; scanf(“%c%c%c%c“, c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“%c%cn“,c5,c6); 程序运行后,若从键盘输入(从第 1 列开始) 123 45678 则输出结果是。 A 1267 B 1256 C 1278 D 1245 10 设 a、b 和 c 都是 int 型变量,且 a=3,b=0,c=5,则以下值为 0 的表达式是。 A a if(a20) break; while(a=14); A a=12 y=12 B a=12 y=12 a=14 y=16 a

18、=16 y=28 a=16 y=20 a=18 y=24 C a=12 y=12 D a=12 y=12 a=14 y=26 a=14 y=44 6 以下程序的执行结果是。 main() int x=23; do printf(“%d“,x-); while(!x); A 321 B 23 C 不输出任何内容 D 陷入死循环 7 有以下程序段,输出结果是。 int x=3; do printf(“%d “,x-=2); while(!(- -x); A 1 B 3 0 C 1 -2 D 死循环 8 以下程序的输出结果是。 main() int a=0,i; for(i=1;i5) switch

19、(a) case 1:a+; case 4:a+=4; case 5:a+=5;break; default:a-=5; printf(“%dn“,a); A 12 B 7 C 5 D 13 18 对于下面的 for 循环语句,可以断定它执行次循环。 for(x=0,y=0;(y!=67) printf(“%c“,ch); printf(“n“); A ABCdef B abcDEF C abc D DEF 20 当执行以下程序时,。 int a=1; do a=a*a; while(!a); A 循环体将执行 1 次 B 循环体将执行 2 次 C 循环体将执行无限次 D 系统将提示有语法错误

20、 二 填空题(每空 3 分,共 33 分) 1 若输入字符串:abcde,则以下 while 循环体将执行次。 while(ch=getchar()=e) printf(“*“); 2 以下 while 循环执行的次数是。 k=0; while(k=10) k=k+1; 3 下列程序的输出结果是。 main() int x=0,y=5,z=3; while(z0 printf(“%d,%d,%dn“,x,y,z); 4 下面程序的功能是:计算 1 到 10 之间的奇数之和及偶数之和,请填空。 main() int a,b,c,i; a=c=0; for(i=0;i0;j-) printf(“%

21、d“,aj); A 1000 B 1001 C 1010 D 1100 9 以下对二维数组 a 的正确定义(说明)的是。 A int a3; B float a(3,4); Cdouble a14; D float a(3)(4); 10 若有定义(说明)int a34;,则对数组 a 的元素的引用非法的是。 A a22*1 B a13 C a4-20 D a04 11 以下不能对二维数组 a 进行正确初始化的语句是。 A int a23=0; B int a3=1,2,0; C int a23=1,2,3,4,5,6; D int a3=1,2,3,4,5,6; 12 下列数组定义语句中,正

22、确的是。 A char a=a,b,c,d,e,f; B char a23=a,b; C char a3=a,b,c,d,e,f; D char a=a,b,c,d,e,f; 13 下列程序运行后的输出结果是。 main() int a44,i,j,k; for(i=0;i=0;i-) ai=10-i; printf(“%d%d%dn“,a2,a5,a8); 4 下列程序运行的结果是。 main() char ch7=“65ab21“; int i,s=0; for(i=0;chi=0 i+=2) s=10*s+chi-0; printf(“%dn“,s); 5 有定义语句:char s100

23、,d100;int j=0,i=0;且 s 中已赋字符串,请填空以实现字符串复制。 (注意:不得使用逗 号表达式) while(si) dj=; j+ ; dj=0; 6 下面程序运行的结果是。 main() char s=“abcdef“; s3=0; printf(“%sn“,s); 7 以下程序的输出结果是。 main() char ch35=“AAAA“,“BBB“,“CC“; printf(“%s“n“,ch1); 8 以下程序的输出结果是。 main() char ch=“abc“,x34; int i; for(i=0;i0) fun(x/2); printf(“%d “,x);

24、 main() fun(3); printf(“n“); 9 以下程序运行结果是。 int a=1; int f(int c) static int a=2; c=c+1; return (a+)+c; main() int i,k=0; for(i=0;in); printf(“%dn“,(+p)-n); printf(“%cn“,+(*p-c); A 11 B 11 C 10 D 10 20 20 20 20 c b c b 8 已知 struct student char *name; int student_no; char grade; ; struct student temp,*

25、p= temp.name=“chou“; 则下面不正确的是。 表达式 值 A p-name chou B (*p)-name+2 h C *p-name+2 e D *(p-name+2) o 9 下面程序运行后,其输出结果是。 #include struct tree int x; char *s; t; func(struct tree t) t.x=10; t.s=“computer“; return 0; main() t.x=1; t.s=“minicomputer“; func(t); printf(“%d,%sn“,t.x,t.s); A 10,computer B 1,mini

26、computer C 1,computer D 10,minicomputer 10 下列程序的输出结果是。 #include main() union int i2; long k; char c4; t,*s= s-i0=0x39; s-i1=0x38; printf(“%lx “,s-k); printf(“%cn“,s-c0); A 390038 39 B 380039 9 C 3938 38 D 3839 8 11 若已定义了如下的共用体类型变量 x,则 x 所占用的内存字节数为。 union data int i; char cha; double f; x; A 7 B 11 C

27、 8 D 10 12 如下说明语句: enum A A0=1,A1=3,A2,A3,A4,A5; enum A B; 执行 B=A3; printf(“%dn“ ,B); 输出是。 A 5 B 3 C 2 D 编译时出错 13 有以下说明语句,则结构变量 s 的成员 num 的不正确引用是。 struct student int num; int age; s,*p; A s.num B *p.num C p-num D (*p).num 14 以下各选项试图说明一种新的类型名,其中正确的是 。 A typedef integer int; B typedef integer=int; C t

28、ypedef int integer; D typedef int=integer; 15 运行下面程序,其输出结果是。 #include struct sample int a,b; char *ch; ; main() struct sample arg; arg.a=1000;arg.b=100;arg.ch=“abcd“; f1(arg); f1(struct sample param) param.a+=param.b; param.ch2=x; printf(“%dn“,param.a); printf(“%sn“,param.ch); A 1000 B 1100 C 1100 D

29、 100 abcd abcd abxd abcd 16 fwrite 函数的一般调用形式是。 A fwrite(buffer,count,size,fp); B fwrite(fp,size,count,buffer); C fwrite(fp,count,size,buffer); D fwrite(buffer,size,count,fp); 17 C 语言文件操作函数 fread(buffer,size,n,fp)的功能是。 A 从文件 fp 中读 n 个字节存入 buffer B 从文件 fp 中读 n 个大小为 size 字节的数据项存入 buffer 中 C 从文件 fp 中读入

30、n 个字节放入大小为 size 字节的缓冲区 buffer 中 D 从文件 fp 中读入 n 个字符数据放入 buffer 中 18 若有如下定义: struct data int i; char ch; float f; b; 则结构体变量 b 占用内存的字节数是 。 A 7 B 4 C 1 D 2 习题集答案 基础知识 一 单项选择题(每题 2 分,共 44 分) 1-5 6-10 11-15 16-22 二 填空题(第 1 题 2 分,其余每题 3 分,共 56 分) 1 x%2=0 11 12 2 a=2,b=3,c=4 3 -12 12 a=5 c=6 b=5 d=18 4 10 1

31、3 【1】A#B#C 【2】A# #B 5 -14 14 5.169000 6 32767,32767 15 【1】scanf(“%c“ , 【2】ch-=32; 【3】printf(“%cn“,ch); 7 15 16 a=98,b=765.000000,c=4321.000000 8 10,A,10 17 123.12346 123.123457 00012345 abcdefgh 9 10,12,a 10,8,16 10,a 18 abc 10 28 19 a=3,b=5,x=35.000000,y=35.119999,c1= a,c2=b C B B B C A B A D C C B

32、 C A A A D A C A A D 顺序、选择结构程序设计 一 单项选择题(每题 2 分,共 40 分) 1-5 6-10 11-15 16-20 二 填空题(每空 3 分,共 30 分) 1 9,10 6 20 2 000 7 8,9 3 i= 11 j= 15 k= 33 8 (x=y) 【4】 循环结构程序设计 一 单项选择题(每题 2 分,共 40 分) 1-5 6-10 11-15 16-20 二 填空题(每空 3 分,共 33 分) 1 0 5 【1】i10 【2】j%3 2 无限多次 6 5 3 3,2,-1 7 18 或 19 4 【1】b=i+1 【2】c-11 8 【

33、1】1.0/(i*i) 【2】sqrt(6*s) 三 程序填空题(每空 3 分,共 27 分) 1 【1】i=0 3 【1】n=999;n+ 【2】n/10%10 【3】n=i*i*i+j*j*j+k*k*k 数组 一 单项选择题(每题 2 分,共 40 分) 1-5 6-10 11-15 16-20 二 填空题(每空 3 分,共 24 分) 1 20 5 si+ 2 10 6 abc 3 852 7 “BBB“ 4 6 8 abcbcc 三 程序填空题(每空 3 分,共 36 分) 1 【1】a 【2】a 【3】sum/n 【4】xiave 2 【1】i=0;in;i+ 【2】j=i;jn;

34、j+ 【3】s=s*xij 3 【1】11 或者大于 11 的任何整数 【2】 break 【3】ap=x 或者 ai+1=x 4 【1】i+ 【2】si+j=0 函数 一 单项选择题(每题 2 分,共 40 分) 1-5 6-10 11-15 16-20 二 填空题(每空 3 分,共 30 分) 1 2 6 321 2 自动 7 xyz#zyx 3 静态外部变量 8 1 3 4 值传递 9 14 D D A B D D B B C D C C C A B C C A D A D D A B A D C C D A D C A A D A B C D C 5 15,35 10 m=4 k=4

35、i=5 k=5 三 程序填空题(每空 3 分,共 30 分) 【1】 n=k*k; 【6】 n*f2(n-1) 【2】 continue 【7】 1 【3】 break 【8】 i=n 【4】 n/10%10 【9】 exp+f1(x,n)/f2(n) 【5】 int x,int y,iny z 【10】exp 指针 一 单项选择题(每题 2 分,共 40 分) 1-5 6-10 11-15 16-20 二 填空题(每空 3 分,共 30 分) 1 2 5 2 1 2468 6 12 2 2 5 6 12 3 4 7 a0 4 55 7 a3 三 程序填空题(每空 3 分,共 30 分) 【1】 str0 【6】 stri 【2】 *sp=stri 【7】 j=i 【3】 *p 【8】 k+1 【4】 *p-0 【9】 a+1 【5】 j- 【10】n%10+0 结构体 文件 单项选择题(18 题每题 5 分,918 题每题 6 分,共 100 分) 1-5 6-10 11-15 16-18 B B B A C D A C B B D A D A A B A C C A A D B D C B A B B B C A B C C D B A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。