课后习题答案
<h2>第5章 选择结构程序设计</h2>
<p>一、选择题</p>
<p>1.C 2.D 3.B 4.B 5.D</p>
<p>二、填空题</p>
<p>1.0
2.a的值为2;b的值为1
3.20,30,30
4.1
5.①a>b ②a=b;b=t;</p>
<p>三、编程题</p>
<p>1.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
int x,y; /*定义整型变量x、y*/
printf(&quot;Please input x:&quot;); /*输出屏幕提示*/
scanf(&quot;%d&quot;,&amp;x); /*从键盘输入x的值*/
if(x&lt;0)
y=3*x+2; /*根据x的取值计算y的值*/
else
y=-x+1; /*根据x的取值计算y的值*/
printf(&quot;y=%d\n&quot;,y); /*输出y的值*/
}</code></pre>
<p>2.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
int a;
printf(&quot;Please enter an integer :&quot;);
scanf(&quot;%d&quot;,&amp;a);
switch(a)
{
case 1:printf(&quot;Monday\n&quot;);break;
case 2:printf(&quot;Tuesday\n&quot;);break;
case 3:printf(&quot;Wednesday\n&quot;);break;
case 4:printf(&quot;Thursday\n&quot;);break;
case 5:printf(&quot;Friday\n&quot;);break;
case 6:printf(&quot;Saturday\n&quot;);break;
case 7:printf(&quot;Sunday\n&quot;);break;
default:printf(&quot;Error!\n&quot;);
}
return 0;
}</code></pre>
<p>3.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
float a,b;
printf(&quot;inpute the income:&quot;);
scanf(&quot;%f&quot;,&amp;a);
if(a&lt;=3500)
b=0;
else if(a&lt;=5000)
b=(a-3500)*0.03;
else if(a&lt;=9500)
b=(5000-3500)*0.03+(a-5000)*0.1;
else
b=(5000-3500)*0.03+(9500-5000)*0.1+(a-9500)*0.2;
printf(&quot;the tax is:%.2f&quot;,b);
return 0;
}</code></pre>
<p>4.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
int c,s;
float p,w,d,f;
printf(&quot;Please enter price,weight,distance:&quot;); /*提示输入数据*/
scanf(&quot;%f,%f,%d&quot;,&amp;p,&amp;w,&amp;s); /*输入单价、重量、距离*/
if(s&gt;=3000)
c=12; /*3000km以上为同一折扣*/
else
c=s/250; /*3000km以下各段折扣不同,c的值不相同*/
switch(c)
{
case 0:d=0;break; /*c=0,代表250km以下,折扣d=0*/
case 1:d=2;break; /*c=1,代表250km~500km,折扣d=2%*/
case 2:
case 3:d=5;break; /*c=2和3,代表500km~1000km,折扣d=5%*/
case 4:
case 5:
case 6:
case 7:d=8;break; /*c=4~7,代表1000km~2000km,折扣d=8%*/
case 8:
case 9:
case 10:
case 11:d=10;break; /*c=8~11,代表2000km~3000km,折扣d=10%*/
case 12:d=15;break; /*c=12,代表3000km以上,折扣d=15%*/
}
f=p*w*s*(1-d/100.0); /*计算总运费*/
printf(&quot;freight=%10.2f\n&quot;,f); /*输出总运费,取两位小数*/
return 0;
}</code></pre>
<p>5.参考代码如下:</p>
<pre><code class="language-c">#include &lt;stdio.h&gt;
int main()
{
int a,i,j,k;
printf(&quot;inpute the number(100-999):&quot;);
scanf(&quot;%d&quot;,&amp;a);
if(a%3==0&amp;&amp;a%5==0&amp;&amp;a%7==0)
printf(&quot;can be divided by 3,5,7 &quot;);
else if(a%3==0&amp;&amp;a%5==0)
printf(&quot;can be divided by 3,5 &quot;);
else if(a%3==0&amp;&amp;a%7==0)
printf(&quot;can be divided by 3,7 &quot;);
else if(a%5==0&amp;&amp;a%7==0)
printf(&quot;can be divided by 5,7 &quot;);
else if(a%3==0)
printf(&quot;can be divided by 3 &quot;);
else if(a%5==0)
printf(&quot;can be divided by 5 &quot;);
else if(a%7==0)
printf(&quot;can be divided by 7 &quot;);
else
printf(&quot;not can be divided by 3 or 5 or 7 &quot;);
return 0;
}</code></pre>