C語(yǔ)言習(xí)題解析【含基礎(chǔ)知識(shí)講解】_第1頁(yè)
C語(yǔ)言習(xí)題解析【含基礎(chǔ)知識(shí)講解】_第2頁(yè)
C語(yǔ)言習(xí)題解析【含基礎(chǔ)知識(shí)講解】_第3頁(yè)
C語(yǔ)言習(xí)題解析【含基礎(chǔ)知識(shí)講解】_第4頁(yè)
C語(yǔ)言習(xí)題解析【含基礎(chǔ)知識(shí)講解】_第5頁(yè)
已閱讀5頁(yè),還剩186頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C 語(yǔ)言習(xí)題解析 版權(quán)所有,盜版必究南京農(nóng)業(yè)大學(xué)工學(xué)院林科學(xué) 編著第 1 章 C 語(yǔ)言基礎(chǔ)11 簡(jiǎn)介 英文是一種自然語(yǔ)言,學(xué)習(xí)英文首先要學(xué)習(xí)字符(字母和其它符號(hào))、單詞、然后學(xué)習(xí)語(yǔ)句短語(yǔ),最后學(xué)習(xí)用語(yǔ)句構(gòu)成文章。C 語(yǔ)言是一種高級(jí)計(jì)算機(jī)語(yǔ)言,接近于人們習(xí)慣的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言,也要先學(xué)習(xí)字符,基本詞類(lèi),然后再學(xué)習(xí)語(yǔ)句的構(gòu)成規(guī)則,最后學(xué)習(xí)用語(yǔ)句構(gòu)成程序。 本章介紹C 語(yǔ)言的字符集、數(shù)據(jù)類(lèi)型、運(yùn)算符等。 12 知識(shí)點(diǎn) l 基本語(yǔ)法概念:關(guān)鍵字、標(biāo)識(shí)符、數(shù)據(jù)類(lèi)型、變量、常量 l 常量的表示方法:整數(shù)、實(shí)數(shù)、字符、字符串常量、標(biāo)識(shí)符常量 l 類(lèi)型轉(zhuǎn)換:自動(dòng)類(lèi)型轉(zhuǎn)換、賦值類(lèi)型轉(zhuǎn)換、強(qiáng)制類(lèi)型轉(zhuǎn)換 l 運(yùn)算

2、符:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、字位運(yùn)算符、其他常用運(yùn)算符。 13 概念 1.3.1 字符集 在C語(yǔ)言程序中允許出現(xiàn)的所有基本字符的組合稱(chēng)為C語(yǔ)言的字符集。C 語(yǔ)言的字符集就是ASCII 字符集,主要包含下列幾類(lèi): 1. 大小寫(xiě)英文字母 AZ、az(52 個(gè)); 2. 數(shù)字 09(10個(gè)); 3. 其它可顯示字符(33 個(gè)); 4. 轉(zhuǎn)義字符(11 個(gè))。 在 C 語(yǔ)言中,有一些不可顯示字符。表示這些字符不可直接書(shū)寫(xiě),而是使用反斜杠符號(hào)“”開(kāi)始并后跟單個(gè)字符或若干字符的組合。 1.3.2 保留字 在 C 語(yǔ)言中有特殊含義的單詞稱(chēng)為“保留字”,也稱(chēng)“關(guān)鍵字”,主要用于構(gòu)成語(yǔ)句。所有保留字

3、均由小寫(xiě)字母組成。C 語(yǔ)言保留字共有32 個(gè)。 133 標(biāo)識(shí)符 所謂標(biāo)識(shí)符是指常量、變量、語(yǔ)句標(biāo)號(hào)以及用戶(hù)自定義函數(shù)的名稱(chēng)。作為標(biāo)識(shí)符必須滿(mǎn)足以下規(guī)則: 標(biāo)識(shí)符必須由字母、下劃線(xiàn)或數(shù)字(09)組成; 標(biāo)識(shí)符的第一個(gè)字符可以是字母(az, AZ)或下劃線(xiàn)(_); 保留字不能作標(biāo)識(shí)符。 溫馨提示:C 語(yǔ)言是一種大小寫(xiě)敏感的語(yǔ)言。如 Test、test 是 2 個(gè)不同的標(biāo)識(shí)符。 134 數(shù)據(jù)類(lèi)型 C 語(yǔ)言中的數(shù)據(jù)類(lèi)型,可以分為基本數(shù)據(jù)類(lèi)型和派生數(shù)據(jù)類(lèi)型兩類(lèi)。 基本數(shù)據(jù)類(lèi)型是 C語(yǔ)言系統(tǒng)中預(yù)定義的內(nèi)部數(shù)據(jù)類(lèi)型,有 char、int、float、double、void 型。 字符型用來(lái)存放一個(gè)ASCII

4、碼字符或一個(gè) 8位的二進(jìn)制數(shù);整型用來(lái)存放一個(gè)整數(shù),實(shí)型用來(lái)存放實(shí)數(shù),雙精度型用來(lái)存放雙精度數(shù)。不同的編譯系統(tǒng)為各種類(lèi)型數(shù)據(jù)分配的內(nèi)存字節(jié)數(shù)不同,本書(shū)按照 Turbo C介紹。 基本類(lèi)型可以加某些關(guān)鍵字對(duì)其進(jìn)行修飾:如 short 表示短,long 表示長(zhǎng),signed 表示有符號(hào), unsigned 表示無(wú)符號(hào)等。 用 short、long 、unsigned 、signed 這四個(gè)關(guān)鍵字修飾 int 類(lèi)型時(shí),int 可以省略, 例如:unsigned int 可簡(jiǎn)寫(xiě)為unsigned。 無(wú)修飾詞的 int 類(lèi)型和 char 類(lèi)型,編譯程序認(rèn)為是有符號(hào)的。即相當(dāng)于 signed int 和

5、signed char。 派生數(shù)據(jù)類(lèi)型則是根據(jù)用戶(hù)需要,按照 C 語(yǔ)言規(guī)則由基本數(shù)據(jù)類(lèi)型構(gòu)造出來(lái)的數(shù)據(jù)類(lèi)型,有指針、數(shù)組、結(jié)構(gòu)體、聯(lián)合體、枚舉等類(lèi)型。這些內(nèi)容將在后面的章節(jié)中進(jìn)行介紹。 每種數(shù)據(jù)類(lèi)型表示的數(shù)的范圍是有限的,當(dāng)數(shù)超過(guò)此范圍,則會(huì)發(fā)生溢出, 無(wú)符號(hào)整數(shù)的最高位也是數(shù)據(jù)位,而不是符號(hào)位。數(shù)據(jù)以原碼形式存放。例如整數(shù) 7 的原碼是 (0000 0000 0000 0111),而二進(jìn)制的無(wú)符號(hào)整數(shù)(1000 0000 0000 0000)表示的是整數(shù) 215 。 溫馨提示:有符號(hào)整數(shù)的最高位是符號(hào)位,最高位為 0,表示該數(shù)是正數(shù),最高位為 1,表示該數(shù)是負(fù)數(shù)。正整數(shù)以原碼的形式存放。負(fù)整

6、數(shù)在內(nèi)存中以整數(shù)的“補(bǔ)碼”形式存放。求補(bǔ)碼的方法如下:先求原碼的反碼,再在反碼上加 1,簡(jiǎn)言為“求反加 1”。如 1 在內(nèi)存中的形式為(0000 0000 0000 0001);則­1在內(nèi)存中的形式為先對(duì) 1 求反碼,在此基礎(chǔ)上加1,即得(1111 1111 1111 1111)。 135 變量 在程序執(zhí)行過(guò)程中,其值可以改變的量稱(chēng)為變量。其作用是存儲(chǔ)數(shù)據(jù)。每個(gè)變量屬于一種類(lèi)型。 每個(gè)變量只能存放其類(lèi)型允許的值。定義格式如下:數(shù)據(jù)類(lèi)型 變量名 1,變量名 2,變量名 n; 在一條語(yǔ)句中,可以定義一個(gè)變量也可以同時(shí)定義若干個(gè)變量。變量名作為變量的標(biāo)識(shí),應(yīng)是一個(gè)合法的C 語(yǔ)言標(biāo)識(shí)符。 1

7、36 常量 在程序運(yùn)行過(guò)程中,值不會(huì)被改變的量稱(chēng)之為常量。 1整型常量 整型常量是指不含小數(shù)點(diǎn)的整數(shù),它可以有正負(fù)號(hào)。如果是正號(hào),可以省略。 十進(jìn)制整數(shù)的表示和日常表示一樣,由09 組成。如:100,34,­15 等都是十進(jìn)制數(shù)。 八進(jìn)制整數(shù)的表示以0 開(kāi)頭,由 07組成。如:012、0456、­045 都等是八進(jìn)制數(shù)。 十六進(jìn)制整數(shù)的表示以 0X 或 0x 開(kāi)頭,由 09,af(或 AF)字母組成。如:0x2a、0X123 等都是十六進(jìn)制數(shù)。 2實(shí)型常量 實(shí)型常量即實(shí)數(shù),也稱(chēng)浮點(diǎn)數(shù)。有十進(jìn)制小數(shù)和十進(jìn)制指數(shù)兩種表示形式。 實(shí)型常量可以有正負(fù)號(hào)。如果是正號(hào),可以省略。 十進(jìn)

8、制小數(shù)形式由數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))。例如:1.25、3.14、0.0、­123.9 等都是實(shí)數(shù)。當(dāng)整數(shù)部分或小數(shù)部分為 0 時(shí),可以忽略不寫(xiě),但不能同時(shí)省略。 指數(shù)形式是指以 10的方冪表示的數(shù), 也稱(chēng)科學(xué)表示法。 由小數(shù)和指數(shù)兩部分組成, 兩者缺一不可。指數(shù)部分用 e來(lái)表示方冪。 溫馨提示:用指數(shù)形式表示小數(shù)時(shí),方冪 e前后必須是數(shù)字,e 的前面可以是整數(shù)也可以是小數(shù), e 后面只能為 13 位整數(shù)。例如:1.24e3 表示 1.24×10 3 ,­4.3e­2 表示­4.3×10­ 2 。但 1.3e、 e2、

9、1.2e3.1等都是不合法的實(shí)數(shù)。 3字符常量 字符常量是用單引號(hào)括起來(lái)的一個(gè)字符,如e、E。字符常量在內(nèi)存中以8 位的整型常量存放,該整型的值被稱(chēng)為 ASCII碼。 當(dāng)某些字符不能直接顯示或者不能從鍵盤(pán)上輸入時(shí),可采取轉(zhuǎn)義字符表示。 轉(zhuǎn)義符后若是一個(gè)整型常量,則必須是一個(gè)以 0 為前綴的八進(jìn)制或以 x 為前綴的十六進(jìn)制數(shù),其大小在十進(jìn)制數(shù) 0255 之間。當(dāng)為八進(jìn)制數(shù)時(shí),前綴 0 可以省略。 4字符串常量 用一對(duì)雙引號(hào)將 0 個(gè)或若干個(gè)字符括起來(lái),稱(chēng)為字符串常量。編譯系統(tǒng)在處理字符串常量時(shí),會(huì)自動(dòng)在字符串常量的尾部加上'0'。 5標(biāo)識(shí)符常量 標(biāo)識(shí)符常量是指用一個(gè)標(biāo)識(shí)符來(lái)表示一

10、個(gè)常量。用以增加程序的可閱讀性和可維護(hù)性。定義標(biāo)識(shí)符常量的格式為: #define 標(biāo)識(shí)符 常量值 define 定義的常量,通常被稱(chēng)為宏定義常量。系統(tǒng)在編譯程序前,首先對(duì)源程序進(jìn)行預(yù)處理,將宏定義中的標(biāo)識(shí)符替換成常量值,并生成臨時(shí)的中間文件,再對(duì)該中間文件進(jìn)行編譯。在宏替換時(shí),只是標(biāo)識(shí)符和常量值之間的簡(jiǎn)單替換,預(yù)處理本身不做任何數(shù)據(jù)類(lèi)型和合法性檢查。程序運(yùn)行時(shí)也不分配內(nèi)存空間。 137 運(yùn)算符及優(yōu)先級(jí) C 語(yǔ)言中對(duì)數(shù)據(jù)進(jìn)行處理,和其他程序設(shè)計(jì)語(yǔ)言一樣,也是通過(guò)運(yùn)算符完成的。運(yùn)算符是完成對(duì)常量、變量等操作對(duì)象進(jìn)行運(yùn)算的符號(hào)。運(yùn)算符的對(duì)象稱(chēng)為操作數(shù)。對(duì)一個(gè)操作數(shù)進(jìn)行運(yùn)算的稱(chēng)為一元(單目)運(yùn)算符,

11、對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算的稱(chēng)為二元(雙目)運(yùn)算符,對(duì)三個(gè)操作數(shù)進(jìn)行運(yùn)算的稱(chēng)為三元(三目)運(yùn)算符。 常量、變量等數(shù)據(jù)通過(guò)運(yùn)算符組合在一起構(gòu)成了C 語(yǔ)言的表達(dá)式,每個(gè)符合C 語(yǔ)言規(guī)則的表達(dá)式將有一個(gè)確定的結(jié)果,這個(gè)結(jié)果的類(lèi)型一般取決于操作數(shù)的類(lèi)型。當(dāng)多個(gè)運(yùn)算符組合成一個(gè)復(fù)合表達(dá)式時(shí),運(yùn)算符的求值次序根據(jù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合規(guī)則來(lái)確定。表 1­1 列出了C 語(yǔ)言中各種運(yùn)算符及其優(yōu)先級(jí)。 表 1­1 C 語(yǔ)言運(yùn)算符及其優(yōu)先級(jí) 優(yōu)先級(jí) 運(yùn)算符 功能說(shuō)明 結(jié)合性 1 ( ) 改變優(yōu)先級(jí) 從左至右 : 作用域運(yùn)算符 數(shù)組下標(biāo) .,­> 成員選擇2 +,­­

12、 增1或減1運(yùn)算符 從右至左 & 取地址 * 取內(nèi)容 ! 邏輯求反 按位求反 +,­ 取正、負(fù)數(shù) ( ) 強(qiáng)制類(lèi)型轉(zhuǎn)換 sizeof 取所占內(nèi)存字節(jié)數(shù) 3 *, / , % 乘法,除法,取余 從左至右 4 +,­ 加法,減法 5 <<, >> 左移位,右移位 6 <,<=,>,>= 小于,小于等于,大于,大于等于 7 =,!= 相等,不等 8 & 按位與 9 按位異或 10 | 按位或 11 && 邏輯與 12 | 邏輯或 13 ? : 三目運(yùn)算符 從右至左 14 =,+=,­=,*=

13、,/=,%= ,&= ,= ,!= ,<<=,>>= 賦值運(yùn)算符 15 , 逗號(hào)運(yùn)算符 從左至右 138 算術(shù)運(yùn)算符 算術(shù)運(yùn)算符包括 +(正)、­(負(fù))、+(加)、­ (減)、*(乘)、/(除)、%(取模)。 若除法運(yùn)算符的左右兩邊操作數(shù)是整數(shù),則進(jìn)行整除運(yùn)算;只要除法運(yùn)算符有一個(gè)操作數(shù)是實(shí)數(shù),則進(jìn)行普通的除法運(yùn)算;例如: 5/4 除法兩邊操作數(shù)是整數(shù),進(jìn)行整除運(yùn)算,結(jié)果為 1。 5.0/4 除法兩邊操作數(shù)不全是整數(shù),進(jìn)行除法運(yùn)算,結(jié)果為 1.25。 取模運(yùn)算符“%”,也即取余運(yùn)算,兩邊的操作數(shù)必須是整數(shù),其取模結(jié)果符號(hào)必須與被除數(shù)相同。 如

14、 16%­5 的值是 1,­16%5 的值是­1。 算術(shù)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性與人們習(xí)慣的數(shù)學(xué)語(yǔ)言中該類(lèi)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性是基本一致的。 若雙目運(yùn)算符兩邊的類(lèi)型不一致,則系統(tǒng)將按照自動(dòng)類(lèi)型轉(zhuǎn)換規(guī)則使兩邊類(lèi)型一致后再進(jìn)行運(yùn)算。 溫馨提示:在使用算術(shù)運(yùn)算符時(shí),需要注意有關(guān)算術(shù)表達(dá)式求值溢出的處理問(wèn)題。整數(shù)運(yùn)算產(chǎn)生溢出時(shí)則不認(rèn)為是一個(gè)錯(cuò)誤,但這時(shí)運(yùn)算結(jié)果已不正確了。 139 賦值運(yùn)算符(1)賦值運(yùn)算符 在 C 語(yǔ)言中,“=” 是一個(gè)賦值運(yùn)算符, 它的作用是將一個(gè)值或一個(gè)表達(dá)式的值賦給“=”左邊的變量。 C 語(yǔ)言中的等于是“=”。 賦值運(yùn)算符的左操作數(shù)必須是變量,右操

15、作數(shù)可以是常量、變量、表達(dá)式等。賦值運(yùn)算符所組成的表達(dá)式稱(chēng)為賦值表達(dá)式。 賦值運(yùn)算符的優(yōu)先級(jí)較低,僅高于逗號(hào)運(yùn)算符。因此賦值表達(dá)式通常先計(jì)算賦值運(yùn)算符右邊的表達(dá)式,并將結(jié)果賦給賦值運(yùn)算符左邊的變量。 C 語(yǔ)言中的賦值運(yùn)算符“=”與數(shù)學(xué)的等號(hào)含義截然不同,如 i=i+1,數(shù)學(xué)中是不成立的,但在 C 語(yǔ)言中表示,i 的值加1 并重新賦給變量 i。 溫馨提示:賦值表達(dá)式本身也是一個(gè)表達(dá)式,該表達(dá)式的值就是賦值的內(nèi)容。因此,賦值表達(dá)式可作為另一個(gè)賦值運(yùn)算符的右操作數(shù), 賦值給一個(gè)變量, 這樣就出現(xiàn)多個(gè)賦值號(hào)的情況, 例如“a=b=3” 相當(dāng)于“a=(b=3)”。 (2)復(fù)合賦值運(yùn)算符 在 C 語(yǔ)言中,

16、所有的雙目算術(shù)運(yùn)算符都可以與賦值運(yùn)算符組合在一起,構(gòu)成復(fù)合算術(shù)賦值運(yùn)算符。 復(fù)合賦值運(yùn)算符的一般形式為:變量 復(fù)合賦值運(yùn)算符 表達(dá)式 它等同于:變量 = 變量 運(yùn)算符 表達(dá)式例如: x*=10 相當(dāng)于 x=x*10。 1310 關(guān)系運(yùn)算和邏輯運(yùn)算 (1) C 語(yǔ)言的邏輯值 關(guān)系運(yùn)算符和邏輯運(yùn)算符通常用作流程控制語(yǔ)句中的條件描述。但在 C 語(yǔ)言中,沒(méi)有專(zhuān)門(mén)的邏輯 類(lèi)型。C 語(yǔ)言中關(guān)系運(yùn)算符和邏輯運(yùn)算符的計(jì)算結(jié)果為整數(shù) 0 和1。1 表示邏輯“真”,0 表示邏輯“假”。 除了整數(shù) 0和 1,其它類(lèi)型和其它值的變量、常量、表達(dá)式也可參與邏輯運(yùn)算,當(dāng)值為非0 值時(shí),則表示邏輯“真”;若值為0 值時(shí),則

17、表示邏輯“假”。 (2)關(guān)系運(yùn)算符 C 語(yǔ)言中有“<”(是否小于)、“<=”(是否小于或等于)、“>”(是否大于)、“>=”(是否大于或等于)、 “=”(是否等于)、“!=”(是否不等于)六個(gè)關(guān)系運(yùn)算符。 關(guān)系運(yùn)算符完成兩個(gè)操作數(shù)的比較,結(jié)果是一個(gè)整數(shù)。當(dāng)比較關(guān)系成立時(shí),結(jié)果為整數(shù) 1,關(guān)系不成立時(shí),結(jié)果為零。 注意 C 語(yǔ)言的賦值運(yùn)算符“=”與關(guān)系運(yùn)算符“=”的區(qū)別。例如 x=2 表示判斷 x 是否等于 2,當(dāng) x 的值為 2 時(shí),表達(dá)式成立,結(jié)果為 1,當(dāng) x 的值不是 2 時(shí),表達(dá)式不成立,結(jié)果為 0。而 x=2 表示將 2 賦給 x,其表達(dá)式的值即為賦值的內(nèi)容2

18、。 (3)邏輯運(yùn)算符 C 語(yǔ)言中有“&&”(邏輯與)、“|”(邏輯或)和“!”(邏輯非)三種邏輯運(yùn)算符。其中“!”是單目運(yùn)算符。 邏輯運(yùn)算符的操作數(shù)可以是整數(shù) 0 和 1,也可以是 0和非 0 的整數(shù),也可以是任何類(lèi)型的數(shù)據(jù),如字符型、實(shí)型或指針型等,但都是以非 0 為“真”,0 為“假”。 邏輯表達(dá)式計(jì)算的結(jié)果也是一個(gè)整數(shù),當(dāng)邏輯表達(dá)式為真時(shí),結(jié)果為整數(shù) 1,邏輯表達(dá)式為假時(shí),結(jié)果為 0。 溫馨提示:邏輯表達(dá)式在計(jì)算時(shí),并不是所有的運(yùn)算符都會(huì)得到執(zhí)行,而是采用優(yōu)化算法。其含義是,在求邏輯表達(dá)式值的時(shí)候,一旦表達(dá)式的值能夠確定,就不再繼續(xù)進(jìn)行計(jì)算。換言之,對(duì)于 “&&a

19、mp;”(邏輯與)而言, 若左操作數(shù)為0, 則整個(gè)邏輯與表達(dá)式為0, 不再計(jì)算右操作數(shù)表達(dá)式; 對(duì)于“|”(邏輯或)而言,若左操作數(shù)為 1,則整個(gè)邏輯或表達(dá)式為 1,不再計(jì)算右操作數(shù)表達(dá)式。 1311 字位運(yùn)算符 C 語(yǔ)言中的字位運(yùn)算符可分為字位邏輯運(yùn)算符、字位移位運(yùn)算符。 C 語(yǔ)言中字位邏輯運(yùn)算符共四個(gè),分別是“”(按位求反)、“&”(按位與)、“”(按位異或)和“|” (按位或)。 C 語(yǔ)言中字位移位運(yùn)算符共兩個(gè),分別是“<<”(左移位)和“>>”(右移位)。它們都是雙目運(yùn)算符,作用是將一個(gè)整型或字符型量按其二進(jìn)制的位模式左移或右移若干位。左移操作是將二進(jìn)制

20、數(shù)依次向左移動(dòng) n 個(gè)二進(jìn)制位,并在低位補(bǔ) 0。右移操作則與數(shù)據(jù)類(lèi)型有關(guān),若是無(wú)符號(hào)整數(shù),則將二進(jìn)制數(shù)依次向右移動(dòng) n 個(gè)二進(jìn)制位,并在高位補(bǔ) 0;若是有符號(hào)的整數(shù),則將二進(jìn)制數(shù)依次向右移動(dòng) n 個(gè)二進(jìn)制位,并在高位補(bǔ)符號(hào)位。如: ­32>>3/­32 的補(bǔ)碼為(1111 1111 1110 0000)右移后為(1111 1111 1111 1100),結(jié)果為­4。 1312 其他運(yùn)算符 1自增、自減運(yùn)算符 自增、自減運(yùn)算符共兩個(gè),+和­­,其作用是使變量的值增 1 和減 1。它們是單目運(yùn)算符,+ 和­­可以出現(xiàn)

21、在變量的左邊或右邊,分別稱(chēng)為前綴運(yùn)算符(前增量)和后綴運(yùn)算符(后增量)。 所謂前綴運(yùn)算符(前增量),表示先對(duì)該變量進(jìn)行增量運(yùn)算,再引用該變量的值進(jìn)行表達(dá)式的其他運(yùn)算。所謂后綴運(yùn)算符(后增量),表示先引用該變量的值進(jìn)行表達(dá)式的其他運(yùn)算,再對(duì)該變量進(jìn)行增量運(yùn)算。 自增、自減運(yùn)算符只能作用于變量,不能用于常量、表達(dá)式。 2逗號(hào)運(yùn)算符 逗號(hào)運(yùn)算符也稱(chēng)順序運(yùn)算符。用逗號(hào)運(yùn)算符連接起來(lái)的式子稱(chēng)為逗號(hào)表達(dá)式,該表達(dá)式的類(lèi)型和值就是最后計(jì)算的表達(dá)式的類(lèi)型和值。 溫馨提示:并非所有的逗號(hào)運(yùn)算符都構(gòu)成逗號(hào)表達(dá)式,有些情況下逗號(hào)只能作分隔符,如函數(shù)的參數(shù)之間用逗號(hào)分割:max(a+b,c+d) 3條件運(yùn)算符 條件運(yùn)

22、算符是 C 語(yǔ)言中惟一的一個(gè)三目運(yùn)算符,由兩個(gè)符號(hào)“?”和“:”組成。 條件運(yùn)算符的格式如下: 條件表達(dá)式?表達(dá)式 1:表達(dá)式 2 其含義是如果條件表達(dá)式的結(jié)果為真(非 0),就執(zhí)行表達(dá)式 1;否則就執(zhí)行表達(dá)式2。 4sizeof 運(yùn)算符 sizeof 是個(gè)帶符號(hào)的單目運(yùn)算符,而不是一個(gè)函數(shù)。它的格式如下: sizeof(表達(dá)式)或sizeof(數(shù)據(jù)類(lèi)型) 它的運(yùn)算結(jié)果是求出表達(dá)式的存儲(chǔ)字節(jié)數(shù)或系統(tǒng)為該數(shù)據(jù)類(lèi)型所設(shè)置的存儲(chǔ)字節(jié)數(shù)。 14 習(xí)題解析一、選擇題【1】若變量已正確定義并賦值,符合C 語(yǔ)言語(yǔ)法的表達(dá)式是 。 Aa=a+7; Ba=7+b+c,a+ Cint(123%4) Da=a+7=

23、c+b 參考答案:B 解析:在 A 中,選項(xiàng)用分號(hào)結(jié)束,它是賦值語(yǔ)句,不是賦值表達(dá)式。 在 B 中,先把 7+b+c 的值賦給 a,然后再使 a 的值增 l。它不用分號(hào)結(jié)束,因而是表達(dá)式。 在 C 中,求模運(yùn)算符的一個(gè)運(yùn)算數(shù) 123 不是整數(shù)(的兩個(gè)運(yùn)算數(shù)必須是整數(shù)),所以有錯(cuò)。 在 D 中,a=a+7 是正確的賦值表達(dá)式,但 a+7=c+b 是錯(cuò)誤的,賦值號(hào)左面只能是變量,此選項(xiàng)有語(yǔ)法錯(cuò)誤。所以本題答案為 B。 【2】.在C 語(yǔ)言中存儲(chǔ)a和”a”所占用的字節(jié)數(shù)分別是 。 A. 1,1 B. 1,2 C. 2,1 D. 2,2 參考答案:B 解析:a為一個(gè)字符,存儲(chǔ)占 1 個(gè)字節(jié),“a”為一字

24、符串,系統(tǒng)自動(dòng)為其添加一個(gè)串結(jié)束符0,其存儲(chǔ)占 2字節(jié)。 【3】.下列不正確的轉(zhuǎn)義字符是 。 A. B. C. 086 D.0 參考答案:B 解析:轉(zhuǎn)義字符由兩部分組成,第一部分是一個(gè)斜杠,第二部分為一特定字符或一組數(shù)字。B 只有一個(gè)斜杠而后面沒(méi)有第二部分。 【4】下列符號(hào)串中不合法的C 語(yǔ)言標(biāo)識(shí)符是 。 Aregister BTurbo_C Cauto_ D_123 參考答案:A 解析:本題的考點(diǎn)是標(biāo)識(shí)符的定義的規(guī)則。作為標(biāo)識(shí)符必須滿(mǎn)足以下規(guī)則:標(biāo)識(shí)符必須由字母、下劃線(xiàn)或數(shù)字(09)組成;標(biāo)識(shí)符的第一個(gè)字符可以是字母(az, AZ)或下劃線(xiàn)(_);標(biāo)識(shí)符不能與關(guān)鍵字同名。題目中A 不滿(mǎn)足第三

25、點(diǎn)要求,其余選項(xiàng)都滿(mǎn)足要求。 【5】. C 語(yǔ)言中,錯(cuò)誤的 int 類(lèi)型的常數(shù)是 。 A. 1E5 B. 0 C. 037 D. Oxaf 參考答案:A 解析:A為一個(gè)實(shí)型常數(shù),表示 100000。C 為八進(jìn)制整型常數(shù),D 為十六進(jìn)制常數(shù)。 【6】a 是一個(gè)整型變量,則執(zhí)行下列輸出語(yǔ)句后 a的值是 。 printf(“%d”,a=3*5,a*4,a+5); A65 B0 C15 D20 參考答案:C 解析:本題的考點(diǎn)是逗號(hào)運(yùn)算符的優(yōu)先級(jí),逗號(hào)運(yùn)算符將多個(gè)表達(dá)式用逗號(hào)隔開(kāi),并逐個(gè)計(jì)算各表達(dá)式。逗號(hào)運(yùn)算符的優(yōu)先級(jí)低于賦值運(yùn)算符,因此本題中 a=3*5 為第一個(gè)表達(dá)式,先將 3*5 賦值給 a,再逐

26、個(gè)計(jì)算后面的表達(dá)式,而后續(xù)的表達(dá)式中未對(duì) a 再進(jìn)行賦值。因此選C。 溫馨提示:若本題問(wèn)屏幕輸出的內(nèi)容,則應(yīng)選擇 D,因?yàn)槎禾?hào)運(yùn)算符表達(dá)式的值等于其最后一個(gè)表達(dá)式的值 【7】.下列運(yùn)算符中,優(yōu)先級(jí)最高的是 。 A. B.+ C.% D. && 參考答案:A 解析:A的優(yōu)先級(jí)為 1,B的優(yōu)先級(jí)為 2,C 的優(yōu)先級(jí)為 3,D的優(yōu)先級(jí)為 11。 【8】設(shè)整型變量 x的值是 10,則表達(dá)式 2<x<5的值是 。 A不確定 B1 C0 D表達(dá)式非法參考答案:B 解析:本題的考點(diǎn)是關(guān)系表達(dá)式的返回值。表達(dá)式 2<x<5 分兩步計(jì)算: 1. 計(jì)算 2<x,由于x

27、 的值是10,關(guān)系式成立,返回結(jié)果 1。 2. 再拿 2<x 的結(jié)果與 5 進(jìn)行比較,1<5 關(guān)系式成立,因此整個(gè)表達(dá)式的結(jié)果為1。 【9】.下列關(guān)于 C語(yǔ)言的敘述錯(cuò)誤的是 。 A.英文字母大小寫(xiě)不加以區(qū)分 B.不同類(lèi)型的變量可以出現(xiàn)在同一個(gè)表達(dá)式中 C.在賦值表達(dá)式中賦值號(hào)兩邊的類(lèi)型可以不同 D.某些運(yùn)算符在不同的場(chǎng)合可以有不同的含義參考答案:A 解析:C 語(yǔ)言中英文字母大小寫(xiě)有區(qū)別的,A 錯(cuò)誤。C 語(yǔ)言的表達(dá)式允許不同類(lèi)型的數(shù)據(jù)混合運(yùn)算,B、C 正確。有些運(yùn)算符在運(yùn)算對(duì)象的個(gè)數(shù)不同、所處位置不同時(shí)含義不同,D 正確。例如&: a&b(按位與),a&&am

28、p;b(與),int &b=a(引用),int *p=&a(取地址)。 【10】在32 位系統(tǒng)中求表達(dá)式 s=10!的值時(shí),變量 s 的類(lèi)型應(yīng)當(dāng)是 。 Aint Bunsigned Clong D以上三種都可以參考答案:D 解析:本題的考點(diǎn)是整數(shù)的表示方式。 C 語(yǔ)言中用 short、long、unsigned、signed 這四個(gè)關(guān)鍵字修飾 int 類(lèi)型時(shí),int 可以省略; unsigned 即 unsigned int,是指 32 位的無(wú)符號(hào)整數(shù),表示數(shù)的范圍為02 32 ­1; long 即 long int,在 32 位系統(tǒng)中與 int 的含義一樣,表示數(shù)的

29、范圍為­2 31 2 31 ­1。 通過(guò)數(shù)學(xué)計(jì)算可知 10!的值小于 2 31 ­1,因此選D。 【11】 在C 語(yǔ)言中,int、char 和 short 這 3 種類(lèi)型數(shù)據(jù)所占用的內(nèi)存是 。 A均為 2 個(gè)字節(jié) B由用戶(hù)自己定義 C由所用機(jī)器的機(jī)器字長(zhǎng)決定的 D任意的參考答案:C 解析:這 3 種類(lèi)型數(shù)據(jù)所占用的內(nèi)存是由所用機(jī)器的機(jī)器字長(zhǎng)和編譯系統(tǒng)決定的,例如,在 16 位系統(tǒng)中,int 型數(shù)據(jù)占 2 個(gè)字節(jié),char 占 1 個(gè)字節(jié),在 32 位系統(tǒng)上,int 型數(shù)據(jù)占 4 個(gè)字節(jié)。在 16 位和 32位系統(tǒng)中,short 型均占 2 個(gè)字節(jié),char 型均占

30、 1個(gè)字節(jié)。所以本題答案是C。 【12】.下列標(biāo)識(shí)符中,不是C 語(yǔ)言保留字的是 。 A. char B. while C. min D. default 參考答案:C 解析:char 意為“字符型”,while 意為“當(dāng)”,default 意為“默認(rèn)”,min 不是保留字。 【13】浮點(diǎn)型變量 f 當(dāng)前存儲(chǔ)的值是 17.8,經(jīng)(int)f 類(lèi)型強(qiáng)制后 f 存儲(chǔ)的值是 。 A17 B18 C不變 D不可確定參考答案:C 解析:本題的考點(diǎn)是強(qiáng)制類(lèi)型轉(zhuǎn)換對(duì)表達(dá)式的值的處理方法。強(qiáng)制類(lèi)型轉(zhuǎn)換不改變表達(dá)式本身的值以及類(lèi)型,而是產(chǎn)生一個(gè)臨時(shí)空間,用于暫存轉(zhuǎn)換后的值,該臨時(shí)空間的值被引用后,空間被釋放。因此

31、選 C。 【14】.下列數(shù)據(jù)中,不是C 語(yǔ)言常量的是 。 A. n B. “a” C. a­2 D. 012 參考答案:C 解析:C 語(yǔ)言的常量是不需要運(yùn)算的量,C 中含有運(yùn)算符,其值需要在 a(變量)值確定的情況下通過(guò)運(yùn)算才能得到。而 A 是轉(zhuǎn)義常量換行,B 為字符串常量,D 為八進(jìn)制整型常量?!?5】.設(shè) int x=10,a=0,b=25;,條件表達(dá)式x<1?a+10:b 的值是 。 A. 0 B. 1 C. 10 D. 25 參考答案:D 解析:因?yàn)?x=10,所以 x<1 為假,根據(jù)條件表達(dá)式的規(guī)則,表達(dá)式應(yīng)取值 b。 【16】.若定義了 int a char

32、b;float c;,則表達(dá)式 a*b­c 的類(lèi)型是 。 A. float B. int C. char D. double 參考答案:D 解析:因?yàn)楸磉_(dá)式 a*b­c 中的c 為實(shí)型,根據(jù)C 語(yǔ)言的混合類(lèi)型運(yùn)算規(guī)則,所有參與運(yùn)算的數(shù)據(jù)均要先轉(zhuǎn)換成雙精度,然后才能運(yùn)算,運(yùn)算的結(jié)果也為雙精度型。 【17】.在C 語(yǔ)言中,如果下面的變量都是 int 類(lèi)型,則 pad 的值是 。 sum=pad=5; pAd=sum+,pAd+,+pAd; A7 B6 C5 D4 參考答案:C 解析:在執(zhí)行語(yǔ)句 Sum=pad=5 之后 pad 的值一直不變。而 pad 和 pAd 是兩個(gè)不同的

33、變量, 所以本題答案為 C。 【18】.設(shè) int a=10,b=20,c=30;條件表達(dá)式a<b? a=5 :c 的值是 。 A. 5 B. 10 C. 20 D. 30 參考答案:A 解析:因?yàn)?a<b 為真,表達(dá)式取值 a=5,也就是 5,A 正確。如果 a<b 為假,則表達(dá)式取值 c,也就是 30。無(wú)論如何都不會(huì)取值 B、C。 【19】符合 C 語(yǔ)言語(yǔ)法規(guī)則的常量是 。 A4eO.5 B87 C0X5A D"" 參考答案:C 解析:本題的考點(diǎn)是常量的表達(dá)方式。用指數(shù)形式表示小數(shù)時(shí),方冪 e前面必須是數(shù)字,e 后面必須為整數(shù),A不滿(mǎn)足要求。 當(dāng)字符常

34、量或字符串常量中出現(xiàn)轉(zhuǎn)義符“”時(shí),轉(zhuǎn)義符與后面的字符或整數(shù)構(gòu)成一個(gè)字符,若轉(zhuǎn)義符是整數(shù)時(shí),必須是一個(gè)以 0為前綴的八進(jìn)制或以 x 為前綴的十六進(jìn)制數(shù),八進(jìn)制的 0 前綴可省略。在 B 選項(xiàng)中,8不是八進(jìn)制中的數(shù),因此錯(cuò)誤。 而 D 選型中的"與轉(zhuǎn)義符結(jié)合,形成一個(gè)字符,因此該字符串的雙引號(hào)不成對(duì),也為錯(cuò)。 【20】 執(zhí)行以下程序后 x 的值為 。 int a=14,b=15,x; char c=A; x=(a&b)&&(c<a); ATRUE BFALSE C0 D1 參考答案:D 解析:14 對(duì)應(yīng)的二進(jìn)制表示為 1110,15 對(duì)應(yīng)的二進(jìn)制表示為 11

35、11,兩數(shù)進(jìn)行位與運(yùn)算的結(jié)果為 1110,不為 0,A<a為真,所以(a&b)&&(c<a)的結(jié)果為真,即 x=l。本題答案為 D。 【21】.若定義了 int a,x,y,則下列表達(dá)式中不正確的是 。 A. x=3,y=5; B.+x C. x=y+=x*30; D. a=y+x=30; 參考答案:D 解析:C 語(yǔ)言規(guī)定,賦值運(yùn)算符的左值必須是變量,D 中一個(gè)賦值號(hào)的左值為 x+y,不是變量,故錯(cuò)誤。A 為一個(gè)正確的逗號(hào)表達(dá)式,B 為合法的算術(shù)表達(dá)式。C 中兩個(gè)含有賦值號(hào)的運(yùn)算符(=和 +=)的左值均為變量,正確。 【22】關(guān)于字符串和字符的關(guān)系正確的是

36、。 A“A”與A是相同的 B字符串是常量,字符是變量 C“A”與A是不相同的 D A 與“A”一樣是字符串參考答案:C 解析:本題的考點(diǎn)是字符串常量與字符常量的區(qū)別,“A”與A占用內(nèi)存數(shù)不同前者占用兩個(gè)字節(jié), 后者占用一個(gè)字節(jié)。 在選項(xiàng)D 中,雖然A 中放置了 2 個(gè)字符,C 語(yǔ)言編譯系統(tǒng)仍然將其看作一個(gè)字符,因?yàn)槭褂玫氖菃我?hào)。 【23】.對(duì)于數(shù)學(xué)表達(dá)式 2 x + a + b ,正確的 C語(yǔ)言表達(dá)式是 。 3 sin x A. 2sqrt(x)+(a+b)/3sin(x) B. 2sqrt(x)+(a+b)/(3sin(x) C. 2*sqrt(x)+(a+b)/3/sin(x) D. 2

37、*sqrt(x)+(a+b/3*sin(x) 參考答案:C 解析:A中將“2*sqrt(x)”誤寫(xiě)為“2sqrt(x)”,相同的還有“3sin(x)”,A 錯(cuò)誤;B 與 A相似,也錯(cuò); D 的分母少寫(xiě)括號(hào)“()”,應(yīng)為“(3*sin(x)”。 D 的分子也錯(cuò),應(yīng)為(a+b)。 【24】若給定條件表達(dá)式(M)?(a+):­­a,則其中表達(dá)式(M) 。 A和(M=0)等價(jià) B和(M=1)等價(jià) C和(M!=O)等價(jià) D和(M!=1)等價(jià)參考答案:C 解析:(M)條件表達(dá)式的結(jié)果是一個(gè)邏輯值,表示 M 是否為真,它與 M!=0 等價(jià),因?yàn)?M 為真時(shí), M!=0 亦為真,M 為假時(shí)

38、,M!=0 亦為假。所以本題答案為 C。 【25】.sizeof(double)是 。 A.函數(shù)調(diào)用 B. int 型表達(dá)式 C. double 型表達(dá)式 D.非法表達(dá)式參考答案:B 解析:sizeof 是運(yùn)算符,它的運(yùn)算結(jié)果是求出表達(dá)式或數(shù)據(jù)類(lèi)型的存儲(chǔ)字節(jié)數(shù)或系統(tǒng)為該數(shù)據(jù)類(lèi)型所設(shè)置的存儲(chǔ)字節(jié)數(shù)。sizeof(double) 是求雙精度類(lèi)型字節(jié)數(shù)。 字節(jié)數(shù)為整數(shù), 故答案為 A。sizeof() 不是函數(shù)調(diào)用,A 錯(cuò)誤,sizeof()的結(jié)果類(lèi)型和運(yùn)算對(duì)象的類(lèi)型無(wú)關(guān),C 錯(cuò)誤。 【26】.可以作為自定義標(biāo)識(shí)符的是 。 A. 2x B. break C. m­n D. m_n 參考答案

39、:D 解析:C 語(yǔ)言的自定義標(biāo)識(shí)符規(guī)定為“以字母或下劃線(xiàn)開(kāi)頭,由字母、數(shù)字和下劃線(xiàn)所組成的符號(hào)串,并且不能是 C 語(yǔ)言的保留字”。A 以數(shù)字開(kāi)頭,錯(cuò)誤;B 為 C語(yǔ)言保留字,錯(cuò)誤;C 中有非法符號(hào) “­”,錯(cuò)誤。 【27】以下不合法的十六進(jìn)制數(shù)是 。 Aoxff B0Xabc C0x11 D0x19 參考答案:A 解析:十六進(jìn)制的數(shù)必須以 0x 或OX開(kāi)頭,A以字母 o 開(kāi)始,不符合這一規(guī)定,所以本題答案為 A。 【28】邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類(lèi)型 。 A只能是 0或 l C可以是整型或字符型數(shù)據(jù) B只能是 0或非 0 正數(shù) D可以是任何類(lèi)型的數(shù)據(jù)參考答案:C 解析:邏輯運(yùn)算符

40、兩側(cè)運(yùn)算對(duì)象一定是邏輯值,在 C 語(yǔ)言中邏輯值有:整數(shù) 0 為假,整數(shù)非 0 為真;實(shí)數(shù) 0 為假,實(shí)數(shù)非 0 為真;空字符為假,非空字符為真。因此,邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類(lèi)型可以是整型、實(shí)型或字符型數(shù)據(jù)。所以本題答案為 C 。 【29】.已知 float x=l,y;則 y=+x*+x 的結(jié)果是 。 Ay=9 By=6 Cy=1 D表達(dá)式是錯(cuò)誤的參考答案:D 解析:由于實(shí)數(shù)不能進(jìn)行+運(yùn)算,所以該表達(dá)式不正確。本題答案為 D。 【30】.字符串”22a,0n”的長(zhǎng)度是 。 A8 B7 C6 D5 參考答案:C 解析:該字符串中含有轉(zhuǎn)義字符,開(kāi)頭兩個(gè)反斜杠算一個(gè)字符,其后的22算一個(gè)字符(

41、為八進(jìn)制數(shù)),a算一個(gè)字符,算一個(gè)字符,O算一個(gè)字符,n算一個(gè)字符,總共 6 個(gè)字符。本題答案為 C。 二、填空題 【1】.在 Turbo C中,一個(gè) int 型變量所能表示的數(shù)的范圍是 。 參考答案:­3276832767 解析:int 型變量是有符號(hào)的,用 2 個(gè)字節(jié)共16 位表示,首位表示符號(hào),1 為負(fù),0為正。最小數(shù)是 1000 0000 0000 0000(補(bǔ)碼表示的­32768),最大數(shù)是0111 1111 1111 1111(原碼表示的 32767)。 【2】.在C 語(yǔ)言中,一個(gè)雙精度數(shù)­5.88 在二進(jìn)制文件里占用的字節(jié)數(shù)是 。 參考答案:8 解析

42、:16 位和 32 位系統(tǒng)的雙精度數(shù)據(jù)均占 8 個(gè)字節(jié),與數(shù)字的具體大小、正負(fù)無(wú)關(guān)。 【3】.設(shè) int x=­9,y;,則執(zhí)行 y=x>=0? x:­x后 y 的值是 。 參考答案:9 解析:因?yàn)?x>=0 為假,y 取值­x,也就是9. 【4】若整型變量 w=1,x=2,y=3,z=4,則條件表達(dá)式 w>x?w:z>y?z:x 的值為 。 參考答案:4 解析:本題的考點(diǎn)為條件表達(dá)式的用法, w>x?w:z>y?z:x 可以被分解為 w>x?w:(z>y?z:x)。 條件 w>x 不成立,因此 w>x?

43、w:z>y?z:x表達(dá)式的值即為 z>y?z:x 表達(dá)式的值,由此可推斷出整個(gè)表達(dá)式的值為 4。 【5】.表達(dá)式 10<<3+1 的值是 。 參考答案:160 解析:表達(dá)式 10<<3+1相當(dāng)于 10<<4, 即將 10 左移 4 位。10 用二進(jìn)制表示就是00001010,左移 4 位后成為 10100000,其十進(jìn)制值為160(128+32)。 【6】­個(gè)字符型變量所占內(nèi)存的字節(jié)數(shù)是 。 參考答案:1 解析:16 位和 32 位系統(tǒng)的 C語(yǔ)言,字符型數(shù)據(jù)均占據(jù) 1 個(gè)字節(jié)的內(nèi)存空間。 【7】.設(shè) int a,b,c;則執(zhí)行 a=(b

44、=3,c=5,b=10);后變量 a 的值是 。 參考答案:10 解析:(b=3,c=5,b=10)為一逗號(hào)表達(dá)式,表達(dá)式的值為最后一個(gè)逗號(hào)右邊的表達(dá)式的值,就是 b=10 的值,也就是 10。系統(tǒng)先計(jì)算出(b=3,c=5,b=10)的值(為 10),再將 10 賦值給 a,因而答案為10。 【8】.設(shè) int x=2,y=1;則表達(dá)式x+y的值是 。 參考答案:3 解析:x+y 可以理解為(x+)+y,因?yàn)?x+是后置的,要先使用后+,因而表達(dá)式的值為 2+1,然后 x+變?yōu)?3。C 語(yǔ)言在理解+時(shí),會(huì)盡量的向左結(jié)合,既前 2 個(gè)+一組(x+),而不是后 2個(gè)+結(jié)合形成+y。 【9】 設(shè) a

45、、b 、c 都是整型, 當(dāng) a=b=c=5 時(shí), 則表達(dá)式 a+=b+C+的結(jié)果是 a= 、b= 、 c= 。 參考答案:15 5 6 解析:1本題的考點(diǎn)是復(fù)合賦值運(yùn)算符和后增量運(yùn)算符。在 C 語(yǔ)言中,所有的雙目算術(shù)運(yùn)算符都可以與賦值運(yùn)算符組合在一起,構(gòu)成復(fù)合算術(shù)賦值運(yùn)算符。a+=b+C 相當(dāng)于 a=a+b+C。 2后綴運(yùn)算符(后增量)表示先引用該變量的值進(jìn)行表達(dá)式的其他運(yùn)算,再對(duì)該變量進(jìn)行增量運(yùn)算。因此先將 c 的初始值 5 參與算術(shù)運(yùn)算,a 的值變?yōu)?15,再進(jìn)行 c 增量運(yùn)算,c 的值為6。 【10】設(shè)有語(yǔ)句“int a=6,b=3;float x=8,y;y=b/a*x/2;”,則 y

46、的值是 。 參考答案:0 解析:本題的考點(diǎn)是運(yùn)算符的優(yōu)先級(jí)和結(jié)合性以及整除的概念。若除法運(yùn)算符的左右兩邊操作數(shù)是整數(shù),則進(jìn)行整除運(yùn)算。 【11】己知 char c=A';int i=l,j;執(zhí)行語(yǔ)句 j=!c&&i+后,i 和 j 的值分別是 和 。參考答案:1 和 0 解析:c 字符不是空字符,所以!c 為假,按照 C 語(yǔ)言的邏輯表達(dá)式優(yōu)化規(guī)則,整個(gè)表達(dá)式的值已經(jīng)確定(為假),不再執(zhí)行 i+。i=l,j=0。所以本題答案為 1,0。 【12】設(shè)y 為 int 型變量,描述“y 是奇數(shù)”的表達(dá)式是 。 參考答案:y2=1 或 y2!=0 解析:奇數(shù)就是除 2 余1 的數(shù)

47、。y 是奇數(shù), 則 y 除2 余l(xiāng), 所以本題答案為:y 2=1或 y2!=0。 【13】假設(shè)有 int i=2,k;則執(zhí)行k=(i+)+(+i)+(i+);語(yǔ)句后,i和 k 的值分別是 。 參考答案:5 和 9 解析:該語(yǔ)句中有一個(gè)前綴+,兩個(gè)后綴+,所有前綴+先執(zhí)行,再執(zhí)行賦值語(yǔ)句,后執(zhí)行所有的后綴+,因此 k=(i+)+(+i)+(i+);等價(jià)于+i;k=i+i+i;i+;i+;因此,k=9, i=5。本題答案為 5,9。 【14】假設(shè)有 int i=2,k;則執(zhí)行k=(i+)+(+i)+(+i);語(yǔ)句后,i和 k 的值分別是 。 參考答案:5 和 10 解析:該語(yǔ)句中有兩個(gè)前綴+,一個(gè)

48、后綴+。系統(tǒng)從左邊+號(hào)算起,先計(jì)算(i+)+(+i),就是 3+3,結(jié)果為 6,再執(zhí)行 6+(+i),就是 6+4,結(jié)果為 10,最后執(zhí)行 i+,i 為5。因此,k=10, i=5。本題答案為 5,9。 【15】.設(shè) int a=­3,b=7,c=­1;則執(zhí)行(a=0)&&(a=a%b<(b/c);后變量 a 的值是 。參考答案:­3 解析:因?yàn)閍=0為假,參考第11題,不再計(jì)算&&后面的(a=a%b<(b/c),故而a沒(méi)有被重新賦值,保持原值­3。16 同步練習(xí)題 一、選擇題 【1】.假定有以下變量定義: i

49、nt k=6,x=12; 則能使 x,k 值為 5、6 的表達(dá)式是 。 A. x%=+k%10 B. x%=k+k%5 C. x­=+k%5 D. x­=k+%5 【2】設(shè)有變量說(shuō)明:int x;則表達(dá)式 x=4*5,x*5,x+25 的值為 。 A20 B45 C100 D125 【3】. C 語(yǔ)言中錯(cuò)誤的 int 類(lèi)型常數(shù)是 。 A. 123 B. 380 C. 038 D. 0xAF 【4】設(shè)有說(shuō)明:int x=1,z=1,y=1,k;執(zhí)行語(yǔ)句:k=x+|+y&&+z;后,變量 y 的值為 。 A1 B2 C3 D4 【5】.下列符號(hào)中是正確的C 標(biāo)識(shí)

50、符的是 。 A. a­2 B. x12 C. 2. 78 D. 【6】在C 語(yǔ)言中,下面符號(hào)串中,能用作變量名的標(biāo)識(shí)符為 。 Aauto BPuts C­1*num D2­and 【7】. sizeof(float)是 。 A.函數(shù)調(diào)用 B. 非法表達(dá)式 C. float 型表達(dá)式 D. int 型表達(dá)式 【8】下面的常量表示中不正確的是 。 A0 B0fd Cn D.5e3 【9】 以下運(yùn)算符中,優(yōu)先級(jí)最低的是 。 A&& B& C&= D= 【10】.以下符合C 語(yǔ)言語(yǔ)法的實(shí)型常量是 。 A. 12E0. 5 B. 3.14.1

51、59E C. 5E­3 D. E15 【11】 有整型變量 x ,y ,其中 y!=0,下列 與 x 等價(jià)。 A. x/y*y B. x%y*y C. x/y*y+x%y D. 以上都不是 【12】下列不屬于C 語(yǔ)言標(biāo)識(shí)符的是 。 Aabc BABC CAB_C D2abc 【13】.已知有以下定義(假定現(xiàn)有計(jì)算機(jī)字長(zhǎng)為 16) int a=0x48,b=OxfO;ab 的值為 。 A. 184 B. 183 C. 290 D. 287 【14】 設(shè)有變量定義 int x=100,y=1,z,若執(zhí)行語(yǔ)句 z=y>0?+x:­­x,變量 z 的值為 。 A99

52、 B100 C10l D102 【15】. C 語(yǔ)言的基本數(shù)據(jù)類(lèi)型包括 。 A.字符型和數(shù)值型 B.字符型和邏輯型 C. 指針型和數(shù)據(jù)型 D.整型和實(shí)型 【16】以下給出的標(biāo)識(shí)符中 可用作合法的變量名。 A goto B $price C sum D 9kilo 【17】.設(shè)有定義”char a=2,b=5;”,表達(dá)式”ab<<2”的值(假定現(xiàn)有計(jì)算機(jī)字長(zhǎng)為 16)為。 A. ­23 B. 32 C. ­32 D. 23 【18】 設(shè) int a=l,b=2;那么執(zhí)行表達(dá)式 a+&&+b;后 a 和 b 的值分別是 。 A1 和 2 B2 和 2

53、 C1 和 3 D2 和 3 【19】 設(shè) x=2y=3表達(dá)式x=y=3 運(yùn)算后。x= 。 A1 B2 C3 D0 【20】 ab 且 cd的 C 語(yǔ)言表達(dá)式描述為 。 Aa b ,c<=d Ba!=b&c=<d Ca=!b&&c<=d Da!=b&&c<=d 【21】4字符串”save me!”在內(nèi)存中所占用的字節(jié)數(shù)是 。 A9 B6 C8 D4 【22】 在 16 位系統(tǒng)中,定義變量并賦值 short int x=32767,則執(zhí)行+x 后 x 的值為 。 A32767 B­32768 C­l D32768

54、 【23】. 以下屬于C 語(yǔ)言保留字的是 。 A. define B. put C. fclose D. extern 【24】設(shè) int 類(lèi)型的數(shù)據(jù)長(zhǎng)度為 2 個(gè)字節(jié),則unsigned int 類(lèi)型的數(shù)據(jù)取值范圍是 。 A0255 B­256255 C065535 D­32768­32767 【25】.設(shè)有變量說(shuō)明 int a=3,b=6; char c; 若執(zhí)行賦值語(yǔ)句 c=(ab)<<2 則c的二進(jìn)制值是 。 A00011100 B00000111 C00000001 D00010100 二、填空題 【1】設(shè)有 int x=1,y=1,z=1;

55、則執(zhí)行+x|+y&&+z 后,x= 、y= 、z= 。 【2】.設(shè) int a=2,b=4,c=1,d;執(zhí)行 d=!(a­b+c);后 d 的值是 。 【3】 int a=5,b=6,c=1,x=2,y=3,z=4 c=(a=c>x)&&(b=y>z) 問(wèn):執(zhí)行上述程序后,b 的值是 ,c 的值是 _。 【4】. 是 C 語(yǔ)言中唯一的一個(gè)三目運(yùn)算符,它是由兩個(gè)符號(hào)組成 。 【5】若有說(shuō)明 int i, j,k;則表達(dá)式 i=10,j=20,k=30,k*=i+j 的值為 。 【6】037是 進(jìn)制數(shù),它二進(jìn)制形式是 ,對(duì)應(yīng)的十進(jìn)制是 ,十六進(jìn)

56、制是 。 【7】. C 語(yǔ)言標(biāo)識(shí)符的第一個(gè)字符只能是字母或 。 【8】. C 語(yǔ)言中整型常量的書(shū)寫(xiě)形式包括:八進(jìn)制,十進(jìn)制和 。 【9】.位運(yùn)算的對(duì)象只能是 。 【10】. 是雙目運(yùn)算符,其運(yùn)算對(duì)象是表達(dá)式,其值是右邊表達(dá)式的值。 【11】.寫(xiě)出 n 小于 m,n 為奇數(shù)的表達(dá)式 。 【12】表達(dá)式3&(2&34)的值為 ?!?3】公式 1 (x + x + y )對(duì)應(yīng)的 C 語(yǔ)言表達(dá)式 是 。 2 5 x 【14】. C 語(yǔ)言標(biāo)識(shí)符的第一個(gè)字符必須為下劃線(xiàn)或者 。 【15】C 語(yǔ)言語(yǔ)言提供的基本數(shù)據(jù)類(lèi)型包括:?jiǎn)尉刃汀㈦p精度型、 和 。 【16】假設(shè)有 int i=2,k;則執(zhí)行k=(+i)+(+i)+(i+);語(yǔ)句后,i和 k 的值分別是 和 。 【17】.C 語(yǔ)言中,&作為雙目運(yùn)算符表示的運(yùn)算是 。第 2 章 輸入和輸出 21 簡(jiǎn)介 輸入和輸出是計(jì)算機(jī)語(yǔ)言的重要組成部分。程序在執(zhí)行期間,接收外部信息的操作稱(chēng)為程序的輸入,而向外部發(fā)送信息的操作稱(chēng)為程序的輸出。C 語(yǔ)言中沒(méi)有專(zhuān)門(mén)的輸入/輸出語(yǔ)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論