




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C 程序設(shè)計(jì)主講:張明強(qiáng)信號與信息處理教研室C Programming Language課程簡介C Programming Language課程目標(biāo) Build計(jì)算與程序設(shè)計(jì)思維會讀,會寫相對簡單C代碼的自信科學(xué)計(jì)算問題轉(zhuǎ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語言數(shù)據(jù)類型、運(yùn)算符和簡單的輸入輸出第5周實(shí)驗(yàn)三順序結(jié)構(gòu)程序設(shè)計(jì):
2、字符與字符串處理第8周實(shí)驗(yàn)四選擇結(jié)構(gòu)程序設(shè)計(jì):學(xué)生成績管理系統(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é)生成績管理系統(tǒng):錄入、統(tǒng)計(jì)、查找與刪除第14周實(shí)驗(yàn)八函數(shù)(2):遞歸的使用第15周實(shí)驗(yàn)九指針(1):二維矩陣的轉(zhuǎn)置與乘法第16周實(shí)驗(yàn)十指針(2):學(xué)生成績管理系統(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課程考核成績構(gòu)成考勤:10% 作 業(yè):10% 期中考試:10%實(shí)驗(yàn):20% 期末考試:50%實(shí)驗(yàn)考核:現(xiàn)場考核+實(shí)驗(yàn)報(bào)告課程設(shè)計(jì)作業(yè):中期布置,結(jié)課前提交第1章C語言概述1.1 程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng)
4、,由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實(shí)例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對象1.1 程序設(shè)計(jì)語言的發(fā)展及其特點(diǎn)5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smallt
5、alk 80BASICANSI-BASICQBASICVBFORTRAN901.2 C語言的發(fā)展及其特點(diǎn)、應(yīng)用C語言發(fā)展史ALGOL 60語言 CPL語言 Combined Programming Language 1963年,劍橋大學(xué) BCPL語言 1967年,劍橋大學(xué)的Matin Richards對CPL語言進(jìn)行了簡化 B語言 C語言 1970年,美國貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改 將CPL語言煮干,提煉出它的精華1973年,B語言也給人“煮”了一下,美國貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言 BCPL的第二個(gè)字母作為這種語言的
6、名字,這就是C語言 C語言發(fā)展史產(chǎn)生背景產(chǎn)生過程 時(shí)間: 19721973 地點(diǎn): 美國貝爾實(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年國際標(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語言的特點(diǎn)C語言的應(yīng)用系統(tǒng)軟件和大型應(yīng)用軟件。如UNIX,LINUX等操作系統(tǒng)。在軟件需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級語言。例如,各種硬件設(shè)備的驅(qū)動(dòng)程序(象顯卡驅(qū)動(dòng)程序、打印機(jī)驅(qū)動(dòng)程序等)一般都是用C語言編寫的。在圖形、圖像及動(dòng)畫處理方面,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é)束 運(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語言程序的函數(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】計(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語言的標(biāo)識符 C語言中變量和函數(shù)都有自己的名字,它們都必須是合法的標(biāo)識符。 標(biāo)識符就是一個(gè)名字,C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種
12、字符構(gòu)成,并且第一個(gè)字符必須是字母或下劃線。 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)??偨Y(jié)C程序是由多個(gè)函數(shù)構(gòu)成的。每個(gè)C程序中有且只有一個(gè)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ù)包含兩個(gè)部分:聲明部分和執(zhí)行部分,在C程序中,聲明部分在前,執(zhí)行部分在后,這兩部分的順序不能顛倒,也不能有交叉。C語言的語句都是以分號結(jié)尾。1.4 編制C語言程序的基本步驟 編 輯程序代碼的錄入,生成源程序*.c或*.cpp編 譯語法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj鏈 接與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exe運(yùn) 行開 始編 輯編 譯有
14、錯(cuò)?鏈 接執(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è)計(jì) Software Development & Program design什么是程序、軟件? N.沃思(Niklaus Wirth)教授提出: 程序=算法+數(shù)據(jù)結(jié)構(gòu) 以上公式說明了如下兩個(gè)問題: (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問題分析與描述 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年旅行社服務(wù)項(xiàng)目建議書
- 2025年微波輻射計(jì)、微波散射計(jì)、測高計(jì)項(xiàng)目發(fā)展計(jì)劃
- 實(shí)施精準(zhǔn)營銷策略提高市場占有率水平
- 光學(xué)鏡片透光率測量基準(zhǔn)
- 辦公環(huán)境改善措施細(xì)則
- 城市地下綜合管廊建設(shè)與管理技術(shù)研究
- 格林童話選故事解讀
- 1-3-Methoxyphenyl-piperazine-生命科學(xué)試劑-MCE
- 公司年會演講致辭稿件范本
- 企業(yè)員工激勵(lì)計(jì)劃及策劃方案的說明
- GB/T 11263-2024熱軋H型鋼和剖分T型鋼
- 醫(yī)療器械軟件研究報(bào)告 適用嵌入式和桌面式 2023版
- 果園軌道運(yùn)輸施工方案
- 2024年江蘇省高考政治試卷(含答案逐題解析)
- 聯(lián)通欠費(fèi)催繳業(yè)務(wù)項(xiàng)目實(shí)施方案
- 《學(xué)位論文選題與寫作》教學(xué)大綱
- 《三國演義》題庫單選題100道及答案解析
- 全國網(wǎng)約車出租車駕駛員公共題模擬考試題及答案
- 2024電動(dòng)牙刷行業(yè)洞察
- 總經(jīng)理助理招聘面試題與參考回答(某大型央企)2025年
- 高盛-比亞迪:全球汽車市場上的新興領(lǐng)先企業(yè)-2024-10-企業(yè)研究
評論
0/150
提交評論