Chapter 01 程序設(shè)計與C語言_第1頁
Chapter 01 程序設(shè)計與C語言_第2頁
Chapter 01 程序設(shè)計與C語言_第3頁
Chapter 01 程序設(shè)計與C語言_第4頁
Chapter 01 程序設(shè)計與C語言_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C 程序設(shè)計主講:張明強(qiáng)信號與信息處理教研室C Programming Language課程簡介C Programming Language課程目標(biāo) Build計算與程序設(shè)計思維會讀,會寫相對簡單C代碼的自信科學(xué)計算問題轉(zhuǎn)化為編碼問題的能力 G=(G+X/G)/2教材、參考書與課時安排 教材 C程序設(shè)計(第四版) 譚浩強(qiáng)著 清華大學(xué)出版社 參考書C程序設(shè)計學(xué)習(xí)輔導(dǎo) 譚浩強(qiáng)編著 清華大學(xué)出版社 課時安排授課 :54學(xué)時實驗 :22學(xué)時實驗周實驗項目實驗題目第3周實驗一VC+6.0環(huán)境下C程序編輯、編譯、運行與調(diào)試方法第4周實驗二C語言數(shù)據(jù)類型、運算符和簡單的輸入輸出第5周實驗三順序結(jié)構(gòu)程序設(shè)計:

2、字符與字符串處理第8周實驗四選擇結(jié)構(gòu)程序設(shè)計:學(xué)生成績管理系統(tǒng):功能選擇界面設(shè)計第9周實驗五循環(huán)結(jié)構(gòu)程序設(shè)計:牛頓迭代法求解線性方程的根第10周實驗六一維及多維數(shù)組的使用:選擇法與冒泡法排序第13周實驗七函數(shù)(1):學(xué)生成績管理系統(tǒng):錄入、統(tǒng)計、查找與刪除第14周實驗八函數(shù)(2):遞歸的使用第15周實驗九指針(1):二維矩陣的轉(zhuǎn)置與乘法第16周實驗十指針(2):學(xué)生成績管理系統(tǒng)的指針實現(xiàn)第17周實驗十一綜合設(shè)計實驗授課:54學(xué)時 實驗:22學(xué)時實驗安排參考書原書名:The C Programming Language作者:(美)Brian W.Kernighan, Dennis M.Ritch

3、ieDennis M.Ritchie 丹尼斯里奇 (1941-2011) 里奇原本是一個物理學(xué)家和數(shù)學(xué)家,但是,他卻成了最具傳奇的程序員。 參考書Stephen Prata /special/opencourse/bianchengdaolun.html課程考核成績構(gòu)成考勤:10% 作 業(yè):10% 期中考試:10%實驗:20% 期末考試:50%實驗考核:現(xiàn)場考核+實驗報告課程設(shè)計作業(yè):中期布置,結(jié)課前提交第1章C語言概述1.1 程序設(shè)計語言的發(fā)展及其特點馮.諾依曼結(jié)構(gòu):計算機(jī)運算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng)

4、,由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語言程序設(shè)計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計關(guān)鍵是定義類,并由類派生對象1.1 程序設(shè)計語言的發(fā)展及其特點5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smallt

5、alk 80BASICANSI-BASICQBASICVBFORTRAN901.2 C語言的發(fā)展及其特點、應(yīng)用C語言發(fā)展史ALGOL 60語言 CPL語言 Combined Programming Language 1963年,劍橋大學(xué) BCPL語言 1967年,劍橋大學(xué)的Matin Richards對CPL語言進(jìn)行了簡化 B語言 C語言 1970年,美國貝爾實驗室的Ken Thompson將BCPL進(jìn)行了修改 將CPL語言煮干,提煉出它的精華1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計出了一種新的語言 BCPL的第二個字母作為這種語言的

6、名字,這就是C語言 C語言發(fā)展史產(chǎn)生背景產(chǎn)生過程 時間: 19721973 地點: 美國貝爾實驗室 目的: UNIX操作系統(tǒng) 設(shè)計人: 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年國際標(biāo)準(zhǔn)的ANSI CC語言編譯軟件 C語言常用的編譯軟件有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),主要針對Visual C+ 6.0開發(fā)環(huán)境。C語言的特點C語言的應(yīng)用系統(tǒng)軟件和大型應(yīng)用軟件。如UNIX,LINUX等操作系統(tǒng)。在軟件需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級語言。例如,各種硬件設(shè)備的驅(qū)動程序(象顯卡驅(qū)動程序、打印機(jī)驅(qū)動程序等)一般都是用C語言編寫的。在圖形、圖像及動畫處理方面,C語言具有絕對優(yōu)勢,特別是游戲軟件的開發(fā)主要就是使用C語言。網(wǎng)絡(luò)通信程序的編制首選就是C語言。C語言適用于多種操作系統(tǒng),WINDOWS、UNIX、LINUX等。1.3 C語言程序的基本結(jié)構(gòu) 【例1】 最簡

8、單的C程序。/* This is the first C program */#include int main ( ) printf (“Hello World!n); return 0;注釋信息預(yù)處理命令返回值為整型無參數(shù)、返回值為整型的主函數(shù)主函數(shù)名函數(shù)開始內(nèi)部函數(shù)名參數(shù)回車換行符函數(shù)調(diào)用函數(shù)體語句結(jié)束標(biāo)志函數(shù)結(jié)束 運行結(jié)果: Hello World!函數(shù)返回值【例2】計算輸入的兩個整數(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ù)帶有三個參數(shù),以“,”分隔。&表示取變量的地址。調(diào)用內(nèi)部函數(shù),輸出計算的和數(shù)求和的值給Z假設(shè)輸入:10 20 運行結(jié)果:the sum of two integers is 30 C語言程序的函數(shù)由兩部分構(gòu)成:一部分定義變量(變量代表數(shù)據(jù)),稱為聲明部分;另一部分代表操作,由C語句構(gòu)成,稱為執(zhí)行部分。 /C語言程序int main ( ) int a; a = 10; int b; b = a + 20; return

10、 0; 變量定義放到了執(zhí)行部分之后。 /C+語言程序int main ( ) int a; a = 10; int b; b = a + 20; return 0; 只要執(zhí)行部分所使用的變量在前面已經(jīng)定義 /C或C+語言程序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)境。【例3】計算輸入的兩個整數(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帶兩個形參返回a、b中最大值c返回值為整型數(shù)假設(shè)輸入:10 20 運行結(jié)果:max = 20C語言的標(biāo)識符 C語言中變量和函數(shù)都有自己的名字,它們都必須是合法的標(biāo)識符。 標(biāo)識符就是一個名字,C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種

12、字符構(gòu)成,并且第一個字符必須是字母或下劃線。 C語言是大小寫敏感的語言,因此hello和Hello是不同的標(biāo)識符。 C語言中有一些特別的標(biāo)識符,它們的用途已經(jīng)事先規(guī)定好了,程序員不能再將它們另做它用。這些特別的標(biāo)識符被稱為關(guān)鍵字(也稱保留字)。到目前為止,我們見過的關(guān)鍵字有void、int、main、if、else、return。以后隨著學(xué)習(xí)的深入,我們將會遇到越來越多的關(guān)鍵字(C語言關(guān)鍵字可參考附錄B)。總結(jié)C程序是由多個函數(shù)構(gòu)成的。每個C程序中有且只有一個main函數(shù)。main函數(shù)是程序的入口和出口。不使用行號,無程序行的概念。程序中可使用空行和空格。C程序格式常用鋸齒形書寫格式。C程序中

13、可加任意多的注釋。引用C語言標(biāo)準(zhǔn)庫函數(shù),一般要用文件包含預(yù)處理命令將其頭文件包含進(jìn)來。用戶自定義的函數(shù),必須先定義后使用。變量必須先定義后使用。變量名、函數(shù)名必須是合法的標(biāo)識符,標(biāo)識符習(xí)慣用小寫字母,大小寫敏感。不能用關(guān)鍵字來命名變量和函數(shù)。函數(shù)包含兩個部分:聲明部分和執(zhí)行部分,在C程序中,聲明部分在前,執(zhí)行部分在后,這兩部分的順序不能顛倒,也不能有交叉。C語言的語句都是以分號結(jié)尾。1.4 編制C語言程序的基本步驟 編 輯程序代碼的錄入,生成源程序*.c或*.cpp編 譯語法分析查錯,翻譯生成目標(biāo)程序*.obj鏈 接與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exe運 行開 始編 輯編 譯有

14、錯?鏈 接執(zhí) 行結(jié)果正確?結(jié) 束源程序file.c目標(biāo)程序file.obj庫函數(shù)和其它目標(biāo)程序可執(zhí)行程序file.exe不正確正確有無 調(diào)試C程序的流程From Software Engineering關(guān)于軟件開發(fā)與程序設(shè)計 Software Development & Program design什么是程序、軟件? N.沃思(Niklaus Wirth)教授提出: 程序=算法+數(shù)據(jù)結(jié)構(gòu) 以上公式說明了如下兩個問題: (1)作用于數(shù)據(jù)的算法決定如何構(gòu)造和組織數(shù)據(jù) (算法數(shù)據(jù)結(jié)構(gòu))。 (2)算法的選擇依賴于作為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu) (數(shù)據(jù)結(jié)構(gòu)算法)。 軟件=程序+文檔(軟件工程的觀點)軟件開發(fā) Software Development問題分析與描述 Problem Analy

溫馨提示

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

評論

0/150

提交評論