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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计第2版课后题答案.docx

1、C语言程序设计第2版课后题答案C语言程序设计能力教程(第二版)课后作业及实训题参考答案第1章 进入C语言程序世界二、1. I love China!printf(we are students.n) 2. 6项目实训题参考答案1编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * * I am a student!* * * * * * * * * * * * * * * * * * * * main() printf(*n); printf( I am a student!n ); printf(*n); 2已知立方体的长、宽、高分别是10

2、cm、20cm、15cm,编写程序,求立方体体积。解: main()int a,b,c,v; a=10; b=20; c=15; v=a*b*c; printf(v=%d,v);本程序运行结果为: v=3000 第2章 编制C程序的基础知识一 选择题 C B A B A C C 二 操作题1. 3,2,-8,2 3.000000,2.500000,-8.0000002. ABC DE FGH why is 21+35 equal 52 3. 3 14 32 31 24. aa bb cc abc A N 项目实训题1定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。#define M

3、 5main() int n,c; n=2; c=M*n;printf(%dn,c); 2编程求下面算术表达式的值。(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。(1)main() int a=7; float x=2.5,y=4.7;printf(%fn,x+a%3*(int)(x+y)%2/4); (2)main() int a=2,b=3;float x=3.5,y=2.5; printf(%fn,(float)(a+b)/2+(int)x%(in

4、t)y); 第三章 顺序结构程序设计一 选择题 A C D C C二 操作题 1. x=3,a=2,b=32. z=12.7000003. 1 2 1a 2 1 2 三编程题编程题1. 某工种按小时计算工资,每月劳动时间(小时)每小时工资=总工资,总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资。解:#include main() float sj,gz,yfgz; printf(time,salary:); scanf(%f,%f,&sj,&gz); yfgz=sj*gz*0.9; printf(total salary:%fn,yfgz

5、);本程序运行结果为: time,salary:4,3 total salary:10.8000002编写一个程序求出任意一个输入字符的ASCII码解:#include main() char c; printf(Input a string:); scanf(%c,&c); printf(%c ASCII is %dn,c,c);本程序运行结果为: Input a string:a a ASCII is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付钱数,再输入顾客付款数,打印出应找的钱

6、数。解:main() float p,y,x,j,ys,g,fk; printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,&p,&y,&x,&j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,&g);fk=g-ys;printf(result:n);printf(fukuan=%6.2fyuannshoukuan=%6.2fyuannzhaohui=%6.2fyuann,g,ys,fk);本程序运行结果为:apple,pear,banana,orange(weight)=

7、1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1假设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。#includemain() int n; float rate=0.0225,capital,deposit; scanf(%d,%f,&n,&capital); deposit=capital*pow(1+rate,n); printf(deposit=%fn,deposit); 2将一

8、个三位数整数,正确分离出它的个位、十位和百位数字,并分别在屏幕上输出。main() int n,a,b,c; scanf(%3d,&n); a=n/100; b=n%100/10; c=n%100%10/1; printf(a=%d,b=%d,c=%dn,a,b,c); 第四章 选择结构程序设计一、略二、B B A B C B A三、1. 1 02. 2 3 2 23. 10 20 04. ch=A&ch=a&ch=0&ch=9 ch= 5. -1四、上机操作1. 从键盘输入一个英文字母,如果是大写字母,则将它变为小写字母输出;如果是小写字母,则将其变为大写字母输出。 #includemain

9、()char ch;ch=getchar();if(ch=A&ch=a&ch-1) y = 3 (x=-1) 4+x (x-1) y=2*x; else if(x=1) y=3; else y=4+x; printf(y=%f,y);本程序运行结果为: -2 y=2.0000003编写程序,输入一个整数,判断它是奇数还是偶数,若是奇数,输出“Is Odd“;若是偶数,输出“Is Even“。main() int x; scanf(%d,&x); if(x%2=0) printf(Is Evenn); else printf(Is Oddn); 4设计应用程序,求二次方程ax2+bx+c=0的解

10、。#includemain() float a,b,c,disc,x1,x2,p,q; scanf(%f,%f,%f,&a,&b,&c); if(fabs(a)=1e-6) printf( The equation is not a quadraticn); else disc=b*b-4*a*c; if(fabs(disc)1e-6) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(x1=%8.4f,x2=%8.4fn,x1,x2); else p=-b/(2*a); q=sqrt(-disc/(2*a); printf(%8

11、.4f+%x8.4fin,p,q); printf(%8.4f-%8.4fin,p,q); 5按托运规则,行李不超过50公斤时,运费为0.15元/公斤,如超过50公斤,超过部分的运费为0.22元/公斤,现有行李w公斤,编写一个程序计算运费。解: #include main() float w,f,x; printf(weight:); scanf(%f,&w); if(w=50) x=0.15*w; else x=0.15*50+0.22*(w-50); printf(money:%6.2f yuann,x);本程序运行结果为: weight:20 money:3.00 yuan weight

12、:60 money:9.70 yuan6. 某商场给与顾客购物的折扣率如下: 购物金额购物金额=200元 9折1000元购物金额=500元 8折购物金额=1000元 7.5折输入一个购物金额,输出打折率、购物实际付款金额。 #includemain() float x,y,realx; scanf(%f,&x); if(x=0) printf(Error! You input a worry number!n); y=0; else if(x200) y=1.0; else if(x500) y=0.9; else if(x1000) y=0.8; else y=0.75; if(y!=0)

13、realx=x*y; printf(y=%f, the realx=%5.2fn, y,realx); 项目实训 某托儿所收2岁到6岁的孩子,2岁、3岁孩子进小班(Lower class);4岁孩子进中班(Middle class);5岁、6岁孩子进大班(Higher class)。编写程序(用if语句和switch语句),输入孩子年龄,输出年龄及进入的班号。如:输入:3,输出:age:3,enter Lower class。 #includemain() int age; printf(Please input your babys age:); scanf(%d,&age); if(age

14、6|age2) printf(Sorry,your baby cant enter!); else switch(age); case 2: case 3: printf(age:%d,enter Lower classn,age); break; case 4: printf(age:%d,enter Middle classn,age);break; case 5: case 6: printf(age:%d,enter Higher class,age);break; 第五章 循环结构程序设计一、选择题 C C A A D D三、操作题1求s=1+3+5+7+100的值。#include

15、 stdio.hmain() int i,sum=0; for(i=1;i0) n+; sum=sum+score; scanf(%f,&score); ave=sum/n; printf(nThe average score is%.2f,ave); 3输入一行字符以作结束标志,分别统计其中英文字母、空格、数字和其它字符的个数。#include stdio.hmain() char ch; int cha=0,space=0,digit=0,other=0; while(ch=getchar()!=) if (ch=a&ch=A&ch=0&ch=9) digit+; else other+;

16、 printf(ncha=%d,space=%d,digit=%d,other=%d,cha,space,digit,other); 4一张纸的厚度为0.1毫米,珠穆琅玛峰的高度为8848.13米,假如纸张有足够大,将纸对折多少次后可以超过珠峰的高度?main() float h=8848.13,h0=0.0001,h1; int m=0; h1=h0; while(h0=h) h0=2*h0; printf(n m=%d,high=%f,m,h0); m+; printf(n m=%dn,m-1);5、编写一个程序求出满足下列条件的四位数,该数是一个完全平方数;第一、三位上数之和为10,第二

17、、四位上数之积为12。 解: #include main() int i,j,a,b,c,d; for(i=32;i=99;i+) j=i*i; a=j/1000; b=j/100-a*10; c=j/10-a*100-b*10; d=j-a*1000-b*100-c*10; if(a+c=10&b*d=12) printf(%d ,j); 本程序运行结果为: 1296 92166、一个正数与3的和是5的倍数,与3的差是6的倍数,编写一个程序求符合条件的最小数。 解: #include main() int n; n=1; while(1) n=n+1; if(n+3)%5=0&(n-3)%6

18、=0)break; printf(n=%d,n);本程序运行结果为: n=277、已知xyz+yzz=532,其中x、y、z都是数字,编写一个程序求出x、y、z分别是多少。解: #include main() int x,y,z,i; for(x=1;x=9;x+) for(y=1;y=9;y+) for(z=0;z=9;z+) i=100*x+10*y+z+100*y+10*z+z; if(i=532) printf(x=%d,y=%d,z=%dn,x,y,z); 本程序运行结果为: x=3,y=2,z=18、学校有近千名学生排队,5人一行余2人,7人一行余3人,3人一行余1人,求学生人数。

19、 解: #include main() int n; for(n=1000;n=10;n-) if(n%5=2&n%7=3&n%3=1)break; printf(n=%dn,n);本程序运行结果为: n=9979验证歌德巴赫猜想:任意一个大于6的偶数均可表示为两个质数的和。#includemain() int i,x; int p,q,k1,k2; printf(Please input an odd data(=6):); scanf(%d,&x); for(p=3;p2) for(i=2;ip;i+) if(p%i=0) k1=0; for(i=2;iq;i+) if(q%i=0) k2

20、=0; if(k1=1&k2=1) printf(%d=%d+%dn,x,p,q); 10一个数恰好等于它的平方数的右端,这个数称为同构数 。如 :5的平方是25,25的平方是625。找出11000之间的全部同构数 。#include math.h main() int i,j,k=0; for (i=2;i1000;i+) if (i/10=0) j=1; /*因为i是整型,所以是整除*/ else if (i/100=0) j=2; else if (i/1000=0) j=3; if (long int)i*i%(int)pow(10,j)=i) /*同构数的定义*/ k+; /* 计数

21、器*/ printf(%10d,i); if (k%5=0) printf(n); printf(nk=%d,k); 项目实训1. 编写程序求1-1/2+1/3-1/4+1/99-1/100的值#include stdio.hmain() int i, s=-1; float sum=1.0; for(i=2;i=100;i+) sum=sum+1.0*s/i; printf(sum=%f,sum);2曾有一位印度国王要奖赏他的聪明能干的宰相达依尔。达依尔只要求在国际象棋的棋盘格上放置小麦粒,第一格放1粒,第二格放两粒,第三格放4粒,第四格放8粒,,最后能有多少小麦粒呢?main() floa

22、t i ,s=1,t=1; for (i=1;i=63;i+) t*=2; s+=t; printf(s=%fn,s);3打印水仙花数,即一个三位数各位上的数字之和等于它本身,如:153=13+53+33 。main()int k1,k2,k3,i; for (k1=1;k1=9;k1+) for (k2=0;k2=9;k2+) for (k3=0;k3=9;k3+) i=k1*k1*k1+k2*k2*k2+k3*k3*k3; if (i=k1*100+k2*10+k3) printf(n%d=%d3+%d3+%d3,i,k1,k2,k3); 4编制电视歌手大奖赛评分程序,要求评委人数和每位评

23、委的打分从键盘输入,去掉一个最高分,再去掉一个最低分,求评委给出的最后得分。main()/* TV大奖赛 */int n,i=1; float x,max,min,sum=0;printf(nPlease input the number of score:);scanf(%d,&n);printf(nInput score:);scanf(%f,&x);max=x;min=x;sum=x;while (in) i+; scanf(%f,&x); sum+=x; if (maxx) max=x ; else if (xmin) min=x;sum=(sum-max-min)/(n-2);pri

24、ntf(The last score is%8.2fn,sum);5打印下列图形。* * * * * * * * * * * * * * * * * * * * * * * * *main() int i,j; for (i=1;i=5;i+) for (j=1;j=5-i;j+) printf ( ); for (j=1;jave) printf(%f ,xi); 3、编写一个程序判定用户输入的正数是否为“回文数”,所谓回文数是指数正读反读都相同。#include main() int buffer10,i,k,b; long number,n; printf(input a positive number:); scanf(%ld,&number); k=0; n=number; do bufferk=n%10; k=k+1; n=n/10; while(n!=0); b=1; for(i=0;i=(k-1)/2;i+) if(bufferi!=bufferk-1-i) b=0; if(b) printf(%ld is huiwenshun,number);else print

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1