#include<stdio.h> #include<math.h>//pow为调用数学函数需要加math.h头文件 int main() {
int n; float p, r=0.07; for(n=1;n<=10;n++) p=pow((r+1),n); printf("p=%.2f",p);//%。2f保留两位小数 }
c语言程序设计答案 第五版 谭浩强
2.存款利息的计算。有1000元,想存5年,可按以下5种办法存:
(1)一次存5年期。
(2)先存2年期,到期后将本息再存3年期。
(3)先存3年期,到期后将本息再存2年期。
(4)存1年期,到期后将本息再存1年期,连续存5次。
(5)存活期存款。活期利息每一季度结算一次。
2007年12月的银行存款利息如下:
1年期定期存款利息为4.14%;
2年期定期存款利息为4.68%;
3年期定期存款利息为5.4%;
5年期定期存款利息为5.85%;
活期存款利息为0.72%(活期存款每一季度结算一次)
1年期本息和:P=1000*(1+r);
n年期本息和:P=1000*(1+n*r);
存n次1年期的本息和:P=(1+r)^n;
#include<stdio.h> #include<math.h> main() {
float r5,r3,r2,r1,r0,p1,p2,p3,p4,p5,p; p = 1000; r0 = 0.0072; r1 = 0.0414 ; r2 = 0.0468; r3 = 0.054; r5 = 0.0585; p1 = p*(1+5*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("p1=%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; }
c语言程序设计答案 第五版 谭浩强
3.购房从银行贷了一笔款d, 准备每月还款额为p, 月利率为r, 计算多少月能还清。设d为元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。
公式为:m=log(p/(p-d*r))/log(1+r);
#include <stdio.h> #include <math.h> int main() {
int d = , p = 6000; //定义贷款总额,每月还贷数 double r = 0.01, m, x, y; //定义利率,月份 x = p / (p - d * r); y = 1 + r; m = log10(x) / log10(y); //计算公式 printf("m=%.2lf\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; }
5.用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’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); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1, c2); return 0; }
输入方式一及结果分析:
a=3 b=7
8.5 71.82Aa
a=3,b=7,x=8.,y=71.,c1=A,c2=a
请按任意键继续…
在输入8.5和71.82两个实数给x和y后,应紧接着输入字符A,中间不要有空格,由于字母A不是数字,系统在遇到字母A时,就确定输入给y的值已经结束,字符A就送到下一个scanf语句中的字符变量c1。
输入方式二及结果分析:
a=3 b=7
8.5 71.82 Aa
a=3,b=7,x=8.,y=71.,c1= ,c2=A
请按任意键继续…
在输入8.5和71.82两个实数后,输入的空格符就被c1读入,c2读入了字符A,故输出c1时就输出空格,输出c2的值为A。
输入方式三及结果分析:
a=3 b=7
8.5 71.82
Aa
a=3,b=7,x=8.,y=71.,c1=
,c2=A
请按任意键继续…
在输入8.5和71.82两个实数后,按回车键再输入Aa,这时“回车”被作为一个字符送到内存输入缓冲区,被c1读入,字符A被c2读取,故在输出c1时,就输出一个换行,在下一行输出逗号和c2的值A。
#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; printf("用printf输出密码为:%c%c%c%c%c\n", c1, c2, c3, c4, c5); printf("用putchar输出密码为:"); putchar(c1); putchar(c2); putchar(c3); putchar(c4); putchar(c5); printf("\n"); return 0; }
c语言程序设计答案 第五版 谭浩强
设圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。要求:用scanf输入数据,取小数点后两位。
#include<stdio.h> #include<math.h> void main() {
float r,h,pi=3.,C,S1,S2,V1,V2; printf("请输入圆半径圆柱高\n"); scanf("%f%f",&r,&h); C=4*pi*r; printf("圆周长=%2.2f\n",C); S1=pi*r*r; printf("圆面积=%2.2f\n",S1); S2=4*pi*r*r; printf("圆球表面积=%2.2f\n",S2); V1=(4/3)*pi*pow(r,3); printf("圆球体积=%2.2f\n",V1); V2=S1*h; printf("圆柱体积=%2.2f\n",V2); }
8.用getchar函数读入两个字符给c1,c2,分别用putchar和printf输出这两个字符。思考以下问题:
(1)变量c1和c2定义为字符型还是整型?或二者皆可?
(2)要求输出c1和c2的ASCII码,应如何处理?
(3)整形变量和字符变量是否在任何情况下都可以互相代替?char c1, c2;和int c1, c2;是否无条件等价?
#include<stdio.h> int main() {
char c1, c2; printf("请输入两个字符c1,c2:");//输入的两个字符之间没有空格,连续输入 c1 = getchar(); c2 = getchar(); printf("用putchar输出结果为:"); putchar(c1); putchar(c2); printf("\n"); printf("用printf输出结果为:"); printf("%c %c\n",c1,c2); /*printf("%d,%d\n", c1, c2);*/ return 0; }
(1)c1和c2可以定义为字符型或整型,二者皆可。
(2)用printf函数输出,使用%d格式符,即:
printf(“%d,%d\n”, c1, c2);
结果为:97,98
(3)字符变量占1个字节,整型变量占2或4个字节。故整型变量在可输出字符的范围内(ASCII码为0到127之间的字符)是可以与字符型数据互相转换的。如果整数在此范围外,不能代替。c语言程序设计答案 第五版 谭浩强
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233843.html原文链接:https://javaforall.net