2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)教學(xué)體會(huì),孫志崗的“個(gè)人體會(huì)”,代碼風(fēng)格,代碼風(fēng)格就是程序員的書法比書法好學(xué)得多,基本不需要特別練習(xí)但是壞習(xí)慣一旦養(yǎng)成,就像書法一樣難以改變是最易獲得和實(shí)踐的軟件工程規(guī)則對(duì)設(shè)計(jì)程序結(jié)構(gòu)、培養(yǎng)團(tuán)隊(duì)精神都大有幫助不給學(xué)生看到任何一個(gè)風(fēng)格糟糕的例子,代碼風(fēng)格,標(biāo)識(shí)符命名宏全部大寫Windows風(fēng)格和Unix風(fēng)格VariableNamevariable_name縮進(jìn)“{”位置的兩種風(fēng)格用4格tab還是用空

2、格,空格增強(qiáng)單行清晰度每行代碼長(zhǎng)不要超過80空行自然段,表達(dá)式盡量簡(jiǎn)單,下面程序在不同編譯器可能產(chǎn)生不同結(jié)果,而且可讀性差a = i++ + i++ + i++;printf("%d, %d, %d", i++, i++, i++);for (i = 0; i != 0 && i++; );很多教科書自作聰明地創(chuàng)造了很多復(fù)雜的題目來難為學(xué)生,就算它們的用法正確,實(shí)踐中也未必用

3、得到,全局變量要避免使用嗎?,全局變量增大了模塊之間的耦合度,而且不利于排錯(cuò),罪大惡極這罪惡不能怪全局變量,只能怪無限制的對(duì)全局變量的改寫不要讓全局變量有復(fù)雜的數(shù)據(jù)結(jié)構(gòu)一旦數(shù)據(jù)結(jié)構(gòu)變了,真的大禍臨頭了最好利用static特性用函數(shù)對(duì)其進(jìn)行封裝,不要把goto判處死刑,問題不是出在goto,而是出在對(duì)標(biāo)號(hào)的濫用結(jié)構(gòu)化程序設(shè)計(jì)中一個(gè)被忽視的原則單入口,單出口只要符合此原則,什么都可以用goto在處理異常流程問題時(shí),非常好用

4、退出多重循環(huán)統(tǒng)一的錯(cuò)誤處理,嚇?biāo)廊说闹羔?“指針”出現(xiàn),“難”字當(dāng)頭老師嚇學(xué)生,學(xué)生再嚇學(xué)生的學(xué)生……從原理上了解指針,它是那么簡(jiǎn)單一個(gè)普通變量,其值是一個(gè)內(nèi)存地址格守下列原則,指針使用永不出錯(cuò)永遠(yuǎn)要清楚每個(gè)指針指向了哪里永遠(yuǎn)要清楚指針指向的位置是什么,指針的兄弟:數(shù)組,不要把數(shù)組和指針分開,它們是緊密相連的數(shù)組最簡(jiǎn)單數(shù)組名是指針,數(shù)組成員是變量多維數(shù)組麻煩些關(guān)鍵要知道它在內(nèi)存中是怎么分布的,腦細(xì)胞可貴,千萬別用來

5、背,算符優(yōu)先級(jí)知道先算括號(hào)足以這樣方便自己,也方便他人庫(kù)函數(shù)用法會(huì)查聯(lián)機(jī)幫助、手冊(cè)最重要,變量占用的字節(jié)數(shù),不同平臺(tái),不同編譯器,可能會(huì)迥然不同struct占字節(jié)數(shù)由編譯參數(shù)決定凡是需要字節(jié)數(shù)的地方,一律用sizeof獲得,沒有“真”“假”,邏輯運(yùn)算的結(jié)果只有整型數(shù)“0”和“非0”很多編譯器給出的非0結(jié)果是1,但這是特例if (0)printf(“永遠(yuǎn)不會(huì)被執(zhí)行”);while (1){/* 死循環(huán) */}

6、,下列問題,要上升到階級(jí)斗爭(zhēng)的高度,指針指向不明數(shù)組下標(biāo)越界數(shù)值運(yùn)算溢出除數(shù)為0不檢查函數(shù)的返回值變量不初始化就使用,比較相等時(shí)用=,沒用==用==比較兩個(gè)浮點(diǎn)數(shù)是否相等返回局部變量的指針malloc不freeopen不close,它們編譯不出錯(cuò),運(yùn)行很可能也不出錯(cuò),但一旦出錯(cuò),就讓人焦頭爛額,危險(xiǎn)的scanf,scanf簡(jiǎn)便好用不做參數(shù)類型匹配檢查不限制用戶輸入字符串長(zhǎng)度很多黑客攻擊都是從這里開始的,\0給字符

7、串處理帶來的,危險(xiǎn)假如\0不存在,printf、strcpy、strcmp等都將越界訪存n族函數(shù)可以解決此問題處理字符串時(shí),時(shí)刻要警惕\0是否在其該出現(xiàn)的位置,C語言三大定律,表達(dá)式定律任何能產(chǎn)生數(shù)值結(jié)果的運(yùn)算、操作都可以作為表達(dá)式,并可以放到任何需要數(shù)值結(jié)果的地方,只要數(shù)值類型能夠匹配常見的可以產(chǎn)生數(shù)值結(jié)果的運(yùn)算和操作算術(shù)、邏輯、位運(yùn)算等? :、&、*等有返回值的函數(shù)賦值常見的需要數(shù)值的地方有:賦值條件

8、判斷函數(shù)調(diào)用,C語言三大定律,類型定律任何類型都可以在任何需要類型的地方使用;用任何類型定義的變量都要占用內(nèi)存已知特例函數(shù)返回值不能定義為數(shù)組類型函數(shù)參數(shù)定義為數(shù)組類型,此時(shí)該參數(shù)不占用內(nèi)存,而是共享函數(shù)調(diào)用者傳入的數(shù)組空間常用類型基本數(shù)據(jù)類型、指針、數(shù)組、結(jié)構(gòu)……常見的需要類型的地方定義變量定義指針、數(shù)組和結(jié)構(gòu)函數(shù)參數(shù)和返回值sizeof,C語言三大定律,參數(shù)傳遞定律函數(shù)調(diào)用時(shí)的參數(shù)傳遞永遠(yuǎn)都是傳值調(diào)用,把實(shí)

9、參的值拷貝給形參實(shí)參:調(diào)用者提供的參數(shù)形參:函數(shù)定義的參數(shù)基本數(shù)據(jù)類型無容置疑struct也無容置疑指針作為參數(shù)時(shí),把指針變量的內(nèi)容(就是其指向的內(nèi)存地址)做了拷貝數(shù)組名作為參數(shù)時(shí),把它等同于指針看待了,要點(diǎn),簡(jiǎn)單為美宣揚(yáng)“簡(jiǎn)單為美”的科學(xué)思想,摒棄刻意的復(fù)雜原理為綱C語言復(fù)雜的表面都是簡(jiǎn)單的原理的外在表現(xiàn)人性為本計(jì)算機(jī)是人設(shè)計(jì)的,具有人性面向應(yīng)用避免“學(xué)是一回事,使用是另一回事”無需背誦該記的,用著就記住

10、了;用不著的,背下來也會(huì)忘沒有絕對(duì)Match is best!,為什么追求“簡(jiǎn)單為美”?,C語言沒有權(quán)威,什么都不可信書當(dāng)然不可信,任何書都是背書更可悲編譯器也不可信,它只是一種實(shí)現(xiàn)而已不同編譯器、不同平臺(tái),表現(xiàn)往往會(huì)大相徑庭C語言誕生的主要目標(biāo)之一就是讓UNIX可以跨平臺(tái)。我們書寫的C程序也應(yīng)該極力爭(zhēng)取跨平臺(tái)有些本來就是錯(cuò)誤的用法,在某些平臺(tái)上卻還可以正確運(yùn)行ANSI C也不可信這個(gè)標(biāo)準(zhǔn)本身并不完備,而且并不是所有

11、編譯器都對(duì)它100%支持,為什么追求“簡(jiǎn)單為美”?,那我們還能信什么?相信“簡(jiǎn)單”?。?!最簡(jiǎn)單的用法,是被編譯器支持得最好的“簡(jiǎn)單”易于理解、交流,便于維護(hù),非計(jì)算機(jī)專業(yè)需要了解深入的“原理”嗎?,只要使用C語言,就必須知道“原理”浮于表面的使用,是無法發(fā)揮C語言的優(yōu)勢(shì)的如果他不需要知道“原理”,肯定他不用C語言,那么就不該讓他學(xué)C語言“原理”涉及到計(jì)算機(jī)原理編譯原理操作系統(tǒng)算法與數(shù)據(jù)結(jié)構(gòu)軟件工程,原理為綱,計(jì)算

12、機(jī)原理馮·諾依曼機(jī)二進(jìn)制、八進(jìn)制、十六進(jìn)制和十進(jìn)制b、B、KB、MB、GB、TB寄存器、內(nèi)存、外存的基本原理流編譯原理編譯、鏈接過程預(yù)處理指令、外部變量函數(shù)的參數(shù)傳遞和局部變量定義棧,原理為綱,操作系統(tǒng)內(nèi)存保護(hù)數(shù)組下標(biāo)越界、野指針內(nèi)存管理動(dòng)態(tài)內(nèi)存分配(堆)和棧文件管理、進(jìn)程互斥,算法與數(shù)據(jù)結(jié)構(gòu)棧結(jié)構(gòu)體軟件工程分析、設(shè)計(jì)、程序結(jié)構(gòu)結(jié)構(gòu)體協(xié)作,原理為綱,C語言自身的原理指針的原理數(shù)組的

13、原理函數(shù)調(diào)用的原理內(nèi)存分配的原理?xiàng):投蚜私庠?,就能從根上分析出一些紛繁?fù)雜的語法規(guī)則的合理性。此外,還需要一點(diǎn)點(diǎn)人性,人性為本,在原理基礎(chǔ)上,C語言為了讓人使用方便,有很多人性化的設(shè)計(jì)比如:char sz[] = “A String”;+ - * /if-else邏輯運(yùn)算不要讓學(xué)生“記住”這些,而要讓他們知道這些有多么地順乎自然,面向應(yīng)用,C語言是用來實(shí)踐的。能應(yīng)用,比掌握一些生僻的用法更重要應(yīng)用中最信奉的就是“

14、簡(jiǎn)單為美”軟件工程思想在應(yīng)用中也非常重要結(jié)果正確不能說明程序好,無需背誦,記憶力經(jīng)過漫長(zhǎng)的12年中小學(xué)應(yīng)試教育,已經(jīng)鍛煉到極致了如果教學(xué)中指明要學(xué)生機(jī)械背誦什么,那么這個(gè)教學(xué)是失敗的如果考卷中有需要機(jī)械背誦才能做答的題,那么這個(gè)考卷是失敗的通過作業(yè)、上機(jī),把知識(shí)自然而然地變成學(xué)生身體的一部分鍛煉學(xué)生查資料、聯(lián)機(jī)幫助和手冊(cè)等的能力,沒有絕對(duì),科學(xué)沒有金科玉律,計(jì)算機(jī)科學(xué)更是如此在不同的環(huán)境下,相同的觀點(diǎn)會(huì)產(chǎn)生不同的效果簡(jiǎn)單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論