华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
全國  |             |          |          |          |          |         
  當(dāng)前位置:計(jì)算機(jī)等級 > 二級考試 > C語言程序設(shè)計(jì) > C語言輔導(dǎo) > 文章內(nèi)容
  

計(jì)算機(jī)二級C語言考點(diǎn)解析:運(yùn)算符

中華IT學(xué)院   【 】  [ 2017年9月5日 ]

  無論是加減乘除還是大于小于,都需要用到運(yùn)算符,在C語言中的運(yùn)算符和我們平時(shí)用的基本上都差不多。

  運(yùn)算符包括賦值運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、位邏輯運(yùn)算符、位移運(yùn)算符、關(guān)系運(yùn)算符、自增自減運(yùn)算符。大多數(shù)運(yùn)算符都是二目運(yùn)算符,即運(yùn)算符位于兩個(gè)表達(dá)式之間。單目運(yùn)算符的意思是運(yùn)算符作用于單個(gè)表達(dá)式。(具體什么是表達(dá)式下一節(jié)再說)

  一、賦值運(yùn)算符

  賦值語句的作用是把某個(gè)常量或變量或表達(dá)式的值賦值給另一個(gè)變量。符號為‘=’。這里并不是等于的意思,只是賦值,等于用‘==’表示。

  注意:賦值語句左邊的變量在程序的其他地方必須要聲明。

  得已賦值的變量我們稱為左值,因?yàn)樗鼈兂霈F(xiàn)在賦值語句的左邊;產(chǎn)生值的表達(dá)式我們稱為右值,因?yàn)樗鼈兂霈F(xiàn)在賦值語句的右邊。常數(shù)只能作為右值。

  例如:

  count=5;

  total1=total2=0;

  第一個(gè)賦值語句大家都能理解。

  第二個(gè)賦值語句的意思是把0同時(shí)賦值給兩個(gè)變量。這是因?yàn)橘x值語句是從右向左運(yùn)算的,也就是說從右端開始計(jì)算。這樣它先total2=0;然后total1=total2;那么我們這樣行不行呢?

  (total1=total2)=0;

  這樣是不可以的,因?yàn)橄纫憷ㄌ柪锩娴,這時(shí)total1=total2是一個(gè)表達(dá)式,而賦值語句的左邊是不允許表達(dá)式存在的。

  二、算術(shù)運(yùn)算符

  在C語言中有兩個(gè)單目和五個(gè)雙目運(yùn)算符。

  符號 功能

  + 單目正

  - 單目負(fù)

  * 乘法

  / 除法

  % 取模

  + 加法

  - 減法

  下面是一些賦值語句的例子, 在賦值運(yùn)算符右側(cè)的表達(dá)式中就使用了上面的算術(shù)運(yùn)算符:

  Area=Height*Width;

  num=num1+num2/num3-num4;

  運(yùn)算符也有個(gè)運(yùn)算順序問題,先算乘除再算加減。單目正和單目負(fù)最先運(yùn)算。

  取模運(yùn)算符(%)用于計(jì)算兩個(gè)整數(shù)相除所得的余數(shù)。例如:

  a=7%4;

  最終a的結(jié)果是3,因?yàn)?%4的余數(shù)是3。

  那么有人要問了,我要想求它們的商怎么辦呢?

  b=7/4;

  這樣b就是它們的商了,應(yīng)該是1。

  也許有人就不明白了,7/4應(yīng)該是1.75,怎么會(huì)是1呢?這里需要說明的是,當(dāng)兩個(gè)整數(shù)相除時(shí),所得到的結(jié)果仍然是整數(shù),沒有小數(shù)部分。要想也得到小數(shù)部分,可以這樣寫7.0/4或者7/4.0,也即把其中一個(gè)數(shù)變?yōu)榉钦麛?shù)。

  那么怎樣由一個(gè)實(shí)數(shù)得到它的整數(shù)部分呢?這就需要用強(qiáng)制類型轉(zhuǎn)換了。例如:

  a=(int) (7.0/4);

  因?yàn)?.0/4的值為1.75,如果在前面加上(int)就表示把結(jié)果強(qiáng)制轉(zhuǎn)換成整型,這就得到了1。那么思考一下a=(float) (7/4);最終a的結(jié)果是多少?

  單目減運(yùn)算符相當(dāng)于取相反值,若是正值就變?yōu)樨?fù)值,若是負(fù)數(shù)就變?yōu)檎怠?/P>

  單目加運(yùn)算符沒有意義,純粹是和單目減構(gòu)成一對用的。

  三、邏輯運(yùn)算符

  邏輯運(yùn)算符是根據(jù)表達(dá)式的值來返回真值或是假值。其實(shí)在C語言中沒有所謂的真值和假值,只是認(rèn)為非0為真值,0為假值。

  符號 功能

  && 邏輯與

  || 邏輯或

  ! 邏輯非

  例如:

  5!3;

  0||-2&&5;

  !4;

  當(dāng)表達(dá)式進(jìn)行&&運(yùn)算時(shí),只要有一個(gè)為假,總的表達(dá)式就為假,只有當(dāng)所有都為真時(shí),總的式子才為真。當(dāng)表達(dá)式進(jìn)行||運(yùn)算時(shí),只要有一個(gè)為真,總的值就為真,只有當(dāng)所有的都為假時(shí),總的式子才為假。邏輯非(!)運(yùn)算是把相應(yīng)的變量數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的真/假值。若原先為假,則邏輯非以后為真,若原先為真,則邏輯非以后為假。

  還有一點(diǎn)很重要,當(dāng)一個(gè)邏輯表達(dá)式的后一部分的取值不會(huì)影響整個(gè)表達(dá)式的值時(shí),后一部分就不會(huì)進(jìn)行運(yùn)算了。例如:

  a=2,b=1;

  a||b-1;

  因?yàn)閍=2,為真值,所以不管b-1是不是真值,總的表達(dá)式一定為真值,這時(shí)后面的表達(dá)式就不會(huì)再計(jì)算了。

  四、關(guān)系運(yùn)算符

  關(guān)系運(yùn)算符是對兩個(gè)表達(dá)式進(jìn)行比較,返回一個(gè)真/假值。

  符號 功能

  > 大于

  < 小于

  >= 大于等于

  <= 小于等于

  == 等于

  != 不等于

  這些運(yùn)算符大家都能明白,主要問題就是等于==和賦值=的區(qū)別了。

  一些剛開始學(xué)習(xí)C語言的人總是對這兩個(gè)運(yùn)算符弄不明白,經(jīng)常在一些簡單問題上出錯(cuò),自己檢查時(shí)還找不出來。看下面的代碼:

  if(Amount=123) ……

  很多新人都理解為如果Amount等于123,就怎么樣。其實(shí)這行代碼的意思是先賦值A(chǔ)mount=123,然后判斷這個(gè)表達(dá)式是不是真值,因?yàn)榻Y(jié)果為123,是真值,那么就做后面的。如果想讓當(dāng)Amount等于123才運(yùn)行時(shí),應(yīng)該if(Amount==123) ……

  五、自增自減運(yùn)算符

  這是一類特殊的運(yùn)算符,自增運(yùn)算符++和自減運(yùn)算符--對變量的操作結(jié)果是增加1和減少1。例如:

  --Couter;

  Couter--;

  ++Amount;

  Amount++;

  看這些例子里,運(yùn)算符在前面還是在后面對本身的影響都是一樣的,都是加1或者減1,但是當(dāng)把他們作為其他表達(dá)式的一部分,兩者就有區(qū)別了。運(yùn)算符放在變量前面,那么在運(yùn)算之前,變量先完成自增或自減運(yùn)算;如果運(yùn)算符放在后面,那么自增自減運(yùn)算是在變量參加表達(dá)式的運(yùn)算后再運(yùn)算。這樣講可能不太清楚,看下面的例子:

  num1=4;

  num2=8;

  a=++num1;

  b=num2++;

  a=++num1;這總的來看是一個(gè)賦值,把++num1的值賦給a,因?yàn)樽栽鲞\(yùn)算符在變量的前面,所以num1先自增加1變?yōu)?,然后賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因?yàn)樽栽鲞\(yùn)算符在變量的后面,所以先把num2賦值給b,b應(yīng)該為8,然后num2自增加1變?yōu)?。

  那么如果出現(xiàn)這樣的情況我們怎么處理呢?

  c=num1+++num2;

  到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據(jù)編譯器來決定,不同的編譯器可能有不同的結(jié)果。所以我們在以后的編程當(dāng)中,應(yīng)該盡量避免出現(xiàn)上面復(fù)雜的情況。

首頁 1 2 尾頁
分享到:
本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照
连平县| 宁远县| 宿州市| 京山县| 五华县| 正阳县| 炎陵县| 莱西市| 康平县| 沙雅县| 靖安县| 贵南县| 广灵县| 绥阳县| 青州市| 大同市| 郓城县| 策勒县| 商都县| 合川市| 汉中市| 正镶白旗| 资溪县| 绍兴县| 德惠市| 太仓市| 长汀县| 洞头县| 吉木萨尔县| 东丰县| 民丰县| 灌阳县| 台州市| 大城县| 志丹县| 治县。| 墨江| 宜城市| 曲水县| 通州区| 铜陵市|