C程序设计4(谭浩强)完整编辑版-课后习题集答案解析

上传人:新*** 文档编号:101778921 上传时间:2019-09-29 格式:DOC 页数:83 大小:666.05KB
返回 下载 相关 举报
C程序设计4(谭浩强)完整编辑版-课后习题集答案解析_第1页
第1页 / 共83页
C程序设计4(谭浩强)完整编辑版-课后习题集答案解析_第2页
第2页 / 共83页
C程序设计4(谭浩强)完整编辑版-课后习题集答案解析_第3页
第3页 / 共83页
C程序设计4(谭浩强)完整编辑版-课后习题集答案解析_第4页
第4页 / 共83页
C程序设计4(谭浩强)完整编辑版-课后习题集答案解析_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《C程序设计4(谭浩强)完整编辑版-课后习题集答案解析》由会员分享,可在线阅读,更多相关《C程序设计4(谭浩强)完整编辑版-课后习题集答案解析(83页珍藏版)》请在金锄头文库上搜索。

1、.C程序设计(第四版)(谭浩强)第一章课后习题答案P006 1.1 向屏幕输出文字.#include /预编译. 代码均调试成功,若有失误大多不是代码问题.自已找找. int main()printf(Welcome to n); return 0; /与int main对应,为了程序可移植性,建议全用int main + return 0;.P008 1.2 求两个数的和.#include int main()int a,b,sum;a=5;b=4;sum=a+b;printf(The sum is %d .n,sum);return 0;P008 1.3 调用函数比较两个数的大小.#inc

2、lude int main()int max(int x,int y); /被调用函数在主函数后面,用前先声明.int a,b,c;scanf(%d,%d,&a,&b); /输入时要按格式来,此处的逗号,用空格会发生错误.c=max(a,b); /a,b作为实参传入被调用函数中.printf(The max is %d .n,c);return 0;int max(int x,int y) /定义了两个形参. int z; /z属于局部变量,可与主函数中相同名字.if (xy)z=x;elsez=y;return(z); /z作为整个程序的出口值,赋给主函数中的c.P015 0.6 三个数的大

3、小.(数字0表示课后练习题)#include int main()int a,b,c,d; /d是用于存储最大值的.int max(int x , int y , int z); /测试可知,在VS2008中,可以不预先声明.printf(Please input 3 numbers :n);scanf(%d %d %d,&a,&b,&c); d=max(a,b,c); /调用函数中有三个形参,这里需要传入三个实参,才可运算.printf(The max is :%d .n,d); / d可以换成max(a,b,c).int max(int x , int y , int z)int m;if

4、 (xy & xz) /求三者之大的一种方法.m=x;if (yx & yz)m=y;if (zy & zx)m=z;return (m); /返回值m给主函数中的d.C程序设计(第四版)(谭浩强)第2章课后习题答案算法程序的灵魂P017 2.1 计算机1-5相乘的积.#include int main()int i,s=1; /在执行数值操作前一定要先有个初值.for(i=1;i6;i+) /这里是到6.s=s*i; /相乘printf(The sum is %d .n,s);return 0;#include /作出要求:换成1到11间奇数相乘.int main()int i,s=1; /

5、在执行数值操作前一定要先有个初值.for(i=1;i12;i+) /这里是到,但题目要求的是取单数.也可以是i=i+2if(i%2!=0) /i对取模,值为非为奇数;为则为偶数.s=s*i;elsecontinue; /跳过这个for循环的这一次,执行下一次.printf(The sum is %d .n,s);return 0;P019 2.2 按要求输出80分以上的学生信息.暂时没法做.P019 2.3 判断2000-2500年中的闰年,并输出.年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)

6、。所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1天,这样闰年就出现了,也就是每4年要有1年设置为366天,来抵消这多出的1天。规则为:1)如果年份能被4整除,则该年计为闰年;可是,假如不做调整的话,当400年的时候,累计才多出96.92天,接近于多出97天,闰年的设置却多出来100天,所以要在400年内,再撤销3个闰年。怎么撤销呢?就有了下面这个规则:2)如果年份能被100整除,则不计为闰年;问题又来了,400年里有4个100年吧,去掉后四个100年后,又少了一个,所以再加一个规则就是:3)如果年份能被400整除,则计为闰年。简单说来每40

7、0年里设置了97个闰年,也就是400里的前3个100年不设置闰年,误差被调整到400年仅有0.08天。#include int main()int i;for(i=2000;i=2200;i+)if(i%4=0 & i%100!=0)|i%400=0) /闰年的经典判断条件.printf(%d is a leap year !n,i);elseprintf(%d is not a leap year !n,i);P020 2.4 求(1)-(1/2)+(1/3)+(1/99)-(1/100)的值.#include int main()float sign=1 , sum=0 , deno ,

8、term ; /关于有小数的计算应该用float.for (deno=1;deno=100;deno+)term=sign*(1/deno); /term临时值,sing符号,deno为分母.sum=sum+term; /第一次总全存储.sign=(-1)*sign; /换号.printf(The sum of deno(指定值) is %f .n,sum); return 0; /若是到100的话,结果为0.68172P021 2.5 得到一个大于3的数,并判断是否为素数.#include int main() int i , num ,n ; /像13,37,这样只能让和它本身除以外,没有

9、其它除数的叫素数.printf(Please input a number :n); /获取一个数值scanf(%d,&num);for(i=2;inum;i+) /在到此数值间进行循环除,如果除得尽,就不满足素数要求.if(num%i=0) /除得尽,则不是.n=1;break; /设置跳出,才不会执行多次.n=0; /按程序走的话,这里会执行多次,不能用printf语句,会输出多次.if(n=0) /单出口问题,虽然n=0执行多次,但仍然是n=0,这样才会只输出一次.printf(It is do a prime number !); /如果是100-200可以加个”%d”,nmu进去.e

10、lseprintf(It is not a prime number !);return 0;2.6-2.10要求用流程图表示上列算法.2.11-2.16要求用N-S图表示上列算法. 还要伪代码P036 0.1 调换二个参数的值.#include int main() char a=a,b=b,c;c=a;a=b;b=c;printf(a now is %c , b now is %c !n,a,b);return 0;P036 0.2 输入10个数,并输出最大的那一个数.#include int main() int i,a10,s=0 ;printf(Please input 10 num

11、bers :n);for(i=0;i=9;i+)scanf(%d,&ai);for(i=0;i=9;i+)if (sai) s=ai;printf(%d is the biggest number !n,s);return 0;P036 0.3 按大小顺序输出一些数.#include int main() int i , j , a4 , s=0 ;printf(Please input 5 numbers :n); /此处要回车.for (i=0 ; i=4 ; i+)scanf(%d,&ai); /这是取多个数的代码,可以用while控制取到n符为止.for (i=0 ; i=3 ; i+

12、) /双重循环,先一个外循,再轮所有小循,轮完后再下一个大循.for (j=i+1 ; jaj) /如果成立,则对换,小于号表示降序排列,大于号表示升序排列.s=ai;ai=aj;aj=s;for (i=0 ; i=4 ; i+) /重新定义循环输出数组中新排列的数.printf(%d-,ai);return 0;P036 0.4 求1至100的总合.#include int main()int i , sum=0 ; /这是一个简单的程序.for (i=0 ; i101 ; i+)sum=sum+i;printf(The sum of one to one hundred is %d !n,sum);return 0;P036 0.5 判断一个数能否同时被3和5整除.#include int main()int n ;printf(Please input a number :n);scanf(%d,&n);if(n%3=0&n%5=0)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号