谭浩强c语言练习

目录

第一章

1.例1.2-求两个数和

2.例1.3-求两个整数中的较大者

3.ex1.6-求三个数最大值

第三章

1.例3.1-温度转换

2.例3.2计算存款利息。 有1000元,想存- -年。有3种方法可选: (1)活期,年利率为rl; (2)一年期定期,年利率为r2; (3)存两次半年定期,年利率为r3。请分别计算出一年后按3种方法所得到的本息和。

4.例3.4给出三角形 的三边长,求三角形面积。

5.例3.5求ax2+bx+c=0方程的根。a,b,c 由键盘输人,设b3-4ac>0.

6.例3.8-putchar输出字符

7.例3.9-getchar输入字符

8.例3.10-大小写转换

9.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。

10.存款利息的计算。有1000元,想存5年,可按以下5种办法存:     (1)一次存5年期。     (2)先存2年期,到期后将本息再存3年期。.     (3)先存3年期,到期后将本息再存2年期。     (4)存1年期,到期后将本息再存1年期,连续存5次。     (5)存活期存款。活期利息每一季度结算一次。

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

12.ex3.4

13.请编程序将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E" ,用“E”代替“A”。因此,“China”应译为“Glmre”。请编- -程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为'C','h',','n','a' ,经过运算,使c1,c2,c3,c4,c5 分别变为'G','I','m','r','e'。 分别用putchar 函数和printf 函数输出这5个字符。

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

15.编程序,用getchar函数读人两个字符给cl和c2 ,然后分别用putchar函数和printf函数输出这两个字符。


第一章

1.例1.2-求两个数和

#include <stdio.h>

int main(int argc, const char *argv[])
{
	int a,b,sum;
	a=123;
	b=456;
	sum=a+b;
	printf("sum=%d\n",sum);
	
	return 0;
}

2.例1.3-求两个整数中的较大者

#include <stdio.h>


int main(int argc, const char *argv[])
{
	int max(int x,int y);
	int a,b,c;
	printf("请输入两个整数:\n");
	scanf("%d %d",&a,&b);
	c=max(a,b);
	printf("max=%d\n",c);
	return 0;
}


int max(int x,int y)
{
	int z;
	if(x>y)
	{
		z=x;
	}
	else
	{
		z=y;
	}
	return z;
}

3.ex1.6-求三个数最大值

#include <stdio.h>

int main(int argc, const char *argv[])
{
	int max(int x,int y,int z);
	int a,b,c,d;
	printf("输入三个整数:");
	scanf("%d %d %d",&a,&b,&c);
	d=max(a,b,c);
	printf("max=%d\n",d);
	
	return 0;
}

int max(int x,int y,int z)
{
	int max=x;
	if (max<y)
	{
		max=y;
	}
	if (max<z);
	{
		max=z;
	}
	return max;
}

第三章

1.例3.1-温度转换

#include <stdio.h>

int main(int argc, const char *argv[])
{
	float f,c;
	f=64.56;
	c=(5.0/9)*(f-32);
	printf("f=%.2f,c=%.2f\n",f,c);

	return 0;
}

2.例3.2计算存款利息。 有1000元,想存- -年。有3种方法可选: (1)活期,年利率为
rl; (2)一年期定期,年利率为r2; (3)存两次半年定期,年利率为r3。请分别计算出一年后
按3种方法所得到的本息和。

#include <stdio.h>


int main(int argc, const char *argv[])
{
	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,p2=%f,p3=%f\n",p1,p2,p3);

	return 0;
}

3.例3.3-大小写转换

#include <stdio.h>

int main(int argc, const char *argv[])
{
	char a;
	printf("请输入一个大写字母:");
	scanf("%c",&a);
	char b=a+32;
	printf("小写字母为:%c\n",b);
	return 0;
}

4.例3.4给出三角形 的三边长,求三角形面积。

#include <stdio.h>
#include <math.h>

int main(int argc, const char *argv[])
{
	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=%fc=%f\n",a,b,c);
	printf("area=%f\n",area);

	
	return 0;
}

5.例3.5求ax2+bx+c=0方程的根。a,b,c 由键盘输人,设b3-4ac>0.

#include <stdio.h>
#include <math.h>

int main(int argc, const char *argv[])
{
	double a,b,c,disc,x1,x2,p,q;
	scanf("%lf%lf%lf",&a,&b,&c);
	disc=b*b-4*a*c;
	b=-b/(2.0*a);
	q=sqrt(disc)/(2.0*a);
	x1=p+q;
	x2=p-q;
	printf("x1=%7.2f,x2=%7.2f\n",x1,x2);
	
	return 0;
}

6.例3.8-putchar输出字符

#include <stdio.h>


int main(int argc, const char *argv[])
{
	char a='A';
	char b='B';
	putchar(a);
	putchar(b);
	putchar(10);
	return 0;
}

7.例3.9-getchar输入字符

#include <stdio.h>

int main(int argc, const char *argv[])
{
#if 0
	char a,b,c,d;
	printf("请输入4个字符");
	a=getchar();
	b=getchar();
	c=getchar();
	d=getchar();
	putchar(a);
	putchar(b);
	putchar(c);
	putchar(d);
	putchar(10);
#endif
	printf("请输入四个字符:");
	putchar(getchar());
	putchar(getchar());
	putchar(getchar());
	putchar(getchar());
	putchar(10);

	return 0;
}

8.例3.10-大小写转换

#include <stdio.h>

int main(int argc, const char *argv[])
{
	char c1,c2;
	printf("请输入一个大写字母:");
	c1=getchar();
	c2=c1+32;
	putchar(c2);
	putchar(10);

	return 0;
}

9.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。

#include <stdio.h>
#include <math.h>


int main(int argc, const char *argv[])
{
	float p,r;
	int n;
	p=pow(1+r,n);  //pow(x,y)指数函数x的y次方
	printf("p=%f\n",p);

	return 0;
}

10.存款利息的计算。有1000元,想存5年,可按以下5种办法存:
     (1)一次存5年期。
     (2)先存2年期,到期后将本息再存3年期。.
     (3)先存3年期,到期后将本息再存2年期。
     (4)存1年期,到期后将本息再存1年期,连续存5次。
     (5)存活期存款。活期利息每一季度结算一次。

#include <stdio.h>
#include <math.h>

int main(int argc, const char *argv[])
{
	float r0,r1,r2,r3,r5,p,p1,p2,p3,p4,p5;
	p=1000;
	r5=0.0585;
	r3=0.054;
	r2=0.0468;
	r1=0.0414;
	r0=0.0072;

	p1=p*((1+r5)*5);  //一次存5年
	p2=p*(1+2*r2)*(1+3*r3);   //先存两年,再存三年
	p3=p*(1+3*r3)*(1+2*r2);   //先存三年,再存两年
	p4=p*pow(1+r1,5);   //连续存5次一年
	p5=p*pow(1+r0/4,4*5);  //存活期

	printf("p1=%7.2f\n",p1);
	printf("p2=%7.2f\n",p2);
	printf("p3=%7.2f\n",p3);
	printf("p4=%7.2f\n",p4);
	printf("p5=%7.2f\n",p5);
	
	return 0;
}

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

#include <stdio.h>
#include <math.h>
int main(int argc, const char *argv[])
{
	float d=300000,p=6000,r=0.01;
	float m=0,n,N;
	n=log10(p/(p-d*r));
	N=log10(1+r);

	m=n/N;
	printf("m=%.1f\n",m);
	

	return 0;
}

12.ex3.4

#include <stdio.h>

int main(int argc, const char *argv[])
{
	char c1,c2;
//	c1=97;
//	c2=98;
    c1=197;
	c2=198;
	printf("c1=%c,c2=%c\n",c1,c2);
	printf("c1=%d,c2=%d\n",c1,c2);
	return 0;
}

13.请编程序将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E" ,用“E”代替“A”。因此,“China”应译为“Glmre”。请编- -程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为'C','h',','n','a' ,经过运算,使c1,c2,c3,c4,c5 分别变为'G','I','m','r','e'。 分别用putchar 函数和printf 函数输出这5个字符。

#include <stdio.h>


int main(int argc, const char *argv[])
{
	char c1='C';
	char c2='h';
	char c3='i';
	char c4='n';
	char c5='a';

	char c6=c1+4;
	char c7=c2+4;
	char c8=c3+4;
	char c9=c4+4;
	char c10=c5+4;

	putchar(c6);
	putchar(c7);
	putchar(c8);
	putchar(c9);
	putchar(c10);
	putchar(10);

	return 0;
}

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

#include <stdio.h>
#define pi  3.1415926

int main(int argc, const char *argv[])
{
	float r,h,c,s,sq,vq,vz;
	printf("请输入圆的半径r,圆柱高h:");
	scanf("%f,%f",&r,&h);
	c=2*pi*r;//园周长
	s=r*r*pi;//圆面积
	sq=4*pi*r*r;//球表面积
	vq=3.0/4*pi*r*r*r;//球体积
	vz=pi*r*r*h;//圆柱体积

	printf("c=%.2f\n",c);
	printf("s=%.2f\n",s);
	printf("sq=%.2f\n",sq);
	printf("vq=%.2f\n",vq);
	printf("vz=%.2f\n",vz);

	return 0;
}

15.编程序,用getchar函数读人两个字符给cl和c2 ,然后分别用putchar函数和printf函数输出这两个字符。

#include <stdio.h>

int main(int argc, const char *argv[])
{
	char c1,c2;
	printf("请输入两个字符:");
//	c1=getchar();
//	c2=getchar();
    scanf("%c,%c",&c1,&c2);
	printf("用putchar语句输出结果为:");
	putchar(c1);
	putchar(c2);
	putchar(10);
	printf("输出存c1,c2ASCII码值");
	printf("%d %d\n",c1,c2);
	putchar(10);
	printf("用printf语句输出结果为:");
	printf("%c %c\n",c1,c2);


	return 0;
}

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值