教了多年《C程序設計》課程,大多學(xué)生覺(jué)的這門(mén)課程難學(xué)。
其實(shí),按照我們現在的教學(xué)大綱和教學(xué)要求,只要同學(xué)們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學(xué)好的。 《C程序設計》的內容很豐富,按照我們現在的教學(xué)大綱,教學(xué)的主要內容是基礎知識、四種結構的的程序設計、函數與數組的應用和一些簡(jiǎn)單的算法。
在學(xué)習時(shí),同學(xué)們應該把主要精力放在這些部分,通過(guò)實(shí)踐(練習和上機調試等熟練掌握。當然,在初學(xué)C語(yǔ)言時(shí),可能會(huì )遇到有些問(wèn)題理解不透,或者表達方式與以往數學(xué)學(xué)習中不同(如運算符等),這就要求不氣餒,不明白的地方多問(wèn)多想,鼓足勇氣進(jìn)行學(xué)習,待學(xué)完后面的章節知識,前面的問(wèn)題也就迎刃而解了,這一方面我感覺(jué)是我們同學(xué)最欠缺,大多學(xué)不好的就是因為一開(kāi)始遇到困難就放棄,曾經(jīng)和好多同學(xué)談他的問(wèn)題,回答是聽(tīng)不懂、不想聽(tīng)、放棄這樣三個(gè)過(guò)程,我反問(wèn),這節課你聽(tīng)過(guò)課嗎?回答又是沒(méi)有,根本就沒(méi)聽(tīng)過(guò)課,怎么說(shuō)自己聽(tīng)不懂呢?相應的根本就沒(méi)學(xué)習,又談何學(xué)的好? 學(xué)習C語(yǔ)言始終要記住“曙光在前頭”和“千金難買(mǎi)回頭看”,“千金難買(mǎi)回頭看”是學(xué)習知識的重要方法,就是說(shuō),學(xué)習后面的知識,不要忘了回頭弄清遺留下的問(wèn)題和加深理解前面的知識,這是我們學(xué)生最不易做到的,然而卻又是最重要的。
比如:在C語(yǔ)言中最典型的是關(guān)于結構化程序設計構思,不管是那種教材,一開(kāi)始就強調這種方法,這時(shí)也許你不能充分體會(huì ),但是學(xué)到函數時(shí),再回頭來(lái)仔細體會(huì ),溫故知新,理解它就沒(méi)有那么難了。學(xué)習C語(yǔ)言就是要經(jīng)過(guò)幾個(gè)反復,才能前后貫穿,積累應該掌握的C知識。
那么,我們如何學(xué)好《C程序設計》呢? 一.學(xué)好C語(yǔ)言的運算符和運算順序 這是學(xué)好《C程序設計》的基礎,C語(yǔ)言的運算非常靈活,功能十分豐富,運算種類(lèi)遠多于其它程序設計語(yǔ)言。在表達式方面較其它程序語(yǔ)言更為簡(jiǎn)潔,如自加、自減、逗號運算和三目運算使表達式更為簡(jiǎn)單,但初學(xué)者往往會(huì )覺(jué)的這種表達式難讀,關(guān)鍵原因就是對運算符和運算順序理解不透不全。
當多種不同運算組成一個(gè)運算表達式,即一個(gè)運算式中出現多種運算符時(shí),運算的優(yōu)先順序和結合規則顯得十分重要。在學(xué)習中,只要我們對此合理進(jìn)行分類(lèi),找出它們與我們在數學(xué)中所學(xué)到運算之間的不同點(diǎn)之后,記住這些運算也就不困難了,有些運算符在理解后更會(huì )牢記心中,將來(lái)用起來(lái)得心應手,而有些可暫時(shí)放棄不記,等用到時(shí)再記不遲。
先要明確運算符按優(yōu)先級不同分類(lèi),《C程序設計》運算符可分為15種優(yōu)先級,從高到低,優(yōu)先級為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序。下面我們通過(guò)幾個(gè)例子來(lái)說(shuō)明: (1) 5*8/4%10 這個(gè)表達式中出現3種運算符,是同級運算符,運算順序按從左至右結合,因此先計算5 *8=40,然后被4除,結果為10,最后是%(求余數)運算,所以表達式的最終結果為10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 對于c=++a*b來(lái)說(shuō),按表中所列順序,+ +先執行,*后執行,所以+ + a執行后,a的值為4,由于+ +為前置運算,所以a的值4參與運算,C的值計算式為4*5=20而不是3*5=15了;而對于d=a++*b來(lái)說(shuō),由于a + +為后置運算,所以a值為4參與運算,使得d的值仍為20,而a參與運算后其值加1,值為5。
這個(gè)例子執行后,a的值為5,b的值為5,c的值為20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗號結合運算,上式稱(chēng)為逗號表達式,自左向右結合,最后一個(gè)表達式的結果值就是逗號表達式的結果,所以上面的逗號表達式結果為40,a的值為3,b的值為8,c的值為40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一個(gè)三目運算,它的功能是先做關(guān)系運算a>b部分,若結果為真,則取問(wèn)號后a的值,否則取冒號后b的值,因此c的值應該為6,這個(gè)運算可以用來(lái)代替if…else…語(yǔ)句的簡(jiǎn)單應用。
二.學(xué)好C語(yǔ)言的四種程序結構 (1)順序結構 順序結構的程序設計是最簡(jiǎn)單的,只要按照解決問(wèn)題的順序寫(xiě)出相應的語(yǔ)句就行,它的執行順序是自上而下,依次執行。 例如;a = 3,b = 5,現交換a,b的值,這個(gè)問(wèn)題就好象交換兩個(gè)杯子水,這當然要用到第三個(gè)杯子,假如第三個(gè)杯子是c,那么正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫(xiě)成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學(xué)者最容易犯這種錯誤。
順序結構可以獨立使用構成一個(gè)簡(jiǎn)單的完整程序,常見(jiàn)的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語(yǔ)句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過(guò)大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個(gè)復雜的程序,例如分支結構中的復合語(yǔ)句、循環(huán)結構中的循環(huán)體等。
(2) 分支結構 順序結構的程序雖然能解決計算、輸出等問(wèn)題,但不能做判斷再選擇。對于要先做判斷再選擇的問(wèn)題就要使用分支結構。
分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語(yǔ)句出現的物理順序。分支結構的程。
二級公共基礎知識總結第一章 數據結構與算法1.1 算法算法:是指解題方案的準確而完整的描述。
算法不等于程序,也不等計算機方法,程序的編制不可能優(yōu)于算法的設計。算法的基本特征:是一組嚴謹地定義運算順序的規則,每一個(gè)規則都是有效的,是明確的,此順序將在有限的次數下終止。
特征包括:(1)可行性;(2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋?zhuān)辉试S有多義性;(3)有窮性,算法必須能在有限的時(shí)間內做完,即能在執行有限個(gè)步驟后終止,包括合理的執行時(shí)間的含義;(4)擁有足夠的情報。算法的基本要素:一是對數據對象的運算和操作;二是算法的控制結構。
指令系統:一個(gè)計算機系統能執行的所有指令的集合。基本運算包括:算術(shù)運算、邏輯運算、關(guān)系運算、數據傳輸。
算法的控制結構:順序結構、選擇結構、循環(huán)結構。算法基本設計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法。
算法復雜度:算法時(shí)間復雜度和算法空間復雜度。算法時(shí)間復雜度是指執行算法所需要的計算工作量。
算法空間復雜度是指執行這個(gè)算法所需要的內存空間。1.2 數據結構的基本基本概念數據結構研究的三個(gè)方面:(1)數據集合中各數據元素之間所固有的邏輯關(guān)系,即數據的邏輯結構;(2)在對數據進(jìn)行處理時(shí),各數據元素在計算機中的存儲關(guān)系,即數據的存儲結構;(3)對各種數據結構進(jìn)行的運算。
數據結構是指相互有關(guān)聯(lián)的數據元素的集合。數據的邏輯結構包含:(1)表示數據元素的信息;(2)表示各數據元素之間的前后件關(guān)系。
數據的存儲結構有順序、鏈接、索引等。線(xiàn)性結構條件:(1)有且只有一個(gè)根結點(diǎn);(2)每一個(gè)結點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。
非線(xiàn)性結構:不滿(mǎn)足線(xiàn)性結構條件的數據結構。1.3 線(xiàn)性表及其順序存儲結構線(xiàn)性表是由一組數據元素構成,數據元素的位置只取決于自己的序號,元素之間的相對位置是線(xiàn)性的。
在復雜線(xiàn)性表中,由若干項數據元素組成的數據元素稱(chēng)為記錄,而由多個(gè)記錄構成的線(xiàn)性表又稱(chēng)為文件。非空線(xiàn)性表的結構特征:(1)且只有一個(gè)根結點(diǎn)a1,它無(wú)前件;(2)有且只有一個(gè)終端結點(diǎn)an,它無(wú)后件;(3)除根結點(diǎn)與終端結點(diǎn)外,其他所有結點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。
結點(diǎn)個(gè)數n稱(chēng)為線(xiàn)性表的長(cháng)度,當n=0時(shí),稱(chēng)為空表。線(xiàn)性表的順序存儲結構具有以下兩個(gè)基本特點(diǎn):(1)線(xiàn)性表中所有元素的所占的存儲空間是連續的;(2)線(xiàn)性表中各數據元素在存儲空間中是按邏輯順序依次存放的。
ai的存儲地址為:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)為第一個(gè)元素的地址,k代表每個(gè)元素占的字節數。順序表的運算:插入、刪除。
1.4 棧和隊列棧是限定在一端進(jìn)行插入與刪除的線(xiàn)性表,允許插入與刪除的一端稱(chēng)為棧頂,不允許插入與刪除的另一端稱(chēng)為棧底。棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數據,棧具有記憶作用。
用top表示棧頂位置,用bottom表示棧底。棧的基本運算:(1)插入元素稱(chēng)為入棧運算;(2)刪除元素稱(chēng)為退棧運算;(3)讀棧頂元素是將棧頂元素賦給一個(gè)指定的變量,此時(shí)指針無(wú)變化。
隊列是指允許在一端(隊尾)進(jìn)入插入,而在另一端(隊頭)進(jìn)行刪除的線(xiàn)性表。Rear指針指向隊尾,front指針指向隊頭。
隊列是“先進(jìn)行出”(FIFO)或“后進(jìn)后出”(LILO)的線(xiàn)性表。隊列運算包括(1)入隊運算:從隊尾插入一個(gè)元素;(2)退隊運算:從隊頭刪除一個(gè)元素。
循環(huán)隊列:s=0表示隊列空,s=1且front=rear表示隊列滿(mǎn)1.5 線(xiàn)性鏈表數據結構中的每一個(gè)結點(diǎn)對應于一個(gè)存儲單元,這種存儲單元稱(chēng)為存儲結點(diǎn),簡(jiǎn)稱(chēng)結點(diǎn)。結點(diǎn)由兩部分組成:(1)用于存儲數據元素值,稱(chēng)為數據域;(2)用于存放指針,稱(chēng)為指針域,用于指向前一個(gè)或后一個(gè)結點(diǎn)。
在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點(diǎn)的存儲順序與數據元素之間的邏輯關(guān)系可以不一致,而數據元素之間的邏輯關(guān)系是由指針域來(lái)確定的。鏈式存儲方式即可用于表示線(xiàn)性結構,也可用于表示非線(xiàn)性結構。
線(xiàn)性鏈表,HEAD稱(chēng)為頭指針,HEAD=NULL(或0)稱(chēng)為空表,如果是兩指針:左指針(Llink)指向前件結點(diǎn),右指針(Rlink)指向后件結點(diǎn)。線(xiàn)性鏈表的基本運算:查找、插入、刪除。
1.6 樹(shù)與二叉樹(shù)樹(shù)是一種簡(jiǎn)單的非線(xiàn)性結構,所有元素之間具有明顯的層次特性。在樹(shù)結構中,每一個(gè)結點(diǎn)只有一個(gè)前件,稱(chēng)為父結點(diǎn),沒(méi)有前件的結點(diǎn)只有一個(gè),稱(chēng)為樹(shù)的根結點(diǎn),簡(jiǎn)稱(chēng)樹(shù)的根。
每一個(gè)結點(diǎn)可以有多個(gè)后件,稱(chēng)為該結點(diǎn)的子結點(diǎn)。沒(méi)有后件的結點(diǎn)稱(chēng)為葉子結點(diǎn)。
在樹(shù)結構中,一個(gè)結點(diǎn)所擁有的后件的個(gè)數稱(chēng)為該結點(diǎn)的度,所有結點(diǎn)中最大的度稱(chēng)為樹(shù)的度。樹(shù)的最大層次稱(chēng)為樹(shù)的深度。
二叉樹(shù)的特點(diǎn):(1)非空二叉樹(shù)只有一個(gè)根結點(diǎn);(2)每一個(gè)結點(diǎn)最多有兩棵子樹(shù),且分別稱(chēng)為該結點(diǎn)的左子樹(shù)與右子樹(shù)。二叉樹(shù)的基本性質(zhì):(1)在二叉樹(shù)的第k層上,最多有2k-1(k≥1)個(gè)結點(diǎn);(2)深度為m的二叉樹(shù)最多有2m-1個(gè)結點(diǎn);(3)度為0的結點(diǎn)(即葉子結點(diǎn))總是比度為2的結點(diǎn)多一個(gè);(4)具有n個(gè)結點(diǎn)的二叉樹(shù),其深度至少為[log2n]+1。
去百度文庫,查看完整內容>
內容來(lái)自用戶(hù):暗香飛度
C語(yǔ)言考試必備基礎知識點(diǎn)整理
【考點(diǎn)1】C程序
C語(yǔ)言程序結構有三種:順序結構,循環(huán)結構(三個(gè)循環(huán)結構),選擇結構(if和switch)
【考點(diǎn)2】main函數
每個(gè)C語(yǔ)言程序中main函數是有且只有一個(gè)。讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。
【考點(diǎn)3】存儲形式
計算機的數據在電腦中是以二進(jìn)制的形式保存。最低的存儲單元是bit(位),位是由為0或者1構成。byte是指字節,一個(gè)字節=八個(gè)位。數據存放的位置就是它的地址。
【考點(diǎn)4】注釋
是對程序的說(shuō)明,可出現在程序中任意合適的地方,注釋從“/*”開(kāi)始到最近一個(gè)“*/”結束,其間任何內容都不會(huì )被計算機執行,注釋不可以嵌套。
【考點(diǎn)5】書(shū)寫(xiě)格式
每條語(yǔ)句的后面必須有一個(gè)分號,分號是語(yǔ)句的一部分。一行內可寫(xiě)多條語(yǔ)句,一個(gè)語(yǔ)句可寫(xiě)在多行上。
【考點(diǎn)6】標識符
合法的用戶(hù)標識符考查:
合法的要求是由字母,數字,下劃線(xiàn)組成。有其它元素就錯了。
并且第一個(gè)必須為字母或則是下劃線(xiàn)。第一個(gè)為數字就錯了。
C語(yǔ)言標識符分如下3類(lèi)
(1)關(guān)鍵字。它們在程序中有固定的含義,不能另作他用。如int、for、switch等。
(2)預定義標識符。預先定義并具有特定含義的標識符。如 【考點(diǎn) 注意
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:2.647秒