作者在 2011-10-13 11:20:11 发布以下内容
习题3.1
/*
时间:2011年10月12日11:32:14
题目:习题3.1 假如我国国民生产总值的年增长率为9%,计算十年后我国国民生产总值与现在相比增长多少百分比
备注:计算公式为 p=(1+r)^n r为年增长率,n为年数,p为与现在相比的倍数
*/
# include <stdio.h>
# include <math.h>
int main()
{
double r,p;
int n;
r = 9.0/100;
n = 10;
p = pow(1+r,n);
printf("十年后我国国民生产总值与现在相比增长了%lf%\n",p*100); //如果想输出半角的%,需要敲两次
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
十年后我国国民生产总值与现在相比增长了236.736367%
Press any key to continue
————————————
*/
时间:2011年10月12日11:32:14
题目:习题3.1 假如我国国民生产总值的年增长率为9%,计算十年后我国国民生产总值与现在相比增长多少百分比
备注:计算公式为 p=(1+r)^n r为年增长率,n为年数,p为与现在相比的倍数
*/
# include <stdio.h>
# include <math.h>
int main()
{
double r,p;
int n;
r = 9.0/100;
n = 10;
p = pow(1+r,n);
printf("十年后我国国民生产总值与现在相比增长了%lf%\n",p*100); //如果想输出半角的%,需要敲两次
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
十年后我国国民生产总值与现在相比增长了236.736367%
Press any key to continue
————————————
*/
习题3.2
/*
时间:2011年10月12日13:53:14
题目:习题3.2 存款利息的计算
*/
# include <stdio.h>
# include <math.h>
int main()
{
int b=1000;
double r1=4.14/100;
double r2=4.68/100;
double r3=5.4/100;
double r5=5.85/100;
double r0=0.72/100;
double p5,p23,p32,p1,p0;
p5 = b*(1+r5*5);
p23 = b*(1+r2*2)*(1+r3*3);
p32 = b*(1+r3*3)*(1+r2*2);
p1 = b*pow(1+r1,5);
p0 = b*pow(1+r0/4,4*5);
printf("一次存5年期的本息和为:\t\t%f\n",p5);
printf("先存2年期再存3年期的本息和为:\t%f\n",p23);
printf("先存3年期再存2年期的本息和为:\t%f\n",p32);
printf("存1年期、连存5年的本息和为:\t%f\n",p1);
printf("存活期的本息和为:\t\t%f\n",p0);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
一次存5年期的本息和为: 1292.500000
先存2年期再存3年期的本息和为: 1270.763200
先存3年期再存2年期的本息和为: 1270.763200
存1年期、连存5年的本息和为: 1224.863989
存活期的本息和为: 1036.622300
Press any key to continue
————————————
*/
时间:2011年10月12日13:53:14
题目:习题3.2 存款利息的计算
*/
# include <stdio.h>
# include <math.h>
int main()
{
int b=1000;
double r1=4.14/100;
double r2=4.68/100;
double r3=5.4/100;
double r5=5.85/100;
double r0=0.72/100;
double p5,p23,p32,p1,p0;
p5 = b*(1+r5*5);
p23 = b*(1+r2*2)*(1+r3*3);
p32 = b*(1+r3*3)*(1+r2*2);
p1 = b*pow(1+r1,5);
p0 = b*pow(1+r0/4,4*5);
printf("一次存5年期的本息和为:\t\t%f\n",p5);
printf("先存2年期再存3年期的本息和为:\t%f\n",p23);
printf("先存3年期再存2年期的本息和为:\t%f\n",p32);
printf("存1年期、连存5年的本息和为:\t%f\n",p1);
printf("存活期的本息和为:\t\t%f\n",p0);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
一次存5年期的本息和为: 1292.500000
先存2年期再存3年期的本息和为: 1270.763200
先存3年期再存2年期的本息和为: 1270.763200
存1年期、连存5年的本息和为: 1224.863989
存活期的本息和为: 1036.622300
Press any key to continue
————————————
*/
习题3.3
/*
时间:2011年10月12日14:28:44
题目:习题3.3 购房从银行贷一笔款d,每月还p,月利率为r,计算多少个月还清,保留一位小数
备注:计算公式 m=(logp-log(p-d*r))/log(1+r)
*/
# include <stdio.h>
# include <math.h>
int main()
{
int d=300000;
int p=6000;
double r=1.0/100;
double m;
m = log10(p/(p-d*r)) / log10(1+r); //求以e为底对数的函数是log(x),求以10为底对数的函数是log10(x),
printf("需要还款的时间是%-.1lf个月\n",m);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
需要还款的时间是69.7个月
Press any key to continue
————————————
*/
时间:2011年10月12日14:28:44
题目:习题3.3 购房从银行贷一笔款d,每月还p,月利率为r,计算多少个月还清,保留一位小数
备注:计算公式 m=(logp-log(p-d*r))/log(1+r)
*/
# include <stdio.h>
# include <math.h>
int main()
{
int d=300000;
int p=6000;
double r=1.0/100;
double m;
m = log10(p/(p-d*r)) / log10(1+r); //求以e为底对数的函数是log(x),求以10为底对数的函数是log10(x),
printf("需要还款的时间是%-.1lf个月\n",m);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
需要还款的时间是69.7个月
Press any key to continue
————————————
*/
习题3.4
/*
时间:2011年10月12日14:58:53
题目:习题3.4 分析下面程序
*/
# include <stdio.h>
int main()
{
char c1,c2;
c1 = 97;
c2 = 98;
printf("c1=%c,c2=%c\n",c1,c2); //显示97和98对应的ASCII码
printf("c1=%d,c2=%d\n",c1,c2);
char c3,c4;
c3 = 197;
c4 = 198;
printf("c3=%c,c4=%c\n",c3,c4); //输出问号,因为超过了127的范围
printf("c3=%d,c4=%d\n",c3,c4); //输出-59,-58.也就是197-256和198-256
int c5,c6;
c5 = 97;
c6 = 98;
printf("c5=%c,c6=%c\n",c5,c6); //和用char定义变量效果一样
printf("c5=%d,c6=%d\n",c5,c6);
int c7,c8;
c7 = 197;
c8 = 198;
printf("c7=%c,c8=%c\n",c7,c8); //输出问号
printf("c7=%d,c8=%d\n",c7,c8); //输出197,198
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
c1=a,c2=b
c1=97,c2=98
c3=?c4=?
c3=-59,c4=-58
c5=a,c6=b
c5=97,c6=98
c7=?c8=?
c7=197,c8=198
Press any key to continue
————————————
*/
时间:2011年10月12日14:58:53
题目:习题3.4 分析下面程序
*/
# include <stdio.h>
int main()
{
char c1,c2;
c1 = 97;
c2 = 98;
printf("c1=%c,c2=%c\n",c1,c2); //显示97和98对应的ASCII码
printf("c1=%d,c2=%d\n",c1,c2);
char c3,c4;
c3 = 197;
c4 = 198;
printf("c3=%c,c4=%c\n",c3,c4); //输出问号,因为超过了127的范围
printf("c3=%d,c4=%d\n",c3,c4); //输出-59,-58.也就是197-256和198-256
int c5,c6;
c5 = 97;
c6 = 98;
printf("c5=%c,c6=%c\n",c5,c6); //和用char定义变量效果一样
printf("c5=%d,c6=%d\n",c5,c6);
int c7,c8;
c7 = 197;
c8 = 198;
printf("c7=%c,c8=%c\n",c7,c8); //输出问号
printf("c7=%d,c8=%d\n",c7,c8); //输出197,198
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
c1=a,c2=b
c1=97,c2=98
c3=?c4=?
c3=-59,c4=-58
c5=a,c6=b
c5=97,c6=98
c7=?c8=?
c7=197,c8=198
Press any key to continue
————————————
*/
习题3.5
/*
时间:2011年10月12日15:19:25
题目:用下面的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=%db=%d",&a,&b); //输入时a=3b=7。除了格式符的部分必须原样输入,回车结束
scanf("%f%e",&x,&y); //输入8.5 71.82之间用空格格开,输完不能回车,否则会车会被下面的语句当成一个字符赋值给c1,同样也不能输入空格
scanf("%c%c",&c1,&c2); //在71.82后面直接输入Aa。中间不能加空格,否则空格会被当成一个字符赋值给c2
printf("a=%d,b=%d\n",a,b);
printf("x=%f,y=%e\n",x,y);
printf("c1=%c,c2=%c\n",c1,c2);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
a=3b=7
8.5 71.82Aa
a=3,b=7
x=8.500000,y=7.182000e+001
c1=A,c2=a
Press any key to continue
------------------------
如果71.82后面输入回车
a=3b=7
8.5 71.82
Aa
a=3,b=7
x=8.500000,y=7.182000e+001
c1=
,c2=A
Press any key to continue
-------------------------
如果71.82后面输入空格
a=3b=7
8.5 71.82 Aa
a=3,b=7
x=8.500000,y=7.182000e+001
c1= ,c2=A
Press any key to continue
-------------------------
如果A和a中间输入空格
a=3b=7
8.5 71.82A a
a=3,b=7
x=8.500000,y=7.182000e+001
c1=A,c2=
Press any key to continue
————————————
*/
时间:2011年10月12日15:19:25
题目:用下面的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=%db=%d",&a,&b); //输入时a=3b=7。除了格式符的部分必须原样输入,回车结束
scanf("%f%e",&x,&y); //输入8.5 71.82之间用空格格开,输完不能回车,否则会车会被下面的语句当成一个字符赋值给c1,同样也不能输入空格
scanf("%c%c",&c1,&c2); //在71.82后面直接输入Aa。中间不能加空格,否则空格会被当成一个字符赋值给c2
printf("a=%d,b=%d\n",a,b);
printf("x=%f,y=%e\n",x,y);
printf("c1=%c,c2=%c\n",c1,c2);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
a=3b=7
8.5 71.82Aa
a=3,b=7
x=8.500000,y=7.182000e+001
c1=A,c2=a
Press any key to continue
------------------------
如果71.82后面输入回车
a=3b=7
8.5 71.82
Aa
a=3,b=7
x=8.500000,y=7.182000e+001
c1=
,c2=A
Press any key to continue
-------------------------
如果71.82后面输入空格
a=3b=7
8.5 71.82 Aa
a=3,b=7
x=8.500000,y=7.182000e+001
c1= ,c2=A
Press any key to continue
-------------------------
如果A和a中间输入空格
a=3b=7
8.5 71.82A a
a=3,b=7
x=8.500000,y=7.182000e+001
c1=A,c2=
Press any key to continue
————————————
*/
习题3.6
/*
时间:2011年10月12日15:35:26
题目:习题3.6 编程序将"China"译成密码"Glmre",分别用putchar和printf函数输出
备注:密码规律为 加4
*/
# include <stdio.h>
int main()
{
char c1='C';
char c2='h';
char c3='i';
char c4='n';
char c5='a';
c1 += 4;
c2 += 4;
c3 += 4;
c4 += 4;
c5 += 4;
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
putchar('\n');
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
Glmre
Glmre
Press any key to continue
————————————
*/
时间:2011年10月12日15:35:26
题目:习题3.6 编程序将"China"译成密码"Glmre",分别用putchar和printf函数输出
备注:密码规律为 加4
*/
# include <stdio.h>
int main()
{
char c1='C';
char c2='h';
char c3='i';
char c4='n';
char c5='a';
c1 += 4;
c2 += 4;
c3 += 4;
c4 += 4;
c5 += 4;
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
putchar('\n');
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
Glmre
Glmre
Press any key to continue
————————————
*/
习题3.7
/*
时间:2011年10月12日15:58:03
题目:习题3.7 求圆周长,圆面积,球表面积,球体积,圆柱体积,scanf输入,输出要有说明,保留2位小数
*/
# include <stdio.h>
int main()
{
double r,h;
double pi=3.1415926;
double c,s,sq,vq,vz;
printf("输入半径:");
scanf("%lf",&r);
printf("输入圆柱的高:");
scanf("%lf",&h);
c = 2*pi*r;
s = pi*r*r;
sq = 4*pi*r*r;
vq = 4/3*pi*r*r*r;
vz = pi*r*r*h;
printf("半径为%lf的圆的周长=\t\t\t%.2lf\n",r,c);
printf("半径为%lf的圆的面积=\t\t\t%.2lf\n",r,s);
printf("半径为%lf的球的表面积=\t\t\t%.2lf\n",r,sq);
printf("半径为%lf的球的体积=\t\t\t%.2lf\n",r,vq);
printf("半径为%lf、高为%lf的圆柱的体积=\t%.2lf\n",r,h,vz);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入半径:1.5
输入圆柱的高:3
半径为1.500000的圆的周长= 9.42
半径为1.500000的圆的面积= 7.07
半径为1.500000的球的表面积= 28.27
半径为1.500000的球的体积= 10.60
半径为1.500000、高为3.000000的圆柱的体积= 21.21
Press any key to continue
————————————
*/
时间:2011年10月12日15:58:03
题目:习题3.7 求圆周长,圆面积,球表面积,球体积,圆柱体积,scanf输入,输出要有说明,保留2位小数
*/
# include <stdio.h>
int main()
{
double r,h;
double pi=3.1415926;
double c,s,sq,vq,vz;
printf("输入半径:");
scanf("%lf",&r);
printf("输入圆柱的高:");
scanf("%lf",&h);
c = 2*pi*r;
s = pi*r*r;
sq = 4*pi*r*r;
vq = 4/3*pi*r*r*r;
vz = pi*r*r*h;
printf("半径为%lf的圆的周长=\t\t\t%.2lf\n",r,c);
printf("半径为%lf的圆的面积=\t\t\t%.2lf\n",r,s);
printf("半径为%lf的球的表面积=\t\t\t%.2lf\n",r,sq);
printf("半径为%lf的球的体积=\t\t\t%.2lf\n",r,vq);
printf("半径为%lf、高为%lf的圆柱的体积=\t%.2lf\n",r,h,vz);
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
输入半径:1.5
输入圆柱的高:3
半径为1.500000的圆的周长= 9.42
半径为1.500000的圆的面积= 7.07
半径为1.500000的球的表面积= 28.27
半径为1.500000的球的体积= 10.60
半径为1.500000、高为3.000000的圆柱的体积= 21.21
Press any key to continue
————————————
*/
习题3.8
/*
时间:2011年10月13日10:46:28
题目:习题3.8 编程序,用getchar读字符,分别用putchar和printf函数输出
*/
# include <stdio.h>
int main()
{
char c1,c2;
printf("请输入两个字符\n");
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
putchar('\n');
printf("%c%c\n",c1,c2);
printf("%d,%d\n",c1,c2); //想输出ASCII码值只能用printf
putchar(getchar()); //将之前用以结束输入的回车输出,避免对后面读字符产生影响
int c3,c4; //c定义为字符型还是整型没什么区别
printf("请输入两个字符\n");
c3=getchar();
c4=getchar();
putchar(c3);
putchar(c4);
putchar('\n');
printf("%c%c\n",c3,c4);
printf("%d,%d\n",c3,c4);
putchar(getchar());
int c5,c6; //c定义为整形后用printf函数输入也可以
printf("请输入两个整数\n");
scanf("%d%d",&c5,&c6); //输入的整数是有范围的,不能大于127
putchar(c5);
putchar(c6);
putchar('\n');
printf("%c%c\n",c5,c6);
printf("%d,%d\n",c5,c6);
putchar(getchar());
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
请输入两个字符
ab
ab
ab
97,98
请输入两个字符
ab
ab
ab
97,98
请输入两个整数
97 98
ab
ab
97,98
Press any key to continue
————————————
*/
时间:2011年10月13日10:46:28
题目:习题3.8 编程序,用getchar读字符,分别用putchar和printf函数输出
*/
# include <stdio.h>
int main()
{
char c1,c2;
printf("请输入两个字符\n");
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
putchar('\n');
printf("%c%c\n",c1,c2);
printf("%d,%d\n",c1,c2); //想输出ASCII码值只能用printf
putchar(getchar()); //将之前用以结束输入的回车输出,避免对后面读字符产生影响
int c3,c4; //c定义为字符型还是整型没什么区别
printf("请输入两个字符\n");
c3=getchar();
c4=getchar();
putchar(c3);
putchar(c4);
putchar('\n');
printf("%c%c\n",c3,c4);
printf("%d,%d\n",c3,c4);
putchar(getchar());
int c5,c6; //c定义为整形后用printf函数输入也可以
printf("请输入两个整数\n");
scanf("%d%d",&c5,&c6); //输入的整数是有范围的,不能大于127
putchar(c5);
putchar(c6);
putchar('\n');
printf("%c%c\n",c5,c6);
printf("%d,%d\n",c5,c6);
putchar(getchar());
return 0;
}
/*
在VC++6.0中的输出结果为:
————————————
请输入两个字符
ab
ab
ab
97,98
请输入两个字符
ab
ab
ab
97,98
请输入两个整数
97 98
ab
ab
97,98
Press any key to continue
————————————
*/