这道题目要求计算在年增长率为7%的情况下,10年后国民生产总值与现在相比的增长倍数。计算公式为p=(1+r)^n,其中r为年增长率,n为年数。
c复制#include <stdio.h>
#include <math.h>
int main(){
float p, r = 0.07, n = 10;
p = pow(1+r , n);
printf("p = %f\n",p);
return 0;
}
注意:使用pow()函数需要包含math.h头文件。在编译时需要链接数学库,gcc编译时加上-lm参数。
这个程序的关键点在于:
计算结果约为1.967151,意味着10年后国民生产总值将是现在的约1.97倍。
这道题目给出了5种不同的存款方式,要求计算5年后的本息和。各种存款方式的利率不同,计算方式也有差异。
c复制#include <stdio.h>
#include <math.h>
int main() {
float p =1000, r1 = 0.015, r2 = 0.021,r3 = 0.0275,r4 = 0.03,r5 = 0.0035;
float P1,P2,P3,P4,P5;
P1=p*(1+r4*5);
P2=p*(1+r2*2)*(1+r3*3);
P3=p*(1+r3*3)*(1+r2*2);
P4=p*pow(1+r1,5);
P5=p*pow(1+r5/4,4*5);
printf("方法1的本息和: %.2f\n", P1);
printf("方法2的本息和: %.2f\n", P2);
printf("方法3的本息和: %.2f\n", P3);
printf("方法4的本息和: %.2f\n", P4);
printf("方法5的本息和: %.2f\n", P5);
return 0;
}
重要提示:原代码中有变量名大小写不一致的问题(p3和P3),在实际编程中要保持变量名大小写一致。
计算结果分析:
可以看出,一次性存5年期的收益最高,但流动性最差;活期存款最灵活但收益最低。
这道题目要求计算在给定贷款金额、月还款额和月利率的情况下,需要多少个月才能还清贷款。
c复制#include<stdio.h>
#include<math.h>
void main(){
float m, d = 300000 , p = 6000, r = 0.01;
m = log10(p/(p-d*r))/log10(1+r);
printf("m = %6.1f\n",m);
}
计算公式解析:
m = log(p/(p-d*r)) / log(1+r)
这个公式来源于等额本息还款法的数学推导,通过对还款公式进行变形得到。
计算结果约为69.7个月,即大约5年9个月可以还清贷款。
这道题目考察字符型变量和整型变量的关系,以及ASCII码的处理。
c复制#include<stdio.h>
void main(){
char c1='a', c2='b';
printf("c1 = %c,c2 = %c\n",c1,c2);
printf("c1 = %d,c2 = %d\n",c1,c2);
}
输出结果:
c1 = a,c2 = b
c1 = 97,c2 = 98
关键知识点:
注意:当赋值的整数超过char类型的表示范围(-128~127)时,会发生截断,按照补码解释。
题目要求使用scanf函数输入特定格式的数据。
c复制#include<stdio.h>
void 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=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);
}
输入格式:
a=3 b=7
8.5 71.82Aa
注意事项:
题目要求将"China"转换为后面第4个字母的密码。
c复制#include<stdio.h>
void 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;
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
}
输出结果:
Glmre
Glmre
关键点:
题目要求计算圆和圆柱的各种几何量。
c复制#include<stdio.h>
#define PI 3.1415926
void main (){
float r,h,l,s,cs,cv,qv;
scanf ("%f,%f", &r, &h);
l=2*PI*r; //圆周长
s=PI*r*r; //圆面积
cs=4*s; //圆球表面积
cv=4.0/3*PI*r*r*r;//圆球体积
qv=s*h; //圆柱体积
printf("圆周长l=%6.2f\n",l);
printf("圆面积s=%6.2f\n",s);
printf("圆球表面积cs=%6.2f\n",cs);
printf("圆球体积cv=%6.2f\n",cv);
printf("圆柱体积qv=%6.2f\n",qv);
}
注意:计算圆球体积时,4/3会得到整数1,应该写成4.0/3才能得到正确的浮点数结果。
计算结果示例(r=1.5,h=3):
圆周长l= 9.42
圆面积s= 7.07
圆球表面积cs=28.27
圆球体积cv=14.14
圆柱体积qv=21.21
题目考察getchar和putchar的使用,以及字符型和整型的关系。
c复制#include<stdio.h>
void main(){
int c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
printf("\n%d,%d\n",c1,c2);
}
问题解析:
重要提示:char类型通常是有符号的(-128~127),当处理可能大于127的字符时,最好使用unsigned char。
在实际编程中,我建议: