攻克C語言學(xué)習(xí)難點(diǎn)_第1頁
攻克C語言學(xué)習(xí)難點(diǎn)_第2頁
攻克C語言學(xué)習(xí)難點(diǎn)_第3頁
攻克C語言學(xué)習(xí)難點(diǎn)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、攻克C語言學(xué)習(xí)難點(diǎn) (1)首先我們來介紹一下C語言,C語言是一種結(jié)構(gòu)化語言,適于按模塊化方式組織程序,層次十分清晰,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng),不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié) .首先我們來介紹一下C語言,C語言是一種結(jié)構(gòu)化語言,適于按模塊化方式組織程序,層次十分清晰,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng),不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu),而且還可以直接訪問內(nèi)存的物理地址,進(jìn)行位(bit)一級(jí)的操作。由于C語言的功能強(qiáng)大、應(yīng)用廣泛,它成為了目前軟件開發(fā)的最常用的語言之一,C語言學(xué)習(xí)中的難點(diǎn)和需要注意的有那些呢?下面

2、我們重點(diǎn)來講一講C語言學(xué)習(xí)過程中所特有的一些知識(shí)難點(diǎn)。算術(shù)表達(dá)式C語言中的算術(shù)運(yùn)算有單目運(yùn)算和雙目運(yùn)算兩種。單目運(yùn)算指的是該運(yùn)算符只能連接一個(gè)運(yùn)算量,除了正負(fù)號(hào)外,主要有 (加1)和(減1),它有前綴和后綴之分,主要區(qū)別在于前綴 n表示先令n=n 1,然后取n的值,后綴n 表示先取n的值,然后令n=n 1.雙目運(yùn)算是指該運(yùn)算符的左右兩側(cè)都必須有運(yùn)算量。常見的雙目運(yùn)算符有: 、-、/、%等。諸如x y、x/y、xy等運(yùn)算均為雙目運(yùn)算。遇到雙目運(yùn)算時(shí),要特別注意數(shù)據(jù)的類型問題。具體要求有以下幾點(diǎn):1.雙目運(yùn)算的結(jié)果的類型必須與運(yùn)算量的類型一致;2.如果參與雙目運(yùn)算的兩個(gè)運(yùn)算量類型不一致,系統(tǒng)將自動(dòng)

3、把其中的一個(gè)進(jìn)行類型轉(zhuǎn)換,使兩個(gè)運(yùn)算量的類型一致后再進(jìn)行運(yùn)算。自動(dòng)轉(zhuǎn)換的規(guī)則是:按“向高看齊”的原則進(jìn)行轉(zhuǎn)換。在幾個(gè)基本的數(shù)據(jù)類型中,由高到低的排列順序?yàn)椋篸ouble、int、char.2000年春季考試中有一道選擇題:下列程序的輸出結(jié)果是( )A) 3 B) 3.2 C) 0 D) 3.07main double d=3.2 int xyx=1.2 y=x 3.8/5.0printf%d n dy解析:本題中,程序先執(zhí)行語句x=1.2,根據(jù)賦值運(yùn)算的類型轉(zhuǎn)換規(guī)則,這里要將double型的常量1.2轉(zhuǎn)換為int型,即取整為1,然后將1賦值給變量x.接下來執(zhí)行語句y=C語言中的逗號(hào)表達(dá)式的形式

4、如下:表達(dá)式1,表達(dá)式2,表達(dá)式3,表達(dá)式n學(xué)習(xí)逗號(hào)表達(dá)式時(shí)一定要掌握它的要領(lǐng):1.逗號(hào)表達(dá)式的運(yùn)算過程為:從左往右逐個(gè)計(jì)算;2.逗號(hào)表達(dá)式是作為一個(gè)整體的,它的最終結(jié)果就是最后一個(gè)表達(dá)式(也即表達(dá)式n)的值;3.逗號(hào)運(yùn)算符的優(yōu)先級(jí)別是所有運(yùn)算符中最低的。只有這樣,才能真正掌握這種運(yùn)算,得出正確的解答。2001年秋季考試中有一道選擇題(此題曾在1998年春季考試中出現(xiàn)過):若已定義x和y為double類型,則表達(dá)式:x=1y=x 3/2的值是:A) 1 B) 2 C) 2.0 D) 2.5y=x 3/2的值就是其最后一個(gè)表達(dá)式即y=x 3/2的值,此值即為2.0,所以正確的答案應(yīng)該是C.復(fù)合語

5、句復(fù)合語句就是用一對(duì)“”把若干語句括起來構(gòu)成一個(gè)語句組,復(fù)合語句是C語言中最重要的一種語句,語句的形式如下: Page語攻克C語言學(xué)習(xí)難點(diǎn) (2)首先我們來介紹一下C語言,C語言是一種結(jié)構(gòu)化語言,適于按模塊化方式組織程序,層次十分清晰,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng),不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié) .句l;語句2;語句n一個(gè)復(fù)合語句在語法上視為一條語句,在復(fù)合語句中,花括號(hào)內(nèi)的語句數(shù)量不限,可以有執(zhí)行語句,也可以有定義部分,定義部分應(yīng)該出現(xiàn)在可執(zhí)行語句的前面,復(fù)合語句可以嵌套使用,例如:語句1;語句2;語句n;.復(fù)合語句還可以嵌套C語言中任何結(jié)構(gòu)的控制

6、語句,如if、switch、while、for等。使用好復(fù)合語句的關(guān)鍵是理解和掌握變量的作用域。2002年春季考試中有一道填空題:下面程序的輸出結(jié)果是_ # includemainint a=3b=2c=1c-= bb=a cint b=5c=12c/=b2a-=cprintf“%d%d%d”abca =cprintf“%d%d%d”abc解析:本題程序中函數(shù)main的首部定義了3個(gè)整形變量a、b、c,按它們的初值,可計(jì)算執(zhí)行復(fù)合語句之前c的值為-2,b的值為3.進(jìn)入復(fù)合語句后,變量b、c被重新定義,并賦以初值,用戶可計(jì)算出復(fù)合語句中a、b、c的值分別是2、5、1,第一個(gè)printf語句輸出“

7、251”(沒有引號(hào),下同),最后執(zhí)行復(fù)合語句中的最后一條語句,可以得到a的值為2.變量b、c在main首部及復(fù)合語句中均被說明,在復(fù)合語句中,說明b、c的作用域只限制在本復(fù)合語句中,所以執(zhí)行復(fù)合語句之后的printf語句中的b、c的輸出值與復(fù)合語句中b、c的值無關(guān),其值應(yīng)該取復(fù)合語句之前的兩個(gè)賦值語句的計(jì)算結(jié)果,即b值為3,c值為-2,也就是說,第二個(gè)printf語句的輸出結(jié)果為“23-2”,所以正確答案為?5123-2“。指針與一維數(shù)組指針與一維數(shù)組是二級(jí)C語言的必考內(nèi)容,甚至有時(shí)一次考試中會(huì)出現(xiàn)2到3個(gè)相關(guān)的題目,因此,掌握這一類題型的解答技巧是十分重要的。一般情況下,題目總是先定義一個(gè)一

8、維數(shù)組和一個(gè)指針變量,如“int a=12345p”,然后將數(shù)組a的首地址賦值給指針變量p,使指針p指向數(shù)組a的首地址,即“p=a”,這樣就完成了數(shù)組與指針之間指向關(guān)系的建立。這是該類題目在提出問題前必須做的一件事,也是考生解答此類問題需要了解的前提條件。注意:數(shù)組a的首地址有兩種表示方法,一是直接用數(shù)組名a表示,二是用數(shù)組的第一個(gè)元素a0的地址&a0表示,這兩種表示法是完全等價(jià)的。因此,上述表達(dá)式“p=a”也可寫成“p=&a0”。通過語句“p=a”在數(shù)組與指針之間建立了指向關(guān)系之后,接下來必須弄明白以下兩組等價(jià)關(guān)系:第一組等價(jià)關(guān)系:以下4種表示法是等價(jià)的,它們均表示下標(biāo)為i的

9、數(shù)組元素ai(本例中,i的取值范圍為0到4):ai pia ip i第二組等價(jià)關(guān)系:以下4種表示法也是等價(jià)的,它們均表示下標(biāo)為i的數(shù)組元素ai的地址值&ai &pi a i p i數(shù)組名a和指針p在使用時(shí)是可以相互替代的,所以凡使用a的地方均可以p替代,反之亦然。這其中要注意以下事實(shí):a是一個(gè)常量,它的值是不可改變的,而p是一個(gè)變量,它的值是可以改變的,這是它們之間的惟一區(qū)別。 Page明白了以上等價(jià)關(guān)系之后,就可以解答大部分此類題目了。2002年春季考試中有一道選擇題:若有以下定義int a10=12345678910p=a則值為3的表達(dá)式是A)p =2p B)p =2 pC

10、)p =3p D)p =2 p解析:該題考查的主要內(nèi)容就是指針與一維數(shù)組,當(dāng)然它還涉及到了指針的移動(dòng)以及運(yùn)算符 攻克C語言學(xué)習(xí)難點(diǎn)首先我們來介紹一下C語言,C語言是一種結(jié)構(gòu)化語言,適于按模塊化方式組織程序,層次十分清晰,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng),不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié) .之間的優(yōu)先級(jí)問題。首先確定,值為3的數(shù)組元素是a2,因此也可用p2、a 2或p 2表示,但題目的4個(gè)選擇答案中都沒有出現(xiàn),所以要再考慮其它途徑。注意到4個(gè)表達(dá)式均為逗號(hào)表達(dá)式,它們的值應(yīng)該分別等于各自最后一個(gè)表達(dá)式的值。再看表達(dá)式p =2的作用,在進(jìn)行這一運(yùn)算之前,指針p指向數(shù)組元素a0,表達(dá)式p =2使指針p向后移動(dòng)了2個(gè)存儲(chǔ)單元,也即運(yùn)算后指針p指向了數(shù)組元素a2,同樣,經(jīng)過p =3的運(yùn)算后,指針p將指向數(shù)組元素a3.現(xiàn)在看答案A,先經(jīng)p =2運(yùn)算,使p指向a2,然后通過

溫馨提示

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

評(píng)論

0/150

提交評(píng)論