谭浩强 c语言程序设计(第二版)习题答案

上传人:小** 文档编号:61646311 上传时间:2018-12-08 格式:PDF 页数:49 大小:220.35KB
返回 下载 相关 举报
谭浩强  c语言程序设计(第二版)习题答案_第1页
第1页 / 共49页
谭浩强  c语言程序设计(第二版)习题答案_第2页
第2页 / 共49页
谭浩强  c语言程序设计(第二版)习题答案_第3页
第3页 / 共49页
谭浩强  c语言程序设计(第二版)习题答案_第4页
第4页 / 共49页
谭浩强  c语言程序设计(第二版)习题答案_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《谭浩强 c语言程序设计(第二版)习题答案》由会员分享,可在线阅读,更多相关《谭浩强 c语言程序设计(第二版)习题答案(49页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序设计(第语言程序设计(第 2 版)课后习题答案版)课后习题答案 第一章第一章 1.请参照本章例题,编写一个 C 程序,输出以下信息: * Very good! * 解: #include void main() printf(“*“); printf(“n“); printf(“Verygood!n“); printf(“n“); printf(“*“); 2.编写一个 C 程序,输入 a、b、c 三个值,输出其中最大值。 解: #include void main() int a,b,c,max; printf(“请输入三个数 a,b,c:n“); scanf(“%d,%d,%d

2、“, max=a; if(max #include void main() double P, r=0.1, n=10; P=pow(1+r), n); printf(“%lfn“, P); 3.请编程序将“China“译成密码, 译码规律是用原来字母后面的第 4 个字母代替原 来的字母。例如,字母“A“后面第 4 个字母是“E“, “E“代替“A“。因此,“China“ 应译为“Glmre“。请编一程序,用赋初值的方法使 cl、c2、c3、c4、c5 五个变量 的值分别为C、h、i、n、a,经过运算,使 c1、c2、c3、c4、c5 分别变为G、 l、m、r、e,并输出。 解: #inclu

3、de void main() char c1=C,c2=h,c3=i,c4=n,c5=a; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(“密码是%c%c%c%c%cn“,c1,c2,c3,c4,c5); 第三章第三章 3.用下面的 scanf 函数输入数据,使 a=3, b=7, x=8.5, y=71.82, c1=A, c2=a。问在 键盘上如何输入? 解: #include void main() int a, b; float x, y; char c1, c2; scanf(“a=%d, b=%d“, scanf(“ x=%f, y=%e“,

4、scanf(“ c1=%c, c2=%c“, a=3, b=7 x=8.5, y=71.82 c1=A, c2=a 5. 设圆半径 r=1.5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、 圆柱体积。用 scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点 后 2 位数字。请编程序。 解: #include void main() float r,h,C1,Sa,Sb,Va,Vb; scanf(“%f,%f“, 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“

5、,C1); printf(“Sa=%.2fnSb=%.2fnVa=%.2fnVb=%.2fn“,Sa,Sb,Va,Vb); 6. 输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9,输出要求有文 字说明,取位 2 小数。 解: #include void main() float F,c; scanf(“%f“, c=5*(F-32)/9; printf(“c=%.2f“,c); 7. 编程序,用 getchar 函数读入两个字符给 c1、c2,然后分别用 putchar 函数和 printf 函数输出这两个字符。思考以下问题: (1)变量 c1、c2 应定义为字符型或整形?或

6、二者皆可? (2)要求输出c1和c2值的ASCII码, 应如何处理?用putchar函数还是printf函数? (3)整形变量与字符变量是否在任何情况下都可以互相代替?如: charc1,c2;与 intc1, c2; 是否无条件地等价? 解: #include void main() char c1,c2; c1=getchar(); c2=getchar(); putchar(c1);putchar(n);putchar(c2);putchar(n); #include void main() char c1,c2; c1=getchar(); c2=getchar(); printf(“

7、c1=%d c2=%dn“,c1,c2); printf(“c1=%c c2=%cn“,c1,c2); 第四章第四章 3. 写出下面各逻辑表达式的值。设 a=3,b=4,c=5。 (1)a+bc printf(“请输入 3 个整数:“); scanf(“%d,%d,%d“, temp=(ab)?a:b; max=(tempc)?temp:c; printf(“3 个整数的最大数是%dn“,max); 6. 给一个百分制成绩,要求输出等级A、B、 C、D、 E。90 分以上为A,8090 分为B,7079 分为C,60 分以下为D。 解: #include void main() float s

8、core; char grade; printf(“请输入学生成绩:“); scanf(“%f“, while(score100|score void main() long int num; int indiv,ten,hundred,thousand,ten_thousand,place;/*分别代表个位、十位、百 位、千位、万位和位数*/ printf(“请输入一个整数(099999): “); scanf(“%ld“, if (num9999)place=5; elseif(num999)place=4; elseif(num99)place=3; elseif(num9)place=

9、2; elseplace=1; printf(“place =%dn“, place); ten_thousand=num/10000; thousand=num/1000%10; hundred=num/100%10; ten=num%100/10; indiv=num%10; switch(place) case 5: printf(“%d,%d,%d,%d,%d“,ten_thousand,thousand,hundred,ten,indiv); printf(“n 反序数字为: “); printf(“%d%d%d%d%dn“,indiv,ten,hundred,thousand,te

10、n_thousand); break; case 4: printf(“%d,%d,%d,%d“,thousand,hundred,ten,indiv); printf(“n 反序数字为: “); printf(“%d%d%d%dn“,indiv,ten,hundred,thousand); break; case 3: printf(“%d,%d,%d“,hundred,ten,indiv); printf(“n 反序数字为: “); printf(“%d%d%dn“,indiv,ten,hundred); break; case 2: printf(“%d,%d“,ten,indiv);

11、printf(“n 反序数字为: “); printf(“%d%dn“,indiv,ten); break; case 1: printf(“%d“,indiv); printf(“n 反序数字为: “); printf(“%dn“,indiv); break; 8. 企业发放的奖金根据企业的当年利润决定。 当利润 I 低于或等于 100000 元时, 奖金可提成 10%;利润大于 100000 元,小于 200000 元(1000001000000)时,超过 1000000 元的 部分按 1%提成。从键盘输入当年利润 I,求应发放奖金总数。要求: (1)用 if 语句编程序;(2)用 swi

12、tch 语句编程序。 解: (1) 用 if 语句编程序。 #include void main() long i; float bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1;/*利润为 10 万元时的奖金*/ bon2=bon1+100000*0.075;/*利润为 20 万元时的奖金*/ bon4=bon2+200000*0.05;/*利润为 40 万元时的奖金*/ bon6=bon4+200000*0.03;/*利润为 60 万元时的奖金*/ bon10=bon6+400000*0.015;/*利润为 100 万元时的奖金*/ prin

13、tf(“请输入利润 i: “); scanf(“%ld“, if(i void main() long i; float bonus, bon1, bon2, bon4, bon6, bon10; int c; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf(“请输入利润 i: “); scanf(“%ld“, c=i/100000; if(c10)c=10; switch(c) case 0: bonus

14、=1*0.1;break; case 1: bonus=bon1+(i-100000)*0.075;break; case 2 : case 3: bonus=bon2+(i-200000)*0.05; break; case 4: case 5: bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9: bonus=bon6+(i-600000)*0.015;break; case 10: bonus=bon10+(i-1000000)*0.01; printf(“奖金是%10.2f“,bonus); 9. 输入 4

15、个整数,要求按由小到大的顺序输出。 解: #include void main() int t,a,b,c,d; printf(“请输入 4 个整数: “); scanf(“%d,%d,%d,%d“, printf(“n a=%d,b=%d,c=%d,d=%dn“,a,b,c,d); if(ab)t=a; a=b; b=t; if(ac)t=a; a=c; c=t; if(ad)t=a; a=d; d=t; if(bc)t=a; b=c; c=t; if(bd)t=b; b=d; d=t; if(cd)t=c; c=d; d=t; printf(“排序结果如下: n“); printf(“%d, %d, %d, %dn“,a,b,c,d); 10. 有 4 个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为 1。 这 4 个塔的高度分别为 10m。塔以外无建筑物。今输入任一点的坐标,求该点的 建筑高度(塔外的高度为零)。 解: #include void main() int h=10; float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4;

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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