谭浩强第五版课后习题答案-----第三章
1、假如我国国民生产总值的年增长率为7%, 计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为,其中r为年增长率,n为年数,p为与现在相比的倍数。
解析:从附录D(库函数)可以查到:可以用pow函数求p的值,调用pow函数的具体形式是pow(x,y)。
1、假如我国国民生产总值的年增长率为7%, 计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为,其中r为年增长率,n为年数,p为与现在相比的倍数。
运行程序如下:
#include <stdio.h>
#include <math.h>
int main(){float p,r,n;r=0.07;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;
}
运行结果
2、存款利息的计算。有1000元,想存5年,可按以下5种办法存:
(1)一次存5年期
(2)先存2年期,到期后将本息再存3年期
(3)先存3年期,到期后将本息再存2年期
(4)存1年期,到期后将本息再存1年期,连续存5次
(5)存活期存款,活期利息每一季度结算一次
2017年银行存款利息如下:
1年期定期存款利息为1.5%;
2年期定期存款利息为2.1%;
3年期定期存款利息为2.75%;
5年期定期存款利息为3%;
活期存款利息为0.35%(活期存款每一季度结算一次利息)
如果r为年利率,n为存款年数,则计算本息的公式为:
1年期本息和: P= 1000×(1+r);
n年期本息和: P= 1000×(1+n× r);
存n次1年期的本息和: P = 1000×;
活期存款本息和: P=1000×;
说明:1000×(1+)是一个季度的本息和。
解析:
设活期、一年期、两年期、三年期、四年期、五年期的年利率分别为r0、r1、r2、r3、r4、r5。
设按第一种方案、第二种方案......分别为p1、p2、p3、p4、p5。
运行程序如下:
#include <stdio.h>
#include <math.h>
int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.03;r3=0.0275;r2=0.021;r1=0.015;r0=0.0035;p1=p*(1+r5*5);p2=p*(1+2*r2)*(1+3*r3);p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1 +r1,5);p5=p*pow(1+r0/4,4*5);printf("pl= %f\n",p1);printf("p2= %f\n",p2);printf("p3= %f\n",p3);printf("p4= %f\n",p4);printf("p5= %f\n",p5);return 0;
}
运行结果:
3,购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300 000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五人处理。
提示:计算还清月数函数如下
可以将公式改写为
C的库函数中有求对数的函数lg10,是求以10为底的对数,lg(p)表示lg p。
运行程序如下:
#include <stdio.h>
#include <math.h>
int main(){float d=300000,p= 6000,r=0.01,m;m=log10(p/(p-d*r))/log10(1+r);printf("m=%6.1f\n",m);return 0;
}
运行结果如下:
4.分析下面的程序
#include<stdio.h>
int main()
{char c1, c2;c1 = 97;c2 = 98;printf("c1=%c, c2=%c\n", c1, c2);printf("c1=%d, c2=%d\n", c1, c2);return 0;
}
(1)运行时会输出什么信息?为什么?
解:运行时输出
第一行是将c1,c2按%c的格式输出,97是字符a的ASCII码,98是字符b的ASCII码。
第二行是将c1,c2按%d的格式输出,所以输出两个十进制整数。
(2)如果将程序第4,5行改为
c1=197;
c2=198;
运行时会输出什么信息?为什么?
会输出
解:以Visual C++6.0字符型数据是作为signed char 类型处理的,它存字符的有效范围为0~127,超过此范围的处理方法,不同的系统得到的结果不同,因而用%c格式输出时,结果是不可预料的。
用%d格式输出时,输出c1=-59,c2=-58。这是按补码形式输出的,内存字节中第一位为1时,作为负数,59与197之和等于256,58与198之和也等于256,对此可暂不深究。
只要知道:用char类型变量时,给它的赋值应在0~127范围内。
(3)如果将程序第三行改为
int c1,c2;
运行时会输出什么信息?为什么?
解:如果给c1和c2的赋值是97,98,则输出结果与(1)相同。
5.用下面的scanf 函数输人数据,使a=3,b=7,x=8.5,y=71. 82,cl=‘A’,c2=‘a’。在键盘上应如何输入?
#include<stdio.h>
int main()
{int a, b;float x, y;char c1, c2;scanf("a=%d b=%d", &a, &b);scanf("%f %e",&x, &y);scanf("%c %c",&c1, &c2);return 0;
}
解:按如下方式在键盘上输入(见下面第1,2行,第3行是输出结果)。
注意:在输入8.5和71.82两个实数给x和y后,应紧接着输入字符A,中间不要有空格,由于A是字母而不是数字,系统在遇到字母A时就确定输入给y的数值已经结束。字符A就送到下一个scanf语句中的字符变量c1。如果在输入8.5和71.82两个实数后输入空格符,会怎么样呢?情况如下:
这时71.82后面输入的空格字符就被c1读入,c2读入了字符A。在输出c1时就输出空格,输出c2的值为A。
如果在输入8.5和71.82两个实数后按回车键,会怎么样呢?情况如下:
上面三行是输入,在输入71.82后按回车键。在这时“回车”被作为一个字符送到内存输入缓冲区,被c1读入(实际上c1读入的是回车符的ASCII码),字符A被c2读取,所以在执行printf函数输出c1时,就输出一个换行,在下一行输出逗号和c2的值A。
在用scanf函数输入数据时往往会出现一些意想不到的情况,例如在连续输入不同类型的数据(特别是数值型数据和字符数据连续输入)的情况,要注意回车符是可能被作为一个字符读入的。
通过此例,可以了解怎样正确进行输入数据。这些知识不能靠枯燥的死记规则,必须善于在实践中注意分析现象,不断总结经验。
6.请编程序将“China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China"应译为“Glmre”。请编一程序,用赋初值的方法使cl,c2,c3,c4,c5这5个变量的值分别为’C’,‘h’,‘i’,‘n’,‘a’ ,经过运算,使c1,c2,c3,c4,c5 分别变为’G’,‘l’,‘m’,‘r’,‘e’。分别用putchar函数和printf函数输出这5个字符。
#include<stdio.h>int main()
{char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';c1 = c1 + 4;c2 = c2 + 4;c3 = c3 + 4;c4 = c4 + 4;c5 = c5 + 4;//使用putchar输出printf("使用putchar输出: ");putchar(c1);putchar(c2);putchar(c3);putchar(c4);putchar(c5);printf("\n");//使用printf输出printf("使用printf输出: %c%c%c%c%c\n", c1, c2, c3, c4, c5);return 0;
}
运行结果如下
7.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输人数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。
#include<stdio.h>int main()
{float h, r, l, s, sq, vq, vz;float pi = 3.141526;printf("请输入圆半径r,圆柱高h∶");scanf("%f %f", &r, &h); //要求输入圆半径r和圆柱高h l = 2 * pi*r; //计算圆周长ls = r*r*pi; //计算圆面积ssq = 4 * pi*r*r; //计算圆球表面积sqvq = 3.0 / 4.0*pi*r*r*r; //计算圆球体积vqvz = pi*r*r*h; //计算圆柱体积vzprintf("圆周长为: l=%6.2f\n", l);printf("圆面积为: s=%6.2f\n", s);printf("圆球表面积为: sq=%6.2f\n", sq);printf("圆球体积为: v=%6.2f\n", vq);printf("圆柱体积为: vz=%6.2f\n", vz);return 0;
}
运行结果:
说明:如果用Visual C++6.0中文版时对程序进行编译,在在程序中可以使用中文字符串,在输出时也能显示汉字。如果用英文的C编译系统,则无法使用中文字符串,读者可以改用英文字符串。
8. 编程序,用getchar函数读人两个字符给c1和c2,然后分别用putchar函数和printf函数输出这两个字符。思考以下问题:
(1) 变量cl和c2应定义为字符型、整型还是二者皆可?
(2) 要求输出cl和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3) 整型变量与字符变量是否在任何情况下都可以互相代替?如:
char c1,c2;
与
int cl,c2;
是否无条件地等价?
解答:
(1)c1和c2也可以定义为字符型或整型,二者皆可。
(2)可以用printf函数输出,在printf函数中用%d格式符,即printf("%d,%d\n",c1,c2);
(3)字符变量在计算机内占1个字节,而整型变量占2个或4个字节。因此整型变量在可输出字符的范围内(ASCII码为0~127的字符)是可以与字符数据互相转换的。如果整数在此范围外,不能代替。
谭浩强第五版课后习题答案-----第三章相关推荐
- C程序设计谭浩强第五版课后答案 第三章习题答案
C语言程序设计谭浩强第五版课后答案第三章 1.假如我国国民生产总值的年增长率为7%, 计算10年后我国国民生产总值与现在相比增长多少百分比.计算公式为p=(1+r)np = (1+r)^np=(1+r ...
- C语言程序设计(谭浩强第五版)——习题
C语言程序设计(谭浩强第五版)--习题 第3章 最简单的C程序设计--顺序程序设计 第4章 选择结构程序设计 第5章 循环结构程序设计 第6章 利用数组处理批量数据 第3章 最简单的C程序设计--顺序 ...
- 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母,小写字母,数字,空格以及其他字符的个数。谭浩强《C程序设计课后习题》第6章第10题。
题目 本题是谭浩强<C程序设计课后习题>第6章第10题. 题目:有一篇文章,共有3行文字,每行有80个字符.要求分别统计出其中英文大写字母,小写字母,数字,空格以及其他字符的个数. 以下是 ...
- 《C语言程序设计》谭浩强-学习笔记以及课后习题答案(考前复习/考研/专升本)
此笔记是几年前为了本人考试而学而写,今日回首感慨良多,便把尘封多年在旧电脑中的学习笔记翻出来分享给大家 此笔记参考书籍: <C语言程序设计>谭浩强 根据前九章内容主要知识点进行梳理 如果有 ...
- 计算机网络谢希仁第七版课后习题答案(第三章)
3-01数据链路(即逻辑链路)与链路(即物理链路)有何区别? "电路接通了"与"数据链路接通了"的区别何在? 答案:数据链路与链路的区别在于数据链路出链路外,还 ...
- 谭浩强C程序设计的课后习题答案
RT 很经典的一本书 希望对大家有帮助 转载于:https://blog.51cto.com/wall00d/137135
- c语言程序设计教程61页,谭浩强C语言程序设计课后习题答案所有的程序都有(61页)-原创力文档...
第三章 )\n",c1,c1); 3.4 printf("c2='%c'or %d(ASCII main() )\n",c2,c2); {int a,b,c; } lon ...
- 微型计算机原理与接口技术(周荷琴 冯焕清)第六版 课后习题答案 第三章(部分答案)
第三章 1.分别说明下列指令的源操作数和目的操作数各采用什么寻址方式. 源操作数 目的操作数 源操作数 目的操作数 (1)MOV AX, ...
- c语言程序设计第五版课后习题答案谭浩强第八章课后题
c语言程序设计第五版课后习题答案谭浩强第八章课后题 输入三个字符串,按由大到小的顺序输出 要求用指针实现 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个属兑换.写三个函数:1.输入 ...
- 《C语言程序设计》(谭浩强第五版) 第2章 算法——程序的灵魂
<C语言程序设计>(谭浩强第五版) 第2章 算法--程序的灵魂 习题解析与答案 你也可以上程序咖(https://meta.chengxuka.com),打开大学幕题板块,不但有答案,讲解 ...
最新文章
- 英伟达发布史上最强GPU,却叫停了自动驾驶车路测
- 【Java挠头】可变参、foreach、Annotation等特性
- 通用权限管理系统组件 (GPM - General Permissions Manager) 中后一个登录的把前一个登录的踢掉功能的实现...
- 自学it18大数据笔记-第三阶段Spark-day04——会持续更新……
- 鼠标监听类适配器改良
- sandy引擎学习笔记: 创建一个立方体
- Faste R-CNN的安装及测试
- android bmob获取数据,Android基于bmob后端云实现数据读取
- ACM入门之新手入门
- AR涂涂乐⭐六、 UGUI精灵格式、自动延迟截图、优化“4”、移出扫描框终止截图进程
- C语言计算数字乘积根,C 乘积根
- 浅谈浏览器插件检测 和自定义协议的支持
- 错误信息 Error executing DDL via JDBC Statement 解决办法
- fork和lockf应用
- 2019-07-12 函数递归、二分法、匿名函数、三元表达式、内置函数
- 正版手机应用导航,排排坐网站的初衷
- python:gettext --- 多语种国际化服务
- linux i2c 端口 usb,做了一个电容屏的IIC接口转USB
- 初等行变换、初等列变换
- 计算机图形学之组合图形的绘制(主要是渐变的实现)
热门文章
- C-V2X行业现状、产业化部署与演进路线
- 世界电子书展:号称最大的电子书库
- 毕业论文中期报告PPT模板
- cad完全卸载教程_怎么把CAD卸载干净,老司机来教你
- CTF_ CRYPTO(Cryptography)_密码学/密码编码学
- 达人评测 华为watch gt2和gt选哪个好
- 数据库索引:索引并不是万能药
- 新老系统迁移及整合方案
- 十二时辰及经络走向图
- [4G5G专题-59]:L3 RRC层-RRC层概述与总体架构、ASN.1消息、无线承载SRB, DRB、终端三种状态、MIB, SIB,NAS消息类型