欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言程序设计第三版习题库答案汇编.docx

    • 资源ID:13583679       资源大小:35.82KB        全文页数:43页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计第三版习题库答案汇编.docx

    1、C语言程序设计第三版习题库答案汇编C语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include main()float r,h,C1,Sa,Sb,Va,Vb; scanf(_”%f”_,&r); scanf(”%d”,_&h_);; C1=2*3.14*r; Sa=3.14*r*r; Sb=4*Sa; Va=4*3.14*r*r*r/3; Vb=Sa*h; printf(_”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb

    2、=%.2f”,Cl,Sa,Sb,Va,Vb);2、输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include main()float F,c; scanf(%f,&F); _c=5*(F-32)/9_; printf(c=%.2f,c); 3、有一函数: 写一程序,输入x值,输出y值。 #include main()int x,y; printf(输入x:); scanf(%d,&x); if(x1) /* x1 */ y=x; printf(x=%3d, y=x=%dn,x,y); else if (_x10_) /* 1x-10

    3、*/ _y=2*x-1_; printf(x=%3d, y=2*x-1=%dn,x,y); else /* x10 */ y=3*x-11; printf(x=%3d, y=3*x-11=%dn,x# include stdio.hmain() int x,y; scanf(%d,&x); if(x=1 & x10) y=2*x-1; else y=3*x-11; printf(%d,y);# include stdio.hmain() int x,y; scanf(%d,&x); if(x=1 & x10) y=2*x-1; else y=3*x-11; printf(%dn,y);# in

    4、clude stdio.hmain() int x,y; scanf(%d,&x); if(x=1 & x10) y=2*x-1; else y=3*x-11; printf(%d,y);scanf(%d,&x); if(x=1 & x10) y=2*x-1; else y=3*x-11; # include stdio.hmain() int x,y; scanf(%d,&x); if(x=1 & x10) y=2*x-1; else y=3*x-11; printf(%d,y);,y); 4、给定一个不多于5位的正整数,要求: 求它是几位数;按逆序打印出各位数字。例如原数为321,应输出1

    5、23。 #include main() long int num,m=0; int i=0; scanf(%ld,&num); while(num0) i+; /*统计长度*/m=m*10+num%10; num =num/10;printf(数字长度为:%d,i); printf(逆序数字为:%dn,m); 5、以下程序实现的功能:求三个数的最大值#includemain() int a,b,c,max; scanf(%d %d %d,&a,&b,&c); if(ab) if(ac) max=a; else max=c; else if(bc) max=b; else max=c; prin

    6、tf(max= %d,max);#include main() int x,y,z,t=0; scanf(%d %d %d,&x,&y,&z); if(xy) t=y;y=x;x=t; if(xz) t=z;z=x;x=t; if(yz) t=z;z=y;y=t; printf(%dn,z); 6、输入两个正整数m和n,求其最大公约数和最小公倍数。 /*枚举法*/#includemain() long m,n,i=1,j,s; scanf(%ld,%ld,&m,&n); for(;i=m&i=n)j=m; else j=n; for(;!(j%m=0&j%n=0);j+); printf(s=

    7、%ld,j=%ldn,s,j); #include main() int a,b,k,temp,i,p; scanf(%d,%d,&a,&b); if(ab) temp=b; else temp=a; for(i=2;i=temp;i+) if(a%i=0 & b%i=0) k=i; printf(%dn,k); p=a*b/k; printf(%dn,p); /*辗转相除*/#includemain()int m,n,k,j,p,r=1;scanf(%d,%d,&m,&n);k= mn?m:n;j= mn? n:m;dor=k%j; k=j;j=r; while(r!=0);printf(%

    8、d,%d,k,m*n/k);/*反复减法*/#includemain()int m,n,k,j,p,r=1;scanf(%d,%d,&m,&n);k= mn? m:n;j= mn?n:m;dop=k-j; if(jp) k=j; j=p; else k=p; while(p!=0);printf(%d,%d,k,m*n/k);7、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #includestdio.h main() char c;int i=0,j=0,k=0,l=0; while(c=getchar()!=n) if(c=A&c=a&c=0&c=9) j+; /数字

    9、统计else if(c= ) k+; /空格统计else l+; printf(i=%d,j=%d,k=%d,l=%dn,i,j,k,l); 8、求Sn=a+aa+aaa+aaaaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。 #include main() int a,n; long b=0,sum=0; scanf(“%d %d”,&a,&n); for (i=1;i=n;i+) b = b*10+a; sum =sum+b; printf (“%ld”,sum);9、打印出所有水仙花数,所谓水仙花数是指一个三位数,其各位数字立

    10、方和等于该本身。例如:153是一个水仙花数,因为153=13+53+33。 【程序1】#includemain()int i,m,n,k;for(i=100;i1000;i+)m=_i%10_; n=_ i/10%10_; k=i/100; if(_m*m*m+n*n*n+k*k*k=i_) printf(%5d,i);【程序2】#includemain()int i,a,n,s;for (i=100;i0) a=_n%10_; s+=a*a*a; n /=_10_; if (_s=i_) printf(“%d”,i);10、一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1

    11、、2、3,而6=1+2+3,因此6是完数。编程序找出1000之内的所有完数,并按下面格式输出其因子: 6itsfactorsare1、2、3 #include main() int a,i,m; for (a =1; a=1000;a+) for (_i=1,m=0_; i = a/2;i+) if (!(a%i) _m+=i_; if (m=a) printf(“%4d”,a); 11、利用:/4=1-1/3+1/5-1/7+.级数求的值,直到最后一项的绝对值小于10-6为止。求绝对值的函数为fabs()。#_include_#includemain() int i=1,flag=1; do

    12、uble sum=0.0,s; do s=_1.0/(2*i-1)_; sum+=s*flag; i+; _flag=-flag_; while(_fabs(s)1e-6_);/*/printf(pi=%f,_4*sum_);11、有一分数序列:2/1,3/2,5/3, 求出这个数列的前20项之和。 #include#define N 20main() int i=1;double x=1,y=2, sum=0; while(_i=20_) sum=sum+_y/x_;y = _x+y_;x = _y-x_;i+; printf(%fn,sum);12、一球从100米高度自由下落,每次落地后返

    13、回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?#include main() int i,n=10;double h=100,s=100; for(i=2;i=n;i+) h*=_0.5_; s=_s+h*2_; printf(s=%f,h=%fn,s,h); 13、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。 #include #define N 10main() int i=

    14、1,sum=1; while(i+N)sum=_(sum+1)*2_; printf(sum=%dn,sum); 14、用迭代法求 。求平方根的迭代公式为: 要求前后两次求出的得差的绝对值少于0.00001。 #include #include main() float x0,x1,a; scanf(%f,&a); x1=a/2; do x0=x1;x1=_(x0+a/x0)/2_; while(_x11e-5_); printf(%gn,x1); 15、用牛顿迭代法求方程在1.5附近的根。 #include #include _#define f(x) 2*x*x*x-4*x*x+3*x-6

    15、 main() double x,y;x=_1.5_; doy = f(x); x = x - y/(6*x*x-8*x+3); while(fabs(y)1e-6); printf(x=%.3fn,x); 16、用二分法求方程在(-10,10)之间的根 #include #include #define f(x) 2x*x*x-4*x*x+3*x-6main() double x1=-10,x2=10,x,y;do x=(x1+x2)/2; y=f(x); if(y1e-6);printf(x=%gn,x); 17、以下程序的功能是:输入一个百分制成绩,输出一个五级制成绩等级。例如 输入75

    16、,输出 C。请完成填空#includemain() int score; scanf(_%d_,&score); switch(_score/10_) case 1:case 2:case 3:case 4:case 5: printf(“grade En”); _break_; case 6: printf(“grade Dn”);break; case 7: printf(“grade Cn”);break; case 8: printf(“grade Bn”);break; case 9: printf(“grade An”);break; _default_:printf(Error

    17、input!n); 18、该程序功能:对x=1,2,.,10,求f(x)=x*x-5*x+sin(x)的最大值。#include #include #define f(x) x*x-5*x+sin(x)void main() int x; float max; _max=f(1)_; for(x=2;x=10;x+) _if(maxf(x) max=f(x)_; printf(%fn,max);19、程序功能:输入整数a和b的值,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。#includemain()int a,b,s; scanf(%d%d,&a,&b); s=

    18、_a*a+b*b_; if(s100) printf(%d,_s/100_); else printf(%d,_a+b_);20、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,以下程序统计卖完所需的天数。#include main() int day,x1,x2; day=0;x1=1020; while(_x10_) x2=_x1/2-2_; x1=x2; day+ printf(“day=%d”,day);21、找出整数的所有因子#include main()int i,x;scanf(“%d”,&x);i=1;for ( ; _i=x/2_;) if (x%i=0)

    19、printf(%d”,i); i+;22、统计用数字0-9可以组成多少个各位上的数字没有重复的3位偶数。#include main() int n=0,i,j,k; for (i = 1;i = 9;i+) for (k = 0;k = 8; _k+=2_) if (k != i) for (j = 0;j = 9;j+) if (_j!=i&j!=k_) n+;printf(“n=%dn”,n);23、用100元换成1、2、5元的所有兑换方案。#include main() int i,j,k,l=0; for (i = 0; i=20;i+) for (j =0; j=50; j+) k=

    20、 _(100-i-2*j)/5_; if (_i+j*2+k*5=100_) printf(“%2d %2d %2d”,i,j,k); l = l + 1; if (l%5=0) printf(“n”); 24、输出1-100之间满足每位数的乘积大于每位数的和的数#include main() int n,k=1,s=0,m; for (n=1; n0_) k *=m%10; s+=m%10; _m/=10_; if (ks) printf(“%d”,n);25、从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。#include main() int i,j

    21、,k; for (i=0;i=3;i+) for (_j=1_; j=0_) printf(“%3d %3d %3dn”,i,j,k); 26、以下程序的功能是:判断一个四位数是否满足这样的条件:它的9倍刚好是它的反序数。反序数是指整数各个位上的数字逆序所形成的整数。请完成程序的填空。#includemain() int i,a,b,c,d,m; for(i=1000;i+) a=_i%10_; b=i/10%10; c=i/100%10; d=i/1000; m=_a*1000+b*100+c*10+d_; if(_m=i*9_) _break_; printf(i=%d,i);27、以下程

    22、序完成两整数的交换。#include main() int a,b; printf(“请依次输入a,b的值:”); scanf(“%d,%d”, _&a,&b_); a=a+b; _b=a-b_; _a=a-b_; printf(“交换后:a=%d,b=%d”,a,b);28、以下程序的功能是判断输入的年份是否为闰年,若是则输出”yes”,否则输出”No”。#include main() int year; scanf(“%d”,&year); if (_year%400=0|year%4=0&year%100!=0_) printf(“yes”); else printf(“No”);29、

    23、以下程序利用冒泡排序法对输入的10个数进行排序。#include #define N 10void main() int aN; int i,j,t; printf(input 10 numbers :n); for (i=0;iN;i+) scanf(%d,_&ai_); printf(n); for(j=0;jN-1;j+) for(i=0;iai+1_) t=ai; ai=ai+1; ai+1=t; printf(the sorted numbers :n); for(i=0;iN;i+) printf(%d ,ai); printf(n);30、用筛法求100之内的素数。筛法素数的思想

    24、是:1、取最小的数2,并声明它是素数,同时筛去它及它的倍数。2、取未筛去数中最小的数,并声明它是素数,同时筛去它及它的倍数。3、重复步骤2至筛中无数,得到所有的素数。#include #define M 100 / 范围 #define N (M+1)/2) / 奇数的个数void main( ) int i,j,aN; a0 = 2; for(i=1;iN-1;i+) /* 初始数组实现第一步筛选 */ ai = 2*i+1; for(i=1;iN-1;i+) /* 第二步筛选 */ if(_ai!=0_) for(j=i+1;jN;j+) if(_aj%ai=0_) /* 倍数时置零筛去 */ aj=0; printf(nThe primer are 2-%d:n,M); for(i=0,j=0;iN;i+) /* 显示得到素数 */ if(_ai!=0_) printf(%5d,ai); if(+j)%10=0) /* 十个数换行


    注意事项

    本文(C语言程序设计第三版习题库答案汇编.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开