课后习题答案
<h2>第6章 循环结构程序设计</h2>
<p>一、选择题</p>
<p>1.D 2.A 3.A 4.D 5.C 6.C 7.C 8.B</p>
<p>二、填空题</p>
<p>1.do-while语句
2.55
3.10
4.x>0
5.15</p>
<p>三、编程题</p>
<p>1.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main ()
{
int i, k, max;
printf(&quot;Please input k:&quot;);
scanf (&quot;%d&quot;,&amp;max);
for (i=2;i&lt;6;i++)
{
scanf (&quot;%d&quot;,&amp;k);
if (max&lt;k)
max=k;
}
printf (&quot;max=%d\\n&quot;,max);
return 0;
}```
2.参考代码如下:
```c
#include &lt;stdio.h&gt;
int main()
{
int n, i, j, k;
for( n=100; n&lt;1000; n++ ) /\* 对所有的3位数循环 \*/
{
i=n/100; /\* 的百位数字 \*/
j=n/10%10; /\* 的十位数字 \*/
k=n%10; /\* 的个位数字 \*/
if(n==i\*i\*i+j\*j\*j+k\*k\*k)
{
printf (&quot;%d=%d\*%d\*%d+%d\*%d\*%d+%d\*%d\*%d\\n&quot;,n,i,i,i,j,j,j,k,k,k);
break; /\* 只要求找第一个满足条件的数,所以找到后立即退出循环 \*/
}
}
return 0;
}</code></pre>
<p>3.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
int n;
for( n=10;n&lt;100;n++)
{
if (n%3!=0 || n%5!=0)
continue ; /* n不满足要求,结束本次循环*/
printf (&quot; %5d&quot;, n);
}
return 0;
}</code></pre>
<p>4.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
int i,j;
for(i=1;i&lt;=10;i++)
{
for(j=1;j&lt;=i;j++)
printf(&quot;#&quot;);
printf(&quot;\n&quot;);
}
return 0;
}</code></pre>
<p>5.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main ( )
{
int i,j;
for(i=1;i&lt;=9;i++) /*外循环控制输出的行数*/
{
for(j=1;j&lt;=i;j++) /*内循环输出表中的一行*/
printf(&quot;%d*%d=%-3d&quot;,j,i,i*j);
printf(&quot;\n&quot;); /*换行控制,使下一次的式子输出在新行上*/
}
return 0;
}</code></pre>
<p>6.参考代码如下:</p>
<pre><code class="language-c">#include&lt;stdio.h&gt;
int main()
{
int A, B, C, D, E;/*定义5个整型变量*/
for (A = 1; A &lt; 6; A++)/*将A在1~5的名次中循环*/
for (B = 1; B &lt; 6; B++)/*将B在1~5的名次中循环*/
if (A != B)/*判断变量与已有变量值不相等*/
for (C = 1; C &lt; 6; C++)/*将C在1~5的名次中循环*/
if (C != A &amp;&amp; C != B)/*判断变量与已有变量值不相等*/
for (D = 1; D &lt; 6; D++)/*将D在1~5的名次中循环*/
if (D != A &amp;&amp; D != B &amp;&amp; D != C)/*判断变量与已有变量值不相等*/
for (E = 1; E &lt; 6; E++)/*将E在1~5的名次中循环*/
if (E != D &amp;&amp; E != C &amp;&amp; E != B &amp;&amp; E != A)/*判断变量与已有变量值不相等*/
if ((C != 1) &amp;&amp; (D - E == 2) &amp;&amp; (E != 2) &amp;&amp;
(A != 1) &amp;&amp; (A != 5) &amp;&amp; (B - C == 1))/*根据问题设置的条件*/
printf(&quot;A=%d,B=%d,C=%d,D=%d,
E = % d\n&quot;,A,B,C,D,E);/*输出*/
return 0;
}</code></pre>
<p>7.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
int cock, hen, chick; /*定义变量为基本整型*/
for (cock = 0; cock &lt;= 20; cock++) /*鸡翁范围在0到20之间*/
for (hen = 0; hen &lt;= 33; hen++) /*鸡母范围在0到33之间*/
for (chick = 3; chick &lt;= 99; chick++) /*鸡雏范围在3到99之间*/
if (5 * cock + 3 * hen + chick / 3 == 100) /*判断钱数是否等于100*/
if (cock + hen + chick == 100) /*判断购买的鸡数是否等于100*/
if (chick % 3 == 0) /*判断鸡雏数是否能被3整除*/
printf(&quot;鸡翁:%d只,鸡母:%d只,鸡雏:%d只\n&quot;,
cock, hen, chick);
return 0;
}</code></pre>