manbetx客户端指出main函数并从未回到外价值。指出main函数并没返回外价值。

前言

自在通过《C语言程序设计:现代方(第2版本)》自学C语言时,发现境内并无该书完整的课后练习答案,所以就想拿温馨以念过程中所做出的答案分享下,以供大家参考。这些答案是本人自己解答,并参照GitHub上有关的分享与Chegg.com相关材料。因为并从未大的答案来,所以可能会见存在不当的地方,如有误还指望大家会帮助指出。

C语言程序设计:现代法(第2本子)第二章节全部练习答案,c语言程序设计习题

次章练习题和编程书答案

前言

本身在通过《C语言程序设计:现代方(第2本子)》自学C语言时,发现国内并不曾该书完整的课后练习答案,所以就想拿好在就学过程中所做出的答案分享下,以供大家参考。这些答案是自己好解答,并参考GitHub上有关的享用同Chegg.com相关资料。因为并从未大的答案来,所以可能会见在不当的地方,如有荒唐还可望大家会拉指出。

练习题

第二章练习题和编程书答案

2.2节

1.白手起家并运行由Kernighan和Ritchie编写的出名的“hello world”程序:

1 #include <stdio.h>
2 int main(void)
3 {
4     printf("hello world!\n");
5 }

以编译时是否发警示信息?如果出,需要怎么样改进为?

答:如果下有可比老的编译器如turbo
C等,会生成警告信息,指出main函数并没返回外价值。这是为于声明main函数时使用了int,表明函数会回一个整型数值,这个数值也擅自(因为main后面是void)。
但是面的代码中并没return语句,所以并无见面回来外价值。加入return语句后哪怕可破警告。

1 /* 加入return语句后的版本 */
2 #include <stdio.h>
3 int main(void)
4 {
5     printf("Hello world!\n");
6     return 0;
7 }

设是行使IDE中的编译器,且IDE版本比较新(如己时用的Code:Blocks)即使没return语句,编译器也非会见生成警告信息。

2.虑下面的先后:

1 #include <stdio.h>
2 int main(void)
3 {
4     printf("Parkinson's Law:\nWork expands so as to ");
5     printf("fill the time\n"); 
6     printf("available for its completion.\n");
7     return 0;
8 }

(a)请指出程序中之授命和话语。

(b)程序的出口是呀?

报:(a)给出之顺序中产生一个命#include和老三漫漫printf语句和同一修return语句子组成。

  (b)程序的输出结果也

Parkinson's Law:

Work expands so as to fill the time

available for its completion.

练习题

2.4节

3.通过下列方式缩写程序dweight.c:
(1)用初始化式替换对变量height、length和width的赋值;(2)去丢变量weight,在最终的printf语句中计算(volume

  • 165)/ 166。

答:

 1 #include <stdio.h>
 2 int main(void)
 3 {
 4     /* 用初始化替代对变量赋值就是在声明变量时直接为其赋值 */
 5     int height = 8, length = 12, width = 10, volume = height * length * width;
 6     printf("Dimensions: %dx%dx%d\n", length, width, height);
 7     printf("Volume (cubic inches): %d\n", volume);
 8     /* 此处则省略原来对于weight,并将计算公式直接放入printf语句中 */
 9     printf("Dimensional weight (pounds): %d\n", (volume + 165) / 166);
10     return 0;
11 }

4.编辑一个程序来声称几个int型和float型变量,不针对这些变量进行初始化,然后径直展示它的价值。这些价值是否出规律?(通常情况下并未)。

答:

1 #include <stdio.h>
2 int main(void)
3 {
4     int a, b, c;
5     float e, f, g;
6     printf("a:%d\nb:%d\nc:%d\ne:%f\n%f:f\ng:%f\n"a, b, c, d, e, f, g);
7     return 0;
8 }

实则并无啊规律,上面这些变量既无让初始化也尚未以程序中为赋值,这时变量被显示出的价在许多要素,所以无法确定最终显示的结果。

2.2节

1.起家并运行由Kernighan和Ritchie编写的红的“hello world”程序:

1 #include <stdio.h>
2 int main(void)
3 {
4     printf("hello world!\n");
5 }

于编译时是不是出警告信息?如果起,需要什么样改善为?

报:如果以部分比较一直的编译器如turbo
C等,会生成警告信息,指出main函数并不曾回外价值。这是盖当宣称main函数时行使了int,表明函数会返回一个整型数值,这个数值为随机(因为main后面是void)。
但是者的代码中连不曾return语句,所以并无会见回到外价值。加入return语句后即使只是消警告。

1 /* 加入return语句后的版本 */
2 #include <stdio.h>
3 int main(void)
4 {
5     printf("Hello world!\n");
6     return 0;
7 }

而是行使IDE中之编译器,且IDE版本比较新(如本人时采用的Code:Blocks)即使没有return语句,编译器也非见面生成警告信息。

2.想下面的程序:

1 #include <stdio.h>
2 int main(void)
3 {
4     printf("Parkinson's Law:\nWork expands so as to ");
5     printf("fill the time\n"); 
6     printf("available for its completion.\n");
7     return 0;
8 }

(a)请指出程序中的命令与讲话。

(b)程序的输出是啊?

报经:(a)给有的次序中发生一个下令#include和老三漫漫printf语句和同样漫漫return语词组成。

  (b)程序的出口结果吗

Parkinson's Law:

Work expands so as to fill the time

available for its completion.

2.7节

5.断定下列C语言标识符哪些不是法定的?

(a) 100_bottles

(b) _100_bottles

(c) one_hundred_bottles

(d) bottles_by_the_hundred_

答:不合法的标识符只有(a),因为标识符只能坐字母或生划线开头,而100_bottles是坐数字开的,所以不见面发作。另外C语言还确定了下划线后和一个不行写字母是保留字,不应当当先后中以(书中后来提及)。

6.为何说于标识符中以多只相邻的下划线(如current___balance)不极端适合?

报经:因为在阅读程序时十分不便分清到底发生几只相邻的下划线,如current____balance和current_____balance,前者是4单下划线后者是5只下划线。在未来维护程序时不论是编辑本人或者人家,都爱下手瞎下划线的数量,造成不必要之混乱。

7.判定下列哪些是C语言的要害字?

(a) for

(b) If

(c) main

(d) printf

(e) while

报:只有(a)for和(e)while是主要字,其余皆不是。(b) If
是为C语言区分轻重缓急写,所以If和if并不相同,if是重大字但是If不是。(c)main和(d)printf也非是要字,main()函数是C语言自动调用的函数,但是咱照样可以以变量命名也main(不建议如此做)。printf()则是咱头文件<stdio.h>内富含的函数,如果未调用这个腔文件那么我们同可以以变量命名为printf。总的来说只有当重大字表里的才词才是必不可缺字,其余都未是必不可缺字。

2.4节

3.经过下列方法缩写程序dweight.c:
(1)用初始化式替换对变量height、length和width的赋值;(2)去丢变量weight,在最终之printf语句中计算(volume

  • 165)/ 166。

答:

 1 #include <stdio.h>
 2 int main(void)
 3 {
 4     /* 用初始化替代对变量赋值就是在声明变量时直接为其赋值 */
 5     int height = 8, length = 12, width = 10, volume = height * length * width;
 6     printf("Dimensions: %dx%dx%d\n", length, width, height);
 7     printf("Volume (cubic inches): %d\n", volume);
 8     /* 此处则省略原来对于weight,并将计算公式直接放入printf语句中 */
 9     printf("Dimensional weight (pounds): %d\n", (volume + 165) / 166);
10     return 0;
11 }

4.辑一个主次来声称几单int型和float型变量,不对准这些变量进行初始化,然后径直显示其的值。这些价值是否来规律?(通常状态下没)。

答:

1 #include <stdio.h>
2 int main(void)
3 {
4     int a, b, c;
5     float e, f, g;
6     printf("a:%d\nb:%d\nc:%d\ne:%f\n%f:f\ng:%f\n"a, b, c, d, e, f, g);
7     return 0;
8 }

骨子里并不曾什么规律,上面这些变量既没有受初始化也无在先后中被赋值,这时变量被出示出来的价值在许多元素,所以无法确定最后显示的结果。

2.8节

8.脚的讲话中发生些许只标志?

 answer=(3*q-p*p)/3;

答:14个记号,分别是answer、=、(、3、*、q、-、p、*、p、)、/、3、;。

9.于操演题8的记之间插入空格,使该语句再度便于阅读。

答:answer = (3 * q – p * p) / 3;

10.以dweight.c程序(2.4节)中,哪些空格是必备的?

报经:程序中出现个别坏的int后面空格不克少,return 0;
中间的空格不可知少。程序外组成部分的空格都是以容易阅读要在的,即使只是去丢程序本身还能够正常履,只是多了翻阅困难。

2.7节

5.判断下列C语言标识符哪些不是法定的?

(a) 100_bottles

(b) _100_bottles

(c) one_hundred_bottles

(d) bottles_by_the_hundred_

报:不合法的标识符只有(a),因为标识符只能坐字母或下划线开头,而100_bottles是以数字开的,所以未见面发作。另外C语言还规定了下划线后以及一个充分写字母是保留字,不应该当先后中使用(书中后来提及)。

6.为什么说于标识符中以多只相邻之下划线(如current___balance)不太适宜?

报经:因为在阅读程序时大为难分清到底发生几只相邻之下划线,如current____balance和current_____balance,前者是4单下划线后者是5只下划线。在未来维护程序时不论是编辑本人还是别人,都爱下手瞎下划线的数码,造成不必要的混杂。

7.断定下列哪些是C语言的重要性字?

(a) for

(b) If

(c) main

(d) printf

(e) while

报:只有(a)for和(e)while是最主要字,其余均无是。(b) If
是盖C语言区分轻重缓急写,所以If和if并不相同,if是必不可缺字但是If不是。(c)main和(d)printf也非是任重而道远字,main()函数是C语言自动调用的函数,但是咱仍可以将变量命名也main(不建议这样做)。printf()则是我们头文件<stdio.h>内含有的函数,如果未调用这个腔文件那么我们同可以以变量命名吧printf。总的来说只有当主要字表里的只是词才是根本字,其余都未是关键字。

编程题

1.编一个主次,使用printf在屏幕及出示下面的图:

       *

      *

     *

*   *

 * *

  *

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     printf("       *\n");
 6     printf("      *\n");
 7     printf("     *\n");
 8     printf("*   *\n");
 9     printf(" * *\n");
10     printf("  *\n");
11 
12     return 0;
13 }

 

 

2.修一个划算球体体积的次第,其中球体半径为10m,参考公式v=4/3πr ³。注意,分数4/3承诺写吗4.0f/3.0f。(如果分写成4/3会晤发出什么结果?)提示:C语言没有指数运算符,所以用针对r自乘两不好来测算r ³。

答:

 1 #include <stdio.h>
 2 /* 定义名为PI和SCALE_FACTOR的宏 */
 3 #define PI 3.14f
 4 #define SCALE_FACTOR 4.0f/3.0f
 5 
 6 int main(void)
 7 {
 8 
 9 /* 声明变量并对其初始化,r是半径,volume为计算结果,r_3是r的立方结果 */
10     float r = 10.0f;
11     float volume = 1.0f;
12     float r_3 = 0.0f;
13 
14 /* 计算半径为10m的球体体积 */
15     r_3 = r*r*r;
16     volume = SCALE_FACTOR * PI * r_3;
17 
18 /* 显示结果 */
19     printf("Result is:%f\n", volume);
20 
21     return 0;
22 }

 

使将分4.0f/3.0f编程4/3,则会招计算结果出现谬误,因为4/3之结果是1,而休是1.33333333。C语言中整数相除会舍掉后面的小数。

3.改达书写中之次第,使用户可自行录入球体的半径。

答:

 1 #include <stdio.h>
 2 /* 定义名为PI和SCALE_FACTOR的宏 */
 3 #define PI 3.14f
 4 #define SCALE_FACTOR 4.0f/3.0f
 5 
 6 int main(void)
 7 {
 8 
 9 /* 声明变量并对其初始化,r是半径,volume为计算结果,r_3是r的立方结果 */
10     float r = 1.0f;
11     float volume = 1.0f;
12     float r_3 = 0.0f;
13 
14 /* 输入球体半径,注意变量r前面要有&符号 */
15     printf("Enter number:");
16     scanf("%f", &r);
17 
18 /* 计算半径为10m的球体体积 */
19     r_3 = r*r*r;
20     volume = SCALE_FACTOR * PI * r_3;
21 
22     printf("Result is:%f\n", volume);
23 
24     return 0;
25 }  

 

4.编纂一个顺序,要求用户输入一个美元数量,然后显示出长5%税率后底对应金额。格式如下所示:

Enter an amount: 100.00

With tax added: $105.00

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明变量money和taxed_money并初始化,前者表示金额,后者表示税后的金额 */
 6     float money = 0.0f;
 7     float taxed_money = 0.0f;
 8 
 9 /* 金额录入 */
10     printf("Enter an amount:");
11     scanf("%f", &money);
12 
13 /*计算税后的金额 */
14     taxed_money = money * 1.05;
15 
16 /*显示结果,使用.2f是因为题目中税后的金额只保留了两位小数 */
17     printf("With tax added: $%.2f\n", taxed_money);
18 
19     return 0;
20 }

 5.编写要求用户输入x的价值,然后显示如下多项式的价:

 3x5+2x4-5x3-x2+7x-6 

唤醒:C语言没有指数运算符,所以要对x进行自乘来计量其幂。(例如,x*x*x就是x的老三不良方。)

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明并初始化变量x和计算结果result,选择float型是因为题目中没有说用户不能输入小数 */
 6     float x = 0.0f;
 7     float result = 0.0f;
 8 
 9 /* 用户输入x的值,然后将值写入变量x中 */
10     printf("Enter the value of x:");
11     scanf("%f", &x);
12 
13 /* 计算公式的结果 */
14     result = 3 * x * x * x * x * x + 2 * x * x * x * x - 5 * x * x * x -x * x + 7 * x - 6;
15 
16     printf("The result is: %f", result);
17 
18     return 0;
19 }

6.修改达挥洒,用如下公式对多项式求值:

((((3x+2)x-5)x-1)x+7)x-6

只顾,修改后底顺序所用的乘法次数减少了。这种多项式求值方法就是Horner法则Horner’s
Rule
)。

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     float x = 0.0f;
 6     float result = 0.0f;
 7 
 8     printf("Enter the value of x:");
 9     scanf("%f", &x);
10 
11 /* 修改后的计算公式 */
12     result = ((((3 * x + 2)* x - 5)* x - 1)* x + 7)* x - 6;
13 
14     printf("The result is: %f", result);
15 
16     return 0;
17 }

7.编辑一个程序,要求用户输入一个美元数量,然后显示有哪些用最好少的20美元、10美元、5美元和1美元来会:

Enter a dollar amount: 93

$20 bills:4

$10 bills:1

  $5 bills:0

  $1 bills:3

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明并初始化金额总数amount和美元面额变量 */
 6     int amount = 0;
 7     int b20 = 0, b10 = 0, b05 = 0, b01 = 0;
 8 
 9     printf("Enter a dollar amount:");
10     scanf("%d", &amount);
11 
12 /* 因为要求是用最少张数付款,所以先用总金额除以20,得到的所需20美元的数量,再将总金额减去所需20美元后除以10,得到所需10美元数量,以此类推求出全部结果 */
13     b20 = amount / 20;
14     amount = amount - 20 * b20;
15     b10 = amount / 10;
16     amount = amount - 10 * b10;
17     b05 = amount / 5;
18     amount = amount - 5 * b05;
19     b01 = amount / 1;
20 
21 /* 显示结果 */
22     printf("\n$20 bills:%d\n$10 bills:%d\n $5 bills:%d\n $1 bills:%d\n", b20, b10, b05, b01);
23 
24     return 0;
25 }

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。

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明并初始化变量,loan是贷款金额,y_inter是年利率,m_inter月利率,m_pay是每月还款金额 */
 6     float loan = 0.0f;
 7     float y_inter = 0.0f;
 8     float m_inter = 0.0f;
 9     float m_pay = 0.0f;
10 
11 /* 用户输入贷款金额、年利率、月还款数 */
12     printf("Enter amount of loan: ");
13     scanf("%f", &loan);
14     printf("Enter interest rate: ");
15     scanf("%f", &y_inter);
16     printf("Enter monthly payment: ");
17     scanf("%f", &m_pay);
18 
19 /* 计算月利率,加1是因为如果直接是月利率乘以贷款金额得到的是利息,利息还要在加上贷款金额。加1之后可以直接求出贷款金额加利息后的结果 */
20     m_inter = y_inter / 100 / 12 + 1;
21 
22 /* 求出第一个月还款之后的剩余金额 */
23     loan = loan * m_inter - m_pay;
24     printf("Balance remaining after first payment: %.2f\n", loan);
25 
26 /* 求出第二个月还款之后的剩余金额 */
27     loan = loan * m_inter - m_pay;
28     printf("Balance remaining after second payment: %.2f\n", loan);
29 
30 /* 求出第三个月还款之后的剩余金额 */
31     loan = loan * m_inter - m_pay;
32     printf("Balance remaining after third payment: %.2f\n", loan);
33 
34     return 0;
35 }
36 /* 题目中还款是等额本息的方式,贷款20000,年利率6%,一共贷款5年 */

 

 

2.8节

8.底的说话中生出多少只记号?

 answer=(3*q-p*p)/3;

答:14个记号,分别是answer、=、(、3、*、q、-、p、*、p、)、/、3、;。

9.在操练题8的记之间插入空格,使该语句再度便于阅读。

答:answer = (3 * q – p * p) / 3;

10.以dweight.c程序(2.4节)中,哪些空格是必备的?

报经:程序中出现些微糟的int后面空格不能够少,return 0;
中间的空格不克少。程序外组成部分的空格都是以容易阅读要存在的,即使只是去丢程序本身还能够正常履,只是增加了翻阅困难。

编程题

1.编一个先后,使用printf在屏幕及显得下面的图样:

       *

      *

     *

*   *

 * *

  *

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     printf("       *\n");
 6     printf("      *\n");
 7     printf("     *\n");
 8     printf("*   *\n");
 9     printf(" * *\n");
10     printf("  *\n");
11 
12     return 0;
13 }

 

 

2.编制一个划算球体体积的顺序,其中球体半径为10m,参考公式v=4/3πr ³。注意,分数4/3承诺写为4.0f/3.0f。(如果分写成4/3碰头来什么结果?)提示:C语言没有指数运算符,所以用针对r自乘两浅来测算r ³。

答:

 1 #include <stdio.h>
 2 /* 定义名为PI和SCALE_FACTOR的宏 */
 3 #define PI 3.14f
 4 #define SCALE_FACTOR 4.0f/3.0f
 5 
 6 int main(void)
 7 {
 8 
 9 /* 声明变量并对其初始化,r是半径,volume为计算结果,r_3是r的立方结果 */
10     float r = 10.0f;
11     float volume = 1.0f;
12     float r_3 = 0.0f;
13 
14 /* 计算半径为10m的球体体积 */
15     r_3 = r*r*r;
16     volume = SCALE_FACTOR * PI * r_3;
17 
18 /* 显示结果 */
19     printf("Result is:%f\n", volume);
20 
21     return 0;
22 }

 

如将分4.0f/3.0f编程4/3,则会造成计算结果出现错误,因为4/3之结果是1,而非是1.33333333。C语言中整数相除会舍掉后面的小数。

3.改达题中之顺序,使用户可自行录入球体的半径。

答:

 1 #include <stdio.h>
 2 /* 定义名为PI和SCALE_FACTOR的宏 */
 3 #define PI 3.14f
 4 #define SCALE_FACTOR 4.0f/3.0f
 5 
 6 int main(void)
 7 {
 8 
 9 /* 声明变量并对其初始化,r是半径,volume为计算结果,r_3是r的立方结果 */
10     float r = 1.0f;
11     float volume = 1.0f;
12     float r_3 = 0.0f;
13 
14 /* 输入球体半径,注意变量r前面要有&符号 */
15     printf("Enter number:");
16     scanf("%f", &r);
17 
18 /* 计算半径为10m的球体体积 */
19     r_3 = r*r*r;
20     volume = SCALE_FACTOR * PI * r_3;
21 
22     printf("Result is:%f\n", volume);
23 
24     return 0;
25 }  

 

4.编纂一个次,要求用户输入一个美元数量,然后显示出长5%税率后的对应金额。格式如下所示:

Enter an amount: 100.00

With tax added: $105.00

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明变量money和taxed_money并初始化,前者表示金额,后者表示税后的金额 */
 6     float money = 0.0f;
 7     float taxed_money = 0.0f;
 8 
 9 /* 金额录入 */
10     printf("Enter an amount:");
11     scanf("%f", &money);
12 
13 /*计算税后的金额 */
14     taxed_money = money * 1.05;
15 
16 /*显示结果,使用.2f是因为题目中税后的金额只保留了两位小数 */
17     printf("With tax added: $%.2f\n", taxed_money);
18 
19     return 0;
20 }

 5.编写要求用户输入x的价值,然后显示如下多项式的价:

 3x5+2x4-5x3-x2+7x-6 

唤醒:C语言没有指数运算符,所以要对x进行自乘来算其幂。(例如,x*x*x就是x的老三糟方。)

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明并初始化变量x和计算结果result,选择float型是因为题目中没有说用户不能输入小数 */
 6     float x = 0.0f;
 7     float result = 0.0f;
 8 
 9 /* 用户输入x的值,然后将值写入变量x中 */
10     printf("Enter the value of x:");
11     scanf("%f", &x);
12 
13 /* 计算公式的结果 */
14     result = 3 * x * x * x * x * x + 2 * x * x * x * x - 5 * x * x * x -x * x + 7 * x - 6;
15 
16     printf("The result is: %f", result);
17 
18     return 0;
19 }

6.修改达写,用如下公式对多项式求值:

((((3x+2)x-5)x-1)x+7)x-6

只顾,修改后底先后所用的乘法次数减少了。这种多项式求值方法就Horner法则Horner’s
Rule
)。

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     float x = 0.0f;
 6     float result = 0.0f;
 7 
 8     printf("Enter the value of x:");
 9     scanf("%f", &x);
10 
11 /* 修改后的计算公式 */
12     result = ((((3 * x + 2)* x - 5)* x - 1)* x + 7)* x - 6;
13 
14     printf("The result is: %f", result);
15 
16     return 0;
17 }

7.编辑一个顺序,要求用户输入一个美元数量,然后显示有怎样用最少之20美元、10美元、5美元与1美元来会:

Enter a dollar amount: 93

$20 bills:4

$10 bills:1

  $5 bills:0

  $1 bills:3

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明并初始化金额总数amount和美元面额变量 */
 6     int amount = 0;
 7     int b20 = 0, b10 = 0, b05 = 0, b01 = 0;
 8 
 9     printf("Enter a dollar amount:");
10     scanf("%d", &amount);
11 
12 /* 因为要求是用最少张数付款,所以先用总金额除以20,得到的所需20美元的数量,再将总金额减去所需20美元后除以10,得到所需10美元数量,以此类推求出全部结果 */
13     b20 = amount / 20;
14     amount = amount - 20 * b20;
15     b10 = amount / 10;
16     amount = amount - 10 * b10;
17     b05 = amount / 5;
18     amount = amount - 5 * b05;
19     b01 = amount / 1;
20 
21 /* 显示结果 */
22     printf("\n$20 bills:%d\n$10 bills:%d\n $5 bills:%d\n $1 bills:%d\n", b20, b10, b05, b01);
23 
24     return 0;
25 }

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。

答:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5 /* 声明并初始化变量,loan是贷款金额,y_inter是年利率,m_inter月利率,m_pay是每月还款金额 */
 6     float loan = 0.0f;
 7     float y_inter = 0.0f;
 8     float m_inter = 0.0f;
 9     float m_pay = 0.0f;
10 
11 /* 用户输入贷款金额、年利率、月还款数 */
12     printf("Enter amount of loan: ");
13     scanf("%f", &loan);
14     printf("Enter interest rate: ");
15     scanf("%f", &y_inter);
16     printf("Enter monthly payment: ");
17     scanf("%f", &m_pay);
18 
19 /* 计算月利率,加1是因为如果直接是月利率乘以贷款金额得到的是利息,利息还要在加上贷款金额。加1之后可以直接求出贷款金额加利息后的结果 */
20     m_inter = y_inter / 100 / 12 + 1;
21 
22 /* 求出第一个月还款之后的剩余金额 */
23     loan = loan * m_inter - m_pay;
24     printf("Balance remaining after first payment: %.2f\n", loan);
25 
26 /* 求出第二个月还款之后的剩余金额 */
27     loan = loan * m_inter - m_pay;
28     printf("Balance remaining after second payment: %.2f\n", loan);
29 
30 /* 求出第三个月还款之后的剩余金额 */
31     loan = loan * m_inter - m_pay;
32     printf("Balance remaining after third payment: %.2f\n", loan);
33 
34     return 0;
35 }
36 /* 题目中还款是等额本息的方式,贷款20000,年利率6%,一共贷款5年 */

 

 

http://www.bkjia.com/Cyy/1268290.htmlwww.bkjia.comtruehttp://www.bkjia.com/Cyy/1268290.htmlTechArticleC语言程序设计:现代方法(第2版)第二章全部习题答案,c语言程序设计习题
前言 本人在通过《C语言程序设计:现代法(第2本子)》自学…