![C語言程序設(shè)計:第1章 C程序設(shè)計概述_第1頁](http://file4.renrendoc.com/view/0dbf77777f191b730e7ce45d4ced09c4/0dbf77777f191b730e7ce45d4ced09c41.gif)
![C語言程序設(shè)計:第1章 C程序設(shè)計概述_第2頁](http://file4.renrendoc.com/view/0dbf77777f191b730e7ce45d4ced09c4/0dbf77777f191b730e7ce45d4ced09c42.gif)
![C語言程序設(shè)計:第1章 C程序設(shè)計概述_第3頁](http://file4.renrendoc.com/view/0dbf77777f191b730e7ce45d4ced09c4/0dbf77777f191b730e7ce45d4ced09c43.gif)
![C語言程序設(shè)計:第1章 C程序設(shè)計概述_第4頁](http://file4.renrendoc.com/view/0dbf77777f191b730e7ce45d4ced09c4/0dbf77777f191b730e7ce45d4ced09c44.gif)
![C語言程序設(shè)計:第1章 C程序設(shè)計概述_第5頁](http://file4.renrendoc.com/view/0dbf77777f191b730e7ce45d4ced09c4/0dbf77777f191b730e7ce45d4ced09c45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計1學(xué)習(xí)這門課程的目標(biāo)高層次的追求低層次的追求課程過關(guān)科研和工程中的計算思維能力工具的開發(fā)者與軟件人員良好交流的能力第1章 C程序設(shè)計概述4按對機(jī)器依賴性、 接近自然語言的程度、 語言的發(fā)展過程 機(jī)器語言 匯編語言 高級語言 1.1.1 程序設(shè)計語言計算機(jī)工作原理-存儲程序和程序控制。用于描述計算機(jī)程序的符號系統(tǒng)稱為計算機(jī)程序設(shè)計語言。51.1.1 程序設(shè)計語言高級語言的翻譯方式解釋方式(Interpreter 解釋程序)逐句掃描,逐句翻譯,逐句執(zhí)行,直接獲得結(jié)果。不產(chǎn)生等價的機(jī)器語言程序高級語言解釋程序高級語言源程序 結(jié)果61.1.1 程序設(shè)計語言高級語言庫文件編譯程序連接程序執(zhí)
2、行源程序目標(biāo)程序可執(zhí)行程序數(shù)據(jù)結(jié)果編譯:Compiling 將高級語言源程序翻譯成為功能等價的低級(機(jī)器)語言目標(biāo)程序的過程。編譯程序:Compiler 完成編譯工作的專門程序。對不同的程序設(shè)計語言需要配備不同的編譯程序。對使用不同機(jī)器語言的機(jī)器需要配備不同的編譯程序。71.1.1程序設(shè)計語言程序設(shè)計語言的基本語言成分 數(shù)據(jù)成分刻畫程序所處理的數(shù)據(jù)對象的值、存儲 運算成分 算術(shù)、邏輯、集合等運算 控制成分 控制程序的執(zhí)行流程 傳輸成分?jǐn)?shù)據(jù)的輸入輸出81.1.2 程序程序概念日常生活中程序概念 “程序”是完成事情的先后次序計算機(jī)中的程序概念 按特定的算法,用某種計算機(jī)語言描述的完成指定任務(wù)的處理
3、過程 程序算法數(shù)據(jù)結(jié)構(gòu)91.1.3 程序設(shè)計設(shè)計、編制、測試程序的方法和過程程序設(shè)計的內(nèi)容與內(nèi)涵設(shè)計程序編制程序調(diào)試程序測試程序驗證程序設(shè)計風(fēng)格 101.1.3 程序設(shè)計結(jié)構(gòu)化程序設(shè)計方法 一種傳統(tǒng)的程序設(shè)計方法本質(zhì)是功能設(shè)計設(shè)計基本原則 :自頂向下,逐步細(xì)化,由抽象到具體的功能分解過程結(jié)構(gòu)化程序設(shè)計過程例 求二次方程ax2+bx+c=0的根 S1:輸入系數(shù)a,b,cS2:求根計算S3:輸出根111.1.3 程序設(shè)計S21:計算判別式 b2-4ac discS22:計算 (-b)/(2a) uS23:計算 vS11:輸入系數(shù)a,b,cS12:判別輸入的a是否為0,若為0 ,轉(zhuǎn)S11步重新輸入系
4、數(shù)a,b,c。S31:如果disc,計算并輸出兩個相同的根x1x2uS32:如果disc,計算并輸出兩個實根x1uv ,x2uv S33:如果disc,計算并輸出一對共扼復(fù)根x1uvi ,x2uvi121.1.3 程序設(shè)計程序設(shè)計風(fēng)格指的是編碼風(fēng)格(coding style) 即程序設(shè)計者表達(dá)程序的習(xí)慣方式良好的程序設(shè)計風(fēng)格基本指導(dǎo)原則: 規(guī)范化的源程序書寫格式 注釋程序 選用顧名思義的標(biāo)識符 用簡明的方法表達(dá)算法 提供友善的輸入輸出界面 131.2 C語言概述C語言是在BCPL和B語言的基礎(chǔ)上發(fā)展起來的與著名的UNIX操作系統(tǒng)的產(chǎn)生相輔相成的最初C語言以B.W. Kernighan和D. M
5、. Ritchie所著的The C Programming Language為標(biāo)準(zhǔn),謂之K&R C美國國家標(biāo)準(zhǔn)化協(xié)會(American National Standard Institute,ANSI)于1983年開始為C語言制定統(tǒng)一標(biāo)準(zhǔn),該標(biāo)準(zhǔn)頒布于1987年,稱之為87 ANSI C。1989年,ISO為C語言制定了國際標(biāo)準(zhǔn)C89。最新的C語言國際標(biāo)準(zhǔn)是1999年頒布的C99。本書按C99標(biāo)準(zhǔn)敘述。141.2.3 C語言源程序的結(jié)構(gòu)與執(zhí)行1. C語言源程序的結(jié)構(gòu)一個C語言源程序由一系列的外部聲明組成。外部聲明函數(shù)定義性聲明外部數(shù)據(jù)定義性聲明函數(shù)引用性聲明外部數(shù)據(jù)引用性聲明151.2.3 C
6、語言源程序的結(jié)構(gòu)與執(zhí)行函數(shù)定義性聲明指的是宣布(announce)函數(shù)的存在。函數(shù)的一般定義形式為:存儲類別 數(shù)據(jù)類型 函數(shù)名(形式參數(shù)表)局部數(shù)據(jù)聲明語句序列1. C語言源程序的結(jié)構(gòu)函數(shù)體函數(shù)頭161.2.3 C語言源程序的結(jié)構(gòu)與執(zhí)行例:int max(int a, int b, int c) int m; m=ab?a:b; return (mc?m:c); 1. C語言源程序的結(jié)構(gòu)171.2.3 C語言源程序的結(jié)構(gòu)與執(zhí)行一個C語言程序必須有且僅有一個名為main的函數(shù)一個C語言源程序通常存放在一個源程序文件中(單文件程序),也可以分別存放在多個源程序文件中(多文件程序)程序中所有函數(shù)(包
7、括main函數(shù))在源程序文件中安排的位置和順序是任意的一個函數(shù)必須完整地包含在一個文件中,不允許跨文件存放不同的C編譯系統(tǒng)對源程序文件的擴(kuò)展名要求不同,例如TC2.0的源程序文件必須以“.C”作為后綴。一個C源程序文件是C源程序的一個程序模塊,C編譯程序總是以源程序文件為單位編譯。1. C語言源程序的結(jié)構(gòu)181.2.3 C語言源程序的結(jié)構(gòu)與執(zhí)行外部數(shù)據(jù)定義性聲明,顧名思義即在函數(shù)外部定義數(shù)據(jù)對象。函數(shù)及外部數(shù)據(jù)引用性聲明即聲明要引用本程序中已經(jīng)定義的函數(shù)或外部數(shù)據(jù)對象。在函數(shù)外定義的數(shù)據(jù)對象可被程序中的諸函數(shù)公用,因此這類數(shù)據(jù)對象也稱為“全局”數(shù)據(jù)對象。區(qū)別的“定義性聲明”與“引用性聲明” :
8、“定義性聲明”建立函數(shù)與外部數(shù)據(jù),需要對定義的外部數(shù)據(jù)分配存儲空間;“引用性聲明”則指出要引用程序中其他地方定義的函數(shù)或外部數(shù)據(jù),并不為欲引用的外部數(shù)據(jù)分配存儲空間。1. C語言源程序的結(jié)構(gòu)191.2.3 C語言源程序的結(jié)構(gòu)與執(zhí)行C語言程序總是從main函數(shù)的第一條語句開始執(zhí)行 C語言程序中所有其他函數(shù)都可以相互調(diào)用一個函數(shù)也允許自己調(diào)用自己可以調(diào)用由C編譯系統(tǒng)定義的庫函數(shù)及用戶自己定義的庫函數(shù)。整個程序的執(zhí)行結(jié)束在正常情況下,main函數(shù)執(zhí)行完畢執(zhí)行過程中發(fā)生各種錯誤,提前結(jié)束程序運行2. C語言源程序的執(zhí)行201.2.4 C語言程序例例1.1 輸入3個正整數(shù),求它們的最小值(設(shè)該最小值為n
9、),并計算1+2+n之和。該程序由兩個函數(shù)組成。程序代碼存儲在myprog2.c源程序文件中,文件內(nèi)容如下:/* This is an example */#include int min(int a, int b, int c); /* 調(diào)用自定義函數(shù)min 的引用性聲明 */int main ( void) unsigned n1 , n2 , n3 , n,i,sum=0; /* 聲明程序中使用的存放正整數(shù)的6個變量 */ printf(“Input 3 positive integer:”); scanf(“%u%u%u”, &n1, &n2, &n3); /*輸入3個正整數(shù),分別存入
10、n1 , n2 , n3*/ 211.2.4 C語言程序例 n=min(n1, n2, n3); /* 調(diào)用自定義函數(shù)min,求3個正整數(shù)的最小值 */ for(i=1;i=n;i+) sum=sum+i; printf(“Minimum=%un1+2+.+%u=%un”, n,n, sum); int min(int a, int b, int c) /* 求3個整數(shù)的最小值的函數(shù)定義 */ if(a=b&a= c) return a; else if(b=a&b=c) return b; else return c;221.2.4 C語言程序例C語言程序中注釋的一般表示形式是: /* 注釋
11、內(nèi)容 */ 注釋內(nèi)容可以占用若干書寫行,只要以“/*”開頭、用“*/”結(jié)束。C89或C99都規(guī)定C語言的注釋不能嵌套。如: /* void func (void) printf(“This is a functionn”); /* nested comment ,這種嵌套的注釋是錯誤的!*/ */這樣的注釋是錯誤的。C99中還允許使用以連續(xù)兩個斜杠字符(/)開頭的注釋形式。即“/ 注釋內(nèi)容”。但是這種注釋被限制在一行內(nèi)。 231.2.5 C語言源程序的書寫 C語言源程序一般也都按小寫字母書寫。 用#define定義的宏名通常用大寫字母表示(當(dāng)然也可以用小寫字母表示)。 每個語句占用一書寫行。
12、用縮進(jìn)對齊的寫法反映程序的不同的結(jié)構(gòu)層次。 編譯預(yù)處理命令行、外部數(shù)據(jù)定義、函數(shù)定義之間、函數(shù)體內(nèi)的“數(shù)據(jù)聲明” 部分和“語句序列”部分空一行書寫。241.2.5 C語言源程序的書寫 括住函數(shù)體的大括號,其左大括號應(yīng)位于函數(shù)頭部第一個字符的下方,對應(yīng)的右大括號亦單獨占用一行,且與左大括號位置對齊。 對于for、if、while等語句中用于復(fù)合語句的大括號,按傳統(tǒng)習(xí)慣左大括號應(yīng)寫在對應(yīng)關(guān)鍵字書寫行的后部,而右大括號應(yīng)單獨占用一行,與對應(yīng)關(guān)鍵字的第一個字符對齊。 在書寫程序時除標(biāo)識符、常量、運算符等具有獨立含義的對象中不能插入空格外,在對象之間插入適量的空格,它們對程序沒有影響。251.2.5 C語言源程序的書寫 另外,若一條語句太長在一行內(nèi)寫不下,可以將其拆分成多行來書寫。不能在關(guān)鍵字、自定義標(biāo)識符、常數(shù)、運算符等語言元素的中間拆分。編譯預(yù)處理命令行、在一行上寫不下的字符串常量要跨行書寫,可用特別的續(xù)行符號“ ”來處理。但續(xù)行書寫的
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學(xué)設(shè)計方案作業(yè)
- XX公司天花吊頂施工合作合同
- 個人貸款合同范文及格式
- 個人保證擔(dān)保借款合同書正式版
- 臨街門面租賃合同標(biāo)準(zhǔn)版
- 中鐵物資商城物流配送合同新范本
- 個人住房抵押借款合同模板
- 產(chǎn)品生產(chǎn)裝配標(biāo)準(zhǔn)化合同
- 采購預(yù)付款合同范本
- 臨建勞務(wù)合同范本
- 廉潔應(yīng)征承諾書
- 醫(yī)院定崗定編
- 計算機(jī)網(wǎng)絡(luò)畢業(yè)論文3000字
- 2023年大學(xué)物理化學(xué)實驗報告化學(xué)電池溫度系數(shù)的測定
- 農(nóng)村公共基礎(chǔ)知識
- 腦出血的護(hù)理課件腦出血護(hù)理查房PPT
- 煤礦機(jī)電運輸安全培訓(xùn)課件
- 扣繳個人所得稅報告表-(Excel版)
- Unit+4+History+and+Traditions單元整體教學(xué)設(shè)計課件 高中英語人教版(2019)必修第二冊單元整體教學(xué)設(shè)計
- 2023年全國自學(xué)考試00054管理學(xué)原理試題答案
- 六年級譯林版小學(xué)英語閱讀理解訓(xùn)練經(jīng)典題目(附答案)
評論
0/150
提交評論