c程序设计第二版谭浩强答案.docx
- 文档编号:13594714
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:20
- 大小:20.12KB
c程序设计第二版谭浩强答案.docx
《c程序设计第二版谭浩强答案.docx》由会员分享,可在线阅读,更多相关《c程序设计第二版谭浩强答案.docx(20页珍藏版)》请在冰点文库上搜索。
c程序设计第二版谭浩强答案
c程序设计第二版谭浩强答案
【篇一:
c程序设计(第四版)谭浩强课后习题答案共11章】
t>1.1什么是计算机程序1
1.2什么是计算机语言1
1.3c语言的发展及其特点3
1.4最简单的c语言程序5
1.4.1最简单的c语言程序举例6
1.4.2c语言程序的结构10
1.5运行c程序的步骤与方法12
1.6程序设计的任务14
1-5#includestdio.h
intmain()
{printf(**************************\n\n);
printf(verygood!
\n\n);
printf(**************************\n);
return0;
}
1-6#includestdio.h
intmain()
{inta,b,c,max;
printf(pleaseinputa,b,c:
\n);
scanf(%d,%d,%d,a,b,c);
max=a;
if(maxb)
max=b;
if(maxc)
max=c;
printf(thelargestnumberis%d\n,max);
return0;
}
第2章算法——程序的灵魂16
2.1什么是算法16
2.2简单的算法举例17
2.3算法的特性21
2.4怎样表示一个算法22
2.4.1用自然语言表示算法22
2.4.2用流程图表示算法22
2.4.3三种基本结构和改进的流程图26
2.4.4用n?
s流程图表示算法28
2.4.5用伪代码表示算法31
2.4.6用计算机语言表示算法32
2.5结构化程序设计方法34
习题36
第章最简单的c程序设计——顺序程序设计37
3.1顺序程序设计举例37
3.2数据的表现形式及其运算39
3.2.1常量和变量39
3.2.2数据类型42
3.2.3整型数据44
3.2.4字符型数据47
3.2.5浮点型数据49
3.2.6怎样确定常量的类型51
3.2.7运算符和表达式52
3.3c语句57
3.3.1c语句的作用和分类57
3.3.2最基本的语句——赋值语句59
3.4数据的输入输出65
3.4.1输入输出举例65
3.4.2有关数据输入输出的概念67
3.4.3用printf函数输出数据68
3.4.4用scanf函数输入数据75
3.4.5字符数据的输入输出78
习题82
3-1#includestdio.h
#includemath.h
intmain()
{floatp,r,n;
r=0.1;
n=10;
p=pow(1+r,n);
printf(p=%f\n,p);
return0;
}
3-2-1
#includestdio.h
#includemath.h
intmain()
{floatr5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;
p=1000;
r5=0.0585;
r3=0.054;
r2=0.0468;
r1=0.0414;
r0=0.0072;
p1=p*((1+r5)*5);//一次存5年期
p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期
p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期
p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。
活期利息每一季度结算一次
printf(p1=%f\n,p1);//输出按第1方案得到的本息和
printf(p2=%f\n,p2);//输出按第2方案得到的本息和
printf(p3=%f\n,p3);//输出按第3方案得到的本息和
printf(p4=%f\n,p4);//输出按第4方案得到的本息和
printf(p5=%f\n,p5);//输出按第5方案得到的本息和
return0;
}
3-2-2
#includestdio.h
#includemath.h
intmain()
{doubler5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;
p=1000;
r5=0.0585;
r3=0.054;
r2=0.0468;
r1=0.0414;
r0=0.0072;
p1=p*((1+r5)*5);//一次存5年期
p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期
p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期
p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。
活期利息每一季度结算一次
printf(p1=%f\n,p1);//输出按第1方案得到的本息和
printf(p2=%f\n,p2);//输出按第2方案得到的本息和
printf(p3=%f\n,p3);//输出按第3方案得到的本息和
printf(p4=%f\n,p4);//输出按第4方案得到的本息和
printf(p5=%f\n,p5);//输出按第5方案得到的本息和
return0;
}
3-2-3
#includestdio.h
#includemath.h
intmain()
{floatr5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;
p=1000;
r5=0.0585;
r3=0.054;
r2=0.0468;
r1=0.0414;
r0=0.0072;
p1=p*((1+r5)*5);//一次存5年期
p2=p*(1+2*r2)*(1+3*r3);//先存2年期,到期后将本息再存3年期
p3=p*(1+3*r3)*(1+2*r2);//先存3年期,到期后将本息再存2年期
p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。
活期利息每一季度结算一次
printf(p1=%10.2f\n,p1);//输出按第1方案得到的本息和
printf(p2=%10.2f\n,p2);//输出按第2方案得到的本息和
printf(p3=%10.2f\n,p3);//输出按第3方案得到的本息和
printf(p4=%10.2f\n,p4);//输出按第4方案得到的本息和
printf(p5=%10.2f\n,p5);//输出按第5方案得到的本息和
return0;
}
3-3.
#includestdio.h
#includemath.h
intmain()
{floatd=300000,p=6000,r=0.01,m;
m=log10(p/(p-d*r))/log10(1+r);
printf(m=%6.2f\n,m);
return0;
}
3-4
#includestdio.h?
intmain()
{intc1,c2;
c1=197;
c2=198;
printf(c1=%c,c2=%c\n,c1,c2);
printf(c1=%d,c2=%d\n,c1,c2);
return0;
}
3-5
#includestdio.h
intmain()
{inta,b;
floatx,y;
charc1,c2;
scanf(a=%db=%d,a,b);
scanf(%f%e,x,y);
scanf(%c%c,c1,c2);
printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n,a,b,x,y,c1,c2);return0;
}
3-6
#includestdio.h
intmain()
{charc1=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(passworis%c%c%c%c%c\n,c1,c2,c3,c4,c5);
return0;
}
3-7
#includestdio.h
intmain()
{floath,r,l,s,sq,vq,vz;
floatpi=3.141526;
printf(请输入圆半径r,圆柱高h∶);
scanf(%f,%f,r,h);//要求输入圆半径r和圆柱高hl=2*pi*r;//计算圆周长l
【篇二:
c程序设计(第四版)(谭浩强)完整版课后习题答案】
ludestdio.h//预编译.代码均调试成功,若有失误大多不是代码问题.自已找找.
intmain()
{
}
p0081.2求两个数的和.
#includestdio.h
intmain()
{
}
inta,b,sum;a=5;b=4;sum=a+b;printf(thesumis%d.\n,sum);return0;
p0081.3调用函数比较两个数的大小.#includestdio.h
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(xy)z=x;z=y;elsereturn(z);//z作为整个程序的出口值,赋给主函数中的c.
p0150.6三个数的大小.(数字0表示课后练习题)
#includestdio.h
intmain()
{
}
intmax(intx,inty,intz)
{
}intm;if(xyxz)//求三者之大的一种方法.m=x;m=y;m=z;if(yxyz)if(zyzx)return(m);//返回值m给主函数中的d.inta,b,c,d;//d是用于存储最大值的.intmax(intx,inty,intz);//测试可知,在vs2008中,可以不预先声明.printf(pleaseinput3numbers:
\n);scanf(%d%d%d,a,b,c);printf(themaxis:
%d.\n,d);//d可以换成max(a,b,c).d=max(a,b,c);//调用函数中有三个形参,这里需要传入三个实参,才可运算.
c程序设计(第四版)(谭浩强)第2章课
后习题答案
算法——程序的灵魂
p0172.1计算机1-5相乘的积.
#includestdio.h
intmain()
{
}
#includestdio.h//作出要求:
换成1到11间奇数相乘.
intmain()
{
}
inti,s=1;//在执行数值操作前一定要先有个初值.for(i=1;i12;i++)//这里是到,但题目要求的是取单数.也可以是i=i+2{}printf(thesumis%d.\n,s);return0;if(i%2!
=0)//i对取模,值为非为奇数;为则为偶数.s=s*i;continue;//跳过这个for循环的这一次,执行下一次.elseinti,s=1;//在执行数值操作前一定要先有个初值.for(i=1;i6;i++)//这里是到6.{}printf(thesumis%d.\n,s);return0;s=s*i;//相乘
p0192.2按要求输出80分以上的学生信息.
暂时没法做.
年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。
所以,如果每年定义为365天的话,1年就会多出0.2423天,4年就会多出0.9692天,非常接近1天,这样闰
intmain()
{
}
inti;for(i=2000;i=2200;i++){}if((i%4==0i%100!
=0)||i%400==0)//闰年的经典判断条件.printf(%disaleapyear!
\n,i);printf(%disnotaleapyear!
\n,i);else
#includestdio.h
intmain()
{
}
floatsign=1,sum=0,deno,term;//关于有小数的计算应该用float.for(deno=1;deno=100;deno++){}printf(thesumofdeno(指定值)is%f.\n,sum);return0;//若是到100的话,结果为0.68172term=sign*(1/deno);//term临时值,sing符号,deno为分母.sum=sum+term;//第一次总全存储.sign=(-1)*sign;//换号.
p0212.5得到一个大于3的数,并判断是否为素数.#includestdio.h
intmain()
{
}
inti,num,n;//像13,37,这样只能让和它本身除以外,没有其它除数的叫素数.printf(pleaseinputanumber:
\n);//获取一个数值scanf(%d,num);for(i=2;inum;i++)//在到此数值间进行循环除,如果除得尽,就不满足素数要求.{}if(n==0)//单出口问题,虽然n=0执行多次,但仍然是n=0,这样才会只输出一次.{}else{}return0;printf(itisnotaprimenumber!
);printf(itisdoaprimenumber!
);//如果是100-200可以加个”%d”,nmu进去.if(num%i==0)//除得尽,则不是.{}n=0;//按程序走的话,这里会执行多次,不能用printf语句,会输出多次.n=1;break;//设置跳出,才不会执行多次.
2.11-2.16要求用n-s图表示上列算法.
…………还要伪代码
p0360.1调换二个参数的值.#includestdio.h
intmain()
{
chara=a,b=b,c;c=a;a=b;b=c;
【篇三:
c++程序设计(第2版谭浩强)习题答案】
>第2章
8.#includeiostream
usingnamespacestd;
intmain()
{charc1=c,c2=h,c3=i,c4=n,c5=a;
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
coutpasswordis:
c1c2c3c4c5endl;
return0;
}
第3章
2.#includeiostream
#includeiomanip
usingnamespacestd;
intmain()
{floath,r,l,s,sq,vq,vz;
constfloatpi=3.1415926;
coutpleaseenterr,h:
;
cinrh;
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=3.0/4.0*pi*r*r*r;
vz=pi*r*r*h;
coutsetiosflags(ios:
:
fixed)setiosflags(ios:
:
right)
setprecision
(2);
coutl=setw(10)lendl;
couts=setw(10)sendl;
coutsq=setw(10)sqendl;
coutvq=setw(10)vqendl;
coutvz=setw(10)vzendl;
return0;
}
3.#includeiostream
usingnamespacestd;
intmain()
{floatc,f;
cout请输入一个华氏温度:
;
cinf;
c=(5.0/9.0)*(f-32);//注意5和9要用实型表示,否则5/9值为0
cout摄氏温度为:
cendl;
return0;
};
4.#includeiostream
usingnamespacestd;
intmain()
{charc1,c2;
cout请输入两个字符c1,c2:
;
c1=getchar();//将输入的第一个字符赋给c1
c2=getchar();//将输入的第二个字符赋给c2
cout用putchar函数输出结果为:
;
putchar(c1);
putchar(c2);
coutendl;
cout用cout语句输出结果为:
;
coutc1c2endl;
return0;
}
9.第一种:
#includeiostream
usingnamespacestd;
intmain()
{inta,b,c;
coutpleaseenterthreeintegernumbers:
;
cinabc;
if(ab)
if(bc)
coutmax=c;
else
coutmax=b;
elseif(ac)
coutmax=c;
else
coutmax=a;
coutendl;
return0;
}
第二种:
#includeiostream
usingnamespacestd;
intmain()
{inta,b,c,temp,max;
coutpleaseenterthreeintegernumbers:
;
cinabc;
temp=(ab)?
a:
b;/*将a和b中的大者存入temp中*/
max=(tempc)?
temp:
c;/*将a和b中的大者与c比较,最大者存入max*/coutmax=maxendl;
return0;
}
10.#includeiostream
usingnamespacestd;
intmain()
{intx,y;
coutenterx:
;
cinx;
if(x1)
{y=x;
coutx=x,y=x=y;
}
elseif(x10)//1≤x<10
{y=2*x-1;
coutx=x,y=2*x-1=y;
}
else//x≥10
{y=3*x-11;
coutx=x,y=3*x-11=y;
}
coutendl;
return0;
}
11.#includeiostream
usingnamespacestd;
intmain()
{floatscore;
chargrade;
coutpleaseenterscoreofstudent:
;
cinscore;
while(score100||score0)
{coutdataerror,enterdataagain.;
cinscore;
}
switch(int(score/10))
{case10:
case9:
grade=a;break;
case8:
grade=b;break;
case7:
grade=c;break;
case6:
grade=d;break;
default:
grade=e;
}
coutscoreisscore,gradeisgradeendl;
return0;
}
12.#includeiostream
usingnamespacestd;
intmain()
{longintnum;
intindiv,ten,hundred,thousand,ten_thousand,place;
/*分别代表个位,十位,百位,千位,万位和位数*/coutenteraninteger(0~99999):
;
cinnum;
if(num9999)
place=5;
elseif(num999)
place=4;
elseif(num99)
place=3;
elseif(num9)
place=2;
elseplace=1;
coutplace=placeendl;
//计算各位数字
ten_thousand=num/10000;
thousand=(int)(num-ten_thousand*10000)/1000;
hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
coutoriginalorder:
;
switch(place)
{case
5:
coutten_thousand,thousand,hundred,ten,indivendl;coutreverseorder:
;
coutindivtenhundredthousandten_thousandendl;
break;
case4:
coutthousand,hundred,ten,indivendl;
coutreverseorder:
;
break;
case3:
couthund
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 第二 版谭浩强 答案