c语言程序ppt课件,c语言ppt课件
PPT內容
這是c語言ppt課件,包括了一個C語言程序,程序與程序設計語言,C語言的發展歷史與特點,實現問題求解的過程等內容,歡迎點擊下載。
C語言程序設計
2008版
C語言程序設計
教學要求
掌握程序設計語言的基本知識
常用算法
初步的程序設計能力
學習方法
自主學習
重視上機實踐
如何盡快學會用C語言進行程序設計
了解程序設計語言(C語言)
模仿、改寫、編寫
通過不斷的編程實踐,逐步領會和掌握程序設計的基本思想和方法。
教材和參考書
C語言程序設計,何欽銘、顏暉主編,高等教育出版社,2008
C語言編程(第3版),[美]Stephen, G.Kochan,張小潘譯,電子工業出版社,2006
C語言教程(第4版),[美]Al Kelley, Ira Pohl,徐波譯,機械工業出版社,2007
標準C語言基礎教程(第4版),[美]Gary J. Bronson,單先余等譯,電子工業出版社,2006
C程序設計語言,[美]Brian W. Kernighan, Dennis M. Ritchie,徐寶文等譯,機械工業出版社,2006
Chap 1? 引? 言
一個C語言程序
程序與程序設計語言
C語言的發展歷史與特點
實現問題求解的過程
本章要點
什么是程序?程序設計語言包含哪些功能?
程序設計語言在語法上包含哪些內容?
結構化程序設計有哪些基本的控制結構?
C語言有哪些特點?
C語言程序的基本框架如何?
形成一個可運行的C語言程序需要經過哪些步驟?
如何用流程圖描述簡單的算法?
1.1? 一個C語言程序
例1-1求階乘問題。輸入一個正整數n,輸出n!。
#include ???????????????????? /* 編譯預處理命令 */
int main(void)???????????????????????????? /* 主函數 */
{
int n;????????????????? ??????????????????? /* 變量定義 */
int factorial(int n);??????????????????? /* 函數聲明 */
scanf("%d", &n);????????????????????? /* 輸入一個整數 */
printf(“%d\n”, factorial(n));??????? /* 調用函數計算階乘 */
return 0;
}
int factorial(int n)????? ??????? /* 定義計算 n! 的函數 */
{
int i, fact = 1;
for(i = 1; i <= n; i++)???????????????? /* 循環 */
fact = fact * i;
return fact;
}
1.2 程序與程序設計語言
程序
人們為解決某種問題用計算機可以識別的代碼編排的一系列加工步驟。
程序的執行過程實際上是對程序所表達的數據進行處理的過程。
程序設計語言
提供了一種表達數據與處理數據的功能
要求程序員按照語言的規范編程
1.2 程序與程序設計語言
程序與指令
程序設計語言的功能
程序設計語言的語法
程序的編譯與編程環境
程序與指令
指令:計算機的一個最基本的功能
如實現一次加法運算或實現一次大小的判別
計算機的指令系統:計算機所能實現的指令的集合
程序:一系列計算機指令的有序組合
程序與指令
例1-2? 編寫程序,分別求和與乘積
虛擬的計算機指令系統(7條指令 )
指令1:Input X???? 將當前輸入數據存儲到內存的X單元
指令2:Output X?? 將內存X單元的數據輸出。
指令3:Add X Y Z??? 將內存X單元的數據與Y單元的數據相加并將結果存儲到Z單元。
指令4:Sub X Y Z??? 將內存X單元的數據與Y單元的數據相減并將結果存儲到Z單元。
指令5:BranchEq X Y P??? 比較X與Y,若相等則程序跳轉到P處執行,否則繼續執行下一條指令。
指令6:Jump P??? 程序跳轉到P處執行。
指令7:Set X Y??? 將內存Y單元的值設為X。
程序與指令
輸入輸入3個數A, B和C,求A+B+C的結果
Input A;??????????? 輸入第1個數據到存儲單元A中
Input B;??????????? 輸入第2個數據到存儲單元B中
Input C;??????????? 輸入第3個數據到存儲單元C中
Add A B D;?????? 將A、B相加并將結果存在D中
Add C D D;?????? 將C、D相加并將結果存在D中
Output D;???????? 輸出D的內容
程序與指令
輸入2個數A和B,求A*B的結果
1.Input A;????? 輸入第1個數據到存儲單元A中
2.Input B;????? 輸入第2個數據到存儲單元B中
3.Set 0 X;????? 將X設為0,此處X用以統計A累加的次數
4.Set 0 Z;????? 將Z設為0,此處Z用以存放A*B的結果
5.BranchEq X B 9;??? 判別X與B是否相等;若相等說明A已累加了B次,程序跳轉到第9條指令,輸出結果
6.Add Z A Z;?????? Z = Z + A
7.Add 1 X X;?????? X = X + 1
8.Jump 5;?????????? 程序跳轉到第5條指令,繼續循環執行第6條、7條指令
9.Output Z;???????? 輸出Z的值,該值等于A*B
程序設計語言的功能
數據表達:表達所要處理的數據
流程控制:表達數據處理的流程
數據表達
數據表達:一般將數據抽象為若干類型
數據類型:對某些具有共同特點的數據集合的總稱
代表的數據(數據類型的定義域)
在這些數據上做些什么(即操作或稱運算)
例如:整數類型
包含的數據:{…,-2,-1,0,1,2,…}
作用在整數上的運算:+ 、 - 、 * 、 /等
數據表達
C語言提供的數據類型
基本數據類型:程序設計語言事先定義好,供程序員直接使用,如整型、實型(浮點型)、字符型等。
構造類型:由程序員構造,如數組、結構、文件、指針等。
各種數據類型的常量與變量形式
常量(常數)與變量
流程控制
結構化程序設計方法
將復雜程序劃分為若干個相互獨立的模塊
模塊:一條語句(Statement)、一段程序或一個函數(子程序)等
單入口、單出口
流程控制
任何程序都可以將模塊通過3種基本的控制結構進行組合來實現
流程控制
語句級控制:3種基本的控制結構
順序控制結構:自然順序執行
分支控制結構(選擇結構):根據不同的條件來選擇所要執行的模塊
循環控制結構:重復執行某個模塊
單位級控制:函數的定義與調用
處理復雜問題時, 將程序分為若干個相對獨立的子程序(函數)
程序設計語言的語法
用程序設計語言所寫的程序必須符合相應語言的語法
源程序(源代碼)是一個字符序列,這些字符序列按順序組成了一系列“單詞”,“單詞”的組合就形成了語言有意義的語法單位,一些簡單語法單位的組合又形成了更復雜的語法單位,最后一系列語法單位組合成程序。
程序設計語言的語法
C語言的主要“單詞”
(1)標識符: C語言的標識符規定由字母、數字以及下劃線組成,且第一個字符必須是字母或下劃線。
(2)保留字(關鍵字): 它們是C語言規定的、賦予它們以特定含義、有專門用途的標識符。
(3)自定義標識符: 包括在程序中定義的變量名、數據類型名、函數名以及符號常量名。有意義的英文單詞
(4)常量: 常量是有數據類型的,如,123、12.34
(5)運算符。代表對各種數據類型實際數據對象的運算。如,+(加)、-(減)、*(乘)、/(除)、%(求余)、>(大于)
程序設計語言的語法
C語言的主要語法單位
(1)表達式: 運算符與運算對象組合就形成了表達試。如,2 + 3 * 4
(2)變量定義: 變量也有數據類型,所以在定義變量時要說明相應變量的類型。如: int? i;
(3)語句: 語句是程序最基本的執行單位,程序的功能就是通過對一系列語句的執行來實現的。
(4)函數定義與調用
程序設計語言的語法
其中,(3)語句:
表達式語句:表達式加分號“;”
分支語句:實現分支控制過程
if (a > b)? x = a;
else?? x = b;
循環語句:實現循環控制的過程
sum = 0;????????? ??????? /* 初始化sum和i */
i = 1;
while (i <= 100) {??????? /* while循環語句 */
sum = sum + i;
i = i + 1;
}
復合語句:用一對“{ }”,將若干語句順序組合在一起就形成了一個程序段。
程序設計語言的語法
其中,(4)函數定義與調用
函數是完成特定任務的獨立模塊,函數的使用最主要涉及到函數的定義與調用。
輸入輸出:
C語言沒有輸入輸出語句,用庫函數printf、scanf等實現。
程序的編譯與編程環境
程序的編譯
編譯器
程序 ————》計算機直接能理解的指令序列
編譯器:對源程序進行詞法分析、語法與語義分析,生成可執行的代碼。
直接指出程序中的語法錯誤
編程環境
包括編輯程序(Edit)、編譯(Compile)、調試(Debug)等過程。
掌握程序設計語言:根據語言的語法,用語言表達數據、實現程序的控制,并會使用編程環境。
C 語言上機過程
源程序
test.cpp??????????????????????????? test.obj
可執行代碼
test.exe
1.3? C語言的發展歷史與特點
歷史
1972年:貝爾實驗室的Dennis Ritchie在B語言的基礎上設計并實現了C語言。
1978年:B.W.Kernighan和D.Ritchie(簡稱K & R)合著的《The C Programming Language》是各種C語言版本的基礎,稱之為舊標準C語言。
1983年:美國國家標準化協會(ANSI)制定了新的C語言標準,稱ANSI C。
C語言的特點
1.C語言是一種結構化語言
2.C語言語句簡潔、緊湊,使用方便、靈活
32個關鍵字,9種控制語句,程序書寫形式自由。
3.C語言程序易于移植
C語言將與硬件有關的因素從語言主體中分離出來,通過庫函數或其他實用程序實現它們。
4.C語言有強大的處理能力
5.生成的目標代碼質量高,運行效率高
C語言的特點
6.數據類型檢查不嚴格,表達式出現二義性,不具備數據越界自動檢查功能,運算符的優先級與結合性對初學者難于掌握。
C 語言中大小寫字母代表不同含義
1.4? 實現問題求解的過程
問題:求1~100間所有偶數的和。
1.問題分析與算法設計
求在一定范圍內(1~100)、滿足一定條件(偶數)的若干整數的和,求累加和。
思路:設置一個變量(sum),其初值為0,然后在1~100的數中(i)尋找偶數,將它們一個一個累加到sum中。
一步累加:sum = sum + i;
重復累加,用循環語句實現,在循環過程中:
(1) 判別 i 是不是偶數:用分支控制語句來實現。
(2) 對循環次數進行控制:通過 i 值的變化
問題分析與算法設計
思路 ——》確定算法
算法:一組明確的解決問題的步驟,它產生結果并可在有限的時間內終止。
算法的描述:
自然語言
偽代碼
流程圖:算法的圖形表示法
實現問題求解的過程
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;
}
實現問題求解的過程
3.程序編譯連接
編輯程序后,用該語言的編譯程序對其進行編譯,以生成二進制代碼表示的目標程序(.obj),與編程環境提供的庫函數進行連接(Link)形成可執行的程序(.exe)。
編譯程序指出語法錯誤
語法錯誤VS邏輯錯誤
實現問題求解的過程
4.運行與調試
經過編輯、編譯、連接,生成執行文件后,就可以在編程環境或操作系統環境中運行該程序。
如果程序運行所產生的結果不是你想要的結果,這是程序的語義錯誤(邏輯錯誤)。
調試:在程序中查找錯誤并修改錯誤的過程。
調試的方法
設置斷點
單步跟蹤
調試是一個需要耐心和經驗的工作,也是程序設計最基本的技能之一。
C語言程序的調試、運行步驟
相關PPT
Visual C++培訓教程3ppt:這是一個關于Visual C++培訓教程3ppt,主要介紹了設備環境類和圖形對象;Windows 應用程序資源;庫存圖形對象;畫筆與畫刷等內容,歡迎點擊下載!
數據結構c語言版課件:這是數據結構c語言版課件,包括了數據結構討論的范疇,與數據結構相關的概念,算法和算法的量度等內容,歡迎點擊下載。
51單片機課件c語言ppt:這是51單片機課件c語言ppt,包括了C51與標準C的差異,C語言與匯編語言,C51的數據類型,新增存貯類型,存儲模式,絕對地址訪問等內容,歡迎點擊下載。
《c語言ppt課件》是由用戶Etc person于2017-06-25上傳,屬于課件PPT。
總結
以上是生活随笔為你收集整理的c语言程序ppt课件,c语言ppt课件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dm数据库命令
- 下一篇: 微信小程序实现datamatrix(dm