谭浩强c程序设计例题+习题 第三章 顺序程序设计

第三章 顺序程序设计

例3.1 温度转换问题

c=5/9(f-32) 输入f(华氏度)输出c(摄氏度)

#include<stdio.h>
int main(){
    float f,c;
    scanf("%f",&f);
    c=(5.0/9)*(f-32);
    printf("%ff=%fc",f,c);
    return 0;
}
例3.2 计算本息和

计算存款利息,有1000元,想存一年,有三种方法可选:

  1. 活期,年利率r1;
  2. 一年期定期,年利率r2;
  3. 存两次半年定期,年利率r3

请分别算出一年后按3种方法所得的本息和

#include<stdio.h>
int main(){
    double p,r1,r2,r3;  //p为存款金额 r1r2r3为三种存款利率
    double p1,p2,p3;
    scanf("%lf,%lf,%lf,%lf",&p,&r1,&r2,&r3);
    p1=p+p*r1;
    p2=p+p*r2;
    p3=(p+p*r3/2)+(p+p*r3/2)*r3/2;
    printf("1.%lf\n2.%f\n3.%f\n",p1,p2,p3);
    return 0;
}
例3.3 大小写字母转换

给定一个大写字母,要求用小写字母输出 ‘a’=97 ‘A’=65 差值32

#include<stdio.h>
int main(){
    char c1,c2;
    c1=getchar();
    c2=c1+32;
    printf("%c->%c",c1,c2);
    return 0;
}
例3.4 给出三角形的三边长,求三角形面积

任意两边之和大于第三边或任意两边之差小于第三边

海伦-秦九公式已知三角形三边a,b,c,则S面积= √[p(p - a)(p - b)(p - c)] (海伦公式)(其中p=(a+b+c)/2)

#include<stdio.h>
#include<math.h>
int istri(double a,double b,double c);
int main(){
	double a,b,c,s,area;
    scanf("%lf,%lf,%lf",&a,&b,&c);//输入三边
    if(istri(a,b,c)==1){ //istri()函数进行三边的判断
    	s=(a+b+c)/2;
	    area=sqrt(s*(s-a)*(s-b)*(s-c));
	    printf("面积=%lf\n",area);
	} 
	else{
    	printf("三边输入错误\n");	
	}
    return 0;
}
int istri(double a,double b,double c){
	if(a+b>c&&b+c>a&&a+c>b){
		return 1;  //可以构成三角形
	}
	return 0;
}

例3.5 求方程根

求ax²+bx+c=0方程的根。a,b,c由键盘输入,设b²-4ac>0

#include<stdio.h>
#include<math.h>
int main(){
	double a,b,c,dt,x1,x2;
    scanf("%lf,%lf,%lf",&a,&b,&c);
    dt=b*b-4*a*c;
    x1=(-b+sqrt(dt))/(2*a);
    x2=(-b-sqrt(dt))/(2*a);
    printf("x1=%7.2lf\nx2=%7.2lf",x1,x2);
    return 0;
}
例3.9 输入输出BOY三个字符
#include<stdio.h>
int main(){
	char a,b,c;
    a=getchar();
    b=getchar();
    c=getchar();
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	return 0;
}

第三章习题

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

#include<stdio.h>
#include<math.h>
int main(){
	int n=10;
    double r=0.07,p;
    p = pow((1 + r), n);
    printf("%lf\n",p);
    return 0;
}
  1. 存款利息计算,有1000元,想存五年,可以按以下5种方式存

    (1)一次存五年

    (2)先存两年,到期后本息再存3年期

    (3)先存三年,到期后本息再存2年期

    (4)存一年,到期后本息再存一年期,连续存五次

    (5)存活期存款,活期存款每一季度结算一次

    2017年的银行存款利息如下:1年定期1.5%,2年期2.1%,3年期2.1%,5年期3%,活期0.35%

    如果r为年利率,n为存款年数,则计算本息和的公式如下:

    1年期本息和:p=1000*(1+r)

    n年期本息和:p=1000*(1+n*r);

    存n次一年期的本息和:p=1000*(1+r)^n

    活期存款本息和:p=1000*(1+r/4)^4*n

    #include<stdio.h>
    #include<math.h>
    int main(){
    	double p=1000,r1=0.015,r2=0.021,r3=0.021,r5=0.03,r0=0.0035;//本金,和利率
        int n=5;//年限
        double p1,p2,p3,p4,p5;
        p1=p*(1+5*r5);	//一次存五年
        p2= (p*(1+2*r2))*(1+3*r3);	//先存两年,到期后本息再存3年期
        p3=(p*(1+3*r3))*(1+2*r2);	//先存三年,到期后本息再存2年期
        p4=p*pow(1+r1,n);			//存一年,到期后本息再存一年期,连续存五次
        p5=p*pow((1+r0/4),4*n);
        printf("1. 一次存五年: %lf\n", p1);
        printf("2. 先存两年,到期后本息再存3年期: %lf\n", p2);
        printf("3. 先存三年,到期后本息再存2年期: %lf\n", p3);
        printf("4. 存一年,到期后本息再存一年期,连续存五次: %lf\n", p4);
        printf("5. 活期存款,每一季度结算一次: %lf\n", p5);
        return 0;
    }
    
    1. 购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300 000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第二位按四舍五入处理。

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(){
	double d=300000,p=6000,r=0.01;
	double fz,fm,m;
	fz=log(p/(p-d*r));
	fm=log(1+r);
	m=fz/fm;
	printf("%.1lf\n",m);
	return 0;
}

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

#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;
    putchar(c1);
    putchar(c2);
    putchar(c3);
    putchar(c4);
    putchar(c5);
    putchar('\n') ;
    printf("%c%c%c%c%c",c1,c2,c3,c4,c5);
    return 0;
} 

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

圆周长:c=2πr 圆面积:s=πr²

圆球表面积:S=4πr² 圆球体积:v=4/3πr^3

圆柱体积:V=πr²h

#include<stdio.h>
#include<math.h>
int main(){
	double r,h;//圆半径、圆柱高
    double c,s,bs,bv,zv;//圆周长、圆面积、圆球表面积、圆球体积、圆柱体积
    const pai=3.1415926;
    
    printf("请输入圆半径和圆柱高(用逗号分隔):");
    scanf("%lf,%lf",&r,&h);
    
    c=2*pai*r;
    s=pai*r*r;
    bs=4*pai*r*r;
    bv=4.0/3*pai*pow(r,3);
    zv=pai*r*r*h;
    printf("圆周长:%.2lf、圆面积:%.2lf、圆球表面积:%.2lf、圆球体积:%.2lf、圆柱体积:%.2lf",c,s,bs,bv,zv);
    return 0;
}

8.编程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar和printf输出这两个字符

#include<stdio.h>
int main(){
	char c1,c2;
    c1=getchar();
    c2=getchar();
    putchar(c1);
    putchar(c2);
    putchar('\n');
    printf("%c%c",c1,c2);
    return 0;
}
  • 38
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值