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

📄 c语言基础(04-反馈测试题01).htm

📁 语言基础(初学都必修)包括数据类型、运算符与表达式,运算符和表达式,逻辑运算符和逻辑表达式,C语言中的关键字,定义宏和使用宏定义,数据类型转换
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<TD>按位或赋值</TD>
<TD>双目操作符</TD>
<TD></TD></TR>
<TR>
<TD>%=</TD>
<TD>模赋值</TD>
<TD>双目操作符</TD>
<TD></TD></TR>
<TR>
<TD>=</TD>
<TD>赋值</TD>
<TD>双目操作符</TD>
<TD></TD></TR>
<TR>
<TD>?:</TD>
<TD>按条件取值</TD>
<TD>双目操作符</TD>
<TD></TD></TR>
<TR>
<TD>,</TD>
<TD>间隔符</TD>
<TD>标点符号</TD>
<TD></TD></TR>
<TR>
<TD>#</TD>
<TD>预处理符号</TD>
<TD>标点符号</TD>
<TD></TD></TR>
<TR>
<TD>##</TD>
<TD>预处理符号</TD>
<TD>标点符号</TD>
<TD></TD></TR>
<TR>
<TD>sizeof</TD>
<TD>求字节数</TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>~</TD>
<TD>按位求反</TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>|</TD>
<TD>位‘或’</TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>:</TD>
<TD>间隔符</TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>;</TD>
<TD>间隔符</TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD>...</TD>
<TD>间隔符</TD>
<TD></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD></TR></TBODY></TABLE>
<P>  要把表中的运算符仔细的分类是不容易的,因为同一个运算符,在不同的地方其含义是不同的。如*运算符,当作为乘运算时是双目操作符(所谓双目操作符,即运算时需要二个操作数),如3*6,那么3与6总共是二个操作数。当作为取值运算时就是单目操作符(所谓单目操作符是只需要一个操作数)如对一个数求反:!a,这里只有一个操作数a。<BR>  要记住运算符的二个特点,一个是运算符的操作对象,另一个就是运算符的优先级别。其中运算符的优先级别是最不容易搞清楚和最容易出错的地方。<BR>在讲运算符之前讲一下“表达式”的概念:所谓表达式,就是用运算符把各个操作数连接成符合C语法规则的进行运算的式子。这里说的“符合C语法的规则”也很重要。如 a+b+5就是一个用算术运算符连接起来的表达式。<BR>1、算术运算符:+、-、*、/、%<BR>1)+、-、*、/ 分别是相加、相减、相乘、相除<BR>2)%  求二个数运算的模。所谓求模就是求二个数相除后的余数。例:25/3的余数是1,可以说25%3的模是1。要注意的是求模运算时二个操作数必须是整数。如果求25.3/3.1这样是不能运算的。<BR>下面写一个例子:<BR>#include&lt;stdio.h&gt;&nbsp;&nbsp;&nbsp; /*程序中要用到输入输出库函数,所以包含了stdio.h*/<BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp; int a=10,b=20,c=30;&nbsp;&nbsp;&nbsp; /*定义了3个整型变量,并同时进行了初始化赋值*/<BR>&nbsp;&nbsp;&nbsp; a=a*b+c;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*a*b+c组成了一个算术表达式,运算后的结果为230并把值*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*赋给变量a*/<BR>&nbsp;&nbsp;&nbsp; printf("%d",a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*以整型格式输出变量a的值。这里输出230*/<BR>&nbsp;&nbsp;&nbsp; a=a%b;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*进行求模运算。因为没有余数,最后的模为0*/<BR>&nbsp;&nbsp;&nbsp; printf("%d",a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*输出变量a的值。这里输出0*/<BR>}<BR><BR>下面是一个要考虑运算符优先级的例子:<BR>#include&lt;stdio.h&gt;<BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp; int a=10,b=20,c=30;<BR>&nbsp;&nbsp;&nbsp; a=c-a*b;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*这里就要考虑运算符优先级,*运算符的优先级比-运算符*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*的高,所以先进行乘运算。这里最后结果为-170*/<BR>}<BR><BR>由上面这个例子看到,在一个有多个运算符连接起来的表达式中需要考虑运算符的优先级,这个例子很简单。关于运算符优先级的概念其实在小学生的算术运算中就有这样的概念了,只不过这里的运算符多了一些,要考虑的情况也就复杂了。<BR>如果这个式子改写一下,写成:a=(c-a)*b;在运算时就以括号中的运算优先。<BR><BR><FONT color=#0000ff>几个简化的运算表达式:</FONT><BR>在C语言的程序中,经常看到这样的运算,如:i++;或者k--;这是运算符号的简化写法。<BR>1、加1运算的简写<BR>&nbsp;&nbsp; 当一个变量进行加1运算时,如a=a+1;这是变量自身加1,简写为a++;<BR>2、减1运算的简写<BR>&nbsp;&nbsp; 当一个变量进行减1运算时,如a=a-1;这是变量自身减1,简写为a--;<BR>3、加1个常量运算的简写<BR>&nbsp;&nbsp; 当一个变量与一个常量相加时,如a=a+5;这是变量自身加5,简写为a+=5;<BR>4、减一个常量运算的简写<BR>&nbsp;&nbsp; 当一个变量与一个常量相减时,如a=a-5;这是变量自身减5,简写为a-=5;<BR>5、乘一个常量运算的简写<BR>&nbsp;&nbsp; 当一个变量与一个常量相乘时,如a=a*5,这是变量自身乘5,简写为a*=5;<BR>6、除一个常量运算的简写<BR>&nbsp;&nbsp; 当一个变量与一个常量相除时,如a=a/5;这是变量自身除5,简写为a/=5;<BR><BR><FONT color=#0000ff>运算符的结合性(或称作关联性)<BR></FONT><FONT color=#000000>在一个复杂的表达式中,常常有许多运算符和变量,这时就要判断优先级和结合性这二个因素。<BR>例:-5+7; 这样的一个表达式用结合性来判断,因为运算符'-'和'+'相对于运算的数来说是‘左’结合的,所以就有'-5'和'+7'所以运算的结果为 2。<BR>通过这个例子要知道什么是“左结合性”和“右结合性”<BR><FONT color=#8a2be2>左结合性</FONT>--变量(或常量)与左边的运算符结合<BR><FONT color=#8a2be2>右结合性</FONT>--变量(或常量)与右边的运算符结合<BR><BR>运算符的优先级和结合性表</P><BR></FONT>
<TABLE style="WIDTH: 488px; HEIGHT: 379px" border=1>
<TBODY>
<TR>
<TD>优先级</TD>
<TD>运算符(高 ------→低)</TD>
<TD>结合率</TD>
<TD>运算符类型</TD>
<TD></TD></TR>
<TR>
<TD>高</TD>
<TD>( ) [ ] -&gt; .    </TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>! ~ ++ -- (类型) sizeof  + - * &amp; </TD>
<TD><FONT color=#0000ff>从右至左</FONT></TD>
<TD><FONT color=#0000ff>单目运算符</FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>* / %</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>+&nbsp; -</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>&lt;&lt;&nbsp;&nbsp;&nbsp; &gt;&gt;</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>&lt;&nbsp;&nbsp; &lt;=&nbsp;&nbsp;&nbsp; &gt;&nbsp;&nbsp;&nbsp; &gt;=</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>==&nbsp;&nbsp;&nbsp; !=</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>&amp;</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>^</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>|</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>&amp;&amp;</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>||</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>?:</TD>
<TD><FONT color=#0000ff>从右至左</FONT></TD>
<TD><FONT color=#ff0000>三目运算符</FONT></TD>
<TD></TD></TR>
<TR>
<TD>低</TD>
<TD>= += -= *= /= %= &amp;= ^=&nbsp;&nbsp;&nbsp; |= &lt;&lt;= &gt;&gt;=</TD>
<TD>从左至右</TD>
<TD>双目运算符</TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>高  -------------→ 低</TD>
<TD></TD>
<TD></TD>
<TD></TD></TR></TBODY></TABLE>
<P>  从表中可以看出一个规律,凡是单目运算符都是“右结合”的,凡是双目运算符都是“左结合”的。其中有一个?:运算符是三目运算符是右结合的,记住了这个规律,运算符的结合性也就掌握了。<BR>&nbsp;&nbsp;&nbsp;&nbsp;如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。<BR>由于将表熟记是比较困难的,为了防止产生歧义并提高可读性,应当用括号确定表达式的操作顺序。例如:<BR>d = (high &lt;&lt; 8) | low&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*用括号把需要先运算的括起来*/<BR><BR>if ((a | b) &amp;&amp; (a &amp; c))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*用括号把需要先运算的括起来*/<BR><BR>例:<BR>下列程序输出的结果是<BR>#include&lt;stdio.h&gt;<BR>void main()<BR>{<BR>&nbsp;&nbsp;&nbsp; int a=2;<BR>&nbsp;&nbsp;&nbsp; a%=4-1;<BR>&nbsp;&nbsp;&nbsp; printf("%d",a);<BR>&nbsp;&nbsp;&nbsp; a+=a*=a-=a*=3;<BR>&nbsp;&nbsp;&nbsp; printf("\n%d",a);<BR>}<BR><BR>A. 2,0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B. 1,0<BR>C.&nbsp;-1,12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D. 2,12<BR><BR>分析:由于%=运算符的优先级别低于-运算,a%=4-1即是a%=3,等价于a=a%3即a=2%3=2,所以选项B和C是错误的。表达式a+=a*=a-=a*=3,计算时注意赋值类表达式的值和变量的值随时被更新,计算表达式的值,开始时a=2,表达式赋值是从左至右进行的,表达a*=3使得a=6,此表达式的值也为6,于是表达式a-=a*=3相当于a-=6=6-6=0,a的值为0,后面的计算就不用做了,所以a的值最终为0。<BR>答:A</P>
<P>下列语句中错误的是<BR>A.x=sizeof int;<BR>B.x=sizeof 3.14<BR>C.printf("%d",a=a+1,b--,c+1);<BR>D.printf("%d",++x,x++);<BR>分析:此题的选项A的作用是测试int类型所占内存的字节数,因为类型符要用括号括起来,这时缺少括号是错误的。<BR>选项B是正确的。<BR>选项C从表面上看似乎复杂一些,但其中的a=a+1,b--,c+1是一个逗号表达式,C语言允许使用这种表达式所以D也是正确的。<BR>答案:A<BR><BR>下面的语句中,符合C语言语法的赋值语句是<BR>A.a=7+b+c=a+7;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B.a=7+b++=a+7;<BR>C.a=7+b,b++,a+7;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D.a=7+b;c=a+7;<BR>分析:一般情况下,表达式不能放在赋值号的左边,所以A和B选项是错误的。<BR>选项C不是一个C语言的语句,因为它不是以分号作为结束标志的。<BR>答:D<BR></P> </td>
			</tr>
		</table>
		</div>
		</td>
    </tr>
    <tr>
      <td width=758 bgColor=#b1bde0>
      <P align=right>教程录入:Sunpeople&nbsp;&nbsp;&nbsp;&nbsp;责任编辑:Sunpeople&nbsp;  </P></td>
    </tr>
    <tr>
      <td height=16>
		<form method="POST" action="--WEBBOT-SELF--">
			<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
			<p align="left">&nbsp;&nbsp;&nbsp; <li>上一个教程: <a class='LinkPrevArticle' href='/c/ShowArticle.asp?ArticleID=22' title='文章标题:C语言基础(03-先学2个库函数)
作&nbsp;&nbsp;&nbsp;&nbsp;者:dd
更新时间:2006-6-6 17:59:07'>C语言基础(03-先学2个库函数)</a></li><BR>&nbsp;&nbsp;&nbsp; <li>下一个教程: <a class='LinkNextArticle' href='/c/ShowArticle.asp?ArticleID=24' title='文章标题:C语言基础(06-逻辑运算符和逻辑表达式)
作&nbsp;&nbsp;&nbsp;&nbsp;者:dd
更新时间:2006-6-6 18:00:11'>C语言基础(06-逻辑运算符和逻辑表达式)</a></li></p>
		</form>
		</td>
    </tr>
       <tr>
      <td width=758 bgColor=#adb9dd>##相关推荐:</td>
    </tr>
    <tr>
      <td width=758>
<div align=right>
        <table cellSpacing=0 cellPadding=0 width="99%">
        <!-- MSTableType="layout" -->
          <tr>
            <td vAlign=top height=118><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1422' title='文章标题:06.9全国计算机等级考试二级C语言上机题
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 17:32:49' target="_self">06.9全国计算机等级考试二级…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1421' title='文章标题:06.9全国计算机等级考试二级C语言上机题
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 17:32:04' target="_self">06.9全国计算机等级考试二级…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1420' title='文章标题:06.9全国计算机等级考试二级C语言上机题
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 17:31:17' target="_self">06.9全国计算机等级考试二级…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1419' title='文章标题:06.9全国计算机等级考试二级C语言上机题
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 17:30:27' target="_self">06.9全国计算机等级考试二级…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1418' title='文章标题:06.9全国计算机等级考试二级C语言上机题
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 17:21:25' target="_self">06.9全国计算机等级考试二级…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1417' title='文章标题:2006年9月23日计算机等级考试二级C上机试题
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 17:19:24' target="_self">2006年9月23日计算机等级考试…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1416' title='文章标题:全国计算机等级考试二级C语言上机题2
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 17:16:40' target="_self">全国计算机等级考试二级C语言…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1415' title='文章标题:全国计算机等级考试二级C语言上机题1
作&nbsp;&nbsp;&nbsp;&nbsp;者:未知
更新时间:2006-11-4 16:58:55' target="_self">全国计算机等级考试二级C语言…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1192' title='文章标题:C语言教程第二章:&nbsp;数据类型、运算符、表达式
作&nbsp;&nbsp;&nbsp;&nbsp;者:佚名
更新时间:2006-9-29 17:26:28' target="_self">C语言教程第二章:&nbsp;数据类型、…</a><br><a class='LinkArticleCorrelative' href='/c/ShowArticle.asp?ArticleID=1191' title='文章标题:C语言教程第二章:&nbsp;数据类型、运算符、表达式
作&nbsp;&nbsp;&nbsp;&nbsp;者:佚名
更新时间:2006-9-29 17:25:13' target="_self">C语言教程第二章:&nbsp;数据类型、…</a><br></td>
          </tr>
        </table>
      </div></td>
    </tr>
  </table>
  <table height=164 cellSpacing=0 cellPadding=0 width=760 border=0>
    <tr>
      <td width=760 background=/images1/index_32.gif height=26>
      <P align=center>| <A class=Bottom onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://lsjs.gsau.edu.cn');" href="#">设为首页</A> | <A class=Bottom href="javascript:window.external.addFavorite('http://lsjs.gsau.edu.cn','蓝色极速');">加入收藏</A> | <A class=Bottom href="mailto:wxw404@gmail.com">联系站长</A> | <A class=Bottom href="/FriendSite/Index.asp" target=_blank>友情链接</A> | <A class=Bottom href="/Copyright.asp" target=_blank>版权申明</A> | </P></td>
    </tr>
    <tr>
      <td width=760 background=/images1/index_33.gif height=138>
      <P align=center>Copyright (C) 蓝色极速 All Rights Reserved<BR>建议使用:1024*768分辨率,16位以上颜色、Netscape6.0<BR>IE5.0以上版本浏览器和中文大字符集</P></td>
    </tr>
  </table>
</body>
</html>




⌨️ 快捷键说明

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