C语言设计(第五版) 第三章课后习题

第三章

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

#include <stdio.h>
#include <math.h>
int main()
{
    float r = 0.07, p = 1, n;    //增长率:r, 现在百分比: p
    n = 10;     //年
    p = pow(1 + r, n);

    printf("10年之后增长了%f", p);

    return 0;
}

3.2 存款利息的计算。有 1000 元,想存 5 年,可按以下 5 种办法存:

(1)一次存 5 年期。
(2) 先存 2 年期,到期后将本息再存 3 年期。
(3) 先存 3 年期,到期后将本息再存 2 年期。
(4) 存 1 年期,到期后将本息存再存 1 年期,连续存 5 次。
(5) 存活期存款。活期利息每一季度结算一次。
2017年的银行存款利息如下:
1年期定期存款利息为 1.5%
2年期定期存款利息为 2.1%
3年期定期存款利息为 2.75%
5年期定期存款利息为 3%
活期存款利息为 0.35%(活期存款每一季度结算一次利息)。
如果r为年利率, n为存款年数,则计算本息和的公式为
1年期本息和: p = 1000 * (1 + r);
n年期本息和:p = 1000 * (1 + n * r);
存n次 1 年期的本息和:p = 1000 * pow(1 + r, n);
活期存款本息和:p = 1000 * pow(1 + r/4 , 4*n);

#include <stdio.h>
#include <math.h>
int main()
{
    double r0,r1,r2,r3,r5,p,p1,p2,p3,p4,p5;
    p = 1000;
    r0 = 0.0035;
    r1 = 0.015;
    r2 = 0.021;
    r3 = 0.0275;
    r5 = 0.03;

    p1 = p * (1 + 5 * r5);                      //一次性存5年期
    p2 = p * (1 + 2 * r2) * (1 + 3 * r3);       //先存 2 年期,到期后将本息再存 3 年期
    p3 = p * (1 + 3 * r3) * (1 + 2 * r2);       //先存 3 年期,到期后将本息再存 2 年期
    p4 = p * pow(1 + r1, 5);              //存 1 年期,到期后将本息再存 1 年期,连续存 5 次
    p5 = p * pow(1 + r0 / 4, 4 * 5);      //存活期存款,活期利息每一季度结算一次

    printf("p1=%lf\n",p1);               //输出按第 1 种方案得到的本息和
    printf("p2=%lf\n",p2);               //输出按第 2 种方案得到的本息和
    printf("p3=%lf\n",p3);               //输出按第 3 种方案得到的本息和
    printf("p4=%lf\n",p4);               //输出按第 4 种方案得到的本息和
    printf("p5=%lf\n",p5);               //输出按第 5 种方案得到的本息和

    return 0;
}

3.3 略

3.4 略

3.5. 用下面的 scanf 函数输入数据,使 a=3,b=7,x=8. 5,y=71. 82,cl=‘A’,c2=‘a’。在键盘上应如何输入?

#include <stdio.h>
int main( )
{
    int a,b;
    float x,y;
    char cl ,c2;
    scanf ("a=%db=%d" ,&a,&b );
    scanf("%f%e",&x,&y) ;
    scanf("%c%c",&cl,&c2);

    printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c1=%c\n",a,b,x,y,cl ,c2);
    return 0;
}

/**
 * //输入
 * a=3b=7
 * 7 8.5Aa
 */

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

#include <stdio.h>
int main()
{
    char c1,c2,c3,c4,c5;
    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;

    putchar(c1);
    putchar(c2);
    putchar(c3);
    putchar(c4);
    putchar(c5);

    printf("\n");
    printf("%c", c1);
    printf("%c", c2);
    printf("%c", c3);
    printf("%c", c4);
    printf("%c", c5);

    return 0;
}

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

#include <stdio.h>
#define PI 3.141592
int main()
{
    double r, h, l, s, cs, cp, ccp; //分别为半径 圆柱高 圆周长、圆面积、圆球表面积、圆球体积、圆柱体积
    printf("请输入半径:");
    scanf("%lf", &r);
    printf("请输入圆柱高:");
    scanf("%lf", &h);

    l = 2 * PI * r; //圆周长
    s = PI * r * r; //圆面积
    cs = 4 * s;     //圆球表面积
    cp = 4.0/3.0 * PI * r * r;
    ccp = s * h;

    printf("圆周长为:%lf\n", l);
    printf("圆面积为:%lf\n", s);
    printf("圆球表面积为:%lf\n", cs);
    printf("圆球体积为:%lf\n", cp);
    printf("圆柱体积为:%lf\n", ccp);

    return 0;
}

3.8 编程序,用 getchar 函数读入两个字符给 cl 和 c2,然后分别用 putchar 函数和 printf函数输出这两个字符。思考以下问题:

(1) 变量 cl 和 c2 应定义为字符型、整型还是二者皆可?
(2) 要求输出 cl 和 c2 值的 ASCII 码,应如何处理?用 putchar 函数还是 printf 函数?
(3) 整型变量与字符变量是否在任何情况下都可以互相代替?如:char cl,c2; 与 int cl,c2;是否无条件地等价

/**
 *  (1)cl 和 c2 可以定义为字符型或整型,二者皆可。
 *  (2)可以用 printf 函数输出,在 printf 函数中用%d 格式符,即
 *  printf("%d,%d\n",cl ,c2);
 *  (3)字符变量在计算机内占 1 个字节,而整型变量占2个或 4个字节。因此整型变量
 *  在可输出字符的范围内(ASCII 码为 0-127 的字符)是可以与字符数据互相转换的。如果
 *  整数在此范围外,不能代替。
 *
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值