<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../../css/text.css" type="text/css">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<center><table width="95%" border="0" cellspacing="0" cellpadding="0">
  <tr>
      <td class=text> <b>三、找出下面程序（或程序段）中的语法错误，并予以纠正（每小题4分，共8分）</b><br>
        <br>
        （1）程序功能是将某年某月的几号转换成这一年的第多少天。<br>
        　#include &lt;stdio.h&gt;<br>
        　struct date {int y; int m; int d;}<br>
        　int daytab[2][ ]={{0,31,28,31,30,31,30,31,31,30,31,30,31},<br>
        　{0,31,29,31,30,31,30,31,31,30,31,30,31}}; <br>
        　void main( )<br>
        　{<br>
        　　int n;<br>
        　　struct date d;<br>
        　　int days (struct date *pd); 
        <p> 　　printf(&quot;Input:Year=? Mouth=? Day=? \n&quot;);<br>
          　　scanf(&quot;%d%d%d&quot;,y,m,d);<br>
          　　n=days(&amp;d);<br>
          　　printf(&quot;N=%d days\n&quot;,n);<br>
          　}</p>
        <p>　int days (struct date *pd)<br>
          　{<br>
          　　int i,day,leap;</p>
        <p> 　　day=pd.d;<br>
          　　leap=pd.y%4==0&amp;&amp;pd.y%100!=0 || pd.y%400==0;<br>
          　　for(i=1;i&lt;pd-&gt;m;++i)<br>
          　　　day+=daytab[leap][i];<br>
          　　return(day);<br>
          　}</p>
        <p><font color="#0000FF">　(1) &quot;struct date {int y; int m; int d;} 
          &quot;应为&quot;struct date {int y; int m; int d;};&quot;<br>
          　(2) &quot;int daytab[2][ ]={{0,31,28,31,30,31,30,31,31,30,31,30,31},<br>
          　　　　　　　　　　　　{0,31,29,31,30,31,30,31,30,31,30,31}};&quot;应为<br>
          　　　&quot;int daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},<br>
          　　　　　　　　　　　　　{0,31,29,31,30,31,30,31,30,31,30,31}};&quot;<br>
          　(3) &quot;scanf(&quot;%d%d%d&quot;,y,m,d);&quot;应为&quot;scanf(&quot;%d%d%d&quot;,&amp;d.y,&amp;d.m,&amp;d.d);&quot;<br>
          　(4) &quot;day=pd.d;&quot;应为&quot;day=pd-&gt;d;&quot;<br>
          　(5) &quot;leap=pd.y%4==0&amp;&amp;pd.y%100!=0 || pd.y%400==0;&quot;应为<br>
          　　　&quot;leap=pd-&gt;y%4==0&amp;&amp;pd-&gt;y%100!=0 || pd-&gt;y%400==0;&quot;</font></p>
        <p>（2）程序功能是打印Object类型变量的分量a。<br>
          　#include &lt;iostream.h&gt;<br>
          　struct Object{int a;int b;};<br>
          　void main()<br>
          　{<br>
          　　Object&amp; MyFunction(int a=20,int b);<br>
          　　Object&amp; rMyObj = MyFunction(,5);<br>
          　　cout &lt;&lt; &quot;rMyObj.a = &quot; &lt;&lt; rMyObj.a &lt;&lt; endl;<br>
          　　delete &amp;rMyObj;<br>
          　}<br>
          　Object&amp; MyFunction(int a=20,int b)<br>
          　{<br>
          　　Object* o = new Object;<br>
          　　o-&gt;a = a;<br>
          　　o-&gt;b = b;<br>
          　　return o;<br>
          　}<br>
          <font color="#0000FF">　（1）&quot;Object&amp; MyFunction(int a=20,int 
          b);&quot;应为&quot;Object&amp; MyFunction(int a=20,int b=25);&quot;<br>
          　（2）&quot;Object&amp; MyFunction(int a=20,int b)&quot;也应为&quot;Object&amp; 
          MyFunction(int a=20,int b=25)&quot;<br>
          　　　或&quot;Object&amp; MyFunction(int a,int b)&quot;<br>
          　（3）&quot;Object&amp; rMyObj = MyFunction(,5);&quot;应为&quot;Object&amp; 
          rMyObj = MyFunction(5);&quot;<br>
          　（4）&quot;return o;&quot;应为&quot;return *o;&quot;</font></p>
      </td>
  </tr>
</table>

</center>

</body>
</html>
