收藏 分销(赏)

C语言习题全集+答案.doc

上传人:人****来 文档编号:4342921 上传时间:2024-09-08 格式:DOC 页数:128 大小:657KB
下载 相关 举报
C语言习题全集+答案.doc_第1页
第1页 / 共128页
C语言习题全集+答案.doc_第2页
第2页 / 共128页
C语言习题全集+答案.doc_第3页
第3页 / 共128页
C语言习题全集+答案.doc_第4页
第4页 / 共128页
C语言习题全集+答案.doc_第5页
第5页 / 共128页
点击查看更多>>
资源描述

1、目 录第一单元 程序设计与语言1第二单元 顺序程序设计3第三单元 分支程序设计7第四单元 循环程序设计14第五单元 数 组23第六单元 函 数34第七单元 指 针42第八单元 结构体与共用体61第九单元 文 件78附加题82模拟试卷一102模拟试卷二108模拟试卷三114第一单元 程序设计与语言一、 选择题1 C语言得基本构成单位就是: 。A、 函数B、 函数与过程C、 超文本过程D、 子程序2 一个C语言程序总就是从 开始执行。A、 主过程 B、 主函数 C、 子程序 D、主程序 3 C语言得程序一行写不下时,可以 。A、 用逗号换行B、 用分号换行C、 在任意一空格处换行D、 用回车符换行

2、4 以下叙述不正确得就是: 。A、 在C程序中,语句之间必须要用分号;分隔B、 若a就是实型变量,C程序中a=10就是正确得,因为实型变量中允许存放整型数C、 在C程序中,无论就是整数还就是实数都能正确无误地表示D、 在C程序中,%就是只能用于整数运算得运算符5 以下不正确得C语言标识符就是 。A、 ABC B、 abc C、 a_bc D、 ab、c6 下列字符串就是标识符得就是: 。A、 _HJB、 9_studentC、 longD、 LINE 17 以下说法中正确得就是: 。A、 C语言程序总就是从第一个定义得函数开始执行B、 在C语言程序中,要调用得函数必须放在main函数中定义C、

3、 C语言程序总就是从main函数开始执行D、 C语言程序中得main函数必须放在程序得开始部分8 不合法得常量就是: 。A、 2B、 C、 3D、 4839 已知各变量得类型说明如下,则以下不符合C语言语法得表达式就是: 。int k,a,b;unsigned long w=5;double x=1、422;A、 x%(3)B、 w+=2C、 k=(a=2,b=3,a+b)D、 a+=a=+(b=4)*(a=3)10 在C语言中,字符型数据在内存中以 形式存放。A、 原码 B、 BCD码 C、 反码 D、 ASCII码11 若有定义:int a=7; float x=2、5; y=4、7;则表

4、达式x+a%3*(int)(x+y)%2/4得值就是: 。A、 2、B、 2、C、 3、D、 0、12 设有说明:char w; int x; float y; double z;则表达式w*x+zy值得数据类型为: 。A、 floatB、 charC、 intD、 double13 以下 就是不正确得转义字符。 A、 B、 C、 081 D、 014 若x为int型变量,则执行以下语句后,x得值为 。 x=6; x+=x=x*x; A、 36 B、 60 C、 60 D、 2415 字符串ABC得长度就是 。A、 11 B、 7 C、 5 D、 3二、 填空题1 一个函数由两部分组成,它们就

5、是 与 。2 一个C源程序至少包含一个 ,即 。3 设int a=12; 则表达式a/=a+a得值就是 。4 表达式x=(a=3,6*a)与表达式x=a=3,6*a分别就是 表达式与 表达式,两个表达式执行完得结果分别就是 与 ,x值分别就是 与 。5 在C语言中,实数有两种表示形式,即 与 。6 在C语言中,运算符得优先级最小得就是 运算符。第二单元 顺序程序设计一、 选择题1 若m为float型变量,则执行以下语句后得输出为 。 m=1234、123; printf(%8、3fn,m); printf(%10、3fn,m); A、 1234、123 B、 1234、123 C、 1234、

6、123 D、 1234、123 1234、123 1234、123 1234、123 、1232 若x,y,z均为int型变量,则执行以下语句后得输出为 。 x=(y=(z=10)+5)5; printf(x=%d,y=%d,z=%dn,x,y,z); y=(z=x=0,x+10); printf(x=%d,y=%d,z=%dn,x,y,z); A、 X=10,Y=15,Z=10B、 X=10,Y=10,Z=10 X=0,Y=10,Z=0 X=0,Y=10,Z=10 C、 X=10,Y=15,Z=10D、 X=10,Y=10,Z=10X=10,Y=10,Z=0 X=0,Y=10,Z=03 若x

7、就是int型变量,y就是float型变量,所用得scanf调用语句格式为: scanf(x=%d,y=%f,&x,&y); 则为了将数据10与66、6分别赋给x与y,正确得输入应就是: 。 A、 x=10,y=66、6 B、 10 66、6C、 1066、6 D、 x=10y=66、64 已知有变量定义:int a;char c;用scanf(“%d%c”,&a,&c);语句给a与c输入数据,使30存入a,字符b存入c,则正确得输入就是: 。A、 30b B、 30 bC、 30b D、 30b5 已知有变量定义:double x;long a; 要给a与x输入数据,正确得输入语句就是 。若要

8、输出a与x得值,正确得输出语句 。 A、 scanf(“%d%f”,&a,&x); B、 scanf(“%ld%f”,&a,&x); printf(“%d,%f”,a,x); printf(“%ld,%f”,a,x);C、 scanf(“%ld%lf”,&a,&x); D、 scanf(“%ld%lf”,&a,&x); printf(“%ld,%lf”,a,x); printf(“%ld,%f”,a,x);6 若有定义double x=1,y;则以下得语句执行得结果就是 。y=x+3/2; printf(“%f”,y); A、2、 B、2、5 C、2、 D、2 7 若a为整型变量,则以下语句

9、。a=2L; printf(%dn,a);A、 赋值不合法B、 输出为不确定得值C、 输出值为2D、 输出值为2二、 读程序写结果1 main int x,y; scanf(%2d%*2d%ld,&x,&y); printf(%dn,x+y); 执行时输入:2 main int x=4,y=0,z; x*=3+2; printf(%d,x);x*=y=z=4; printf(%d,x); 3 main float x; int i; x=3、6; i=(int)x; printf(x=%f,i=%d,x,i);4 main int a=2; a%=41; printf(%d, ,a); a+=

10、a*=a=a*=3; printf(%d,a);5 main int x=02,y=3; printf(x=%d,y=%d,x,y);6 main char c1=6,c2=0; printf(%c,%c,%d,%dn,c1,c2,c1c2,c1+c2);7 main int x,y,z; x=y=1; z=+x1; printf(%d,%dn,x,z); z+=y+; printf(%d,%dn,y,z); 三、 填空题1 在C语言中,字符型数据与整型数据之间可以通用,一个字符数据既能以 输出,也能以 输出。2 %ms表示如果串长小于m,则在m列范围内,字符串向 靠, 补空格。3 print

11、f函数得“格式控制”包括两部分,它们就是 与 。4 编写程序求矩形得面积与周长,矩形得长与宽由键盘输入,请填空。#include void main float l,w;printf(“please input length and width of the rectanglen”);scanf(“%f%f”,&l,&w);area= ;girth= ;5 编写程序,输入一个数字字符(09)存入变量c,把c转换成它所对应得整数存入n,如:字符0所对应得整数就就是0。请填空。void main char c; ;printf(“please input a char:n”);c= ;n= ;pr

12、intf( ,c,n);四、 编程1 将华氏温度转换为摄氏温度与绝对温度得公式分别为: c=(f32) (摄氏温度) k=273、16+c (绝对温度) 请编程序:当给出f时,求其相应摄氏温度与绝对温度。 测试数据: f=34 f=1002 写一个程序把极坐标(r,) (之单位为度)转换为直角坐标( X,Y)。转换公式就是: x=r、cos y=r、sin 测试数据: r=10 =45 r=20 =903 写一个程序,按如下格式输出数据。name number math english puterzhanghua 9901 80、50 87、0 80lina 9902 70、00 80、0 9

13、0wanggang 9903 87、00 76、0 78 4 输入3个双精度实数,分别求出它们得与、平均值、平方与以及平方与得开方,并输出所求出各个值。5 输入一个3位整数,求出该数每个位上得数字之与。如123,每个位上得数字与就就是1+2+3=6。第三单元 分支程序设计一、 选择题1 若x=0,y=3,z=3,以下表达式值为0得就是 A、 !x B、xy? 1:0 C、 x%2&y=z D、 y=x|z/32 以下运算符中优先级最低得运算符为 ,优先级最高得为 。 A、 & B、 ! C、 != D、 | E、 ?: F、 =3 若w=1,x=2,y=3,z=4,则条件表达式wx?w:y10

14、?x+100:x10); printf(%dn,w+|z+); printf(%dn,!wz); printf(%dn,w&z); A、 0 B、 1 C、 0 D、 0 1 1 1 1 1 1 0 0 1 1 1 05 分析以下程序, 下列说法正确得就是 。main int x=5,a=0,b=0;if(x=a+b) printf(* * * *n);else printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #6 分析以下程序, 下列说法正确得就是 。main int x=5,a=0,b=3;if(x

15、=a+b) printf(* * * *n);else printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #7 分析以下程序, 下列说法正确得就是 。main int x=0,a=0,b=0;if(x=a+b) printf(* * * *n);else printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #8 分析以下程序, 下列说法正确得就是 。main int x=0,a=0,b=0;if(x=a+b) prin

16、tf(* * * *n);else printf(# # # #n); A、 有语法错,不能通过编译 B、 通过编译,但不能连接C、 输出* * * * D、 输出# # # #二、 读程序写结果1 include main int a=1,b=4,k;k=(a+=0)&(!(b=z=x)?1:0); printf(%d,z=y & y=x);4 main int x=1,y=1,z=10; if(z0) x=3;else x=5;printf(%dt,x);if(z=y0) x=3;else if(y=0) x=5;else x=7;printf(%dt,x);printf(%dt,z);

17、5 main char x=B; switch(x) case A: printf(“It is A、”); case B: printf(“It is B、”); case C: printf(“It is C、”); default: printf(“other、”); 6 main int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break; case 2: a+;b+;break; case 3: a+;b+; printf(a=%d,b=%dn,a,b); 三、 填空题1 若a

18、=5,b=6,c=7,d=8,则表达式d=a/2&b=c|!a得值为 2 定义 int x=10,y,z;执行y=z=x;x=y=z后,变量x得值为 。3 分段函数:输入x,计算y值,输出y,其中:x0,y=(x+7)/3#include mainint x,y;scanf(%d,&x);if(x0) (1) ; (2) y=0; (3) y=(x+7)/3;printf(“%d”,y);4 由键盘输入三个数,计算以这三个数为边长得三角形面积。 (1) main (2) ; printf(Please enter 3 reals:n); scanf(%f%f%f,&a,&b,&c); if(

19、(3) ) s=(a+b+c)*0、5; s1=s*(sa)*(sb)*(sc); s= (4) ; printf(nArea of the triangle is %fn,s); (5) printf(It is not triangle!n); 5 有一方程a+bx+c=0,a,b,c得值由键盘输入,请编程序,打印出以下情况时方程得解。 (1) a=0,b0 (2) a=0,b=0,c=0 (3) a=0,b=0,c0 (4) a0,4ac0 (5) a0,4ac0#include math、hmain float a,b,c,d,pr,pi,x1,x2; scanf(%f%f%f,&a,

20、&b,&c); printf(a=%f,b=%f,c=%fn,a,b,c); if(a=0) if( (1) ) printf(only one solution x=%fn,c/b); else if( (2) )printf(no solutionn); else printf(x is any valuen); else d=b*b4*a*c; if( (3) ) x1=(b+sqrt(d)/ (4) ; x2=(bsqrt(d)/ (5) ; printf(x1=%6、2f, x2=%6、2fn,x1,x2); else pr=b/(2*a); (6) ; printf(x1=%6、2

21、f +%6、2fin,pr,pi); printf(x2=%6、2f %6、2fin,pr,pi); 6 投票表决器: 输入Y、y,打印agree 输入N、n,打印disagree 输入其她,打印lose main char c; scanf(%c,&c); (1) case Y:case y: printf(“agree”); (2) ;case N:case n: printf(“disagree”); (3) ; (4) :printf(“lose”);四、 编程1 写一程序求y值 (x值由键盘输入)。 2 输入一个字符,判断它如果就是小写字母输出其对应大写字母;如果就是大写字母输出其对

22、应小写字母;如果就是数字输出数字本身;如果就是空格,输出“space”;如果不就是上述情况,输出“other”。3 有三个数a、b、c,由键盘输入,输出其中最大得数。4 输入一个数,判断它能否被 3或者被 5整除, 如至少能被这两个数中得一个整除则将此数打印出来,否则不打印,编出程序。5 读入1到7之间得某个数,输出表示一星期中相应得某一天得单词:Monday、 Tuesday等等,用switch语句做。6 给出一百分制成绩,要求输出成绩等级A,B,C,D,E,90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。7 有一函数 请编程序计算y得值(x得值由键盘输入)。

23、第四单元 循环程序设计一、 选择题1 程序段如下:则以下说法中正确得就是: A 。int k=5;do k;while(k=0);A、 循环执行5次 B、 循环就是无限循环C、 循环体语句一次也不执行 D、 循环体语句执行一次2 设i与x都就是int类型,则for循环语句 B 。for(i=0,x=0;i=9&x!=876;i+) scanf(%d,&x);A、 最多执行10次 B、 最多执行9次C、 就是无限循环 D、 循环体一次也不执行3 下述for循环语句 B 。int i,k;for(i=0,k=1;k=1;i+,k+) printf(* * * *);A、 判断循环结束得条件非法 B

24、、 就是无限循环C、 只循环一次 D、 一次也不循环4 程序段如下:则以下说法中正确得就是: C 。int k=20;while(k=0) k=k+1;A、 while循环执行20次 B、 循环就是无限循环C、 循环体语句一次也不执行 D、 循环体语句执行一次5 下列程序段执行后k值为 A 。int k=0,i,j;for(i=0;i5;i+)for(j=0;j3;j+) k=k+1 ;A、 15 B、 3 C、 5 D、 86 程序段如下:则以下说法中不正确得就是: D 。#include mainint k=2,;while(k7) if(k%2) k=k+3; printf(“k=%dn

25、”,k);continue;k=k+1;printf(“k=%dn”,k);A、 k=k+3;执行一次 B、 k=k+1;执行2次C、 执行后k值为7 D、 循环体只执行一次二、 读程序写结果1 main int num=0; while(num=2) num+; printf(%dn,num); 1132 main int i=0,s=0; do s+=i*2+1; printf(i=%d,s=%dn,i,s); i+;while(s10); i=0,s=1i=1,s=4i=2,s=9i=3,s=163 #include main int i,m=1; for(i=5;i=1;i) m=(m

26、+1)*2;printf(m=%dn,m); m=4m=10m=22m=46m=944 指出下面三个程序得功能,当输入为:quert?时,它们得执行结果就是什么? #include main char c; c=getchar; while (c!=?) putchar(c); c=getchar; quert #include main char c; while (c=getchar)!=?) putchar(+c); #include main while (putchar(getchar)!=?); 5 #include main int i; for(i=1;i=5;i+) if(i

27、%2) putchar(); putchar(#); 6 main int a,b; for(a=1,b=1;a10) break; if(b%3=1) b+=3; continue; printf(a=%dn,a); 7 main int i=1; while (i=15) if (+i%3!=2) continue; else printf(%d ,i); printf(n); 8 #include void main int i,j; for(i=0;i=3;i+) for(j=0;j=i;j+) printf(%d,%d),i,j); printf(n); 9 main int i,j

28、,k; char space= ; for (i=0;i=5;i+) for (j=1;j=i;j+) printf(%c,space); for (k=0;k=5;k+) printf(%c,*); printf(n); 10 #include main int i,j,k=0; for (j=11;j=30;j+) if (k%10=0) printf(n); for (i=2;i=j1) printf(%dt,j);k+; 三、 填空题1 break语句只能用于 语句与 语句中。2 计算2+4+6+8+、+98+100mainint i, (1) ;for(i=2;i=100; (2)

29、) s+=i;3 求满足下式得 x,y,z X Y Z + Y Z Z 5 3 2 main int x,y,z,i,result=532; for (x=1; (1) ;x+) for (y=1; (2) ;y+)for ( (3) ; (4) ;z+) i= (5) +(100*y+10*z+z); if (i=result) printf(x=%d, y=%d, z=%dn,x,y,z); 4 求 Sna+aa+aaa+、+aa、a之值,其中 a就是一个数字。 例如 2+ 22 +222+2222( 此时n4),n由键盘输入。 main int a,n,count=1,Sn=0,Tn=0

30、; printf(请输入 a 与 n 得值:n); scanf(%d,%d,&a,&n); while (count= (1) ) Tn= (2) ; Sn= (3) ; a=a*10; (4) ;printf(a+aa+aaa+、=%dn,Sn);5 一球从 100米高度自由落下,每次落地后反跳回原来高度得一半,再落下,求它在第十次落地时,共经过多少米?第十次反弹多高? main float Sn=100、0,hn=Sn/2; int n; for (n=2;n= (1) ;n+) Sn= (2) ; hn= (3) ; printf(第10次落地时共经过%f米n,Sn); printf(第10次反弹%f米n,hn);6 打印出以下图形 * * * * * * * * * * * * * * * * * * * * * * * * * main int i,j,k;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服