练习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);c语言while语句流程图
}                                                }
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的值是字符‟a‟查表可知为97号字符,在比较操作中字符型表现为整型,因此,因此从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.5 编程输出一个正整数各位上数字中零的个数。
当用户输入30030,循环结构具体的执行过程分析如下。
表中?的意思表示:变量m之前没有赋值,它的值不确定。
5.6 编程输出正整数各位上数字中的最大数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。