c程序设计第四版课后习题答案(习题破解).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《c程序设计第四版课后习题答案(习题破解).doc》由会员分享,可在线阅读,更多相关《c程序设计第四版课后习题答案(习题破解).doc(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C程序设计(第四版)-习题答案参考希望这些代码,可以帮到可以帮助到的同学。在这里,我要说:大家不要去COPY ,而是要弄清每行代码的意思,否则我们的辛苦是白费了. 感谢,和我一起写代码的几位同学:潘敬、 张巍、 贺鹏程、 刘恒松、李云宽. 虽然,这些代码,我们都调试过,辛苦了半个月.但是,也避免不了会有些错误,请同学们见谅. -雷玄2012年3月第三章 顺序程序设计李云宽DO第三四章 整理时间2012/3/15 QQ:110 111 11 110 111 1 11 0 1000第1题:假如国民生产年增长率为百分之9%, 计算10年后我过国民生产总值与现在相比增长多少百分比#include in
2、t main(void)float a,b,sum;b = 0.09;sum = (1+b)*(1+b)*(1+b)*(1+b)*(1+b)*(1+b)*(1+b)*(1+b)*(1+b)*(1+b);printf(%fn, sum);/.乘以10次.或者用循环return 0;/或者用POW函数 ,例:把2的3次方赋给c; c = pow(2,3);第二题:#include / 存款利息的计算.有1000元,想存5年,可按以下的5钟方法存:/ (1)一次存5年/ (2)先存2年, 在将本息存3年/ (3)先存3.在2/ (4)先存1年.到期后将本息在存1年.连续5次/ (5)存活期存款.活期
3、利息再存1年期,连续存5次/1年定期利息4.14%, 2 年 4.68%; 3 年 5.4; 5年 5.85%;/活期一季度结算一次0.72%;int main(void)/(1)double p , i;p = 1000 * (1 + 5 * 0.0585);/printf( 一次存5年 = %lfn, p);/(2)p = (1000 * (1 + 2 * 0.0468) ;i = p * (1 + 3 * 0.054);printf(先存2年在存3年 = %lf n, i);/(3)p = (1000 * (1 + 3 * 0.054) ;i = p * (1 + 2 * 0.0468)
4、;printf(先存3年在存2年 = %lf n, i);/(4)p = 1000 * (1 + 0.0414);/1i = p * (1 + 0.0414);/2p = i * (1 + 0.0414);/3i = p * (1 + 0.0414);/4p = i * (1 + 0.0414);/5printf(本息在存1年.连续5次 = %lf n, p);/(5)p = 1000 * (1 + 0.0072/4);printf(一个季度 = %lfn, p);for (i=0 ; i20; i+)p = p * (1+0.0072/4);printf(5年活期.季度 = %lfn, p)
5、;return 0;第三题:#include /购房从银行贷款.准备每个月还款.利率int main(void)double i, j , f, k;j = 1 + 0.01;/利率k = ;/贷款printf(测试.%lfn, j);f = 6000;/每月还款for (i=0;k 0 ; i+)k = k * j;printf(%lf %lf %lf %lfn, k, j, f, i); k = k - f; printf(%lf %lf nn, k, i); printf(%lf月还清n, i);return 0;第四题:/*4用scanf下面的函数输入数据,使a=3,b=7,x=8.5
6、,y=71.82,c1=A,c2=a,问在键盘上如何输入? */#includeint main(void) int a, b;float x, y;char c1, c2; scanf(a=%d_b=%dn, &a, &b); scanf(_x=%f_y=%fn, &x, &y); scanf(_c1=%c_c2=%cn, &c1, &c2); return 0; /*a=3_b=7 _x=8.5_y=71.82 _c1=A_c2=a */第五题:/*6要将China译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母例如,字母A后面第4个字母是EE代替A。因此,China应译为G
7、lmre。请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,C、h、i、n、a,经过运算,使c1、c2、c3、c4、c5分别变为G、l、m、r、e,并输出。 */#include /方法1:/*int main(void) /可以直接用循环 char c1=C,c2=h,c3=i,c4=n,c5=a; c1=c1+4; c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4; printf(密码是 = %c%c%c%c%cnn, c1, c2, c3, c4, c5); return 0;/*!还有这题没有考虑字符是wxyz的情况呢?也就是说还有一种方法
8、,后面有介绍*/ */方法2:int main()/用循环加密char ch=China;/首先定义数组,每一个字符对应一个数组,例如:ch1=Cfor(int i=0;i5;i+)/因为有5个字符,循环5次chi=chi+4;/每次加上4printf(%c,chi);/循环的时候输出putchar(10);/换行return 0;/返回为0,程序正常 /*运行结果: * 密码是Glmre */第七题:/* 7 .设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 */#i
9、ncludevoid main(void) float r,h,C1,Sa,Sb,Va,Vb; scanf(%f,%f,&r,&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(C1=%.2fn,C1); printf(Sa=%.2fnSb=%.2fnVa=%.2fnVb=%.2fn,Sa,Sb,Va,Vb); 第八题:(这题要思考,如果有不懂,可不必花时间在此处纠结,通过学习后面的知识,就好理解了)#include /* 10编程序,用getchar函数读入两个字符给c1、c2, 然后分别用函数
10、和函数输出这两个字符。并思考以下问题:()变量c1、c2应定义为字符型或整形?抑二者皆可?()要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?()整形变量与字符变量是否在任何情况下都可以互相代替?如:*/ void main(void)int c1;char c2;printf(输入第两字符:);c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf(n %c n%c, c1, c2);/* 两者皆可.输出的是字符就行了*1/*/void main(void)int c1;char c2;pri
11、ntf(输入第两字符:);c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf(n %c n%c n, c1, c2);/* (1)两者皆可.输出的是字符就行了%c* (2)putchar函数是用来输出单个字符的无法输出ASCII码 所以想输出ASCII还是用printf + %d 吧 *#includestdio.h void main(void) char c1,c2; c1=getchar();c2=getchar(); printf(c1=%d c2=%dn, c1, c2); printf(c1=%c c2=%cn, c1,
12、 c2); *2/(3)int和char不是在任何情况下都可以互相代替,因为int在32位系统下一般分配有4个字节的空间,而char只有一个字节。当存储的数据大于一个字节时,从int转到char型时会损失数据。第四章 选择结构程序设计第一题:(呵呵,内事不懂问百度,外事不知问谷歌)/* 什么是算术运算?什么是关系运算?什么是逻辑运算? 百度的.书上有的.1. 算术运算:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+)、自减(-)共七种。2. 关系运算:用于比较运算。包括大于()、小于(=)、小于等于(=)和不等于(!=)六种。3. 逻辑运算:用于
13、逻辑运算。包括与(&)、或(|)、非(!)三种。4. 位操作运算:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非()、位异或()、左移()六种。5. 赋值运算:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,=,=,=)三类共十一种。6. 条件运算:这是一个三目运算符,用于条件求值(?:)。7. 逗号运算:用于把若干表达式组合成一个表达式(,)。8. 指针运算:用于取内容(*)和取地址(&)二种运算。9. 求字节数运算:用于计算数据类型所占的字节数(sizeof)。10. 特殊运算:有括号(),下标,成员(,.)等
14、几种 +、-、*、/等数学运算是算术运算 =、!=、=运算是关系运算 |、&、!是逻辑运算*/第二题:/* C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? * 0 就是假 非0就是真 *解 设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。 但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。 例如3&5的值为“真”,系统给出3&5的值为1。 第三题:/*4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1) a+bc&b=c a+b= 7c =1 b=c 0 (1) 0 & 0 = 0 (2) a|b+c&b-c b+
15、c=9 b-c= -1 -1 不算 0 9 & -1=1 (2) a | 1 = 1(3) !(ab)&!c|1 34 = 0 !(0)=1 !c=0 1&0= 0 (3) 0 | 1 = 1(4) !(x=a)&(y=b)&0 !(x=a)= 0 (y=b) = 1 0 & 1 = 0 (4) 0 | 0 = 0 (5) !(a+b)+c-1&b+c/2 a+b=7 !(7)=0 c/2=2 0+5-1= 4 b+2=6 (5) 4 & 6 = 1 ! 算术运算符 关系运算符 & | 赋值运算符*/第四题:#include /* 4.4 有3个整数a、b、c,由键盘输入,输出其中最大的数。
16、*/ /*void main (void)/方法1: int a, b, c, d; a=b=c=0; printf(Input:); scanf(%d %d %d, &a, &b, &c); if(ab)/建议写if语句的时候都用以便区分 if(bc) printf( max=%d n,c); else printf( max=%d n,b); else if(ay)/如果x大于ymax=x;/赋给maxelse/否则max=y;/y赋给maxreturn max;/将比较的值返回,返回值为maxint main()int a,b,c;/定义输入的三个值scanf(%d%d%d,&a,&b,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 第四 课后 习题 答案 破解
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内