




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C 程序設(shè)計(jì)主講:張明強(qiáng)信號(hào)與信息處理教研室C Programming Language課程簡(jiǎn)介C Programming Language課程目標(biāo) Build計(jì)算與程序設(shè)計(jì)思維會(huì)讀,會(huì)寫相對(duì)簡(jiǎn)單C代碼的自信科學(xué)計(jì)算問(wèn)題轉(zhuǎn)化為編碼問(wèn)題的能力 G=(G+X/G)/2教材、參考書與課時(shí)安排 教材 C程序設(shè)計(jì)(第四版) 譚浩強(qiáng)著 清華大學(xué)出版社 參考書C程序設(shè)計(jì)學(xué)習(xí)輔導(dǎo) 譚浩強(qiáng)編著 清華大學(xué)出版社 課時(shí)安排授課 :54學(xué)時(shí)實(shí)驗(yàn) :22學(xué)時(shí)實(shí)驗(yàn)周實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)題目第3周實(shí)驗(yàn)一VC+6.0環(huán)境下C程序編輯、編譯、運(yùn)行與調(diào)試方法第4周實(shí)驗(yàn)二C語(yǔ)言數(shù)據(jù)類型、運(yùn)算符和簡(jiǎn)單的輸入輸出第5周實(shí)驗(yàn)三順序結(jié)構(gòu)程序設(shè)計(jì):
2、字符與字符串處理第8周實(shí)驗(yàn)四選擇結(jié)構(gòu)程序設(shè)計(jì):學(xué)生成績(jī)管理系統(tǒng):功能選擇界面設(shè)計(jì)第9周實(shí)驗(yàn)五循環(huán)結(jié)構(gòu)程序設(shè)計(jì):牛頓迭代法求解線性方程的根第10周實(shí)驗(yàn)六一維及多維數(shù)組的使用:選擇法與冒泡法排序第13周實(shí)驗(yàn)七函數(shù)(1):學(xué)生成績(jī)管理系統(tǒng):錄入、統(tǒng)計(jì)、查找與刪除第14周實(shí)驗(yàn)八函數(shù)(2):遞歸的使用第15周實(shí)驗(yàn)九指針(1):二維矩陣的轉(zhuǎn)置與乘法第16周實(shí)驗(yàn)十指針(2):學(xué)生成績(jī)管理系統(tǒng)的指針實(shí)現(xiàn)第17周實(shí)驗(yàn)十一綜合設(shè)計(jì)實(shí)驗(yàn)授課:54學(xué)時(shí) 實(shí)驗(yàn):22學(xué)時(shí)實(shí)驗(yàn)安排參考書原書名:The C Programming Language作者:(美)Brian W.Kernighan, Dennis M.Ritch
3、ieDennis M.Ritchie 丹尼斯里奇 (1941-2011) 里奇原本是一個(gè)物理學(xué)家和數(shù)學(xué)家,但是,他卻成了最具傳奇的程序員。 參考書Stephen Prata /special/opencourse/bianchengdaolun.html課程考核成績(jī)構(gòu)成考勤:10% 作 業(yè):10% 期中考試:10%實(shí)驗(yàn):20% 期末考試:50%實(shí)驗(yàn)考核:現(xiàn)場(chǎng)考核+實(shí)驗(yàn)報(bào)告課程設(shè)計(jì)作業(yè):中期布置,結(jié)課前提交第1章C語(yǔ)言概述1.1 程序設(shè)計(jì)語(yǔ)言的發(fā)展及其特點(diǎn)馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲(chǔ)器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο驝PU指令系統(tǒng)
4、,由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號(hào)描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語(yǔ)言程序設(shè)計(jì)是數(shù)據(jù)被加工的過(guò)程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過(guò)發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象1.1 程序設(shè)計(jì)語(yǔ)言的發(fā)展及其特點(diǎn)5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smallt
5、alk 80BASICANSI-BASICQBASICVBFORTRAN901.2 C語(yǔ)言的發(fā)展及其特點(diǎn)、應(yīng)用C語(yǔ)言發(fā)展史ALGOL 60語(yǔ)言 CPL語(yǔ)言 Combined Programming Language 1963年,劍橋大學(xué) BCPL語(yǔ)言 1967年,劍橋大學(xué)的Matin Richards對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化 B語(yǔ)言 C語(yǔ)言 1970年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改 將CPL語(yǔ)言煮干,提煉出它的精華1973年,B語(yǔ)言也給人“煮”了一下,美國(guó)貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言 BCPL的第二個(gè)字母作為這種語(yǔ)言的
6、名字,這就是C語(yǔ)言 C語(yǔ)言發(fā)展史產(chǎn)生背景產(chǎn)生過(guò)程 時(shí)間: 19721973 地點(diǎn): 美國(guó)貝爾實(shí)驗(yàn)室 目的: UNIX操作系統(tǒng) 設(shè)計(jì)人: Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn) 標(biāo)準(zhǔn)C: K&R合著The C Programming Language ANSI C: 1983年 87 ANSI C: 1987年 1990年國(guó)際標(biāo)準(zhǔn)的ANSI CC語(yǔ)言編譯軟件 C語(yǔ)言常用的編譯軟件有Microsoft Visual C+、Borland C+、Borland C+ Builder、Watcom C+、GNU DJGPP C+、Lccwin32 C、Microsoft C、
7、Turbo C、High C等等。 本課程的內(nèi)容將基于ANSI C進(jìn)行展開,考慮C99標(biāo)準(zhǔn),主要針對(duì)Visual C+ 6.0開發(fā)環(huán)境。C語(yǔ)言的特點(diǎn)C語(yǔ)言的應(yīng)用系統(tǒng)軟件和大型應(yīng)用軟件。如UNIX,LINUX等操作系統(tǒng)。在軟件需要對(duì)硬件進(jìn)行操作的場(chǎng)合,用C語(yǔ)言明顯優(yōu)于其它高級(jí)語(yǔ)言。例如,各種硬件設(shè)備的驅(qū)動(dòng)程序(象顯卡驅(qū)動(dòng)程序、打印機(jī)驅(qū)動(dòng)程序等)一般都是用C語(yǔ)言編寫的。在圖形、圖像及動(dòng)畫處理方面,C語(yǔ)言具有絕對(duì)優(yōu)勢(shì),特別是游戲軟件的開發(fā)主要就是使用C語(yǔ)言。網(wǎng)絡(luò)通信程序的編制首選就是C語(yǔ)言。C語(yǔ)言適用于多種操作系統(tǒng),WINDOWS、UNIX、LINUX等。1.3 C語(yǔ)言程序的基本結(jié)構(gòu) 【例1】 最簡(jiǎn)
8、單的C程序。/* This is the first C program */#include int main ( ) printf (“Hello World!n); return 0;注釋信息預(yù)處理命令返回值為整型無(wú)參數(shù)、返回值為整型的主函數(shù)主函數(shù)名函數(shù)開始內(nèi)部函數(shù)名參數(shù)回車換行符函數(shù)調(diào)用函數(shù)體語(yǔ)句結(jié)束標(biāo)志函數(shù)結(jié)束 運(yùn)行結(jié)果: Hello World!函數(shù)返回值【例2】計(jì)算輸入的兩個(gè)整數(shù)的和/* This is the second C program */#include int main ( ) int x, y, z; scanf (%d%d, &x, &y ); z = x +
9、y; printf (the sum of two integers is %dn, z); return 0;數(shù)據(jù)類型名定義的變量名,以“,”分隔調(diào)用內(nèi)部函數(shù),接受鍵盤輸入數(shù)據(jù)帶有三個(gè)參數(shù),以“,”分隔。&表示取變量的地址。調(diào)用內(nèi)部函數(shù),輸出計(jì)算的和數(shù)求和的值給Z假設(shè)輸入:10 20 運(yùn)行結(jié)果:the sum of two integers is 30 C語(yǔ)言程序的函數(shù)由兩部分構(gòu)成:一部分定義變量(變量代表數(shù)據(jù)),稱為聲明部分;另一部分代表操作,由C語(yǔ)句構(gòu)成,稱為執(zhí)行部分。 /C語(yǔ)言程序int main ( ) int a; a = 10; int b; b = a + 20; return
10、 0; 變量定義放到了執(zhí)行部分之后。 /C+語(yǔ)言程序int main ( ) int a; a = 10; int b; b = a + 20; return 0; 只要執(zhí)行部分所使用的變量在前面已經(jīng)定義 /C或C+語(yǔ)言程序int main ( ) int a; a = 10; b = a + 20; int b; return 0; 變量定義放到了執(zhí)行部分之后。 C99標(biāo)準(zhǔn)編譯器允許C中像C+一樣。如VC6.0環(huán)境?!纠?】計(jì)算輸入的兩個(gè)整數(shù)的最大值 。/* This is the third C program */#include int max (int a, int b);int m
11、ain ( ) int x, y, z; scanf (%d%d, &x, &y); z = max (x, y); printf (max = %dn, z); return 0;int max (int a, int b) int c; if (a b) c = a; else c = b; return (c); 自定義函數(shù)聲明自定義函數(shù)調(diào)用自定義函數(shù)max帶兩個(gè)形參返回a、b中最大值c返回值為整型數(shù)假設(shè)輸入:10 20 運(yùn)行結(jié)果:max = 20C語(yǔ)言的標(biāo)識(shí)符 C語(yǔ)言中變量和函數(shù)都有自己的名字,它們都必須是合法的標(biāo)識(shí)符。 標(biāo)識(shí)符就是一個(gè)名字,C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種
12、字符構(gòu)成,并且第一個(gè)字符必須是字母或下劃線。 C語(yǔ)言是大小寫敏感的語(yǔ)言,因此hello和Hello是不同的標(biāo)識(shí)符。 C語(yǔ)言中有一些特別的標(biāo)識(shí)符,它們的用途已經(jīng)事先規(guī)定好了,程序員不能再將它們另做它用。這些特別的標(biāo)識(shí)符被稱為關(guān)鍵字(也稱保留字)。到目前為止,我們見過(guò)的關(guān)鍵字有void、int、main、if、else、return。以后隨著學(xué)習(xí)的深入,我們將會(huì)遇到越來(lái)越多的關(guān)鍵字(C語(yǔ)言關(guān)鍵字可參考附錄B)??偨Y(jié)C程序是由多個(gè)函數(shù)構(gòu)成的。每個(gè)C程序中有且只有一個(gè)main函數(shù)。main函數(shù)是程序的入口和出口。不使用行號(hào),無(wú)程序行的概念。程序中可使用空行和空格。C程序格式常用鋸齒形書寫格式。C程序中
13、可加任意多的注釋。引用C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù),一般要用文件包含預(yù)處理命令將其頭文件包含進(jìn)來(lái)。用戶自定義的函數(shù),必須先定義后使用。變量必須先定義后使用。變量名、函數(shù)名必須是合法的標(biāo)識(shí)符,標(biāo)識(shí)符習(xí)慣用小寫字母,大小寫敏感。不能用關(guān)鍵字來(lái)命名變量和函數(shù)。函數(shù)包含兩個(gè)部分:聲明部分和執(zhí)行部分,在C程序中,聲明部分在前,執(zhí)行部分在后,這兩部分的順序不能顛倒,也不能有交叉。C語(yǔ)言的語(yǔ)句都是以分號(hào)結(jié)尾。1.4 編制C語(yǔ)言程序的基本步驟 編 輯程序代碼的錄入,生成源程序*.c或*.cpp編 譯語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj鏈 接與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe運(yùn) 行開 始編 輯編 譯有
14、錯(cuò)?鏈 接執(zhí) 行結(jié)果正確?結(jié) 束源程序file.c目標(biāo)程序file.obj庫(kù)函數(shù)和其它目標(biāo)程序可執(zhí)行程序file.exe不正確正確有無(wú) 調(diào)試C程序的流程From Software Engineering關(guān)于軟件開發(fā)與程序設(shè)計(jì) Software Development & Program design什么是程序、軟件? N.沃思(Niklaus Wirth)教授提出: 程序=算法+數(shù)據(jù)結(jié)構(gòu) 以上公式說(shuō)明了如下兩個(gè)問(wèn)題: (1)作用于數(shù)據(jù)的算法決定如何構(gòu)造和組織數(shù)據(jù) (算法數(shù)據(jù)結(jié)構(gòu))。 (2)算法的選擇依賴于作為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu) (數(shù)據(jù)結(jié)構(gòu)算法)。 軟件=程序+文檔(軟件工程的觀點(diǎn))軟件開發(fā) Software Development問(wèn)題分析與描述 Problem Analy
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黃金分期合同(2篇)
- 系統(tǒng)集成采購(gòu)年終工作總結(jié)
- 設(shè)備間和地下車庫(kù)等交工驗(yàn)收標(biāo)準(zhǔn)做法
- 小升初語(yǔ)文知識(shí)點(diǎn)
- 蒙氏語(yǔ)言工作總結(jié)
- 房產(chǎn)中介店長(zhǎng)年終總結(jié)
- 《智能優(yōu)化算法解析》 課件 第1-3章-緒論、基于進(jìn)化規(guī)律的智能優(yōu)化算法、基于物理原理的智能優(yōu)化算法
- 2025年人力資源管理師專業(yè)技能考核試卷:人力資源管理師職業(yè)素養(yǎng)與道德規(guī)范
- 2025年執(zhí)業(yè)藥師藥學(xué)專業(yè)知識(shí)試卷十六:藥學(xué)專業(yè)文獻(xiàn)檢索與綜述試題
- 2025年統(tǒng)計(jì)學(xué)專業(yè)期末考試:數(shù)據(jù)分析計(jì)算題庫(kù)與回歸分析
- 脫口秀實(shí)戰(zhàn)指南(如何從零開始寫段子)
- 建筑工程掛靠協(xié)議模板
- 山東省濟(jì)寧市2025年高考模擬考試(一模)思想政治試題(含答案)
- 第十八屆“地球小博士”全國(guó)地理知識(shí)科普競(jìng)賽題庫(kù)(附答案)
- 第五課 認(rèn)識(shí)情緒 管理情緒
- 四年級(jí)數(shù)學(xué)下冊(cè)三角形及四邊形的角度計(jì)算培優(yōu)專項(xiàng)練習(xí)(含答案)
- SJG 82-2020 政府投資學(xué)校建筑室內(nèi)裝修材料空氣污染控制標(biāo)準(zhǔn)-高清現(xiàn)行
- 智慧園區(qū)平臺(tái)用戶操作手冊(cè)
- 精品市政道路施工測(cè)量方法及測(cè)量方案
- 小型手推清掃車畢業(yè)設(shè)計(jì)說(shuō)明書課件
- 受拉鋼筋抗震錨固長(zhǎng)度Lae
評(píng)論
0/150
提交評(píng)論