C程序设计 谭浩强 课后作业答案

发布 2022-09-04 13:07:28 阅读 8738

c程序设计 (谭浩强)课后作业答案。

第2章算法--程序的灵魂。

第3章最简单的c程序设计——顺序程序设计。

习题(82页)

2.解:#include<>

#include<>

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",p1);/输出按第1方案得到的本息和。

printf("p2=%f",p2);/输出按第2方案得到的本息和。

printf("p3=%f",p3);/输出按第3方案得到的本息和。

printf("p4=%f",p4);/输出按第4方案得到的本息和。

printf("p5=%f",p5);/输出按第5方案得到的本息和。

return0;

3.解:#include<>

#include<>

intmain()

floatd=300000,p=6000,r=0.01,m;

m=log10(p/(p-d*r))/log10(1+r);

printf("m=%6.2f",m);

return0;

第4章选择结构程序设计。

习题(111页)

3.写出下面各逻辑表达式的值。设a=3,b=4,c=5。

1)a+b>c&&b==c

解:a+b=7,c=5,a+b>5成立;

b=4,c=5,b==c不成立;

则输出的结果为0

2)a||b+c&&b-c

解:&&的运算优先级高于||

因为b+c=9,b-c=-1,b+c、b-c的值均为非0值,被认为是“真”

所以b+c&&b-c的值为1

又因为a=3>0,为“真”

所以a||b+c&&b-c的结果为1

3)!(a>b)&&c||1

解:a>b的结果为假,则!(a>b)为真。

c=5的结果为真,则!c为假。

则!(a>b)&&c为假。

所以!(a>b)&&c||1的结果为1

4)!(x=a)&&y=b)&&0

解:!(x=a)的结果为0,y=b的结果为1

则!(x=a)&&y=b)的结果为0

所以!(x=a)&&y=b)&&0的结果为0

5)!(a+b)+c-1&&b+c/2

解:!(a+b)的结果为0,则!(a+b)+c-1=4的结果为1

b+c/2=6(取整),则b+c/2=6的结果为1

所以!(a+b)+c-1&&b+c/2的结果为1

8.解:#include<>

intmain()

switch((int)(score/10))

case10:

case9:grade='a';break;

case8:grade='b';break;

case7:grade='c';break;

case6:grade='d';break;

case5:

case4:

case3:

case2:

case1:

case0:grade='e';

printf("成绩是%5.1f,相应的等级是%c",score,grade);

return0;

9.解:#include <>

#include <>

int main()

int num,indiv,ten,hundred,thousand,ten_thousand,place; /分别代表个位,十位,百位,千位,万位和位数

printf("请输入一个整数(0-99999):"

scanf("%d",&num);

if (num>9999)

place=5;

else if (num>999)

place=4;

else if (num>99)

place=3;

else if (num>9)

place=2;

else place=1;

printf("位数:%d",place);

printf("每位数字为:")

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);

switch(place)

case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);

printf("反序数字为:")

printf("%d%d%d%d%d",indiv,ten,hundred,thousand,ten_thousand);

break;

case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);

printf("反序数字为。

printf("%d%d%d%d",indiv,ten,hundred,thousand);

break;

case 3:printf("%d,%d,%d",hundred,ten,indiv);

printf("反序数字为。

printf("%d%d%d",indiv,ten,hundred);

break;

case 2:printf("%d,%d",ten,indiv);

printf("反序数字为。

printf("%d%d",indiv,ten);

break;

case 1:printf("%d",indiv);

printf("反序数字为。

printf("%d",indiv);

break;

return 0;

10.解:#include<>

intmain()

inti;doublebonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+100000*0.05;

bon6=bon4+100000*0.03;

bon10=bon6+400000*0.015;

printf("请输入利润i:")

scanf("%d",&i);

if(i<=100000)

bonus=i*0.1;

elseif(i<=200000)

bonus=bon1+(i-100000)*0.075;

elseif(i<=400000)

bonus=bon2+(i-200000)*0.05;

elseif(i<=600000)

bonus=bon4+(i-400000)*0.03;

elseif(i<=1000000)

bonus=bon6+(i-600000)*0.015;

elsebonus=bon10+(i-1000000)*0.01;

printf("奖金是:%10.2f",bonus);

return0;

第5章循环结构程序设计。

习题(140页)

3.解:#include<>

intmain()

intp,r,n,m,temp;

printf("请输入两个正整数n,m:")

scanf("%d,%d,",n,&m);

谭浩强C程序设计实验大纲

1.进入c 工作环境。建立个人子目录 第一次上机时先在e盘上建立一个sw1子目录,在sw1子目录下,再建立以自己学号后三位为目录名的子目录,如学号为9911001的同学,可以用001为子目录名。然后按以下步骤进行操作 启动visual c 6.0 双击windows桌面上的visual c 6.0图...

C语言程序设计作业答案

作业一c语言概述参 一 选择题。1 5acdcb二 编程题main 作业二程序的灵魂 算法参 一 填空题。1 确定性 有效性 有零个或多个输入 有一个或多个输出2 顺序结构 选择结构 循环结构3 函数。作业三数据类型 运算符与表达式参 一 选择题1 5bddab21 25addba 6 10bcaa...

C 语言程序设计作业答案

c 语言程序设计复习课。一 第一章单选题。1 在每个c 程序中都必须包含有这样一个函数,该函数的函数名为 答案 a a main b main c name d function 2 c 源程序文件的缺省扩展名为 答案 a a cpp b exe c obj d lik 3 程序运行中需要从键盘上输...