C程序设计第四版谭浩强完整版课后习题答案.docx
- 文档编号:662954
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:107
- 大小:55.31KB
C程序设计第四版谭浩强完整版课后习题答案.docx
《C程序设计第四版谭浩强完整版课后习题答案.docx》由会员分享,可在线阅读,更多相关《C程序设计第四版谭浩强完整版课后习题答案.docx(107页珍藏版)》请在冰豆网上搜索。
C程序设计第四版谭浩强完整版课后习题答案
C程序设计(第四版)(谭浩强)第一章课后习题答案
P0061.1向屏幕输出文字.
#include
intmain()
{
printf("Welcometo\n");
return0;//与intmain对应,为了程序可移植性,建议全用intmain+return0;.
}
P0081.2求两个数的和.
#include
intmain()
{
inta,b,sum;
a=5;
b=4;
sum=a+b;
printf("Thesumis%d.\n",sum);
return0;
}
P0081.3调用函数比较两个数的大小.
#include
intmain()
{
intmax(intx,inty);//被调用函数在主函数后面,用前先声明.
inta,b,c;
scanf("%d,%d",&a,&b);//输入时要按格式来,此处的逗号,用空格会发生错误.
c=max(a,b);//a,b作为实参传入被调用函数中.
printf("Themaxis%d.\n",c);
return0;
}
intmax(intx,inty)//定义了两个形参.
{
intz;//z属于局部变量,可与主函数中相同名字.
if(x>y)
z=x;
else
z=y;
return(z);//z作为整个程序的出口值,赋给主函数中的c.
}
P0150.6三个数的大小.(数字0表示课后练习题)
#include
intmain()
{
inta,b,c,d;//d是用于存储最大值的.
intmax(intx,inty,intz);//测试可知,在VS2008中,可以不预先声明.
printf("Pleaseinput3numbers:
\n");
scanf("%d%d%d",&a,&b,&c);
d=max(a,b,c);//调用函数中有三个形参,这里需要传入三个实参,才可运算.
printf("Themaxis:
%d.\n",d);//d可以换成max(a,b,c).
}
intmax(intx,inty,intz)
{
intm;
if(x>y&&x>z)//求三者之大的一种方法.
m=x;
if(y>x&&y>z)
m=y;
if(z>y&&z>x)
m=z;
return(m);//返回值m给主函数中的d.
}
C程序设计(第四版)(谭浩强)第2章课后习题答案
算法——程序的灵魂
P0172.1计算机1-5相乘的积.
#include
intmain()
{
inti,s=1;//在执行数值操作前一定要先有个初值.
for(i=1;i<6;i++)//这里是到6.
{
s=s*i;//相乘
}
printf("Thesumis%d.\n",s);
return0;
}
#include
换成1到11间奇数相乘.
intmain()
{
inti,s=1;//在执行数值操作前一定要先有个初值.
for(i=1;i<12;i++)//这里是到,但题目要求的是取单数.也可以是i=i+2
{
if(i%2!
=0)//i对取模,值为非为奇数;为则为偶数.
s=s*i;
else
continue;//跳过这个for循环的这一次,执行下一次.
}
printf("Thesumis%d.\n",s);
return0;
}
P0192.2按要求输出80分以上的学生信息.
暂时没法做.
P0192.3判断2000-2500年中的闰年,并输出.
年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。
所以,如果每年定义为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整除,则计为闰年。
简单说来每400年里设置了97个闰年,也就是400里的前3个100年不设置闰年,误差被调整到400年仅有0.08天。
#include
intmain()
{
inti;
for(i=2000;i<=2200;i++)
{
if((i%4==0&&i%100!
=0)||i%400==0)//闰年的经典判断条件.
printf("%disaleapyear!
\n",i);
else
printf("%disnotaleapyear!
\n",i);
}
}
P0202.4求
(1)-(1/2)+(1/3)……+(1/99)-(1/100)的值.
#include
intmain()
{
floatsign=1,sum=0,deno,term;//关于有小数的计算应该用float.
for(deno=1;deno<=100;deno++)
{
term=sign*(1/deno);//term临时值,sing符号,deno为分母.
sum=sum+term;//第一次总全存储.
sign=(-1)*sign;//换号.
}
printf("Thesumofdeno(指定值)is%f.\n",sum);
return0;//若是到100的话,结果为0.68172
}
P0212.5得到一个大于3的数,并判断是否为素数.
#include
intmain()
{
inti,num,n;//像13,37,这样只能让和它本身除以外,没有其它除数的叫素数.
printf("Pleaseinputanumber:
\n");//获取一个数值
scanf("%d",&num);
for(i=2;i { if(num%i==0)//除得尽,则不是. { n=1; break;//设置跳出,才不会执行多次. } n=0;//按程序走的话,这里会执行多次,不能用printf语句,会输出多次. } if(n==0)//单出口问题,虽然n=0执行多次,但仍然是n=0,这样才会只输出一次. { printf("Itisdoaprimenumber! ");//如果是100-200可以加个”%d”,nmu进去. } else { printf("Itisnotaprimenumber! "); } return0; } 2.6-2.10要求用流程图表示上列算法. 2.11-2.16要求用N-S图表示上列算法. …………还要伪代码 P0360.1调换二个参数的值. #include intmain() { chara='a',b='b',c; c=a; a=b; b=c; printf("anowis%c,bnowis%c! \n",a,b); return0; } P0360.2输入10个数,并输出最大的那一个数. #include intmain() { inti,a[10],s=0; printf("Pleaseinput10numbers: \n"); for(i=0;i<=9;i++) { scanf("%d",&a[i]); } for(i=0;i<=9;i++) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 第四 版谭浩强 完整版 课后 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)