300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c语言内涵教程练习6 C语言内涵教程练习5参考答案.doc

c语言内涵教程练习6 C语言内涵教程练习5参考答案.doc

时间:2022-02-23 17:00:53

相关推荐

c语言内涵教程练习6 C语言内涵教程练习5参考答案.doc

C语言内涵教程练习5参考答案

练习5

5.1 计算循环体的执行次数并上机验证。

1. int i = 0; 2. short i = 1;

while(1) while(i > 0)

{ {

++i; ++i;

printf("%d\n", i); printf("%d\n", i);

} }

3. short i = 1; 4. char c = 'a';

while(i * i >= 0) while(c >= 0)

{ {

++i; --c;

printf("d\n", i); printf("%c\n", c)

} }

答:

1.表达式1恒真,因此循环体会执行无数次。

2.在数学上,变量i的初值为1,每次自增1后会一直大于0,也就是说表达式i > 0恒真,但是,计算机中整型构成一个环,short型变量的取值范围为-32768~32767,当变量i的值自增到32767后再加1就变成了-32768,表达式i 〉0为假,循环退出,因此循环体执行了32767次。

3.表达式i * i >= 0恒真,因此循环体会执行无数次。

4.字符型变量c的值为97号字符’a’,因此从97至0,循环体共执行了98次。

5.2 画出例5-4的程序流程图。

5.3对折一张厚1毫米的纸,每折一次,纸的厚度就翻一倍,理论上折多少次后厚度可以达到珠穆朗玛峰的高度(按8848米计算)。(实际上一张纸最多只能对折七次左右)

答:

5.4 编程输出整数n的阶乘。(n! = n * (n-1) * … * 2 * 1)

答:

与例5-4类似的:

0的阶乘等于1,此程序能正确输出吗?

for循环结构的程序。

还可以用:

与前面两个程序相比,少用了一个变量。

5.5 编程输出一个正整数各位上数字中零的个数。

5.6 编程输出正整数各位上数字中的最大数。

或者(注意体会两者的区别)

5.7 以小僧的人数为循环变量求解例5-6,要求程序不仅没有逻辑错误而且无解时可以输出“问题没有解!”。

答:

注意:

在用穷举法解决此类问题时要防止因四舍五入而出错的情况。如此题中设大僧每人2个馍,小僧4人一个馍,则问题应该无解,但用例5-6的算法求解时程序却会给出错误的结果。

当然了也可以加一个(100-i) % 3 == 0的条件来防止类似的错误。

5.8 鸡兔同在一个笼子里,从上面数有35个头,从下面数有94只脚。求笼中各有几只鸡和兔。

或:

5.9 编程输出正整数n的所有因数。

或:

5.10 有508个西瓜,第一天卖了一半多2个,以后每天卖剩下的一半多2个,问几天后能卖完?

答:

考虑无解的情况:

5.11 分析下面循环的作用。.

1. for(i=1; i<100; ++i) 2. for( i=2; i<100; i+=2)

{ {

if(i % 2 == 0) printf("%3d", i);

printf("%3d", i); if(i % 20 == 0)

if(i % 20 == 0) printf("\n");

printf("\n");

} }

3. for(i=1; i<100; ++i) 4. for(i=1, j=1; i+j<100; ++i, ++j)

{

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。