C語言程序設計基本概念PPT課件_第1頁
C語言程序設計基本概念PPT課件_第2頁
C語言程序設計基本概念PPT課件_第3頁
C語言程序設計基本概念PPT課件_第4頁
C語言程序設計基本概念PPT課件_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、20.04.2021,1,C語言程序設計,任課教師介紹 許 創(chuàng) 副教授 (工學院計算機系) 手機:692211 E-mail: 網(wǎng)站: FTP:05,20.04.2021,2,上機習題,CH1EX3: 調(diào)試程序,找出其中錯誤并改正。 CH2ABS: a, b是任意輸入的兩個整數(shù),計算 a+|b|,并顯示計算結(jié)果。 CH2CVS: 輸入一個華氏溫度F,輸出對應的攝氏溫度。公式為:c=5/9(F-32) 練習:2.6 2.7 2.8,20.04.2021,3,第1章 C語言程序設計基本概念,了解C語言的歷史和特點 熟悉計算機語言的不同類型 了解C語言的結(jié)構(gòu) 理解C語言程序的開

2、發(fā)過程 了解算法的概念 了解結(jié)構(gòu)化程序設計方法,學習目標,20.04.2021,4,C語言的特點 語言簡潔、緊湊,使用方便、靈活 運算符豐富,具有多種運算功能 有豐富的數(shù)據(jù)類型 生成代碼質(zhì)量高,程序執(zhí)行效率高 C程序的可移植性好 是一種結(jié)構(gòu)化程序設計語言 語法限制不嚴,程序設計自由度大 C提供的位運算可直接對硬件操作,20.04.2021,5,程序設計語言 人與計算機進行信息交流的工具 機器語言 匯編語言 高級語言 面向過程語言 (C、PASCAL等) 面向?qū)ο笳Z言 (JAVA、C+等) 甚高級語言 (尚在開發(fā)),20.04.2021,6,機器語言 1、與計算機硬件的設計密切相關(guān) (無移植性)

3、 2、是計算機能直接識別的語言 3、由一組二進制0和1序列構(gòu)成,【例】計算 4+8 取數(shù) 1011 0000 0000 0100 將4送累加器 加 0000 0100 0000 1000 8與累加器中的4相加 停機 1111 0100,特點:繁瑣、難記、難讀、難寫、不可移植,20.04.2021,7,匯編語言 1、與計算機硬件的設計密切相關(guān) 2、計算機不能直接識別 3、計算機基本操作是采用英語縮寫的助記符來編寫程序,【例】計算 4+8 MOVE AL, 4 將4 送累加器 ADD AL, 8 8 與累加器中的 4相加 HLT 停機,20.04.2021,8,匯編程序: 將匯編語言程序轉(zhuǎn)換為計算

4、機能識別的機器語言,20.04.2021,9,高級語言 基本與計算機的硬件設備無關(guān),【例】計算4+8(用C語言編寫) sum=4+8;,編譯程序: 高級語言轉(zhuǎn)換為機器語言的翻譯程序,20.04.2021,10,簡單的C程序?qū)嵗?運行結(jié)果: Welcome to C programming.,【例1-1】 /第一個C程序 #includestdio.h void main() /* 函數(shù)頭 */ printf(Welcome to C programming.n); ,注釋,頭文件,主函數(shù)、注釋,系統(tǒng)提供的輸出函數(shù),20.04.2021,11,【例1-2】編寫求三數(shù)中最大值問題的程序,#incl

5、ude int max_value(int a, int b, int c) int max; if(ab) max=a; else max=b; if(maxc) max=c; return (max); ,void main() int x, y, z, maxx; scanf(%d%d%d, ,輸入:8 5 7 輸出:max=8,20.04.2021,12,C語言程序的構(gòu)成 C程序由函數(shù)組成 每個函數(shù)完成相對獨立的功能 C提供了豐富的庫函數(shù) 每個C程序都有一個叫做main的主函數(shù) main( )后面花括號內(nèi)的部分叫函數(shù)體 函數(shù)體含“說明部分”和“執(zhí)行部分” 說明部分和執(zhí)行部分各由若干語句

6、組成 語句以分號為結(jié)束標記,20.04.2021,13,C函數(shù)的一般形式 函數(shù)類型 函數(shù)名(形式參數(shù)表) 說明、定義部分 函數(shù)執(zhí)行部分 ,20.04.2021,14,Niklaus Wirth 提出的著名公式: 數(shù)據(jù)結(jié)構(gòu)+算法 = 程序 什么是算法? 對特定問題求解方法和步驟的一種描述。 算法的兩大要素: 操作 控制結(jié)構(gòu) 算法解決的問題: 做什么 如何做,算法,20.04.2021,15,算法的特性: 1. 有窮性 2. 確定性 3. 有效性 4. 有零個或多個輸入 5. 有一個或多個輸出 描述算法的工具: 自然語言 偽代碼 流程圖 NS圖 等等,20.04.2021,16,【例】求三個數(shù)中最

7、大值問題,自然語言: 日常使用的語言 先將a,b進行比較,找出其中的大數(shù);然后再把它和第三個數(shù)c進行比較,如果它比c大,則它就是最大數(shù),否則c是最大數(shù)。,偽代碼: 介于自然語言和計算機語言之間的文字和符號進行描述,IF ab THEN max=a ELSE max=b IF maxc THEN 輸出 max ELSE 輸出 c,20.04.2021,17,流程圖: 傳統(tǒng)圖語言表示法 ANSI規(guī)定了一些常用的流程圖符號:,起止框 輸入輸出框 判斷框 處理框 流程線 連接圈,【例】醬油與醋的問題:試用自然語言描述如何將醬油與醋互換位置的過程。,20.04.2021,18,三個數(shù)中最大值問題的流程圖

8、(圖1-4),20.04.2021,19,N-S圖(結(jié)構(gòu)化流程圖): 圖語言表示法 三個數(shù)中最大值問題的 N-S圖(圖1-5),20.04.2021,20,結(jié)構(gòu)化程序設計方法,結(jié)構(gòu)化程序設計的基本方法: 自頂向下,逐步求精,將復雜問題分解為若干的獨立的小問題(小模塊)。,【例】求解兩個數(shù)的平均值 1、分解:問題分解為三個模塊 : S1: 輸入兩個數(shù)a, b S2: 求兩個數(shù)的平均值賦給aver S3:輸出平均值,20.04.2021,21,2、實現(xiàn)方法,算法細化 S1: 調(diào)用輸入函數(shù),完成輸入 S2: 設計一個求解平均值的函數(shù)averge( ) S3: 調(diào)用輸出函數(shù),完成輸出,3、C 語言實現(xiàn)

9、主函數(shù)的編程 /求兩個數(shù)的平均值 void main() /主函數(shù) float a, b, ave; /聲明a、b和ave為實型變量 scanf(%f%f, /輸出ave的值 ,20.04.2021,22,4、逐步求精:設計averag(float x,float y)函數(shù)的算法(設兩個參數(shù)為float x,float y) S2.1 :把x加y的和除2的值送給aver S2.2 :把aver的值返回給主函數(shù)。,5、C 語言實現(xiàn)averag(float x,float y)函數(shù)的編程 #include float average(float x, float y) /求兩個數(shù)的平均值 floa

10、t aver; /聲明aver為實型變量 aver=(x+y)/2; /計算兩個數(shù)的平均值賦給aver return (aver); /aver的值作為函數(shù)的的返回值 ,20.04.2021,23,6、兩模塊連接成一個完整的求解程序 #include float average(float x, float y) /求兩個數(shù)的平均值 float z, aver; /聲明aver為實型變量 aver=(x+y)/2; /計算兩個數(shù)的平均值賦給aver return (aver); /aver的值作為函數(shù)的的返回值 void main() /主函數(shù) float a, b, ave; /聲明a、b和

11、ave為實型變量 scanf(%f%f, /輸出ave的值 ,20.04.2021,24,用自然語言描述: S1: 輸入兩個整數(shù)x, y S2: 交換x, y 細化S2: S2.1:將x賦給t S2.2:將y賦給x S2.3:將t賦給y,相應的程序段: /輸入x、y scanf(%d%d, ,【例1-3】設計兩整數(shù)交換的算法,20.04.2021,25,兩數(shù)交換的另一個奇特難懂的算法: S1: 輸入兩個整數(shù)x, y S2: 將x+y賦給x S3: 將x-y賦給y S4: 將x-y賦給x 相應的程序段: scanf(%d%d, ,20.04.2021,26,【例】對于一個大于3的整數(shù),判斷它是不

12、是素數(shù)(循環(huán)之例) 算法如下: 1. 輸入n 2. i=2 3. n被i除,得余數(shù)r 4. 若r=0,則輸出n“不是素數(shù)”,算法結(jié)束 5. i=i+1 6. 若in/2,則重新執(zhí)行3. ;否則執(zhí)行7. 7. 輸出n“是素數(shù)”,算法結(jié)束,20.04.2021,27,結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu): 順序結(jié)構(gòu) 選擇結(jié)構(gòu)(if_else) 循環(huán)結(jié)構(gòu)(while, repeat_until),順序結(jié)構(gòu):,流程圖,N-S圖,先執(zhí)行A操作, 再執(zhí)行B操作。,20.04.2021,28,選擇結(jié)構(gòu):,流程圖,N-S圖,當P 條件成立 (為真T)執(zhí)行A 否則 (為假 F)執(zhí)行B,20.04.2021,29,循環(huán)結(jié)

13、構(gòu)1(while ):,流程圖,N-S圖,當P條件成立 (為真 T)反復執(zhí)行A, 直到P為 假時結(jié)束。,20.04.2021,30,循環(huán)結(jié)構(gòu)2(repeat_until),流程圖,N-S圖,先執(zhí)行A操作,再判斷P,若為假,再執(zhí)行A,直到P為 真時結(jié)束。,20.04.2021,31,三種基本結(jié)構(gòu)的共同特點: 1)單入口 2)單出口 3)無死語句 4)無死循環(huán),順序,選擇,循環(huán),20.04.2021,32,C程序的編輯、編譯和執(zhí)行,編輯:利用編輯器,通過鍵盤將C源程序輸入到計算機,并以文件形成保存到磁盤。 編譯:利用編譯器,將C源程序編譯成目標程序。 連接:利用連接器,將C已編譯的目標程序和庫函數(shù)

14、連接之后,生成可執(zhí)行文件,并以文件形成存入到磁盤上,文件擴展名為 .exe。 運行: 在操作系統(tǒng)下運行可執(zhí)行文件。,20.04.2021,33,上機實踐 運行環(huán)境turbo C (2.0或3.0) 編輯錄入、修改 編譯翻譯為二進制代碼(obj) 連接連接各模塊的二進制代碼,生成可執(zhí)行文件(exe) 運行運行程序,20.04.2021,34,Turbo C 2.0上機環(huán)境簡介,四個最主要菜單 File 創(chuàng)建新文件、打開文件、保存文件、改變目錄、退出系統(tǒng) Edit 切換到編輯狀態(tài) Compile 編譯、連接成目標文件或可執(zhí)行文件 Run 自動編譯、連接并運行,20.04.2021,35,Turbo

15、 C 3.0上機環(huán)境簡介,五個最主要菜單 File 創(chuàng)建新文件、打開文件、保存文件、改變目錄、退出系統(tǒng) Edit 常用編輯命令 Compile 編譯、連接成目標文件或可執(zhí)行文件 Run 自動編譯、連接并運行 Windows 窗口切換,20.04.2021,36,可用快捷鍵打開菜單 如按+F 可打開文件菜單 輸入程序前一般應先改變好目錄 File/Change dir 先編譯、后保存、再運行 在3.0版本,可用鼠標,在多程序窗口環(huán)境下可選Windows-Next命令作窗口切換,20.04.2021,37,Turbo C 常用編輯命令,上翻一屏 下翻一屏 移到行首 移到行尾 QR移到文件首 QC移到文件尾,20.04.2021,38,QF查找 I查找下一個 QA查找并替換 Y刪除一行 N或插入一行 向前刪一個字符

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論