已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì),教師:段小林,關(guān)于這門(mén)課,教材: 譚浩強(qiáng).C程序設(shè)計(jì)(第三版). 清華大學(xué)出版社. 2005 參考教材: (美)瓊斯,艾特肯. 21天學(xué)通C語(yǔ)言(第6版). 信達(dá)工作室譯.人民郵電出版社.2003 張基溫等.C語(yǔ)言程序設(shè)計(jì)案例教程. 清華大學(xué)出版社. 2004 Brian W.Kernighan,Dennis Ritchie.C 程序設(shè)計(jì)語(yǔ)言(英文影印版)(第二版). 清華大學(xué)出版社或機(jī)械工業(yè)出版社. 課程計(jì)劃: 理論學(xué)時(shí):32學(xué)時(shí) 實(shí)驗(yàn)學(xué)時(shí):16學(xué)時(shí)(由實(shí)驗(yàn)中心的老師上) 所需基礎(chǔ)知識(shí): 大學(xué)計(jì)算機(jī)基礎(chǔ),尤其是數(shù)制轉(zhuǎn)換、內(nèi)存、程序設(shè)計(jì)等相關(guān)章節(jié)。(不熟悉的再?gòu)?fù)習(xí)一下),時(shí)間非常非常有限,主要靠大家課前預(yù)習(xí)和課后自學(xué)!,關(guān)于我,部門(mén):計(jì)算機(jī)實(shí)驗(yàn)教學(xué)中心(信科3樓) 辦公地點(diǎn):信科312 E-mail: (交作業(yè)和答疑),關(guān)于這門(mén)課,考核方式: 平時(shí)30%期末考試70% 平時(shí)成績(jī)由課堂表現(xiàn)決定。 交作業(yè)方式: 上交電子作業(yè)至我的郵箱,第1講 C語(yǔ)言概述 (教材第一章),內(nèi)容: 了解C語(yǔ)言的歷史及特點(diǎn)。 認(rèn)識(shí)簡(jiǎn)單C程序,掌握C程序的基本組成,理解編譯預(yù)處理命令、主函數(shù)、語(yǔ)句、格式化輸出函數(shù)printf()、注釋、簡(jiǎn)單表達(dá)式等語(yǔ)法。(重點(diǎn)) 運(yùn)行C程序的步驟與方法(重點(diǎn)),為什么要學(xué)習(xí)程序設(shè)計(jì)?,程序設(shè)計(jì)語(yǔ)言,老兄:幫我計(jì)算一下 11?,自然語(yǔ)言,機(jī)器語(yǔ)言,人發(fā)出的指令要按一定的規(guī)則來(lái)書(shū)寫(xiě),再翻譯或解釋成計(jì)算機(jī)所能看懂的機(jī)器語(yǔ)言,由編譯軟件自動(dòng)實(shí)現(xiàn),這就是程序設(shè)計(jì)的主要內(nèi)容或目的,也是我們課堂上要講的主要內(nèi)容:就是如何將我們的指令按照某一種程序設(shè)計(jì)語(yǔ)言的規(guī)則寫(xiě)成程序!,C語(yǔ)言的發(fā)展簡(jiǎn)史,原型 ALGOL 60語(yǔ)言 1963年 CPL(Combined Programming Language) 1967年 BCPL語(yǔ)言 1970年 B語(yǔ)言 1973年 C語(yǔ)言 1978年 The C Programming Language 1982-90年 制定現(xiàn)行的C語(yǔ)言標(biāo)準(zhǔn)-ANSI C 1983年 C+,C語(yǔ)言的設(shè)計(jì)者 Dennis M. Ritchie,和Unix的設(shè)計(jì)者Ken Thompson接受美國(guó)國(guó)家技術(shù)勛章,1.1 初識(shí)C語(yǔ)言程序重點(diǎn)!,/*ex101.c-在屏幕上輸出This is a C program. */ #include int main( ) printf(“This is a C program.n”); return (0); ,任何C程序都必須有且只能有一個(gè)主函數(shù)main(),它是程序的入口,也是程序的出口。其中,main是函數(shù)名,()內(nèi)可以包含一些參數(shù); 的內(nèi)容稱為函數(shù)體,各種功能語(yǔ)句書(shū)寫(xiě)在函數(shù)體內(nèi);不同語(yǔ)句之間用分號(hào)分隔; main函數(shù)的格式可以是: int main() void main() 或 return 0; 一般情況下,每個(gè)程序都由一至多個(gè)函數(shù)組成;,C語(yǔ)言的庫(kù)函數(shù),使用這種類型的函數(shù)之前要在前邊加上類似#include 的預(yù)處理命令 該函數(shù)的功能是向顯示器輸出一段文字,具體內(nèi)容括在雙引號(hào)內(nèi);,編譯預(yù)處理命令 總在最開(kāi)始,每行以#開(kāi)始 將要包含的文件添加在內(nèi),語(yǔ)法! 編程需要嚴(yán)格遵守的規(guī)則, 但還不是最重要的。 設(shè)計(jì)思路才是至關(guān)重要的。,注釋寫(xiě)在/* */中間 給程序員自己看的 最好養(yǎng)成加注釋的習(xí)慣,注釋,C程序中的/* */之間的內(nèi)容稱為注釋,是程序編寫(xiě)者給程序閱讀者留下的一些說(shuō)明(注釋),以幫助閱讀者理解程序。編譯器不對(duì)注釋進(jìn)行編譯,只將它們當(dāng)作空白看待。 注釋中的“ex101.c”,是說(shuō)明這個(gè)程序保存在文件ex101.c中。后邊的內(nèi)容表明這個(gè)程序的功能。 一般在函數(shù)前和重點(diǎn)語(yǔ)句后加注釋,對(duì)函數(shù)功能和語(yǔ)句的含義進(jìn)行解釋說(shuō)明。,課下自學(xué)!,C語(yǔ)言提供了很多庫(kù)函數(shù),可以直接調(diào)用。 例如:函數(shù)printf就是系統(tǒng)提供的一個(gè)庫(kù)函數(shù),它的作用是輸出“”中的內(nèi)容。 使用庫(kù)函數(shù)之前,必須要include相對(duì)應(yīng)的函數(shù)聲明文件。 為了用戶方便,系統(tǒng)定義庫(kù)函數(shù)時(shí),把一類相關(guān)庫(kù)函數(shù)的說(shuō)明信息,分別寫(xiě)在一些文件中。本例中使用的printf 的有關(guān)說(shuō)明信息,寫(xiě)在文件stdio.h中。所以,要想用printf函數(shù),就要在前面#include,課下自學(xué)!,main函數(shù)與操作系統(tǒng)的關(guān)系,當(dāng)用戶通過(guò)命令執(zhí)行一個(gè)程序時(shí),操作系統(tǒng)就調(diào)用其main函數(shù),并執(zhí)行其中的語(yǔ)句。如果有輸出,操作系統(tǒng)就把它交給輸出模塊輸出到設(shè)備上 。,課下自學(xué)!,函數(shù)參數(shù),函數(shù)后面的圓括號(hào)用于放函數(shù)的參數(shù)。有的函數(shù)要有參數(shù),有的函數(shù)也可以沒(méi)有參數(shù)。如本例中使用的主函數(shù)就沒(méi)有參數(shù),而printf函數(shù)有一個(gè)參數(shù)。這里,printf函數(shù)的參數(shù)是括在雙引號(hào)中的一串字符,稱為字符串。n代表?yè)Q行。 注意,main也是可以帶參數(shù)的,會(huì)在后面章節(jié)講到。,課下自學(xué)!,語(yǔ)句,C語(yǔ)言的函數(shù)體由一些語(yǔ)句組成。 每個(gè)語(yǔ)句由一個(gè)分號(hào)結(jié)束。 本例中,主函數(shù)有兩個(gè)語(yǔ)句: printf (“This is a C program.”); return (0);,課下自學(xué)!,C語(yǔ)言程序的基本結(jié)構(gòu)重點(diǎn)!,編譯預(yù)處理命令1 編譯預(yù)處理命令2 函數(shù)1 函數(shù)2 (其中必有一個(gè)函數(shù)叫main),一個(gè)復(fù)雜實(shí)例,也是我們的學(xué)習(xí)目標(biāo),簡(jiǎn)單的C程序,/*ex101.c-在屏幕上輸出This is a C program. */ #include int main( ) printf(“This is a C program.n”); return (0); ,有了這個(gè)程序,計(jì)算機(jī)就能工作了嗎?,萬(wàn)里長(zhǎng)征只走了一半,C 語(yǔ)言,在屏幕上輸出This is a C program,機(jī)器語(yǔ)言,人發(fā)出的指令要按一定的規(guī)則來(lái)書(shū)寫(xiě),再翻譯或解釋成計(jì)算機(jī)所能看懂的機(jī)器語(yǔ)言,?,/*ex101.c-在屏幕上輸出This is a C program. */ #include int main( ) printf(“This is a C program.n”); return (0); ,另一半是:編譯、連接和執(zhí)行 (整個(gè)過(guò)程如下圖),filename.c,filename.obj,filename.exe,出錯(cuò),出錯(cuò),出錯(cuò),出錯(cuò),調(diào)試debug,C語(yǔ)言程序開(kāi)發(fā)環(huán)境,gcc(GUN C Compile,UNIX以及Linux平臺(tái)上C/C+標(biāo)準(zhǔn)編譯器) Turbo C 2.0(DOS平臺(tái)上的C編譯器) Visual C+(Windows平臺(tái)上的C/C+編譯器),TC2.0,Turbo C For Windows 3.1,Visual c/c+ 6.0,信科三樓機(jī)房裝有這個(gè)軟件,也可到重郵軟件中心下載visual studio 6.0安裝,第1步:編輯源程序,編輯源程序,就是用高級(jí)語(yǔ)言書(shū)寫(xiě)源程序。源程序的編輯要在編輯器中進(jìn)行。編輯器具有字符的修改、添加等功能。編輯好的源程序,可以先以源程序文件的形式保存起來(lái)。如前所述,C語(yǔ)言源程序的文件名后綴為.c。 在VC中的操作順序是:File-new-file-c+ source file(同時(shí)在右邊確定文件夾和文件名*.c)-在空白處將源程序?qū)懭搿?第2步:編譯,編譯就是把用C語(yǔ)言描述的程序翻譯成計(jì)算機(jī)可以直接理解并執(zhí)行的機(jī)器語(yǔ)言命令組成的程序。C語(yǔ)言的編譯過(guò)程分為兩個(gè)階段:首先是編譯預(yù)處理,系統(tǒng)要先掃描程序,處理所有預(yù)處理命令,如把文件包含命令要求的文件包含(嵌入)到程序中。然后才開(kāi)始編譯。編譯后得到的文件稱為目標(biāo)文件。目標(biāo)文件就是用機(jī)器語(yǔ)言描述的文件。C語(yǔ)言的目標(biāo)文件的后綴為.obj。目標(biāo)文件的主文件名,一般與源程序文件名相同。 在編譯過(guò)程中,還要對(duì)源程序中的語(yǔ)法和邏輯結(jié)構(gòu)進(jìn)行檢查。編譯任務(wù)是由稱做編譯器(compiler)的軟件完成的。程序在編譯過(guò)程中,也可能發(fā)現(xiàn)錯(cuò)誤。這時(shí)要重新進(jìn)入編輯器進(jìn)行編輯。 在VC中的操作順序是:compile-compile,第3步:鏈接,鏈接是將與當(dāng)前程序有關(guān)的、已經(jīng)有的幾個(gè)目標(biāo)模塊鏈接在一起,形成一個(gè)完整的程序代碼文件。這些已經(jīng)有的目標(biāo)模塊有: 庫(kù)函數(shù):如前面使用的printf; 對(duì)于大的程序,常常分成幾個(gè)模塊,分別編寫(xiě)、編輯和編譯,形成不同的目標(biāo)模塊。 經(jīng)正確鏈接所生成的文件才是可執(zhí)行文件??蓤?zhí)行文件的文件名后綴為.exe(有的系統(tǒng)為.out)。完成鏈接過(guò)程的軟件稱為鏈接器(linker)。 程序在連接過(guò)程中,也可能發(fā)現(xiàn)錯(cuò)誤。這時(shí)也要重新進(jìn)入編輯器進(jìn)行編輯。 在VC中的操作順序是:compile-build *.exe,第4步:執(zhí)行,鏈接后得到的可執(zhí)行文件名,對(duì)操作系統(tǒng)來(lái)說(shuō),相當(dāng)于一條命令。在操作系統(tǒng)提供的命令界面上打入這個(gè)命令,就可以開(kāi)始執(zhí)行這個(gè)程序。 在VC中的操作順序是:compile-excute *.exe 或在你保存.c文件的文件夾下的debug目錄下找到.exe文件,直接雙擊。,總結(jié):簡(jiǎn)單C語(yǔ)言程序設(shè)計(jì)步驟,分析問(wèn)題,設(shè)計(jì)解決方案 編寫(xiě)C語(yǔ)言程序代碼,上機(jī)操作(編輯、編譯、鏈接、執(zhí)行),理論課的主要內(nèi)容,實(shí)驗(yàn)課的主要內(nèi)容 上述每個(gè)步驟都可能出現(xiàn)很多錯(cuò)誤,具體有三種錯(cuò)誤:語(yǔ)法錯(cuò)誤、邏輯錯(cuò)誤、運(yùn)行錯(cuò)誤??傊?,出現(xiàn)錯(cuò)誤就要進(jìn)行調(diào)試。 調(diào)試(debug):去掉程序中的錯(cuò)誤的過(guò)程,課堂編程練習(xí),1. 編寫(xiě)一個(gè)C語(yǔ)言程序,在屏幕上顯示3行字符(自己選擇)。 課堂練習(xí)的成績(jī)計(jì)入平時(shí)成績(jī)。!,練習(xí)題答案:,/*example1.c-在屏幕上輸出三行字符. */ #include int main( ) printf(“Learning C programming is hard but interesting.n”); printf(“I love C language.n”); printf(“I love C programming.n”); return (0); ,例2:下面程序的運(yùn)行結(jié)果是?,#include int main() printf(“3+4=%dn”,3+4); printf(“2*3.14*5=%fn”, 2*3.14*5); printf(“l(fā)etter=%cn”,A); return (0); ,請(qǐng)注意程序執(zhí)行是有順序的 %d,%f,%c分別對(duì)應(yīng)三種數(shù)據(jù)類型:整數(shù)、實(shí)數(shù)、字符,本課程學(xué)習(xí)方法,課前按照授課
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個(gè)人房產(chǎn)買賣綠色環(huán)保裝修合同3篇
- 遠(yuǎn)足活動(dòng)課程設(shè)計(jì)
- 安全用電運(yùn)行管理制度模版(2篇)
- 2025年影劇院消防安全管理制度(2篇)
- 2024年青島版六三制新必修5語(yǔ)文下冊(cè)階段測(cè)試試卷
- 二零二五年度承包土地種植與農(nóng)業(yè)電商平臺(tái)合作協(xié)議2篇
- 2025年投資公司年度工作計(jì)劃范文(2篇)
- 二零二五年度交通基礎(chǔ)設(shè)施PPP項(xiàng)目合同2篇
- 2025年外研版三年級(jí)起點(diǎn)九年級(jí)化學(xué)下冊(cè)階段測(cè)試試卷
- 二零二五年度國(guó)際貿(mào)易財(cái)務(wù)擔(dān)保合同示范(國(guó)際貿(mào)易保障)
- 人員保有培訓(xùn)課件
- 水上拋石安全專項(xiàng)施工方案
- 臺(tái)大歐麗娟《紅樓夢(mèng)》公開(kāi)課全部筆記
- 數(shù)據(jù)治理在物流行業(yè)的應(yīng)用
- 持續(xù)改進(jìn)管理程序
- 網(wǎng)絡(luò)安全設(shè)備巡檢報(bào)告
- 校園廣播系統(tǒng)施工安裝方案
- 石群邱關(guān)源電路課件(第8至16單元)白底
- 暫緩執(zhí)行拘留申請(qǐng)書(shū)
- 蘇教版中外戲劇名著選讀《玩偶之家》評(píng)課稿
- 經(jīng)方在消化系統(tǒng)疾病中的運(yùn)用
評(píng)論
0/150
提交評(píng)論