《C語(yǔ)言程序設(shè)計(jì)》第一章_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》第一章_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》第一章_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》第一章_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》第一章_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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)介

1、C 語(yǔ)言程序 設(shè) 計(jì)為什么要學(xué)習(xí)C語(yǔ)言 “我從一個(gè)未學(xué)過(guò)計(jì)算機(jī)的人,44歲開(kāi)始學(xué)習(xí)計(jì)算機(jī),現(xiàn)在成為所謂的“大師”?!?-譚浩強(qiáng)子曰: “知之者不如好之者,好之者不如樂(lè)之者。” 理論思維實(shí)驗(yàn)思維計(jì)算思維課程要求學(xué)時(shí)數(shù):16周課程上課2學(xué)時(shí)/周上機(jī)2學(xué)時(shí)/周教學(xué)方式: 多媒體教學(xué)+上機(jī)實(shí)驗(yàn)紀(jì)律要求: 按時(shí)出勤(上課、上機(jī)(座位固定) 上課不講話 小貼士:怎樣學(xué)好C語(yǔ)言仿寫(xiě)改寫(xiě)編寫(xiě)課前預(yù)習(xí)-上課聽(tīng)講-認(rèn)真實(shí)驗(yàn)“不上機(jī)是學(xué)不好C語(yǔ)言的” 學(xué)習(xí)過(guò)程:不需要時(shí)不看手機(jī) 成績(jī)?cè)u(píng)定平時(shí)成績(jī) 30%: 平時(shí)出勤率、平時(shí)作業(yè)及測(cè)試等期末考試 70%: 上機(jī)考試教材C程序設(shè)計(jì)(第四版) ,譚浩強(qiáng)著,發(fā)行1100萬(wàn)冊(cè)

2、記錄 清華大學(xué)出版社參考書(shū)C語(yǔ)言程序設(shè)計(jì) , 呂鳳翥 ,清華大學(xué)出版社課程內(nèi)容第1章 程序設(shè)計(jì)和C語(yǔ)言第2章 算法程序的靈魂第3章 最簡(jiǎn)單的C程序設(shè)計(jì)順序程序設(shè)計(jì)第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)第6章 利用數(shù)組處理批量數(shù)據(jù)第7章 用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)第8章 善于利用指針第9章 用戶自己建立數(shù)據(jù)類型第10章 對(duì)文件的輸入輸出U盤(pán)筆記本第1章 程序設(shè)計(jì)和C語(yǔ)言1.1 什么是計(jì)算機(jī)程序1.2 什么是計(jì)算機(jī)語(yǔ)言1.3 C語(yǔ)言的發(fā)展及其特點(diǎn)1.4 最簡(jiǎn)單的C語(yǔ)言程序1.5 運(yùn)行C程序的步驟與方法1.6 程序設(shè)計(jì)的任務(wù)練習(xí) c-11.1 什么是計(jì)算機(jī)程序程序一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令

3、只要讓計(jì)算機(jī)執(zhí)行這個(gè)程序,計(jì)算機(jī)就會(huì)自動(dòng)地、有條不紊地進(jìn)行工作計(jì)算機(jī)的一切操作都是由程序控制的,離開(kāi)程序,計(jì)算機(jī)將一事無(wú)成1.2 什么是計(jì)算機(jī)語(yǔ)言人與人溝通-語(yǔ)言(漢語(yǔ)、英語(yǔ)、)人與計(jì)算機(jī)溝通-計(jì)算機(jī)語(yǔ)言計(jì)算機(jī)語(yǔ)言通常是一個(gè)能完整、準(zhǔn)確和規(guī)則地表達(dá)人們的意圖,并用以指揮或控制計(jì)算機(jī)工作的符號(hào)系統(tǒng)根據(jù)其是否接近于人類自然語(yǔ)言,通常把計(jì)算機(jī)語(yǔ)言劃分為五代語(yǔ)言第一代語(yǔ)言:機(jī)器語(yǔ)言(由0和1組成的指令)第二代語(yǔ)言:符號(hào)語(yǔ)言(用英文字母和數(shù)字表示指令)第三代語(yǔ)言:高級(jí)語(yǔ)言(接近于人的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言) C、VB、Java 第四代語(yǔ)言:非過(guò)程化語(yǔ)言第五代語(yǔ)言:智能語(yǔ)言低級(jí)語(yǔ)言面向過(guò)程的語(yǔ)言(非結(jié)構(gòu)化的語(yǔ)

4、言、結(jié)構(gòu)化語(yǔ)言)面向?qū)ο蟮恼Z(yǔ)言1.3 C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言的由來(lái)誕生1972年,AT&T的貝爾實(shí)驗(yàn)室D.M.Ritchie設(shè)計(jì)在UNIX操作系統(tǒng)的DEC PDP-11上實(shí)現(xiàn)演化ALGOL60(1960)CPL(1963)BCPL(1967)B(1970)C1972C語(yǔ)言的發(fā)展1973改寫(xiě)UNIX占90%代碼1977出現(xiàn)與機(jī)器無(wú)關(guān)的 C語(yǔ)言版本1978移植到大、中、小型和微型計(jì)算機(jī)上K&R:The C Programming Language-標(biāo)準(zhǔn)C成為應(yīng)用最廣泛的語(yǔ)言1983推出C+語(yǔ)言-面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言1987推出87 ANSI C-新標(biāo)準(zhǔn)各種C的基礎(chǔ)1.2 C語(yǔ)言的特點(diǎn)C語(yǔ)言的

5、特點(diǎn)結(jié)構(gòu)化(模塊化)的程序設(shè)計(jì)語(yǔ)言函數(shù)是構(gòu)成結(jié)構(gòu)化程序的最小模塊基本結(jié)構(gòu)模式:順序、分支、循環(huán)編程簡(jiǎn)潔明了關(guān)鍵字少、運(yùn)算符豐富、采用縮寫(xiě)形式的數(shù)據(jù)類型預(yù)處理功能功能強(qiáng)大兼具高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能執(zhí)行效率高、移植性好C語(yǔ)言的不足運(yùn)算符過(guò)多,優(yōu)先級(jí)較繁雜,初學(xué)者難用難記34個(gè)運(yùn)算符15種優(yōu)先級(jí)是一種弱類型語(yǔ)言對(duì)數(shù)組進(jìn)行動(dòng)態(tài)賦值時(shí)不做越限檢查產(chǎn)生二義性 C語(yǔ)言有誘人的優(yōu)點(diǎn),也有值得注意的不足, 使用時(shí)應(yīng)揚(yáng)長(zhǎng)避短數(shù)據(jù)庫(kù)管理系統(tǒng)圖形圖像處理系統(tǒng)硬件驅(qū)動(dòng)程序、嵌入式系統(tǒng)應(yīng)用數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)排序和檢索C語(yǔ)言的應(yīng)用1.4 最簡(jiǎn)單的C語(yǔ)言程序1.4.1 最簡(jiǎn)單的C語(yǔ)言程序舉例例1.1 輸出一行信息This is

6、a C_Language Program.解題思路:在主函數(shù)中用printf函數(shù)輸出以上文字編寫(xiě)程序:#include int main() printf(“This is a C_Language Program.n ”); return 0;預(yù)處理命令包含頭文件 函數(shù)頭:int :函數(shù)類型為整型main:主函數(shù)函數(shù)體被包含文件的名稱關(guān)鍵字預(yù)處理命令的標(biāo)識(shí)符號(hào)C編譯系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)庫(kù)中的標(biāo)準(zhǔn)輸出函數(shù),雙引號(hào)內(nèi)字符串按原樣輸出注意: 要理解關(guān)鍵詞、庫(kù)函數(shù)等的含義去記憶 如 : stdio.h stdiostandard input &output 的縮寫(xiě),包含與標(biāo)準(zhǔn)I/O庫(kù)有關(guān)的變量定義和宏

7、定義返回到調(diào)用函數(shù)處換行符例1.2 求兩數(shù)之和# include int main() /* 求兩數(shù)之和。*/ int a,b,sum; /* 這是聲明部分,定義a,b,sum為整型變量*/ a=123;b=456; /* 對(duì)變量a,b賦值 */ sum=a+b; /進(jìn)行a+b運(yùn)算,并把結(jié)果存放在變量sum中 printf(“sum is %d n ”,sum); return 0; /使函數(shù)返回值為0 /函數(shù)結(jié)束注釋部分賦值語(yǔ)句原樣輸出格式控制符,以十進(jìn)制整數(shù)類型輸出對(duì)應(yīng)表達(dá)式值,即sum輸出表列換行符運(yùn)行結(jié)果: sum is 579解題思路:設(shè)置3個(gè)變量,a和b用來(lái)存放兩個(gè)整數(shù),sum用來(lái)

8、存放和數(shù)。用賦值運(yùn)算符“=”把相加的結(jié)果傳送給sum編寫(xiě)程序:例1.3 求2個(gè)整數(shù)中的較大者 #include int main( ) /* 主函數(shù)*/ int max(int x,int y); /*對(duì)被調(diào)用函數(shù)max的聲明 */ int a, b, c; /*定義變量a、b、c */ scanf(d,d,&a,&b); /*輸入變量a和b的值*/ c=max(a,b); /*調(diào)用max函數(shù),將得到的值賦給c */ printf(max=dn,c); /*輸出c的值*/ return 0; int max(int x, int y) /*定義max函數(shù),函數(shù)值為整型,形式參數(shù)x、y為整型 i

9、nt z; /聲明部分 if (xy) z=x; else z=y; return (z); /將z的值作為max函數(shù)值,返回到調(diào)用max函數(shù)的位置 解題思路:用一個(gè)函數(shù)來(lái)實(shí)現(xiàn)求兩個(gè)整數(shù)中的較大者。在主函數(shù)中調(diào)用此函數(shù)并輸出結(jié)果運(yùn)行結(jié)果: 8,5 (輸入8和5賦給a和b)max=8 (輸出c的值)&:取地址運(yùn)算符標(biāo)準(zhǔn)輸入函數(shù)編寫(xiě)程序: 1.4.2 C語(yǔ)言程序的結(jié)構(gòu)一個(gè)程序由一個(gè)或多個(gè)源程序文件組成小程序往往只包括一個(gè)源程序文件例1.1,例1.2只有一個(gè)函數(shù);例1.3有兩個(gè)函數(shù)一個(gè)源程序文件中可以包括三個(gè)部分預(yù)處理指令全局聲明函數(shù)定義C程序是由函數(shù)構(gòu)成的C程序的基本單元:函數(shù)函數(shù)之間通過(guò)調(diào)用建立

10、起關(guān)系有且只有一個(gè)主函數(shù)(main),執(zhí)行程序的入口點(diǎn),與main函數(shù)的位置無(wú)關(guān)函數(shù)可以是系統(tǒng)函數(shù),也可是用戶自定義函數(shù)#include 等在函數(shù)之外進(jìn)行的數(shù)據(jù)聲明每個(gè)函數(shù)用來(lái)實(shí)現(xiàn)一定的功能C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成的C對(duì)輸入輸出實(shí)行“函數(shù)化”函數(shù)構(gòu)成包括函數(shù)的首部(函數(shù)頭)、函數(shù)體函數(shù)體由各種語(yǔ)句組成,為花括號(hào)內(nèi)的部分。若一個(gè)函數(shù)有多個(gè)花括號(hào),則最外層的一對(duì)花括號(hào)為函數(shù)體的范圍。 函數(shù)體包括兩部分 聲明部分:包括定義變量 ,對(duì)本函數(shù)所調(diào)用函數(shù)進(jìn)行聲明執(zhí)行部分:由若干個(gè)語(yǔ)句組成,指定在函數(shù)中所進(jìn)行的操作 注意:函數(shù)的聲明部分和執(zhí)行部

11、分都可缺省,例如:int dump ( ) 這是一個(gè)空函數(shù),什么也不做,但是合法的函數(shù)。 C程序書(shū)寫(xiě)規(guī)范每行通常寫(xiě)一條語(yǔ)句,有些短句也可一行寫(xiě)多條每個(gè)語(yǔ)句用分號(hào)“;”結(jié)束,只有g(shù)oto語(yǔ)句要轉(zhuǎn)向的語(yǔ)句才加語(yǔ)句標(biāo)號(hào)每個(gè)花括號(hào)占一行,與使用它們的語(yǔ)句對(duì)齊,成對(duì)出現(xiàn),花括號(hào)內(nèi)的語(yǔ)句向右縮進(jìn)兩個(gè)字符或一個(gè)水平制表符采用縮進(jìn)格式,包括括號(hào)內(nèi)、條件、循環(huán)語(yǔ)句等多添加注釋/* 注釋開(kāi)始 */ 注釋結(jié)束(注意:要成對(duì)出現(xiàn))(且 / 和 * 、以及*和/之間不能有空格,否則都出錯(cuò)。)/ 整行注釋int main() /*主函數(shù) */ int x,y,sum; / 本來(lái)為:int x; int y; int su

12、m; printf(“Enter a and y: ”); scanf(“%d%d”,&x,&y); /*輸入x,y值*/ sum=add(x,y); printf(“x+y=%dn”,sum); /輸出結(jié)果 return 0;4441223 舉例: 技巧:為避免遺漏必須配對(duì)使用的符號(hào),例如注釋符號(hào)、函數(shù)體的起止標(biāo)識(shí)符(花括號(hào))、圓括號(hào)等等,在輸入時(shí),可連續(xù)輸入這些起止標(biāo)識(shí)符,然后再在其中進(jìn)行插入來(lái)完成內(nèi)容的編輯。在起止標(biāo)識(shí)符嵌套時(shí),以及相距較遠(yuǎn)時(shí),這樣做更有必要。不規(guī)范的書(shū)寫(xiě)#include intadd(int a,int b) return a+b; int main() int x,y

13、,sum;printf(Enter x and y: );scanf(%d%d,&x,&y);sum=add(x,y);printf(x+y=%dn,sum); return 0;規(guī)范的書(shū)寫(xiě)# include int add (int a, int b) return a+b;int main() int x,y,sum; printf(“Enter a and y: ”); scanf(“%d%d”,&x,&y); sum=add(x,y); printf(“x+y=%dn”,sum); return 0;1.5 運(yùn)行C程序的步驟與方法運(yùn)行C程序的步驟上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫(kù)

14、函數(shù)連接運(yùn)行目標(biāo)程序 高級(jí)語(yǔ)言實(shí)現(xiàn)的三部曲: 編輯 -編譯(連接)-運(yùn)行運(yùn)行C程序的方法目前使用的大多數(shù)C編譯系統(tǒng)都是集成環(huán)境(IDE)的??梢杂貌煌木幾g系統(tǒng)對(duì)C程序進(jìn)行操作常用的有Turbo C 2.0、Turbo C+ 3.0、Visual C+等Turbo C+ 3.0:是一個(gè)集成環(huán)境,它具有方便、直觀和易用的界面,雖然它也是DOS環(huán)境下的集成環(huán)境,但是可以把啟動(dòng)Turbo C+ 3.0 集成環(huán)境的DOS執(zhí)行文件tc.exe生成快捷方式,也可以用鼠標(biāo)操作Visual C+:也可以用Visual C+對(duì)C程序進(jìn)行編譯編程環(huán)境-Visual StudioVisual C+ 6.0集成編譯運(yùn)

15、行環(huán)境提供編譯、運(yùn)行工具提供調(diào)試工具注意:本學(xué)期機(jī)房編程環(huán)境改為: Dev-C+菜單欄標(biāo)題欄工具欄輸出窗口源代碼編輯窗口工作區(qū)狀態(tài)欄主窗口工具欄快捷菜單File(文件)菜單New(新建)命令 新建文件,可選擇多種文件類型Open(打開(kāi))命令 打開(kāi)C+/C源文件、項(xiàng)目文件和其他文件c1.cClose Workspace (關(guān)閉工作空間)命令 關(guān)閉當(dāng)前工作區(qū)中的文件Save(保存)命令 和 Save as (另存為)命令 Save命令 用于保存已有文件 Save as 命令對(duì)已有文件另起別的文件名C語(yǔ)言程序的具體實(shí)現(xiàn)單文件C語(yǔ)言程序?qū)崿F(xiàn)的操作方法編輯程序File-New-Files標(biāo)簽上雙擊C+

16、Source File在源代碼編輯窗口中輸入文件代碼,如輸入例1.1的代碼存儲(chǔ)文件File-Save,出現(xiàn)保存為對(duì)話框選擇文件夾輸入文件名,如 cpp2.c注意:C語(yǔ)言的源文件應(yīng)輸入擴(kuò)展名 .c C文件圖標(biāo) C+文件圖標(biāo) 編譯和連接源文件Build(組建)-Build(編譯)生成 可執(zhí)行文件 .exe運(yùn)行程序Build-Execute (執(zhí)行) 開(kāi)始執(zhí)行文件,并將結(jié)果顯示在DOS窗口中按任意鍵返回VC+主窗口1.6 程序設(shè)計(jì)的任務(wù)基本工作階段1.問(wèn)題分析對(duì)于接手的任務(wù)要進(jìn)行認(rèn)真的分析研究所給定的條件分析最后應(yīng)達(dá)到的目標(biāo)找出解決問(wèn)題的規(guī)律選擇解題的方法2.設(shè)計(jì)算法設(shè)計(jì)出解題的方法和具體步驟3.編寫(xiě)程序4.對(duì)源程序進(jìn)行編輯、編譯和連接5.運(yùn)行程序,分析結(jié)果結(jié)果錯(cuò)了,程序肯定錯(cuò)結(jié)果對(duì)了,程序未必對(duì)6.編寫(xiě)程序文檔上機(jī)操作問(wèn)題做完一題后關(guān)閉工作空間先仔細(xì)檢查程序,盡量保證編寫(xiě)和錄入的正確性,不要過(guò)分依賴編譯程序去查錯(cuò)上機(jī)步驟 編輯 -編譯(連接)-運(yùn)行理解關(guān)鍵詞、庫(kù)函數(shù)等的含義去記憶如 : #include

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論