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

📄 c91_21.htm

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

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>练习题</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<script language="javascript">
	function init(){
		err1=err1div.style;
		cor1=cor1div.style;
		err2=err2div.style;
		cor2=cor2div.style;
		err3=err3div.style;
		cor3=cor3div.style;
		err4=err4div.style;
		cor4=cor4div.style;
		err5=err5div.style;
		cor5=cor5div.style;
		err6=err6div.style;
		cor6=cor6div.style;
		err7=err7div.style;
		cor7=cor7div.style;
		err8=err8div.style;
		cor8=cor8div.style;
	}
	function show(obj){
		obj.display='';
	}
	function hide(obj){
		obj.display='none';
	}

	function judge1(){
		var s1=document.form1.T1.value;
		if(s1=="ok"){
			hide(err1);
			show(cor1);
		}else{
			hide(cor1);
			show(err1);
		}
      return false;
	}
	function judge2(){
		var s2=document.form2.T1.value;
		if(s2=="HELLO"){
			hide(err2);
			show(cor2);
		}else{
			hide(cor2);
			show(err2);
		}
      return false;
	}
	function judge5(){
		var s5=document.form5.T1.value;
		if(s5=="3"){
			hide(err5);
			show(cor5);
		}else{
			hide(cor5);
			show(err5);
		}
      return false;
	}
	function judge6(){
		var s6=document.form6.T1.value;
		if(s6=="27"){
			hide(err6);
			show(cor6);
		}else{
			hide(cor6);
			show(err6);
		}
      return false;
	}

</script>
</head>

<body bgcolor="#ccefcc" onLoad="init()">

<blockquote>
  <p>问题1: 程序的运行结果是什么?<br>
  #define HELLO &quot;ok&quot;<br>
  main()<br>
  {<br>
  &nbsp;&nbsp;&nbsp; printf(HELLO);<br>
  }</p>
  <form name="form1" onSubmit="judge1();return false">
    <p>答案:<input type="text" name="T1" size="12"></p>
    <div id="cor1div" style="display:'none'"><font color="#0000FF"><p>正确! 做得很好!!</font> 
    </p>
    </div><div id="err1div" style="display:'none'"><font color="#FF0000"><p>错误! 
    请再试一遍!!</font> </p>
    </div>
  </form>
  <hr>
  <p>问题2: 程序的运行结果是什么?<br>
  #define HELLO &quot;ok&quot;<br>
  main()<br>
  {<br>
  &nbsp;&nbsp;&nbsp; printf(&quot;HELLO&quot;);<br>
  }</p>
  <form name="form2" onSubmit="judge2();return false">
    <p>答案:<input type="text" name="T1" size="12"></p>
    <div id="cor2div" style="display:'none'"><font color="#0000FF"><p>正确! 做得很好!!注释: 
    宏替换不可发生在引号括起来的串里。</font> </p>
    </div><div id="err2div" style="display:'none'"><font color="#FF0000"><p>错误! 
    请再试一遍!!</font> </p>
    </div>
  </form>
  <hr>
  <p>问题3: 读下面的程序, 它能运行吗?<br>
  #define area(x) (3.14*x*x)<br>
  main()<br>
  {<br>
  &nbsp;&nbsp;&nbsp; printf(&quot;%f\n&quot;,area(2.5));<br>
  }</p>
  <form name="form3">
    <p><input type="button" value="能" name="B1" onClick="hide(err3);show(cor3)">&nbsp;&nbsp;&nbsp; 
    <input type="button" value="不能" name="B2" onClick="hide(cor3);show(err3)"></p>
    <div id="cor3div" style="display:'none'"><font color="#0000FF"><p>正确! 做得很好!!</font></p>
    </div><div id="err3div" style="display:'none'"><font color="#FF0000"><p>错误! 
    请再试一遍!!</font> </p>
    </div>
  </form>
  <hr>
  <p>问题4: 读下面的程序,它能运行吗?<br>
  #define area (x) (3.14*x*x)<br>
  main()<br>
  {<br>
  &nbsp;&nbsp;&nbsp; printf(&quot;%f\n&quot;,area(2.5));<br>
  }</p>
  <p><input type="button" value="能" name="B1" onClick="hide(cor4);show(err4)">&nbsp;&nbsp;&nbsp; 
  <input type="button" value="不能" name="B2" onClick="hide(err4);show(cor4)"></p>
  <div id="cor4div" style="display:'none'"><font color="#0000FF"><p>正确! 做得很好!!</font>注释: 
  我们应该注意在 &quot;area&quot; 和 &quot;(x)&quot; 
  之间没有空格。第一个空格结束了宏定义名。</p>
  </div><div id="err4div" style="display:'none'"><font color="#FF0000"><p>错误! 
  请再试一遍!!</font> </p>
  </div><hr>
  <p>问题5: 运行下面程序后, 它的结果是什么?<br>
  #define sqr(n) (n*n)<br>
  main()<br>
  {<br>
  &nbsp;&nbsp;&nbsp; printf(&quot;%d\n&quot;,27/sqr(3));<br>
  }</p>
  <form name="form5" onSubmit="judge5();return false">
    <p>答案:<input type="text" name="T1" size="12"></p>
    <div id="cor5div" style="display:'none'"><font color="#0000FF"><p>正确! 做得很好!!</font> 
    </p>
    </div><div id="err5div" style="display:'none'"><font color="#FF0000"><p>错误! 
    请再试一遍!!</font> </p>
    </div>
  </form>
  <hr>
  <p>问题6: 运行下面程序后, 它的结果是什么?<br>
  #define sqr(n) n*n<br>
  main()<br>
  {<br>
  &nbsp;&nbsp;&nbsp; printf(&quot;%d\n&quot;,27/sqr(3));<br>
  }</p>
  <form name="form6" onSubmit="judge6();return false">
    <p>答案:<input type="text" name="T1" size="12"></p>
    <div id="cor6div" style="display:'none'"><font color="#0000FF"><p>正确! 做得很好!!</font> 
    注释: 应该注意用括号来确保运算的顺序。例如, 在这个练习里, (n*n) 
    比 n*n 更好。什么是最好的呢? ((n)*(n)) 将是最好的。</p>
    </div><div id="err6div" style="display:'none'"><font color="#FF0000"><p>错误! 
    请再试一遍!!</font> </p>
    </div>
  </form>
  <hr>
  <p>问题7: 在这个函数里, 我们将看到宏函数的副作用。读下面的程序, 
  然后决定结果是否正确。</p>
  <table border="1" width="92%">
    <tr>
      <td width="51%">main()<br>
      {<br>
      &nbsp;&nbsp;&nbsp; int i=1;<br>
      &nbsp;&nbsp;&nbsp; while (i&lt;=10)<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d\n&quot;,sqr(i++));<br>
      }<br>
      sqr(int n)<br>
      {<br>
      &nbsp;&nbsp;&nbsp; return(n*n);<br>
      }</td>
      <td width="39%"><input type="button" value="结果正确" name="B1"
      onClick="hide(err7);show(cor7)"><input type="button" value="结果错误" name="B2"
      onClick="hide(cor7);show(err7)"><div id="cor7div" style="display:'none'"><font
      color="#0000FF"><p>正确! 做得很好!!</font></p>
      </div><div id="err7div" style="display:'none'"><font color="#FF0000"><p>错误! 
      请再试一遍!!</font> </p>
      </div></td>
      <td width="10%" align="right" rowspan="2">输出:<br>
      1<br>
      4<br>
      9<br>
      16<br>
      25<br>
      36<br>
      49<br>
      64<br>
      81<br>
      100</td>
    </tr>
    <tr>
      <td width="51%">#define sqr(n) (n*n)<br>
      main()<br>
      {<br>
      &nbsp;&nbsp;&nbsp; int i=1;<br>
      &nbsp;&nbsp;&nbsp; while (i&lt;=10)<br>
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;%d\n&quot;,sqr(i++));<br>
      }</td>
      <td width="39%"><input type="button" value="结果正确" name="B1"
      onClick="hide(cor8);show(err8)"><input type="button" value="结果错误" name="B2"
      onClick="hide(err8);show(cor8)"><div id="cor8div" style="display:'none'"><font
      color="#0000FF"><p>正确! 做得很好!!</font>问题是 sqr(i++) 被代换为 (i++ * 
      i++), 因为替代串定义为 (n*n)。记住, C 的预处理并不知道 C 
      语言。它只是简单地, 不加思索地, 
      逐字逐句地用一个串代替另一个串。副作用的发生依赖于不同的C语言编译器。</p>
      </div><div id="err8div" style="display:'none'"><font color="#FF0000"><p>错误! 
      请再试一遍!!</font> </p>
      </div></td>
    </tr>
  </table>
  <p align="center"><a href="javascript:close()">关闭</a></p>
</blockquote>
</body>
</html>

⌨️ 快捷键说明

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