已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
程序設計基礎 C語言程序設計,主講:朱海燕 ,課程性質 專業(yè)必修課 課程類型 理論課(3/5),含實踐(2/5) 學分 3.5學分 學時(周學時) 85學時(5學時/周),程序設計基礎,課程描述 程序設計基礎是計算機科學與技術、軟件工程、電子信息工程等專業(yè)的一門專業(yè)基礎課,是多門后續(xù)專業(yè)課程的先導課。 程序設計基礎是一門實踐性很強的課程,要求學生掌握C程序設計基礎知識,程序設計方法與基本數(shù)據(jù)結構。通過上機實踐培養(yǎng)學生分析具體問題,建立數(shù)學模型,用C語言解決實際問題的能力,培養(yǎng)學生創(chuàng)新意識和提高學生實踐能力。 通過該課程的學習,學生不僅要掌握高級程序設計語言的知識,更重要的是在實踐中逐步掌握程序設計的思想和方法,培養(yǎng)問題求解和語言的應用能力。,程序設計基礎,課程資料 教學大綱 教學進度表 實驗進度表 課件 實驗資源 課程教學平臺 /eol/homepage/common/opencourse/,程序設計基礎,程序設計基礎,教學要求 掌握程序設計語言的基本知識 常用算法 初步的程序設計能力 學習方法 自主學習 重視上機實踐,課程考核 考核方式:期末閉卷考試+平時實驗成績并重 評定標準:按照教學大綱的比例 (平時成績占10%,期中考試占20%,實驗占30%,期末考試占40%),程序設計基礎,教材和參考書,C語言程序設計,何欽銘、顏暉主編,高等教育出版社,2008 C語言編程(第3版),美Stephen, G.Kochan,張小潘譯,電子工業(yè)出版社,2006 C語言教程(第4版),美Al Kelley, Ira Pohl,徐波譯,機械工業(yè)出版社,2007 標準C語言基礎教程(第4版),美Gary J. Bronson,單先余等譯,電子工業(yè)出版社,2006 C程序設計語言,美Brian W. Kernighan, Dennis M. Ritchie,徐寶文等譯,機械工業(yè)出版社,2006,如何盡快學會用C語言進行程序設計,了解程序設計語言(C語言) 模仿、改寫、編寫 通過不斷的編程實踐,逐步領會和掌握程序設計的基本思想和方法。,Chap 1 引 言,一個C語言程序 程序與程序設計語言 C語言的發(fā)展歷史與特點 實現(xiàn)問題求解的過程,本章要點,什么是程序? 程序設計語言包含哪些功能? 在語法上包含哪些內容? 結構化程序設計有哪些基本的控制結構? C語言有哪些特點? C語言程序的基本框架如何? 形成一個可運行的C語言程序需要經(jīng)過哪些步驟? 如何用流程圖描述簡單的算法?,1.1 一個C語言程序,例1-1求階乘問題。輸入一個正整數(shù)n,輸出n!。 #include /* 編譯預處理命令 */ int main(void) /* 主函數(shù) */ int n; /* 變量定義 */ int factorial(int n); /* 函數(shù)聲明 */ scanf(“%d“, ,輸入 4 輸出 24,C程序由函數(shù)組成 有且只有一個主函數(shù)main,1.2 程序與程序設計語言,程序 人們?yōu)榻鉀Q某種問題用計算機可以識別的代碼編排的一系列加工步驟。 程序的執(zhí)行過程實際上是對程序所表達的數(shù)據(jù)進行處理的過程。 程序設計語言 提供了一種表達數(shù)據(jù)與處理數(shù)據(jù)的功能 要求程序員按照語言的規(guī)范編程,1.2 程序與程序設計語言,程序與指令 程序設計語言的功能 程序設計語言的語法 程序的編譯與編程環(huán)境,程序與指令,指令:計算機的一個最基本的功能 如實現(xiàn)一次加法運算或實現(xiàn)一次大小的判別 計算機的指令系統(tǒng):計算機所能實現(xiàn)的指令的集合 程序:一系列計算機指令的有序組合,程序與指令,例1-2 編寫程序,分別求和與乘積 虛擬的計算機指令系統(tǒng)(7條指令 ) 指令1:Input X 將當前輸入數(shù)據(jù)存儲到內存的X單元 指令2:Output X 將內存X單元的數(shù)據(jù)輸出。 指令3:Add X Y Z 將內存X單元的數(shù)據(jù)與Y單元的數(shù)據(jù)相加并將結果存儲到Z單元。 指令4:Sub X Y Z 將內存X單元的數(shù)據(jù)與Y單元的數(shù)據(jù)相減并將結果存儲到Z單元。 指令5:BranchEq X Y P 比較X與Y,若相等則程序跳轉到P處執(zhí)行,否則繼續(xù)執(zhí)行下一條指令。 指令6:Jump P 程序跳轉到P處執(zhí)行。 指令7:Set X Y 將內存Y單元的值設為X。,程序與指令,輸入3個數(shù)A, B和C,求A+B+C的結果 Input A; 輸入第1個數(shù)據(jù)到存儲單元A中 Input B; 輸入第2個數(shù)據(jù)到存儲單元B中 Input C; 輸入第3個數(shù)據(jù)到存儲單元C中 Add A B D; 將A、B相加并將結果存在D中 Add C D D; 將C、D相加并將結果存在D中 Output D; 輸出D的內容,程序與指令,輸入2個數(shù)A和B,求A*B的結果 1Input A; 輸入第1個數(shù)據(jù)到存儲單元A中 2Input B; 輸入第2個數(shù)據(jù)到存儲單元B中 3Set 0 X; 將X設為0,此處X用以統(tǒng)計A累加的次數(shù) 4Set 0 Z; 將Z設為0,此處Z用以存放A*B的結果 5BranchEq X B 9; 判別X與B是否相等;若相等說明A已累加了B次,程序跳轉到第9條指令,輸出結果 6Add Z A Z; Z = Z + A 7Add 1 X X; X = X + 1 8Jump 5; 程序跳轉到第5條指令,繼續(xù)循環(huán)執(zhí)行第6條、7條指令 9Output Z; 輸出Z的值,該值等于A*B,程序設計語言的功能,數(shù)據(jù)表達:表達所要處理的數(shù)據(jù) 流程控制:表達數(shù)據(jù)處理的流程,數(shù)據(jù)表達,數(shù)據(jù)表達:一般將數(shù)據(jù)抽象為若干類型 數(shù)據(jù)類型:對某些具有共同特點的數(shù)據(jù)集合的總稱 代表的數(shù)據(jù)(數(shù)據(jù)類型的定義域) 在這些數(shù)據(jù)上做些什么(即操作或稱運算) 例如:整數(shù)類型 包含的數(shù)據(jù):,-2,-1,0,1,2, 作用在整數(shù)上的運算:+ 、 - 、 * 、 /等,數(shù)據(jù)表達,C語言提供的數(shù)據(jù)類型 基本數(shù)據(jù)類型:程序設計語言事先定義好,供程序員直接使用,如整型、實型(浮點型)、字符型等。 構造類型:由程序員構造,如數(shù)組、結構、文件、指針等。 各種數(shù)據(jù)類型的常量與變量形式 常量(常數(shù))與變量,流程控制,結構化程序設計方法 將復雜程序劃分為若干個相互獨立的模塊 模塊:一條語句(Statement)、一段程序或一個函數(shù)(子程序)等 單入口、單出口,流程控制,任何程序都可以將模塊通過3種基本的控制結構進行組合來實現(xiàn),順序結構,循環(huán)結構,分支結構,流程控制,語句級控制:3種基本的控制結構 順序控制結構:自然順序執(zhí)行 分支控制結構(選擇結構):根據(jù)不同的條件來選擇所要執(zhí)行的模塊 循環(huán)控制結構:重復執(zhí)行某個模塊 單位級控制:函數(shù)的定義與調用 處理復雜問題時, 將程序分為若干個相對獨立的子程序(函數(shù)),程序設計語言的語法,用程序設計語言所寫的程序必須符合相應語言的語法 源程序(源代碼)是一個字符序列,這些字符序列按順序組成了一系列“單詞”,“單詞”的組合就形成了語言有意義的語法單位,一些簡單語法單位的組合又形成了更復雜的語法單位,最后一系列語法單位組合成程序。,程序設計語言的語法,C語言的主要“單詞” (1)標識符: C語言的標識符規(guī)定由字母、數(shù)字以及下劃線組成,且第一個字符必須是字母或下劃線。 (2)保留字(關鍵字): 它們是C語言規(guī)定的、賦予它們以特定含義、有專門用途的標識符。 (3)自定義標識符: 包括在程序中定義的變量名、數(shù)據(jù)類型名、函數(shù)名以及符號常量名。有意義的英文單詞 (4)常量: 常量是有數(shù)據(jù)類型的,如,123、12.34 (5)運算符。代表對各種數(shù)據(jù)類型實際數(shù)據(jù)對象的運算。如,+(加)、-(減)、*(乘)、/(除)、%(求余)、(大于),程序設計語言的語法,C語言的主要語法單位 (1)表達式: 運算符與運算對象組合就形成了表達試。如,2 + 3 * 4 (2)變量定義: 變量也有數(shù)據(jù)類型,所以在定義變量時要說明相應變量的類型。如: int i; (3)語句: 語句是程序最基本的執(zhí)行單位,程序的功能就是通過對一系列語句的執(zhí)行來實現(xiàn)的。 (4)函數(shù)定義與調用,程序設計語言的語法,其中,(3)語句: 表達式語句:表達式加分號“;” 分支語句:實現(xiàn)分支控制過程 if (a b) x = a; else x = b; 循環(huán)語句:實現(xiàn)循環(huán)控制的過程 sum = 0; /* 初始化sum和i */ i = 1; while (i = 100) /* while循環(huán)語句 */ sum = sum + i; i = i + 1; 復合語句:用一對“ ”,將若干語句順序組合在一起就形成了一個程序段。,程序設計語言的語法,其中,(4)函數(shù)定義與調用 函數(shù)是完成特定任務的獨立模塊,函數(shù)的使用最主要涉及到函數(shù)的定義與調用。 輸入輸出: C語言沒有輸入輸出語句,用庫函數(shù)printf、scanf等實現(xiàn)。,程序的編譯與編程環(huán)境,程序的編譯 編譯器 程序 計算機直接能理解的指令序列 編譯器:對源程序進行詞法分析、語法與語義分析,生成可執(zhí)行的代碼。 直接指出程序中的語法錯誤 編程環(huán)境 包括編輯程序(Edit)、編譯(Compile)、調試(Debug)等過程。 掌握程序設計語言:根據(jù)語言的語法,用語言表達數(shù)據(jù)、實現(xiàn)程序的控制,并會使用編程環(huán)境。,C 語言上機過程,源程序 test.cpp test.obj 可執(zhí)行代碼 test.exe,編譯,連接,運行,1.3 C語言的發(fā)展歷史與特點,歷史 1972年:貝爾實驗室的Dennis Ritchie在B語言的基礎上設計并實現(xiàn)了C語言。 1978年:B.W.Kernighan和D.Ritchie(簡稱K & R)合著的The C Programming Language是各種C語言版本的基礎,稱之為舊標準C語言。 1983年:美國國家標準化協(xié)會(ANSI)制定了新的C語言標準,稱ANSI C。,C語言的特點,1C語言是一種結構化語言 2C語言語句簡潔、緊湊,使用方便、靈活 32個關鍵字,9種控制語句,程序書寫形式自由。 3C語言程序易于移植 C語言將與硬件有關的因素從語言主體中分離出來,通過庫函數(shù)或其他實用程序實現(xiàn)它們。 4C語言有強大的處理能力 5生成的目標代碼質量高,運行效率高,C語言的特點,6數(shù)據(jù)類型檢查不嚴格,表達式出現(xiàn)二義性,不具備數(shù)據(jù)越界自動檢查功能,運算符的優(yōu)先級與結合性對初學者難于掌握。 C 語言中大小寫字母代表不同含義,1.4 實現(xiàn)問題求解的過程,問題:求1100間所有偶數(shù)的和。 1問題分析與算法設計 求在一定范圍內(1100)、滿足一定條件(偶數(shù))的若干整數(shù)的和,求累加和。,思路:設置一個變量(sum),其初值為0,然后在1100的數(shù)中(i)尋找偶數(shù),將它們一個一個累加到sum中。 一步累加:sum = sum + i; 重復累加,用循環(huán)語句實現(xiàn),在循環(huán)過程中: (1) 判別 i 是不是偶數(shù):用分支控制語句來實現(xiàn)。 (2) 對循環(huán)次數(shù)進行控制:通過 i 值的變化,問題分析與算法設計,思路 確定算法 算法:一組明確的解決問題的步驟,它產(chǎn)生結果并可在有限的時間內終止。 算法的描述: 自然語言 偽代碼 流程圖:算法的圖形表示法,實現(xiàn)問題求解的過程,2編輯程序 生成程序的源文件,C語言源文件的后綴為 .c / .cpp #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; ,實現(xiàn)問題求解的過程,3程序編譯連接 編輯程序后,用該語言的編譯程序對其進行編譯,以生成二進制代
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東中醫(yī)類事業(yè)編考試題及答案
- 2025年大專藝術設計教師崗筆試及答案
- 2025年計算機專業(yè)知識面試題庫及答案
- 2025年保定市事業(yè)編考試題及答案
- 2025年??h事業(yè)單位考試題目及答案
- 2025年第三方檢測的面試題庫及答案
- 2025年定向井工程師面試題庫及答案
- 2026年貴州交通職業(yè)技術學院單招職業(yè)技能測試模擬測試卷帶答案解析
- 2025年上海財經(jīng)大學浙江學院單招職業(yè)傾向性考試題庫帶答案解析
- 2024年金門縣招教考試備考題庫及答案解析(必刷)
- 婦科醫(yī)師年終總結和新年計劃
- 靜脈用藥調配中心(PIVAS)年度工作述職報告
- nccn臨床實踐指南:宮頸癌(2025.v2)課件
- DB11∕T 1191.1-2025 實驗室危險化學品安全管理要求 第1部分:工業(yè)企業(yè)
- 山東省濟南市2025年中考地理真題試卷附真題答案
- 起重機檢測合同協(xié)議
- 黨支部書記2025年度抓基層黨建工作述職報告
- 2025版過敏性休克搶救指南(醫(yī)護實操版)
- 融媒體考試試題及答案
- 刮板流量計課件
- 鉗工安全操作規(guī)程完整版
評論
0/150
提交評論