2021-07-04第三章的问题

课后习题

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

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%。(活期存款每一季度结算一次利息)。
如果r为年利率,n为存款年数,则计算本息的公式为:
1年期本息和为:P=1000*(1+r);n年期的本息和为:P=1000*(1+nr);存n次一年期的本息和为:P=1000(1+r)n;存n次一年期的本息和为:P=1000*(1+r/4)(4n)。说明:1000(1+4/r)是一个季度的本息和。

3—第三题

4—
第四题

5—
第五题1第五题2

6—
第六题
key:

#include <stdio.h>
#include <math.h>
int main()
{
	char c1,c2,c3,c4,c5;
	c1=getchar();
	c2=getchar();
	c3=getchar();
	c4=getchar();
	c5=getchar();
	putchar(c1+4);
	putchar('\n');
	putchar(c2+4);
	putchar('\n');
	putchar(c3+4);
	putchar('\n');
	putchar(c4+4);
	putchar('\n');
	putchar(c5+4);
	putchar('\n');
	return 0;
}

运行结果如下:

China
G
l
m
r
e
Press any key to continue
#include <stdio.h>
#include <math.h>
int main()
{
	char c1,c2,c3,c4,c5;
	c1=getchar();
	c2=getchar();
	c3=getchar();
	c4=getchar();
	c5=getchar();
	printf("%c%c%c%c%c%c\n",c1+4,c2+4,c3+4,c4+4,c5+4);
	return 0;
}

运行结果如下:

China
Glmre€
Press any key to continue

就挺奇怪的,会多一个字符出来,也不知道是为什么呀。
7—
第七题
key:

#include <stdio.h>
#include <math.h>
int main()
{
	double r,h,pai,l,s,os,ov,cv;
	scanf("%lf,%lf",&r,&h);
	pai=3.14;
	l=2*pai*r;
	s=pai*r*r;
	os=4*pai*r*r;
	ov=4*pai*r*r*r/3;
	cv=pai*r*r*h;
	printf("圆周长为%.2lf\n圆的面积为%.2lf\n圆球的表面积为%.2lf\n圆球的体积为%.2lf\n圆柱的体积为%.2lf\n",l,s,os,ov,cv);
	return 0;
}

运行结果如下:

1.5,3
圆周长为9.42
圆的面积为7.06
圆球的表面积为28.26
圆球的体积为14.13
圆柱的体积为21.20
Press any key to continue

8—
第八题

key:
(1)二者皆可。
(2)用printf输入%d的就可以了。
(3)不是。需要在char的值域内。

正文

3.1程序设计举例

例3.1

#include <stdio.h>
int main()
{
	float f,c;
	f=64.0;
	c=(5.0/9)*(f-32);
	printf("f=%f\nc=%f\n",f,c);
	return 0;
}

float 单精度浮点型;
\n跳转下一行

例3.2

#include <stdio.h>
int main()
{
	float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;
	p1=p0*(1+r1);
	p2=p0*(1+r2);
	p3=p0*(1+(r3/2))*(1+(r3/2));
	printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);
	return 0;
}

3.2数据的表现形式机器运算

常量:
整型常量;
实型常量:十进制小数形式,指数形式;
字符常量:1-普通字符,单撇号是界限符,字符常量只能是一个字符,不包括单撇号。大小写是不同的字符常量。字符常量在计算机存储单元中是以ASCII表中对应的值进行存储的,ASCII在附录B。2-转义字符:如’\t’为跳转到下一个tab位置,一个tab位置为8列。转义字符及其作用P40
字符串常量:用双引号引起来,可包括多个字符。注意单引号只能包含一个字符,双撇号可以包含一个字符串。
符号常量
注意:区分符号常量和变量。习惯上符号常量用大写表示。

变量:
变量先定义,后使用。定义名字和类型。变量名实际上以一个名字代表的一个存储地址。实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。

常变量
常变量和符号变量的异同:
常变量 有类型,占存储单元,不变值。
符号变量 常用#define指令,是预编译指令,预编译时进行字符替换。预编译后就不存在了。符号变量的名字是不分配存储单元的。

标识符
在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符。
标识符只能由字母、数字和下划线三种字符组成且第一个字符必须为字母或下划线。

大写字母和小写字母,是不同的字符。变量名用小写字母。

3.2.2数据类型

例3.3

#include <stdio.h>
int main()
{
	char c1,c2;
	c1='A';
	c2='A'+32;
	printf("%c\n%d\n",c2,c2);
	return 0;
}

例3.4

#include <stdio.h>
#include <math.h>
int main()
{
	double a,b,c,s,area;
	a=3.67;
	b=5.43;
	c=6.21;
	s=(a+b+c)/2;
	area=sqrt(s*(s-a)*(s-b)*(s-c));
	printf("a=%f\tb=%f\tc=%f\n",a,b,c);
	printf("area=%f\n",area);
	return 0;
}

sqrt是求平方根,\t水平强制符,将当前位置移到下一个tab位置,一个tab是8列。

例3.5

#include <stdio.h>
#include <math.h>
int main()
{
	double a,b,c,disc,x1,x2,p,q;
	scanf("%lf,%lf,%lf",&a,&b,&c);
	disc=b*b-4*a*c;
	p=-b/(2*a);
	q=sqrt(b*b-4*a*c)/(2*a);
	if(disc>0)
	{
		printf("方程的根为%5.2lf和%5.2lf",p-q,p+q);
	}
	if(disc=0)
	{
		printf("方程的根为%5.2lf",p);
	}
	if(disc<0)
	{
		printf("没有实根");
	}
	return 0;
}

例3.6
用%f输出只能得到6位小数

#include <stdio.h>
#include <math.h>
int main()
{
	double a=1.0;
	printf("%f\n",a/3);
	return 0;

}

例3.7

#include <stdio.h>
#include <math.h>
int main()
{
	float a;
	a=10000/3.0;
	printf("%f\n",a);
	return 0;
}

输出结果如下:

3333.333252
Press any key to continue

因为float只能保证6~7位的有效数字,所以从第7位后出现了不可信数字。

#include <stdio.h>
#include <math.h>
int main()
{
	double a;
	a=10000/3.0;
	printf("%lf\n",a);
	return 0;
}

改成double后,可以看到,数字的结果是偏向于正确的了。

3333.333333
Press any key to continue

例3.8
putchar的作用说明

#include <stdio.h>
#include <math.h>
int main()
{
	char a='B',b='O',c='Y';
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	return 0;
}

字符类型也属于整数类型,将一个字符赋给字符变量和将字符的ASCII代码赋给字符变量作用是完全相同的,但应该注意整数类型数据在0~127的范围内。

#include <stdio.h>
#include <math.h>
int main()
{
	int a=66,b=79,c=89;
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	return 0;
}

putchar(c)中的C可以是字符变量、整型常量、字符变量或者是整型变量。

#include <stdio.h>
#include <math.h>
int main()
{
	int a=66,b=79,c=89;
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	putchar('\101');
	//putchar('\");
	putchar('\105');
	putchar('\n');
	return 0;
}

例子3.9
getchar的使用方法

#include <stdio.h>
#include <math.h>
int main()
{
	putchar(getchar());
	putchar('\n');
	return 0;
}
#include <stdio.h>
#include <math.h>
int main()
{
	putchar(getchar());
	putchar(getchar());
	putchar(getchar());
	putchar('\n');
	return 0;
}
#include <stdio.h>
#include <math.h>
int main()
{
	char a,b,c;
	a=getchar();
	b=getchar();
	c=getchar();
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	return 0;
}

例3.10
输入一个大写字母转化为一个小写字母

#include <stdio.h>
#include <math.h>
int main()
{
	char a;
	printf("请输入一个大写字母\n");
	a=getchar();
	a=a+32;
	putchar(a);
	putchar('\n');
	return 0;
}

例3.11
用printf替换putchar

#include <stdio.h>
#include <math.h>
int main()
{
	char a,b;
	printf("请输入一个大写字母\n");
	a=getchar();
	b=a+32;
	printf("输入的大写字母是:%c\n输入的小写字母是:%c\n",a,b);
	printf("\n");
	return 0;
}

正文部分到此结束。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值