c语言程序设计教程2014年韩立毛徐秀芳书后练习试题参考答案解析_第1页
c语言程序设计教程2014年韩立毛徐秀芳书后练习试题参考答案解析_第2页
c语言程序设计教程2014年韩立毛徐秀芳书后练习试题参考答案解析_第3页
c语言程序设计教程2014年韩立毛徐秀芳书后练习试题参考答案解析_第4页
c语言程序设计教程2014年韩立毛徐秀芳书后练习试题参考答案解析_第5页
已阅读5页,还剩62页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、完美.格式.编辑练习题1参考答案、选择题序号12345678参考答案ACADCCCA二、填空题1. 程序设计语言主要分为以下三类:机器语言、汇编语言 和高级语言。2. 在C语言中,一个函数一般由两个部分组成,它们是函数首部和 函数体。3. C程序开发过程的一般步骤为:源程序的编辑、编译、 连接和运行。4. C程序源文件的扩展名为 虫_,编译成功后产生的文件扩展名为辿,连接成功后产生文件扩展名为.exe 。三、应用题略练习题2参考答案、选择题序号12345678910参考答案BACCBABBDC序号1112131415参考答案ABCAC、填空题1. 通常一个字节包含 8个二进制位。在一个字节中能

2、存放的最大(十进制)整数是 255 (无符号),127 (带符号),最小(十进制)整数是 -128 ,它的二进制数的形式是 10000000。2. 在C语言中,十进制数30的八进制数表示形式是036,十六进制数表示形式是 0x1e,在内存中它的二进制数表示形式是0000000000011110。3. 条件“ 20<x<30 或 x<-100 ”的 C语言表达式是x>20&&x<30|x<-100。4. 若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_6,b值为_4,c值为_2。5. 已知int y; float

3、 x=-3;,执行语句y=x% 2;后,变量y的值为 语句出错。6. 字符串” ab034x79 "的长度为5。7. 在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为4; 一个double型数据在内存中所占的字节数为_8。8. 若s是int型变量,且s=6,则s%2+(s+1)%2表达式的值为_J。9. 表达式 pow(2.8,sqrt(double(x)值的数据类型为double。10. 若a是int型变量,则表达式(a=4*5, a*2), a+6 的值为 26。11. 若a是int型变量,则执行表达式 a=25/3%3后a的值为 2。12. 若i为

4、int整型变量且赋值为6,则运算i+后表达式的值是6,变量i的值是 7。13. 若x为int型变量,执行语句:x=10;x+=x-=x-x;则x的值为 20。14. 若x和y为double型变量,则表达式 x=1,y=x+3/2 的值是 2.000000。15. (-b+sqrt(b*b-4*a*c)/(2*a)的数学式子是-b+ 乂 (bA2-4ac)】/2a16. sqrt(p*(p-a)*(p-b)*(p-c)的数学式子是V p*(p-a)*(p-b)*(p-c)l。17. 判断某一年份是否为闰年的表达式是(year%4=0|year%100=0) &&year%400!

5、=0)。18. 用随机函数rand()产生一个在-20 , 20两位整数的表达式是x=rand()%41-20。三、阅读分析下列程序。1. 写出下列程序的输出结果。182. 已知字母B的ASCII码为66,写出下列程序的输出结果。67,E3. 写出下列程序的输出结果。a=4,b=3练习题3参考答案、选择题序号12345678910参考答案DBDDCDDBBA二、填空题1. C语句句尾用分号 结束。2. 若有变量定义:int a=1,b=2,c=3,d=4,x=5,y=6;则表达式(x=a>b)&&(y=c>d)的值为0 。3. 使用强制转换方法将正整数转换成字符。本

6、题程序如下:本程序的执行结果为输入一个正整数(小于255) : 97a 的 ASCII 码为 97。4. 下面程序的输出是-100,50i=-100,j=50i=-100i=50。5. 执行以下程序时,若从第一列开始输入数据,为使变量a=2,b=8,x=6.5, y=56.62,el= 'C,c2= 'b',正确的数据输入形式是a=2 b=8x=6.5 y=56.62c仁C c2=b。三、程序设计题1. 编写程序交换两个变量a,b的值,并输出。如输入时 a=3,b=5,输出a=5,b=3。#in clude<stdio.h>void mai n()int a

7、,b,c;printf("输入两个数:a,b ”);scanf( “a=%d,b=%d ,&a,&b);c=a;a=b;b=c;printf( “a=%d,b=%d ,a,b);2. 编写程序输入小写字符boy,输出大写字符BOY#in clude<stdio.h>void mai n()char c;printf(“ In put: ”);scanf( “ %c,&c);c=c-32;printf(“C ,c);3. 已知华氏温度与摄氏温度的转换公式为:C=(F-32)*5/9 。编写程序当输入华氏温度 F时,输出对应的摄氏温度。#in clud

8、e<stdio.h>void mai n()float F;scanf( “ f”,&F);printf(“ f” ,(F-32)*5/9);4. 设圆的半径r=1.5,圆柱高h=3,编写程序求圆周长、圆面积、圆球表面积、圆球体积及圆柱体积。用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点 后2位数字。#in clude<stdio.h>int mai n()float h,r,l,s,sq,vq,vz;float pi=3.141592;printf( “请输入圆半径r,圆柱高h: ”); scanf( “f,%f”,&r,&am

9、p;h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;printf( “圆周长为:l=%6.2fn”,1);printf( “圆面积为:s=%6.2fn” ,s);printf(“圆球表面积为:sq=%6.2fn” ,sq);printf(“圆球体积为:vq=%6.2fn” ,vq);printf(“圆柱体积为:vz=%6.2fn” ,vz);ruturn 0;5.编写程序输入梯形的上底a,下底b和高h,输出该梯形的面积。#in clude<stdio.h>void mai n()float a,b,h

10、,s;printf(“请输入梯形上底,下底和高:n ”);scanf(“f%f%f”,&a,&b,&h);s=(a+b)*h/2;printf(“梯形面积为:%fn ” ,s);6.编写程序将"China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母"A"后面第4个字母是"E",用"E"代替"A"。因此,"China"应译为"Glmre"。 请编写程序,用赋初值的方法使c1,c2,c3,c4,c5 这5

11、个变量的值分别为C,'h','i','n',a',经过运算,使 c1,c2,c3,c4,c5分别变为G',T,'m','r','e'。分别用putchar函数和printf函数输出这5个字符。#in clude<stdio.h>int mai n()char c1= ' ',c2= 'h',c3='i',c4='n ',c5='a'c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4

12、;c5=c5+4;printf( password is %c%c%c%c%cn ”,c1,c2,c3,c4,c5);return 0;#in clude<stdio.h>int mai n()char c1= ' ',c2= 'h',c3='i',c4='n ',c5='a'c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;putchar(c1);putchar(c2);putchar(c3);putchar(c4);putchar(c5);return 0;练习题4参考

13、答案、选择题序号12345678910参考答案CBAACCBAAB二、填空题1 .表示“整数 x的绝对值大于5”时值为“真”的C语言表达式是abs(x)>5 &&floor(x)=x 。2以下程序运行后的输出结果是20,0。3. 若从键盘输入 58,则以下程序输出的结果是585858。4以下程序输出的结果是 _0。5以下程序的输出结果是 /。6.若int i=10;则行下列程序后,变量i的正确结果是13。三、程序设计题1. 编写程序输入有3个整数a、b、c,并按照从小到大的顺序输出。#in clude<stdio.h>int mai n()int a,b,c,

14、t;printf( “ please in put a b cn ” );scanf( “d%d%'d,&a,&b,&c);if(a>b)t=a;a=b;b=t; if(a>c)t=a;a=c;c=t;if(b>c)t=b;b=c;c=t;printf(“%d,%d,%dn” ,a,b,c);return 0;2. 有一个函数:xx :1y = 2x -11 _x :103x11 x_10编写一个程序,输入 x的值,输出y的值。#in clude<stdio.h>int mai n()i nt x,y;printf( "输

15、入 x: ”);scanf( “ %d,&x);if(x<1)y=x;printf( “x=%d, y=x=%dn ”,x,y);else if(x<10)y=2*x-1;printf( “x=%d, y=2*x-仁%dn ” ,x,y);elsey=3*x-11;printf( “x=%d, y=3*x-11=%dn” ,x,y);return 0;3. 输入学生的百分制成绩, 要求输出学生的成绩、 等级以及相应的评语。 设用 A'、 B' C' D'、 E'五个等级,且 90分以上为等级 A'评语为“成绩优秀” ,80-8

16、9分为等级B',评语为“成绩良好” ,70-79分为等级C',评语为“成绩中等” ,60-69分为等级D,评语为“成绩及格” ,60分以下为等级 E'评语为“成绩不及格”。分别用if条件 语句和switch开关语句编写程序。方法一:if条件语句#in clude<stdio.h>void mai n()专业.资料.整理int score;prin tf("输入成绩:");scan f("%d", &score); if(score>100 | score<0)printf("输入错误!n&

17、quot;);else if(score>=90)printf(" 成绩为%d,等级为else if(score>=80)printf(" 成绩为%d,等级为else if(score>=70)printf(" 成绩为%d,等级为else if(score>=60)printf("elseprintf("A,成绩优秀 n",score);B,成绩良好 n",score);C,成绩中等 n",score);成绩为d,等级为成绩为%d,等级为方法二:switch#in clude<stdi

18、o.h>void mai n()int score;prin tf("输入成绩:");scan f("%d", &score); if(score>100 | score<0) printf(”输入错误!n");elseswitch(score/10) case 10:case 9:printf("case 8:printf("case 7:printf("case 6:printf("default:printf("开关语句D,成绩及格 n",score);

19、E,成绩不及格n",score);成绩为d等级为成绩为d等级为成绩为d等级为成绩为d等级为成绩为d等级为A,成绩优秀B,成绩良好C,成绩中等n ",score);break;n ",score);break;n ",score);break;D,成绩及格 n",score);break;E,成绩不及格n”,score);4.编写程序输入三个整数,判断它们是否能够构成三角形。若能构成三角形,则输出 三角形的类型(等边三角形、等腰三角形、一般三角形),并计算三角形的面积;若不能构成三角形,则输出“不能构成三角形”的信息。#in clude<s

20、tdio.h>#in clude<math.h>void mai n()float a,b,c,s,t;prin tf("i nput a,b,c n");scan f("%f%f%f", &a,&b,&c);if(a+b>c)&& (a+c>b)&& (b+c>a)t=(a+b+c)/2;s=sqrt(t*(t-a)*(t-b)*(t-c);if(a=b&&b=c)printf("这是等边三角形,面积为%fn”,s);else if(a

21、=b)&&(b!=c)|(b=c;)&&(a!=c)|(a=c)&& (a!=b)printf("这是等腰三角形,面积为%fn",s);else printf(”这是一般三角形,面积为%fn",s);elseprintf("不能构成三角形");5. 编写程序在屏幕上显示一张如下所示的时间表:*Time*1 morni ng2 after noon3 ni ghtPlease en ter your choice(1-3):操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时

22、显示"Good morning", 选择 2 时显示"Good afternoon", 选择 3 时显示"Good night", 对于其他选择显示"Selectio n error!" 。#in clude<stdio.h>void mai n()int n;printf(” *Time*n1 morni ngn ”); prin tf("2 afterno nnn3 nightn");prin tf("Please en ter your choice(1-3):n&q

23、uot;); sca nf("%d",&n);switch( n)case 1:pri ntf("Good morning'n" );break; case 2:printf("Good afternoonn");break;case 3:pri ntf("Good ni ght n" );break; default: prin tf("Select ion error!n");6. 设银行整存整取不同期限的月利率分别为:一年定期为0.63%;二年定期为 0.66%;三年定期为

24、0.69%;五年定期为0.75%;八年定期为0.84%。要求输入存款的本金和期限, 求到期能从银行得到的本金和利息的合计。分别用if语句和switch语句编与程序。#in clude<stdio.h>void mai n()const double rate = 0.0063, 0.0066, 0.0069, 0.0075, 0.0084;int years = 0;float init = 0;double sum = 0;prin tf("nln put in itial amount of mon ey:");scan f("%f",

25、&init);prin tf("nType in save period in years:");scan f("%d", &years);if( years=1 | years=2 | years = 3 | years = 5 | years = 8)if(years=1)sum = in it*(1+rate0*12*years);elseif(years=2)sum = in it*(1+rate1*12*years);elseif(years=3)sum = in it*(1+rate2*12*years);elseif(yea

26、rs=5)sum = in it*(1+rate3*12*years);elsesum = in it*(1+rate4*12*years);prin tf("nTotal amount after %d years: %.2fn", years, sum);elseprin tf("nWrong nu mber, Please type in years aga in:");scan f("%d", &years);7. 编写程序计算个人所得税。个人所得税的计算方法:(实发工资-3500)*税率-扣除数,设个人所得税起征点为

27、3500元。共分为7级,具体如下:级数应纳税额税率(%扣除数1不超过1500元的302超过1500元至4500元的部分101053超过4500元至9000元的部分205554超过9000元至35000元的部分2510055超过35000元至55000元的部分3027556超过55000元至80000元的部分3555057超过80000元的部分4513505#in clude<stdio.h>void mai n()float a; /实发工资float b; /应纳税部分工资float s; / 税率float kouchu;/ 扣除数float ptax; /个人所得税print

28、f("输入工资:”);scan f("%f",&a);b=a-3500;if(b>0&&b<=1500)s=0.03;kouchu=0;else if(b<=4500)s=0.1;kouchu=105;else if(b<=9000)s=0.2;kouchu=555;else if(b<=35000)s=0.25;kouchu=1005;else if(b<=55000)s=0.3;kouchu=2755;else if(b<=80000)s=0.35;kouchu=5505;elses=0.45;

29、kouchu=13505;ptax=b*s-kouchu;printf(”个人所得税为 fn”,ptax);8. 编写程序计算货款。设按购买货物款的多少分别给予不同的优惠折扣,购货不足250元,没有折扣;购货 250元(含250元,下同),不足500元,减价5%购货500元,不足 1000元,减价7.5% ;购货1000元,不足2000元,减价10%购货2000元及以上,减价15%#in clude<stdio.h>void mai n() float m,d,t;printf("请输入购物金额:”);scan f("%f", &m);if(m

30、<250)d=0;else if(m<500)d=0.05;else if(m<1000)d=0.075;else if(m<2000)d=0.1;elsed=0.15;t=m*(1-d);printf(" 实际应付金额:%f",t);9. 给一个不多于 5位的正整数,编写程序实现:(1)求出它是几位数;(2)分别输出每一位数字;(3)按逆序输出各位数字。#in clude<stdio.h>int mai n() int i,j,a,b,c,d,k=O,n=0,s=100000,t=10,p;scan f("%d",

31、&a);p=a; /保存原始输入值,后面用到if (p/s!=O)/超过5位数,直接错误提示,程序结束。prin tf("输入错误!n");else printf(”逆序输出各位数字:”);for (i=0;i<6;i+) b=a;if (b!=0) k+;b=a%t; / 对10求余可得个十百千万位prin tf("%d ",b ); a=a/t;printf("n%d是个 d位数 n”,p,k );printf("正序输出各位数字:");for (j=0;j<6;j+) c=p;d=c/s%10;/

32、除以s后对10求余可得万千百十个位s=s/10; /s 要依次/10,求解后面的数值if (d!=0)prin tf("%d ",d );prin tf("n");return 0;10. 编写程序对数据进行加密。设加密方法为:对任意给定的4位整数,每一位数字均加2,若某位数字加2后大于9,则取其除以10的余数,如数据6987加密后的数据为8109。#in clude<stdio.h>void mai n()int a,b,c,d,m;scan f("%d",&m);a=m%10+2;if(a>=10) a=

33、a%10;b=m/10%10+2;if(b>=10) b=b%10;c=m/100%10+2;if(c>=10) c=c%10;d=m/1000+2;if(d>=10) d=d%10;m=a+b*10+c*100+d*1000;prin tf("%dn",m);练习题5参考答案、选择题序号12345678910参考答案ABBABDCDBD二、填空题1 以下程序的输出结果是52。2 以下程序的输出结果是17。3 有以下程序:程序运行时,如果从键盘输入:Y? N?<回车,则输出结果为 _X。4 .下面程序的运行结果s=254。5下面程序段中循环体的执行次

34、数是3。6 下面程序段的运行结果是丄*。7 下面程序的运行结果是1,-2。&下面程序段的运行结果是_8。9下面程序的功能是:计算110之间的奇数之和与偶数之和,试完善程序。10.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。三、程序设计题1.编写程序计算1+3+5+7+97+99的值。#in clude<stdio.h>void mai n()int i,sum;sum=0;for(i=1;i<=99;i+=2)sum=sum+i;prin tf("%dn",sum);2. 编写程序从键盘输入正整数n,求n!。#in c

35、lude<stdio.h>void mai n()in t i, n, fact=1;scanf ("%d",&n);for(i=1;i<=n ;i+)fact*=i;prin tf(" n=%d, n!=%dn",n ,fact);3. 编写程序求一个十进制整数的位数。#in clude<stdio.h>void mai n()int n,m;scan f("%d", &n);if(*0)printf(”请输入正整数!谢谢合作! n");if(n <=9&&

36、;n >=0)m=1;elsem=0;t=n/10;while( n>=1)n=n/10;+m;prin tf("%dn",m);4. 编写程序输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#i nclude<stdio.h>int main( void)/输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。char ch;int char_ num=0,k on gge_ num=0,i nt_num=O,other_ num=0;while(ch=getchar()!='n')回车键结束输入,并且

37、回车符不计入if(ch>='a'&&ch<='z'|ch<='z'&&ch>='a')char_ nu m+;else if(ch='')kon gge_ nu m+;else if(ch>='O'&&ch<='9')int_nu m+;elseother_ nu m+;printf(”字母 =%d, 空格 =%d, 数字 =%d, 其 它=%dn",char_ nu m,k on gge_

38、 nu m,i nt_num ,other_ nu m);return 0;5. 编写程序求一个十进制整数是否为回文数。所谓回文数是指从左向右读或从右向左读都是相同的数,也就左右对称的数,如:232、3553、123321等。#in clude<stdio.h>#in clude<stri ng.h>int mai n()char digits100, i, n;scan f("%s",digits); n = strle n(digits);for(i=0;i< n/2;i+) if(digitsi!=digits n-i-1) printf

39、(" 不是回文数n"); return 0;printf("是回文数 n"); return 0;6. 编写程序用两种方法 (一种方法是使用三重循环形成100999之间的所有数,另一种方法是使用单重循环直接形成100999之间的所有数)求100999之间的所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=13+53+33。方法一:三重循环#in clude<stdio.h>int mai n()int i,j,k,n;prin tf("parcissus nu

40、mbers are:");for(i=1;i<=9;i+)for(j=0;j<=9;j+)for(k=0;k<=9;k+)n=i*100+j*10+k;i f(n=i*i*i+j*j*j+k*k*k)prin tf("%5d", n);prin tf("n ”);return 0;方法二:单重循环#i nclude<stdio.h>int mai n()int i,j,k,n;prin tf("parcissus nu mbers are:");for(n=100; n<1000; n+)i=n/1

41、00;j=n/10-i*10;k=n %10;if(n=i*i*i+j*j*j+k*k*k) prin tf("%5d", n);prin tf("n ”);return 0;7. 编写程序找出1000之内的所有“完美数(完全数、完备数)”。“完美数”也称为“完 数”,它是指一个数恰好等于它的因子之和。例如, 6的因子为1、2、3,而6=1+2+3,因此 6是“完数”。#i nclude<stdio.h>int mai n()i nt m,s,i;f or(m=2;m<1000;m+)s=0;for(i=1;i<m;i+)if(m%i)=0

42、)s=s+i;if(s=m)prin tf("%d,its factors are 1 ",m);for(i=2;i<m;i+)if(m%i=0)prin tf("+%3d",i);prin tf("n");return 0;8. 编写程序用穷举法求解我国古代张丘建算经中一道著名的百鸡问题:鸡翁一,值 钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,鸡翁、鸡母、鸡雏各几何?#i nclude<stdio.h>void mai n()i nt cocks=0,hens,chicks;while(cocks<=2

43、0)hens=0;while(he ns<=33)chicks=100-cocks-he ns;if(5.0*cocks+3.0*he ns+chicks/3.0=100.0)printf(”公鸡 4只,母鸡 4只,小鸡 4只门n",cocks,hens,chicks);hens+;cocks+;239.已知e1 x X,编写程序输入x的值,求ex的近似值(要求被舍去的2!3!项小于10-6)。#i nclude <stdio.h>#in clude <math.h>void mai n()double temp=1,sum=1,b=1.0; in t

44、i=1;double x,a=1.0;scan f("%lf", &x);while(fabs(temp)>=1e-6)b=b*i;a=a*x;temp=a/b; /定义每一项的内容sum=sum+temp;i+;prin tf("e=%lfn",sum);357910. 编写程序利用泰勒级数sin x、x-X X x x 计算sinx的值,要求最3!5!7!9!后一项的绝对值小于10-5,并计算共求了多少项。#i nclude <stdio.h>#in elude <math.h>void mai n()int n

45、=1,co un t=0;double x,sum,term;prin tf("please in put a nu mber x:");scan f("%lf", &x);sum=x;term=x;while(fabs(term)>=1e-6)term=-term*x*x/( n+1)*( n+2);定义后一项与前一项的关系sum=sum+term;n=n+2;coun t+;prin tf("s in( x)=%f,co un t=%dn",sum,co un t);11. 编写程序用牛顿迭代法求方程2x34x2在1

46、.5附近的根。#i nclude <stdio.h>#in clude <math.h>double F1(double); /原函数double F2(double); /原函数的一阶导数函数double Newt on( double,double);void mai n()double x0 = 1.5;double e = pow(10,-5);prin tf("the result is %lfn",Newto n(xO,e);double F1(double x)return 2 * x * x * x - 4 * x * x + 3 *

47、 x - 5 ;double F2(double x)return 6 * x * x - 8 * x + 3 ;double Newt on( double x0, double e)double x1;dox1 = x0;x0 = x1 - F1(x1) / F2(x1);while (fabs(x1 - x0) > e);return x0;12.编写程序用二分法求方程2x3 -4x2 3x-5 =0在(-10 , 10)之间的根。#in clude <stdio.h>#in clude <math.h>double function( double x)d

48、ouble f;f=2*x*x*x-4*x*x+3*x-5;return f;void mai n()double a=-10,b=10,c,fa,fb,fc;fa=function( a);fb=function( b);doc=(a+b)/2.0;fc=fu nctio n(c);if(fc*fa<0)b=c;fb=fc;elsea=c;fa=fc;while(fabs(a-b)>=1e-6);prin tf("The root is%lfn",c);13. 编写程序将一张面值为100元的人民币等值换成 100张5元、1元和5角的零钞,要求每种零钞不少于1张

49、。#in clude <stdio.h>int mai n() int n5, n1, n05;int count = 0;for (n 5=1; n5<20; n5+) for (n 1=1; n1<(100-n5); n 1+) n05 = 100 - n5 - n1;if (n 5*10 + n1*2 + n05) = 200) coun t+;printf("第4种:d 张五元,d张一元,d张五角n", count,n5, n1, n 05);return 0;14. 编写程序验证哥德巴赫猜想(任何一个大于等于6的偶数都可以分解为两个素数之和

50、),验证范围限定为6到2000。#in clude <stdio.h>int mai n()int i,j,k,l;int ss(i nt n);for (i=6;i<=2000;i+)if (i%2=0)for (j=2;j<=(i nt)(i/2);j+)k=ss(j);l=ss(i-j);if (k=1 &&I=1)prin tf("%d + %d = %dn",j,i-j,i);return 0;int ss(i nt n)int i;for (i=2;i<=n ;i+)if (n %i=0&&n!=i)

51、return 0;if (n=i)return 1;15. 爱因斯坦数学题。有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨 7阶,最后才正好1阶不剩。编制程序求这条阶梯共有多少阶?#in clude<stdio.h>void mai n()int n=1;while(1)if(n %2=1)&&(n %3=2)&&(n %5=4)&&(n %6=5) &&(n %7=0)/ 判断prin tf("%dn", n

52、);break;n+;printf("%d%2=%d %dn",n,n/2,n%2);/验算 printf("%d%3=%d %dn",n,n 13,n%3);printf("%d%5=%d %dn",n,n/5,n%5);printf("%d%6=%d %dn",n,n/6,n%6);printf("%d%7=%d %dn",n,n/7,n%7);16. 三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,编写程序求共有多少种不同的颜色搭配?#i n

53、clude <stdio.h>void mai n()int n=0;int a,b,c;for (a=0;a<=3;a+)for (b=0;b<=3;b+)for (c=0;c<=6;c+)if (a+b+c=8) n+;printf('%dn” ,n);练习题6参考答案、选择题序号12345678910参考答案DDDAADACBC序号11121314参考答案CDAA二、填空题1 下面程序的运行结果是_112358 132134 552 以下程序的输出结果是abc 。3 若有定义:int a34=1,2, 0, 4, 6, 8, 10;,则初始化后,a1

54、2得到的初值是 _0, a21 得到的i初值是_6。4 以下程序可求出所有水仙花数(水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。如:407=4*4*4+0*0*0+7*7*7 ,故407是一个水仙花数)。请填空。#i nclude <stdio.h>void mai n()int x,y, z, a8,m,i=0;printf( "The special nu mbers are:n”);for(m=100;m<1000; m+)x=m/100;y= (m/10)%10;z=m%10;if(x*100+y*10+z=x*x*x+y*y*y+z*z*

55、z) ai=m ; i+;for(x=0; x<i; x+)printf("%6d',ax);5下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#i nclude <stdio.h>#in clude <stri ng.h>void mai n() char a="c Ianguage ", t;int i,j,k;k=strle n(a);for(i=0;i<=k-2;i+=2)for(j=i+2;j<k; j+=2; )if( ail>aj) t=ai; ai=aj;

56、 aj=t; puts(a);printf( "n");6.下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b,请填空。例如:array a : array b :4 5 66 4 51 2 33 I 2#i nclude <stdio.h>void mai n() int a23=4,5,6,1,2,3,b23;int i,j;printf( " array a: n ");for(i=0;i<=1;i+)for(j=0;j<3;j+) printf( "%5d,aij);bprintf( "n");for( i=0;i<=1; i+) bi0=ai2;printf( " array b:n”);for(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论