⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c73_41.htm

📁 经典c语言教程
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>练习题一 </title>
<script language="javascript" src="../../layer_obj.js"></script>
<script language="javascript">
	correctlayer="correct";
	errorlayer="error";
	correctcontent='<font color="#FF0000">答案正确!</font>编译器会认为你在试图把 msq 改变为字符串常量 &quot;Hello&quot;的地址。你不可以这样做, 因为数组名是不可修改的字符串常量。(正如 5 是常量, 你不可以做 &quot;5=i&quot; 一样。)';
	errorcontent='<font color="#FF0000">答案错误!</font>再试一次!';
	createLayer(correctlayer,600,300,300,200,false,correctcontent);
	createLayer(errorlayer,600,300,200,100,false,errorcontent);
   
	correctlayer1="correct1";
	correctcontent1='<font color="#FF0000">答案正确!</font>第 6 行是合法的且正确的。因为 name 是一个字符指针,编译无错,但程序未给 name 申请任何内存空间, 你打入的所有字符被存放在随机的地址之中了。';
	createLayer(correctlayer1,600,300,300,200,false,correctcontent1);
	
	comselected=1;
	runselected=1;
	function comchange(){
		comselected=document.form1.comerrline.options[document.form1.comerrline.selectedIndex].value;
		if(comselected==7){
			hideLayer(errorlayer);
			moveLayer(errorlayer,600,300);
			showLayer(correctlayer);
			slideLayer(correctlayer,350,300,400);
			setTimeout("hideLayer(correctlayer)",5000);
		}
		else{
			hideLayer(correctlayer);
			moveLayer(correctlayer,600,300);
			showLayer(errorlayer);
			slideLayer(errorlayer,350,300,400);
			setTimeout("hideLayer(errorlayer)",2000);

		}

	}

	function runchange(){
		runselected=document.form2.runerrline.options[document.form2.runerrline.selectedIndex].value;
		if(runselected==6){
			hideLayer(errorlayer);
			moveLayer(errorlayer,600,300);
			showLayer(correctlayer1);
			slideLayer(correctlayer1,350,300,400);
			setTimeout("hideLayer(correctlayer1)",5000);
		}
		else{
			hideLayer(correctlayer1);
			moveLayer(correctlayer1,600,300);
			showLayer(errorlayer);
			slideLayer(errorlayer,350,300,400);
			setTimeout("hideLayer(errorlayer)",2000);

		}

	}


</script>
</head>

<body bgcolor="#CCEFCC">

<blockquote>
  <p>仔细考察下面的程序。程序中有两处错, 一处是在编译时出错, 
  一处是在运行时出错。<br>
  </p>
  <div align="center"><center><table border="6" width="308" cellspacing="0" cellpadding="6" height="150" bordercolor="#FF9933">
    <tr>
      <th width="532" bgcolor="#FF9933">有误程序</th>
    </tr>
    <tr>
      <td ALIGN="center" width="532" bgcolor="#00FFFF"><p align="left">1.main()<br>
      2.{<br>
      3. char *name;<br>
      4. char msq[10];<br>
      5. printf(&quot;What is your name?\n&quot;);<br>
      6. scanf(&quot;%s&quot;, &amp;name);<br>
      7. msq = &quot;Hello&quot;;<br>
      8. printf(&quot;%s %s \n&quot;, msq, name);<br>
      9.}</td>
    </tr>
  </table>
  </center></div><p> </p>
  <p>提问: <br>
  </p>
  <table border="0" width="100%" height="35">
    <tr>
      <td width="32%" height="31">1. 哪一行会在编译时出错? <br>
      <br>
      </td>
      <td width="68%" height="31"><form name="form1">
        <p><select name="comerrline" size="1" onChange="comchange()">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
        </select></p>
      </form>
      </td>
    </tr>
  </table>
  <table border="0" width="100%">
    <tr>
      <td width="50%">2. 哪一行会在编译时通过,但执行时会产生问题?<br>
      <br>
      </td>
      <td width="50%"><form name="form2">
        <p><select name="runerrline" size="1" onChange="runchange()">
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
          <option value="8">8</option>
          <option value="9">9</option>
        </select></p>
      </form>
      </td>
    </tr>
  </table>
  <p>3. <a href="javascript:show(corp)">按这里</a>,得到正确程序。</p>
  <div id="correctprogram" style="display='none'" align="center"><div align="center"><center><table border="6" width="335" cellspacing="0" cellpadding="6" height="150" bordercolor="#FF9933">
    <tr>
      <th width="559" bgcolor="#FF9933">正确程序</th>
    </tr>
    <tr>
      <td ALIGN="center" width="559" bgcolor="#00FFFF"><p align="left">main()<br>
      {<br>
      &nbsp; char name[81];/*It's enough large*/<br>
      &nbsp; char *msq;<br>
      &nbsp; printf(&quot;What is your name?\n&quot;);<br>
      &nbsp; scanf(&quot;%s&quot;, name);<br>
      &nbsp; msq = &quot;Hello&quot;;<br>
      &nbsp; printf(&quot;%s %s\n&quot;, msq, name);<br>
      }</td>
    </tr>
  </table>
  </center></div></div><p align="center"><script language="javascript">
<!--
	var corp=correctprogram.style;
	function show(obj){
		obj.display='';
	}
	
-->
</script><a href="javascript:close()">关闭</a></p>
</blockquote>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -