第1、3章习题讲评(学生用)

2018-11-01 13:51

第1章习题讲评:

5.请参照本章例题,编写一个C程序,输出以下信息: ****************************** Very good!

******************************

解:程序如下: # include int main()

{ printf(\ printf(\ Very Good!\\n\\n\

printf(\ return 0; }

运行结果:

6.编写一个C程序,输入a, b, c三个值,输出其中最大者。 解:程序如下:

# include int main( ) {

int a,b,c,max;

printf(\scanf(\%d,%d,%d\max=a; if ( max

max=b; if (max

printf(\return 0; }

运行结果:

注意:输入的3个数以逗号分隔,如果以空格分隔,会出错,为什么? 7.上机运行以下程序,注意注释的方法。分析运行结果,掌握注释的用法。

1

(1)

# include int main() {

printf(\ //这是行注释,注释范围从//起至换行符为止 return 0; }

(2) 把第4行改为

printf(\ /*这是块行注释*/ (3) 把第4行改为如下两行

printf(\do you do!\\n\ /*这是块行注释,如在本行内写不完,可以在下一行继

续写,这部分内容均不产生目标代码*/

(4) 把第4行改为

//printf(\ (5) 把第4行改为

printf(\ //在输出的字符串中加入// (6) 用块注释符把几行语句都作为注释 /* printf(\ return 0; */

解:请读者上机运行程序,注意观察结果。结果如下: (1) 输出:How do you do!

//之后是注释,这部分内容不参加编译,不影响运行结果。 (2) 输出:How do you do!

/* 与 */之间是注释,这部分内容不参加编译,不影响运行结果。 (3) 输出:How do you do!

程序运行结果表明:从上一行的/* 到下一行的 */之间是注释,块注释不受一行范围的限制,可以跨行。这部分内容不参加编译,不影响运行结果。

(4) 程序运行时无输出,因为//之后都作为注释,因此在程序编译时不包括printf函数,故无输出。

(5) 输出://How do you do!

在双撇号之间的//不作为注释标记,因此把它按字符原样输出。 (6) 无输出。因为把所有语句都作为注释,不参加编译,程序相当于: # include int main() { }

2

第3章习题讲评

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

解:从附录F(C库函数)可以查到:可以用pow函数求xy的值,调用pow函数的具体形式是pow(x,y)。在使用pow函数时需要在程序的开头用#include指令将头文件包含到本程序模块中。可以用下面的程序求出10年后国民生产总值是现在的多少倍。 程序如下: #include #include int main() {

float p, r, n; r=0.1; n=10; p=pow(1+r,n); printf(\return 0; }

运行结果:

即10年后国民生产总值是现在的2.593742倍。

2.存款利息的计算。有1000元,想存5年,可按以下5种办法存: (1) 一次存5年期。

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

(4) 存1年期,到期后将本息再存1年期,连续存5次。 (5) 存活期存款。活期利息每一季度结算一次。 2007年12月的银行存款利息如下: 1年期定期存款利息为4.14%; 2年期定期存款利息为4.68%; 3年期定期存款利息为5.4%; 5年期定期存款利息为5.85%;

3

活期存款利息为0.72%(活期存款每一季度结算一次利息)。 如果r为年利率,n为存款年数,则计算本息和的公式为: 1年期本息和:p=1000×(1+r); n年期本息和:p=1000×(l+n×r); 存n次1年期的本息和:p=1000×(1+r)n; 活期存款本息和:p=1000×(1+r/4)4n。 说明:1000×(1+r/4)是一个季度的本息和。

解:设5年期存款的年利率为r5,3年期存款的年利率为r3,2年期存款的年利率为r2,1年期存款的年利率为r1,活期存款的年利率为r0。

设按第1种方案存款5年得到的本息和为p1,按第2种方案存款5年得到的本息和为p2,按第3种方案存款5年得到的本息和为p3,按第4种方案存款5年得到的本息和为p4,按第5种方案存款5年得到的本息和为p5。

程序如下: # include # include int main( )

{

float r5, r3, r2, r1, r0, 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); //先存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(\ //输出按第1种方案得到的本息和 printf(\ //输出按第2种方案得到的本息和 printf(\ //输出按第3种方案得到的本息和 printf(\ //输出按第4种方案得到的本息和 printf(\ //输出按第5种方案得到的本息和 return 0; }

运行结果:

4

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

提示:计算还清月数m的公式如下: m?lgp?lg(p?d?r)lg1(?r)

可以将公式改写为

?plg??p?d?r m??lg1(?r)????

C的库函数中有求对数的函数logl0,是求以10为底的对数。 解:根据以上公式可以很容易写出以下程序: # include # include int main() {

float d=300000, p= 6000, r=0.01, m;

m=log10(p/(p-d*r))/log10(1+r); printf(\ return 0; } 运行结果:

即需要69.7个月才能还清。

4.分析下面的程序: # include int main() { char c1,c2; c1=197; c2=198;

printf(\ printf(\ return 0; }

(1) 运行时会输出什么信息?为什么?

5


第1、3章习题讲评(学生用).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:七年级下学期语文教学工作计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: