ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:26.93KB ,
资源ID:1166563      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1166563.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序的设计习题与答案.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

程序的设计习题与答案.docx

1、程序的设计习题与答案2011-2012年度第一学期“C语言程序设计”期末考试复习提纲一、考试题型序号题型每题得分题量总分一选择题21530二填空2510三程序阅读4520四编程题1011015230二、题例:(一)项目二 数据类型、运算符和表达式选择题:1. 不合法的C语言整型常量是 A 。A. 012 B. 0x35 C. 123L D. 8E22. 不合法的C语言实型常量是 A 。A. E3 B. . 123 C. 6.2E4 D. 5.03. 不合法的C字符常量是 C 。A. 2 B. 101 C. AB D. n4 下列四组选项中,均是不合法的用户标识符的选项是 B 。A. W P_0

2、 doB. b-a goto intC. float la0 _AD. -123 abc TEMP5 下列四组选项中,均是合法转义字符的选项是 A 。A. ” nB. 017 ”C. 018 f xabD. 0 101 xlf6. 定义三个变量a、b、c,并分别赋初值为5。能实现该功能的语句是 C 。A. int a=b=c=5; B. int a,b,c=5; C. int a=5,b=5,c=5; D. int a=5;b=5;c=5;7. 若x,y,t均为int类型,则执行语句x=y=3;t=+x|+y;后,y的值是 D 。A. 不定值 B. 4 C. 1 D. 38 若x、i、j、k都

3、是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32)A 4 B. 16 C. 32 D. 529设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。A. float B. char C. int D. double10设以下变量均为int类型,则值不等于7的表达式是 C 。A. (x=y=6,x+y,x+1) B. (x=y=6,x+y,y+1) C. (x=6,x+1,y=6,x+y) D. (y=6,y+1,x=y,x+1)填空题:1 若有定义int m=5,y=2;,则计算表达式y+=

4、y-=m*=y后的y值是 -16 。2 若s是int型变量,且s6,则表达式s%2+(s+1)%2的值为 1 。3. 若a是int型变量,则表达式(a=4*5,a*2),a+6的值为 26 。4 若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为 12 ,计算表达式x=a=4,6*2后的x 值为 4 。5. 若a是int型变量,则计算表达式a=25/3%3后a的值为 2 。6 若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值为 10 ,n的值为 6 。7. 若有定义:char c=010;则变量c中包含的字符个数为 1 。8 若有定义:int

5、x=3,y=2;float a=2.5,b=3.5; 则下面表达式的值为 1 。 (x+y)%2+(int)a/(int)b9. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为 102 。阅读题:(写出程序运行结果)1. #include main() int x=97; char y=b; printf(“%c,%d”, x, y); 答:a,982. #include main() int x=6; x+=x-=x*x; printf(“x=%dn”, x); 答:x=60 3. #include main() int x; (x=4*5,x*

6、5),x+25; printf(“x=%dn”, x); 答: x=20 4. #include main() int i=1,j; j= -i+; printf(“%dn”, j); 答:1编程题:(顺序结构编程)1. 输入华氏温度,输出摄氏温度。C=5/9*(F-32)#include main() float C,F; printf(请输入华氏温度F:); scanf(%f,&F); C=5.0/9*(F-32); printf(%.2f=%.2fn,F,C);2. 输入底面半径r和高度h,计算并输出圆柱体的体积v。v=r2h(取3.14,v计算结果保留到小数点后两位)#include

7、#define PI 3.14main() float r,h,V; printf(请输入底面半径r和高度h:); scanf(%f%f,&r,&h); V=PI*r*r*h; printf(圆柱体的体积V=%.2fn,V);3从键盘输入一扇形的半径和角度,求扇形的面积和周长。#include #define PI 3.14main() float r,n,S,C; printf(请输入扇形的半径r和角度n:); scanf(%f%f,&r,&n); S=(n*PI*r*r)/360; C=(n*PI*r)/180+2*r; printf(扇形的面积S=%.2f,周长C=%.2fn,S,C);

8、4. 从键盘输入学生的三门考试成绩,计算并输出平均成绩。#include main() float a,b,c,avg; printf(请输入学生三门考试的成绩:); scanf(%f%f%f,&a,&b,&c); avg=(a+b+c)/3; /*求平均成绩*/ printf(平均成绩为:%.2fn,avg);(二)项目三 C语言程序控制结构选择题:1. 下列for循环的循环次数是D 。int i=0,j;for (j=10;i=j=10;i+,j-)printf(”ok”);A. 0次 B. 1次 C. 10次 D. 无限次2. 下列for循环的循环次数是 B。int i=0,j=0; f

9、or(;!j&i=5;i+)j+;A5次 B1次 C无限 D6次3. 语句for(i=0,j=0;i=100;i+)j=j+i;运行后j的值为 D。A500 B. 100 C. 5000 D. 50504、有以下程序:#includemain()charc;while(c=getchar()!=?)putchar(- -c);程序运行时,如果从键盘输入:Y?N?,则输出结果为 D 。A. Y B. XY C. YX D. X5.下面的程序段执行时,若从键盘输入5,则输出为D。int a;scanf(”%d”,&a);if (a-5)printf(”%dn”,a+);else printf(”%

10、dn”,a);A7 B6 C5 D46. 若int a=5;则执行下列语句后打印的结果为A。do printf (“%2dn”, a-); while (!a);A5 B不打印任何结果 C4 D陷入死循环7.语句for(i=0,j=0;i=100;i+)j=j+i;运行后j的值为D。A500B100C5000D50508下面程序段的运行结果是 C 。 int n=0; while(n+=2);printf(“%d”,n); A. 2 B.3 C.4 D.有语法错误9若i为整型变量,则以下循环执行次数是 B 。 for(i=2;i=0;)printf(“%d”,i- -);A. 无限次 B. 0

11、次 C. 1次 D. 2次10执行语句for(i=1;i+4; );后变量i的值是 C 。和第八题相似A. 3 B. 4 C. 5 D. 不定填空题:1、若输入字符串:abcdef,则以下while循环体将执行_0 _次。While(ch=getchar( )= =d) printf(“*”);2、下面程序段的运行结果是_a=-5_。 i=1;a=0;s=1; doa=a+s*i;s=-s;i+;while(i=0 & c=9 )n+; c=getchar(); 4. 以下程序中,while语句的循环次数是 无限次 。 #include main() int i=0; while(i10) i

12、f(i1) continue; if(i=5) break; i+; printf(“%d”,i); 5下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请填空。 #include main() int r,m,n; scanf(“%d%d”,&m,&n); if(mn)_ r=m;m=n;n=r_; r=m%n; while(r)m=n;n=r;r=_ m%n _; printf(“%dn”,n); 6. 执行以下程序后,输出“#”的个数是_6_。 #include main() int i,j; for(i=1;i5;i+) for(j=2;j=i;j+) putchar(#);

13、阅读题:(写出程序运行结果)1.#include main() int y=10; doy-;while(-y); printf(“%dn”,y-); 答:0 2. #include main() intx=15; while(x10&x50) x+; if(x/3)x+;break; elsecontinue; printf(“%dn”,x);答: 17 3. #include main()int a=1,b=0; for( ; a3; a+) switch(a+) case 1:b-;break; case 2:b+; case 3:b+=3; printf(“%dn”,b); 答:1 4

14、. #include main()int s,i;for(s=0,i=1; i3; i+,s+=i); printf(“%dn”,s); 答: 5编程题:1. 计算s=1+1/2+1/3+1/n#include main() int i,n; float s; scanf(%d,&n); for(s=0.0,i=1;i=n;i+) s=s+1.0/(i); printf(s=%fn,s);2. 求和:从1加到100#include main() int n,s; for(s=0,n=1;n=100;n+) s=s+n; printf(s=%dn,s);3. 如果0n17, 使之能正确地计算n!

15、#include main() int n,i; long s; printf(请输入整数n:); scanf(%d,&n); if(n0&n17) for(i=2,s=1;i=n;i+) s=s*i; printf(%d!=%dn,n,s); else printf(输入错误!请输入1-16中的整数!n);4. 如果0n8,请计算 s=1!+2!+3!+n! ,并打印输出计算结果s。(注:n!=1*2*3*n)#include main() int n,i,s,fact; printf(请输入整数n:); scanf(%d,&n); if(n0&n8) for(i=1,s=0,fact=1;

16、i=n;i+) fact=fact*i; /*求n!*/ s=s+fact; /*求s=1!+2!+3!+n!*/ printf(s=%dn,s); else printf(输入错误,请输入1-7中的整数!n);5. 从键盘输入一个大于1的整数,输入是否为素数,是,则输出“YES”,否则输出“NO”#include main() int n,i; printf(请输入整数n:); scanf(%d,&n); if(n1) for(i=2;in;i+) if(n%i=0)break; if(i=n)printf(YESn); else printf(NOn); else printf(输入错误,

17、请输入大于1的整数!n);(三)项目四 数组选择题:1若二维数组a有m列,则在aij前的元素个数为_B_.(注意列)A. j*m+I B. i*m+j C. i*m+j-1 D. i*m+j+12以下对二维数组a的正确说明是_C_.A. int a3; B. float a(3,4); C. double a14; D. float a(3)(4);3若有说明:int x3=1,3,5,7,9,11;,则x数组的行数为_A_。A.2 B. 3 C. 4 D. 无确定值4若有以下定义int a =1,2,3,4,5,6,7;char c1=b,c2=2;则数值不为2的表达式是_A_。A. c2-

18、0 B. a1 C. d-c1 D. a3-c25以下程序的输出结果是_B_。main( ) int a33=1,2,3,4,5,6,i,j,s=0; for(i=0;i3;i+) for(j=0;j=i;j+) s+=aij; printf(“%dn”,s);A.18 B. 19 C. 20 D. 216有两个字符数组a、b,则以下正确的输入语句是_B_.A. gets(a,b); B. scanf(“%s%s”,a,b);C. scanf(“%s%s”,&a,&b); D. gets(“a”),gets(“b”);7当执行下面的程序时,如果输入ABC,则输出结果为_A_。#include

19、#include main()char ss10=“1,2,3,4,5”; gets(ss);strcat(ss,”6789”);printf(”%sn”,ss);A. ABC6789 B. BC67 C. 12345ABC6 D. ABC4567898判断字符串s1是否大于字符串s2,应当使用_D_.A. if(s1s2) B. if(strcmp(s1,s2)C. if(strcmp(s2,s1)0) D. if(strcmp(s1,s2)0)填空题:1下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main() int aN,i; for(i=0;iN;i+)

20、scanf(“%d”,_ &ai_); for(i=0;iN;i+) if (_i%4=0_) _ printf(“n”); _ printf(“%3d”,ai); printf(“n”);2若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12的初值是_0_,a21的初值是_6_。3下面程序的运行结果是_7,3_。main( ) int a10=10,2,-13,21,11,67,-78,8,90,-53; int i,x=0, y=0; for(i=0;i0) x+;else y+;printf(“%d,%dn”, x, y );4.下面程序的功能是:输入50个数,按逆

21、序输出,请填空。 main( ) int a50,i; for(i=0;i=0;_ i- -_) printf(“%4d”,ai); 5. 下面程序可求出矩阵a的主对角线上的元素之和,请填空。 main() int a33=1,3,5,7,9,11,13,15,17,sum=0,i,j; for(i=0;i3;i+) for(j=0;j3;j+) if(_i=j _)sum=sum+_ aij_; printf(“sum=%dn”,sum);6. 下面程序的功能是在三个字符串中找出最小的,请填空。 #include #includemain() char s20,str320; int i;

22、for(i=0;i3;i+)gets(stri); strcpy(s,_ str0_);if(strcmp(str1,s)0)strcpy(s,str1); if(strcmp(str2,s)0)strcpy(s,str2); printf(“%sn”, _s_);阅读题:1. #include main() int a10, i; for(i=9; i=0;i-) ai=10 - i; printf(“%d%d%dn”,a2,a5,a8);答:852 2. #include main() int a33=1,2,3,4,5,6,7,8,9, i,s=0; for(i=0;i=2;i+) s=

23、s+aii; printf(“s=%dn”,s);答: s=153. #include main() int a44=1,3,5,2,4,6,3,5,7; printf(“%d%d%d%dn”,a03,a12,a21,a30);答:06504. #include #include main() char s10=“a”,”good”,”world”; strcat(s0,s1); printf(“%s”,s0);答: agood5. #include main() char s=“abcdef”; s3=0; printf(“%sn”,s);答: abc 编程题:1. 从键盘输入10个整数,存

24、入数组a,从数组a的第二个元素起,分别将后项减前项之差存入数组b,按每行3个元素输出数组b。#include main() int a10,b10,i,j; for(i=0;i10;i+) scanf(%d,&ai); for(i=0,j=0;i9;i+,j+) bj=ai+1-ai; printf(%5d,bj); if(i%3=2)printf(n); 2. 输入一个字符串,将其中的大写字符转换成小写,其它的不做转换,然后输出得到的字符串。#include main() int i; char s100; scanf(%s,s); for(i=0;si!=0;i+) if(si=A&si=Z) si=si+32; for(i=0;si!=0;i+) printf(%c,si); printf(n);3. 读入20个整数,统计非负数个数,并计算非负数之和#include main() int a20,i,n,s=0; for(i=0;i20;i+) scanf(%d,&ai); for(i=0;i=0) n+; s=s+ai; printf(非

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2