当前位置: 首页 > news >正文

C语言程序设计(第五版)谭浩强 第三章课后题答案

第三章 

 1、假如我国国民生产总值的年增长率为7%, 计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p = ( 1+r )^n ,其中r为年增长率,n为年数,p为与现在相比的倍数。

#include<stdio.h>
#include<math.h>int main(){float r,n,p;r=0.07;n=10;p=pow(1+r,n);printf("%2.f年后我国国民生产总值与现在相比增长 %2.f %% \n",n,100*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*(1+r)^n
  •         活期存款本息和:  P= 1000 *(1+ \frac{r}{4})^{4n}   

说明: 1000*(1+ \frac{r}{4})是一个季度的本息和。

#include<stdio.h>
#include<math.h>
int main(){float r1,r2,r3,r4,r5,n,m,p;r1=0.015;r2=0.021;r3=0.0275;r4=0.03;r5=0.0035;n=5;printf("一次存 5 年期,本息和为%.2f元\n",1000*(1+5*r4));printf("先存 2 年期,到期后将本息再存 3 年期,本息和为%.2f元\n",1000*(1+2*r2)*(1+3*r3) );printf("先存 3 年期,到期后将本息再存 2 年期,本息和为%.2f元\n",1000*(1+3*r3)*(1+2*r2) );printf("存1年期,到期后将本息再存1年期,连续存 5 次,本息和为%.2f元\n",1000*pow(1+r1,5) );printf("存活期存款,活期利息每一季度结算一次,本息和为%.2f元\n",1000*pow(1+r5/4,4*5) );return 0;
}

3、购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300 000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。

提示:计算还清月数m的公式如下:

  m={\frac{logp -log(p-d*r)}{log(1+r)}}

可以将公式改写为

C的库函数中有求对数的函数log10,是以求10为底的对数,log(p)表示log p

位数处理:
 

#include<stdio.h>
#include<math.h>int main(){//贷款d,准备每月还款额为p,月利率为rfloat d,p,r,m;d=300000;p=6000;r=0.01;m = log(p/(p-d*r))/log(1+r);printf("m=%.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=a,c2=b

c1=97,c2=98

原因

97在char字符中表示ascii值

(2)如果将程序第4,5行改为

  • c1 = 197;

  • c2 = 198;

运行时会输出什么信息?为什么?

输出

c1=?,c2=?

c1=-59,c2=-58

原因

1)数值溢出,197和198超过了char所能存储的数据范围(-128~127)

        197 –> 1100 0101–> -011 1010–> -011 1011–> -59
        198 –> 1100 0110–> -011 1001–> -011 1010–> -58
2)ASCII码没有对应198和197的码

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=%db=%d", &a, &b);scanf("%f%e",&x, &y);scanf("%c%c",&c1, &c2);return 0;
}

a=3b=7

8.57.182e+1

Aa

注:%e为科学计数法,输入7.182e+1表示7.182乘以10的1次方

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+=4;c2+=4;c3+=4;c4+=4;c5+=4;putchar(c1);putchar(c2);putchar(c3);putchar(c4);putchar(c5);printf("\n%c%c%c%c%c\n",c1,c2,c3,c4,c5);return 0;
}

7、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输人数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。

#include<stdio.h>
#include<math.h>
#define PI 3.1415926int main(){float r,h;printf("请输入圆半径r和圆柱高h:");scanf("%f %f",&r,&h);printf("圆周长为:%.2f\n",2*PI*r);printf("圆面积为:%.2f\n",PI*r*r);printf("圆球表面积为:%.2f\n",4*PI*r*r);printf("圆球体积为:%.2f\n",4/3*PI*pow(r,3));printf("圆柱体积为:%.2f\n",PI*r*r*h);return 0;
}

运行结果 

8.编程序,用getchar函数读人两个字符给c1和c2,然后分别用putchar函数和printf函数输出这两个字符。思考以下问题:
(1) 变量cl和c2应定义为字符型、整型还是二者皆可?

(2) 要求输出cl和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?

(3) 整型变量与字符变量是否在任何情况下都可以互相代替?如:
char c1,c2;

int cl,c2;
是否无条件地等价?

(1)二者皆可。

(2)用printf函数

(3)不能无条件等价,char的数据范围小。

http://www.lryc.cn/news/215458.html

相关文章:

  • uni-app 解决钉钉小程序日期组件uni-datetime-picker不兼容ios问题
  • 【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
  • 视频增强修复软件Topaz Video AI mac中文版支持功能
  • C# 使用Thread类建线程
  • asyncio协程框架
  • TSINGSEE智慧安防:AI人员入侵检测算法的工作原理及应用场景概述
  • Python:PDF转长图像和分页图像
  • 第48天:内置对象方法、 前端基础之BOM和DOM
  • CMake系列EP02: 构建可执行程序和库
  • 比亚迪今年的薪资。。
  • 【OpenCV实现图像找到轮廓的不同特征,就像面积,周长,质心,边界框等等。】
  • 数仓建模—数仓建设概论
  • Docker dnmp 多版本php安装 php8.2
  • Distilling the Knowledge in a Neural Network【论文解析】
  • 基于深度学习的自动驾驶汽车语义分割与场景标注算法研究。
  • 国内可用超丝滑ChatGPT4.0(附网址及微信入口)
  • linux入门---线程的同步
  • UI设计一定不能错过的4款常用工具
  • JavaScript 基础 - 第2天
  • MyBatis和JDBC异同点
  • 关于yarn安装一些东西报错时的处理方法
  • datagrip 使用自定义参数
  • css实现平行四边形按钮
  • Jmeter只能做性能测试吗?
  • Jmeter调用测试片段 —— 模块控制器
  • 数组类型题目总结
  • 机器学习2:决策树--基于信息增益的ID3算法
  • centos7完全卸载和安装mysql8
  • 常用的解析XML的开源库
  • SQLITE3 函数接口