📄 c73_41.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 改变为字符串常量 "Hello"的地址。你不可以这样做, 因为数组名是不可修改的字符串常量。(正如 5 是常量, 你不可以做 "5=i" 一样。)';
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("What is your name?\n");<br>
6. scanf("%s", &name);<br>
7. msq = "Hello";<br>
8. printf("%s %s \n", 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>
char name[81];/*It's enough large*/<br>
char *msq;<br>
printf("What is your name?\n");<br>
scanf("%s", name);<br>
msq = "Hello";<br>
printf("%s %s\n", 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 + -