




版權(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ì)基礎(chǔ)與試驗(yàn),1,C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與試驗(yàn),教學(xué)要求 掌握程序設(shè)計(jì)語(yǔ)言的基本知識(shí) 常用算法 初步的程序設(shè)計(jì)能力 學(xué)習(xí)方法 自主學(xué)習(xí) 重視上機(jī)實(shí)踐,2,如何盡快學(xué)會(huì)用C語(yǔ)言進(jìn)行程序設(shè)計(jì),了解程序設(shè)計(jì)語(yǔ)言(C語(yǔ)言) 模仿、改寫(xiě)、編寫(xiě) 通過(guò)不斷的編程實(shí)踐,逐步領(lǐng)會(huì)和掌握程序設(shè)計(jì)的基本思想和方法。,3,教材和參考書(shū),C語(yǔ)言程序設(shè)計(jì),何欽銘、顏暉主編,高等教育出版社,2008 C語(yǔ)言編程(第3版),美Stephen, G.Kochan,張小潘譯,電子工業(yè)出版社,2006 C語(yǔ)言教程(第4版),美Al Kelley, Ira Pohl,徐波譯,機(jī)械工業(yè)出版社,2007 標(biāo)準(zhǔn)C語(yǔ)言基礎(chǔ)教程(第4
2、版),美Gary J. Bronson,單先余等譯,電子工業(yè)出版社,2006 C程序設(shè)計(jì)語(yǔ)言,美Brian W. Kernighan, Dennis M. Ritchie,徐寶文等譯,機(jī)械工業(yè)出版社,2006,4,Chap 1 引 言,一個(gè)C語(yǔ)言程序 程序與程序設(shè)計(jì)語(yǔ)言 C語(yǔ)言的發(fā)展歷史與特點(diǎn) 實(shí)現(xiàn)問(wèn)題求解的過(guò)程,5,1.1 一個(gè)C語(yǔ)言程序,例1-1求階乘問(wèn)題。輸入一個(gè)正整數(shù)n,輸出n!。 #include /* 編譯預(yù)處理命令 */ int main(void) /* 主函數(shù) */ int n; /* 變量定義 */ int factorial(int n); /* 函數(shù)聲明 */ scan
3、f(%d, ,6,1.2 程序與程序設(shè)計(jì)語(yǔ)言,程序 人們?yōu)榻鉀Q某種問(wèn)題用計(jì)算機(jī)可以識(shí)別的代碼編排的一系列加工步驟。 程序的執(zhí)行過(guò)程實(shí)際上是對(duì)程序所表達(dá)的數(shù)據(jù)進(jìn)行處理的過(guò)程。 程序設(shè)計(jì)語(yǔ)言 提供了一種表達(dá)數(shù)據(jù)與處理數(shù)據(jù)的功能 要求程序員按照語(yǔ)言的規(guī)范編程,7,1.2 程序與程序設(shè)計(jì)語(yǔ)言,程序與指令 程序設(shè)計(jì)語(yǔ)言的功能 程序設(shè)計(jì)語(yǔ)言的語(yǔ)法 程序的編譯與編程環(huán)境,8,程序與指令,指令:計(jì)算機(jī)的一個(gè)最基本的功能 如實(shí)現(xiàn)一次加法運(yùn)算或?qū)崿F(xiàn)一次大小的判別 計(jì)算機(jī)的指令系統(tǒng):計(jì)算機(jī)所能實(shí)現(xiàn)的指令的集合 程序:一系列計(jì)算機(jī)指令的有序組合,9,程序與指令,例1-2 編寫(xiě)程序,分別求和與乘積 虛擬的計(jì)算機(jī)指令系統(tǒng)
4、(7條指令 ) 指令1:Input X 將當(dāng)前輸入數(shù)據(jù)存儲(chǔ)到內(nèi)存的X單元 指令2:Output X 將內(nèi)存X單元的數(shù)據(jù)輸出。 指令3:Add X Y Z 將內(nèi)存X單元的數(shù)據(jù)與Y單元的數(shù)據(jù)相加并將結(jié)果存儲(chǔ)到Z單元。 指令4:Sub X Y Z 將內(nèi)存X單元的數(shù)據(jù)與Y單元的數(shù)據(jù)相減并將結(jié)果存儲(chǔ)到Z單元。 指令5:BranchEq X Y P 比較X與Y,若相等則程序跳轉(zhuǎn)到P處執(zhí)行,否則繼續(xù)執(zhí)行下一條指令。 指令6:Jump P 程序跳轉(zhuǎn)到P處執(zhí)行。 指令7:Set X Y 將內(nèi)存Y單元的值設(shè)為X。,10,程序與指令,輸入3個(gè)數(shù)A, B和C,求A+B+C的結(jié)果 Input A; 輸入第1個(gè)數(shù)據(jù)到存儲(chǔ)
5、單元A中 Input B; 輸入第2個(gè)數(shù)據(jù)到存儲(chǔ)單元B中 Input C; 輸入第3個(gè)數(shù)據(jù)到存儲(chǔ)單元C中 Add A B D; 將A、B相加并將結(jié)果存在D中 Add C D D; 將C、D相加并將結(jié)果存在D中 Output D; 輸出D的內(nèi)容,11,程序與指令,輸入2個(gè)數(shù)A和B,求A*B的結(jié)果 1Input A; 輸入第1個(gè)數(shù)據(jù)到存儲(chǔ)單元A中 2Input B; 輸入第2個(gè)數(shù)據(jù)到存儲(chǔ)單元B中 3Set 0 X; 將X設(shè)為0,此處X用以統(tǒng)計(jì)A累加的次數(shù) 4Set 0 Z; 將Z設(shè)為0,此處Z用以存放A*B的結(jié)果 5BranchEq X B 9; 判別X與B是否相等;若相等說(shuō)明A 已累加了B次,程
6、序跳轉(zhuǎn)到第9條指令,輸出結(jié)果 6Add Z A Z; Z = Z + A 7Add 1 X X; X = X + 1 8Jump 5; 程序跳轉(zhuǎn)到第5條指令,繼續(xù)循環(huán)執(zhí)行第6條、7條指令 9Output Z; 輸出Z的值,該值等于A*B,12,程序設(shè)計(jì)語(yǔ)言的功能,數(shù)據(jù)表達(dá):表達(dá)所要處理的數(shù)據(jù) 流程控制:表達(dá)數(shù)據(jù)處理的流程,13,數(shù)據(jù)表達(dá),數(shù)據(jù)表達(dá):一般將數(shù)據(jù)抽象為若干類型 數(shù)據(jù)類型:對(duì)某些具有共同特點(diǎn)的數(shù)據(jù)集合的總稱 代表的數(shù)據(jù)(數(shù)據(jù)類型的定義域) 在這些數(shù)據(jù)上做些什么(即操作或稱運(yùn)算) 例如:整數(shù)類型 包含的數(shù)據(jù):,-2,-1,0,1,2, 作用在整數(shù)上的運(yùn)算:+ 、 - 、 * 、 /等,
7、14,Number, Data,數(shù)據(jù)表達(dá),C語(yǔ)言提供的數(shù)據(jù)類型 基本數(shù)據(jù)類型:程序設(shè)計(jì)語(yǔ)言事先定義好,供程序員直接使用,如整型、實(shí)型(浮點(diǎn)型)、字符型等。 構(gòu)造類型:由程序員構(gòu)造,如數(shù)組、結(jié)構(gòu)、文件、指針等。 各種數(shù)據(jù)類型的常量與變量形式 常量(常數(shù))與變量,15,流程控制,結(jié)構(gòu)化程序設(shè)計(jì)方法 將復(fù)雜程序劃分為若干個(gè)相互獨(dú)立的模塊 模塊:一條語(yǔ)句(Statement)、一段程序或一個(gè)函數(shù)(子程序)等 單入口、單出口,16,流程控制,任何程序都可以將模塊通過(guò)3種基本的控制結(jié)構(gòu)進(jìn)行組合來(lái)實(shí)現(xiàn),17,順序結(jié)構(gòu),循環(huán)結(jié)構(gòu),分支結(jié)構(gòu),流程控制,語(yǔ)句級(jí)控制:3種基本的控制結(jié)構(gòu) 順序控制結(jié)構(gòu):自然順序執(zhí)行
8、分支控制結(jié)構(gòu)(選擇結(jié)構(gòu)):根據(jù)不同的條件來(lái)選擇所要執(zhí)行的模塊 循環(huán)控制結(jié)構(gòu):重復(fù)執(zhí)行某個(gè)模塊 單位級(jí)控制:函數(shù)的定義與調(diào)用 處理復(fù)雜問(wèn)題時(shí), 將程序分為若干個(gè)相對(duì)獨(dú)立的子程序(函數(shù)),18,程序設(shè)計(jì)語(yǔ)言的語(yǔ)法,用程序設(shè)計(jì)語(yǔ)言所寫(xiě)的程序必須符合相應(yīng)語(yǔ)言的語(yǔ)法 源程序(源代碼)是一個(gè)字符序列,這些字符序列按順序組成了一系列“單詞”,“單詞”的組合就形成了語(yǔ)言有意義的語(yǔ)法單位,一些簡(jiǎn)單語(yǔ)法單位的組合又形成了更復(fù)雜的語(yǔ)法單位,最后一系列語(yǔ)法單位組合成程序。,19,程序設(shè)計(jì)語(yǔ)言的語(yǔ)法,C語(yǔ)言的主要“單詞” (1)標(biāo)識(shí)符: C語(yǔ)言的標(biāo)識(shí)符規(guī)定由字母、數(shù)字以及下劃線組成,且第一個(gè)字符必須是字母或下劃線。 (
9、2)保留字(關(guān)鍵字): 它們是C語(yǔ)言規(guī)定的、賦予它們以特定含義、有專門(mén)用途的標(biāo)識(shí)符。 (3)自定義標(biāo)識(shí)符: 包括在程序中定義的變量名、數(shù)據(jù)類型名、函數(shù)名以及符號(hào)常量名。有意義的英文單詞 (4)常量: 常量是有數(shù)據(jù)類型的,如,123、12.34 (5)運(yùn)算符。代表對(duì)各種數(shù)據(jù)類型實(shí)際數(shù)據(jù)對(duì)象的運(yùn)算。如,+(加)、-(減)、*(乘)、/(除)、%(求余)、(大于),20,程序設(shè)計(jì)語(yǔ)言的語(yǔ)法,C語(yǔ)言的主要語(yǔ)法單位 (1)表達(dá)式: 運(yùn)算符與運(yùn)算對(duì)象組合就形成了表達(dá)試。如,2 + 3 * 4 (2)變量定義: 變量也有數(shù)據(jù)類型,所以在定義變量時(shí)要說(shuō)明相應(yīng)變量的類型。如: int i; (3)語(yǔ)句: 語(yǔ)句是
10、程序最基本的執(zhí)行單位,程序的功能就是通過(guò)對(duì)一系列語(yǔ)句的執(zhí)行來(lái)實(shí)現(xiàn)的。 (4)函數(shù)定義與調(diào)用,21,程序設(shè)計(jì)語(yǔ)言的語(yǔ)法,語(yǔ)句: 表達(dá)式語(yǔ)句:表達(dá)式加分號(hào)“;” 分支語(yǔ)句:實(shí)現(xiàn)分支控制過(guò)程 if (a b) x = a; else x = b; 循環(huán)語(yǔ)句:實(shí)現(xiàn)循環(huán)控制的過(guò)程 sum = 0; /* 初始化sum和i */ i = 1; while (i = 100) /* while循環(huán)語(yǔ)句 */ sum = sum + i; i = i + 1; 復(fù)合語(yǔ)句:用一對(duì)“ ”,將若干語(yǔ)句順序組合在一起就形成了一個(gè)程序段。,22,程序設(shè)計(jì)語(yǔ)言的語(yǔ)法,函數(shù)定義與調(diào)用: 函數(shù)是完成特定任務(wù)的獨(dú)立模塊,函數(shù)的
11、使用最主要涉及到函數(shù)的定義與調(diào)用。 輸入輸出: C語(yǔ)言沒(méi)有輸入輸出語(yǔ)句,用庫(kù)函數(shù) printf、scanf等實(shí)現(xiàn)。,23,程序的編譯與編程環(huán)境,程序的編譯 編譯器 程序 計(jì)算機(jī)直接能理解的指令序列 編譯器:對(duì)源程序進(jìn)行詞法分析、語(yǔ)法與語(yǔ)義分析,生成可執(zhí)行的代碼。 直接指出程序中的語(yǔ)法錯(cuò)誤 編程環(huán)境 包括編輯程序(Edit)、編譯(Compile)、調(diào)試(Debug)等過(guò)程。 掌握程序設(shè)計(jì)語(yǔ)言:根據(jù)語(yǔ)言的語(yǔ)法,用語(yǔ)言表達(dá)數(shù)據(jù)、實(shí)現(xiàn)程序的控制,并會(huì)使用編程環(huán)境。,24,C 語(yǔ)言上機(jī)過(guò)程,源程序 test.cpp test.obj 可執(zhí)行代碼 test.exe,25,編譯,連接,運(yùn)行,1.3 C語(yǔ)言
12、的發(fā)展歷史與特點(diǎn),歷史 1972年:貝爾實(shí)驗(yàn)室的Dennis Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了C語(yǔ)言。 1978年:B.W.Kernighan和D.Ritchie(簡(jiǎn)稱K 重復(fù)累加,用循環(huán)語(yǔ)句實(shí)現(xiàn),在循環(huán)過(guò)程中: (1) 判別 i 是不是偶數(shù):用分支控制語(yǔ)句來(lái)實(shí)現(xiàn)。 (2) 對(duì)循環(huán)次數(shù)進(jìn)行控制:通過(guò) i 值的變化,29,問(wèn)題分析與算法設(shè)計(jì),思路 確定算法 算法:一組明確的解決問(wèn)題的步驟,它產(chǎn)生結(jié)果并可在有限的時(shí)間內(nèi)終止。 算法的描述: 自然語(yǔ)言 偽代碼 流程圖:算法的圖形表示法,30,31,實(shí)現(xiàn)問(wèn)題求解的過(guò)程,2編輯程序 生成程序的源文件,C語(yǔ)言源文件的后綴為 .c / .cpp #
13、include int main(void) int i, sum = 0; for(i = 1; i = 100; i+) if (i%2 = 0) sum = sum + i; printf(%d, sum); return 0; ,32,實(shí)現(xiàn)問(wèn)題求解的過(guò)程,3程序編譯連接 編輯程序后,用該語(yǔ)言的編譯程序?qū)ζ溥M(jìn)行編譯,以生成二進(jìn)制代碼表示的目標(biāo)程序(.obj),與編程環(huán)境提供的庫(kù)函數(shù)進(jìn)行連接(Link)形成可執(zhí)行的程序(.exe)。 編譯程序指出語(yǔ)法錯(cuò)誤 語(yǔ)法錯(cuò)誤VS邏輯錯(cuò)誤,33,實(shí)現(xiàn)問(wèn)題求解的過(guò)程,4運(yùn)行與調(diào)試 經(jīng)過(guò)編輯、編譯、連接,生成執(zhí)行文件后,就可以在編程環(huán)境或操作系統(tǒng)環(huán)境中運(yùn)行該程序。 如果程序運(yùn)行所產(chǎn)生的結(jié)果不是你想要的結(jié)果,這是程序的語(yǔ)義錯(cuò)誤(邏輯錯(cuò)誤)。 調(diào)試:在程序中查找錯(cuò)誤并修改錯(cuò)誤的過(guò)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省實(shí)驗(yàn)中學(xué)廣州市天河區(qū)附屬實(shí)驗(yàn)學(xué)校2021-2022學(xué)年八年級(jí)下學(xué)期期中物理試題(含答案)
- 基層中醫(yī)藥知識(shí)培訓(xùn)課件
- (一模)哈三中2025屆高三第一次模擬考試 英語(yǔ)試題(含答案)
- 物業(yè)管理服務(wù)委托及管理費(fèi)支付協(xié)議
- 安東尼奇妙的冒險(xiǎn)故事讀后感
- 項(xiàng)目執(zhí)行工作計(jì)劃書(shū)與時(shí)間表安排
- 山西省晉中市太谷區(qū)職業(yè)中學(xué)校2024-2025學(xué)年高一上學(xué)期期末考試生物試題
- 企業(yè)文件保密制度表格化處理記錄
- 三農(nóng)問(wèn)題社會(huì)調(diào)查方法與技術(shù)指導(dǎo)書(shū)
- 離職員工知識(shí)產(chǎn)權(quán)保密協(xié)議
- 標(biāo)識(shí)標(biāo)牌制作及安裝項(xiàng)目技術(shù)方案
- 醫(yī)療器械物價(jià)收費(fèi)申請(qǐng)流程
- DB3410T 34-2024特定地域單元生態(tài)產(chǎn)品價(jià)值核算規(guī)范
- 江蘇紅豆實(shí)業(yè)股份有限公司償債能力分析
- 青島中石化輸油管道爆炸事故調(diào)查報(bào)告
- 2024年蘇州職業(yè)大學(xué)高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 充電樁采購(gòu)安裝投標(biāo)方案(技術(shù)方案)
- 教科版小學(xué)科學(xué)六年級(jí)下冊(cè)單元練習(xí)試題及答案(全冊(cè))
- 《Java程序設(shè)計(jì)》電子課件
- 乳腺癌患者的疼痛護(hù)理課件
- 研課標(biāo)說(shuō)教材修改版 八年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論