C语言程序设计 现代方法 第2章 C语言的基本概念 编程题 答案

摸鱼学习交流群:809125330

答案有误,或者一起学习的欢迎加群。

文字题目主要是提供搜索 排盘不准

群内有pdf答案文件

1. 编写一个程序,使用 printf 在屏幕上显示下面的图形:

#include <stdio.h>

int main(void) {
    /* 利用字符串拼接更好的看出结果 */
    printf(
            "       *\n"
            "      *\n"
            "     *\n"
            "*   *\n"
            " * *\n"
            "  *\n"
            );
    return 0;
}

2. 编写一个计算球体体积的程序,其中球体半径为 10 m,参考公式 v = 4/3r 3 。注意,分数 4/3 应写为 4.0f/3.0f。(如果分数写成 4/3 会产生什么结果?)提示:C 语言没有指数运算符,所以需要对 r 自乘两次来计算 r 3 。

#include <stdio.h>
#include "my_util.h" /* 方便输入输出 用宏调用标准库中的函数 */

#define PI 3.1415926 /* PI的大致值 */

int main(void) {
    double r = 10; /* 球的半径为10m */
    println("球的体积是:%.2f", PI * r * r * r * 4 / 3); /* 隐式转换 */
    return 0;
}

3. 修改上题中的程序,使用户可以自行输入球体的半径。

#include <stdio.h>
#include "my_util.h" /* 方便输入输出 用宏调用标准库中的函数 */

#define PI 3.1415926 /* PI的大致值 */

int main(void) {
    double r; /* 球的半径 */

    printf("输入球的半径:");
    get_double(r);

    println("球的体积是:%.2f", PI * r * r * r * 4 / 3); /* 隐式转换 */
    return 0;
}

4. 编写一个程序,要求用户输入一个美元数额,然后显示出增加5%税率后的相应金额。格式如下所示: Enter an amount: 100.00 With tax added: $105.00

#include <stdio.h>
#include "my_util.h"

#define RATE 0.05

int main(void) {
    double amount; /* 美元数额 */

    printf("输入金额:");
    get_double(amount);

    println("加上税金:$%.2f", amount + amount * RATE);

    return 0;
}

5. 编程要求用户输入 x 的值,然后显示如下多项式的值: 3x 5 +2x 4 5x 3 x 2 +7x6 提示:C语言没有指数运算符,所以需要对x进行自乘来计算其幂。(例如,x*x*x就是x的三次方。)

#include <stdio.h>
#include "my_util.h"


int main(void) {
    double x; /* 多项式x */

    printf("输入x的值:");
    get_double(x);

    println("多项式 3x^5+2x^4-5x^3-x^2+7x-6 的结果是:%f",
            3 * x * x * x * x * x +
            2 * x * x * x * x -
            5 * x * x * x -
            x * x +
            7 * x -
            6);

    return 0;
}

6. 修改上题,用如下公式对多项式求值: ((((3x + 2) x  5)x  1)x + 7)x  6 注意,修改后的程序所需的乘法次数减少了。这种多项式求值方法即 Horner 法则。

#include <stdio.h>
#include "my_util.h"


int main(void) {
    double x; /* 多项式x */

    printf("输入x的值:");
    get_double(x);

    println("多项式 3x^5+2x^4-5x^3-x^2+7x-6 的结果是:%f",
            ((((3 * x + 2) * x - 5) * x - 1) * x + 7) * x - 6);

    return 0;
}

7. 编写一个程序,要求用户输入一个美元数额,然后显示出如何用最少张数的 20 美元、10 美元、5 美 元和 1 美元钞票来付款: Enter a dollar amount: 93 $20 bills: 4 $10 bills: 1 $5 bills: 0 $1 bills: 3 提示:将付款金额除以 20,确定 20 美元钞票的数量,然后从付款金额中减去 20 美元的总金额。对 其他面值的钞票重复这一操作。确保在程序中始终使用整数值,不要用浮点数。

#include <stdio.h>
#include "my_util.h"


int main(void) {
    int amount; /* 存放金额 */

    printf("输入美元金额:");
    get_int(amount);

    /* 利用整除和取余 */
    println("$20数量是:%d", amount / 20);
    amount %= 20;
    println("$10数量是:%d", amount / 10);
    amount %= 10;
    println(" $5数量是:%d", amount / 5);
    amount %= 5;
    println(" $1数量是:%d", amount);

    return 0;
}

8. 编程计算第一、第二、第三个月还贷后剩余的贷款金额: Enter amount of loan: 20000.00 Enter interest rate: 6.0 Enter monthly payment: 386.66 Balance remaining after first payment: $19713.34 Balance remaining after second payment: $19425.25 Balance remaining after third payment: $19135.71 在显示每次还款后的余额时保留两位小数。提示:每个月的贷款余额减去还款金额后,还需要加上 贷款余额与月利率的乘积。月利率的计算方法是把用户输入的利率转换成百分数再除以 12。

#include <stdio.h>
#include "my_util.h"


int main(void) {
    double loan;        /* 欠款数量 */
    double rate;        /* 利率 */
    double repayment;   /* 每月还款 */

    printf("输入贷款的数额:");
    get_double(loan);
    printf("输入利率:");
    get_double(rate);
    printf("输入每月还款:");
    get_double(repayment);

    rate /= 1200; /* 注意需要转化为月利率 */

    println("第1个月还款后剩余借款:%.2f", loan = loan - repayment + loan * rate);
    println("第2个月还款后剩余借款:%.2f", loan = loan - repayment + loan * rate);
    println("第3个月还款后剩余借款:%.2f", loan = loan - repayment + loan * rate);

    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值