




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言程序設(shè)計語言程序設(shè)計王琴竹王琴竹QQ:503036088課程簡介課程簡介 C語言程序設(shè)計:通識教育課程語言程序設(shè)計:通識教育課程 前序課程:計算機(jī)基礎(chǔ)前序課程:計算機(jī)基礎(chǔ) 學(xué)分:學(xué)分:3。 總學(xué)時數(shù)總學(xué)時數(shù)64,理論,理論32,實驗,實驗32。 考核方式考核方式 考試課程考試課程 平時成績(平時表現(xiàn)、實驗)平時成績(平時表現(xiàn)、實驗)+期末考試期末考試本課程學(xué)習(xí)要求本課程學(xué)習(xí)要求不僅閱讀程序,更要上機(jī)實踐學(xué)習(xí)程序設(shè)計;不僅閱讀程序,更要上機(jī)實踐學(xué)習(xí)程序設(shè)計;打好基礎(chǔ),不要急于求成,養(yǎng)成良好的編程風(fēng)格;打好基礎(chǔ),不要急于求成,養(yǎng)成良好的編程風(fēng)格;為更好地理解,要在機(jī)器上運(yùn)行課堂上和課本上為更
2、好地理解,要在機(jī)器上運(yùn)行課堂上和課本上的程序;的程序;模仿、改寫、編寫;模仿、改寫、編寫;積極解答課后習(xí)題,認(rèn)真做實驗,按時交作業(yè);積極解答課后習(xí)題,認(rèn)真做實驗,按時交作業(yè);認(rèn)真做課堂筆記。認(rèn)真做課堂筆記。本課程的組成本課程的組成第一部分第一部分程程 序序 基基 礎(chǔ)礎(chǔ)第二部分第二部分復(fù)雜數(shù)據(jù)復(fù)雜數(shù)據(jù)第三部分第三部分高級程序設(shè)計高級程序設(shè)計數(shù)據(jù)類型、運(yùn)算符及表達(dá)式、數(shù)據(jù)類型、運(yùn)算符及表達(dá)式、程序控制結(jié)構(gòu)程序控制結(jié)構(gòu)(1、2、3、4、5)函數(shù)、數(shù)組、指針的程序設(shè)計函數(shù)、數(shù)組、指針的程序設(shè)計(6、7、8)結(jié)構(gòu)體與共用體及文件的程序設(shè)計結(jié)構(gòu)體與共用體及文件的程序設(shè)計(9、11)第第1章章 C語言概述語
3、言概述1.1 程序設(shè)計和程序設(shè)計和C語言語言1.2 歷史上的第一個歷史上的第一個C語言程序語言程序1.3 計算圓柱體底面積和體積計算圓柱體底面積和體積1.4 C語言的特點(diǎn)(語言的特點(diǎn)(自學(xué)自學(xué))1.5 計算計算1+2+3+1001.6 算法算法1.7 C語言編程環(huán)境語言編程環(huán)境一、程序與程序設(shè)計語言一、程序與程序設(shè)計語言 程序程序 人們?yōu)榻鉀Q某種問題用計算機(jī)可以識別的代碼編排的一人們?yōu)榻鉀Q某種問題用計算機(jī)可以識別的代碼編排的一系列加工步驟。系列加工步驟。 存儲在計算機(jī)中的可以被計算機(jī)識別并運(yùn)行的一系列指存儲在計算機(jī)中的可以被計算機(jī)識別并運(yùn)行的一系列指令。令。 程序設(shè)計語言程序設(shè)計語言 是人用來
4、編寫程序的工具,是人與計算機(jī)交流的語言。是人用來編寫程序的工具,是人與計算機(jī)交流的語言。 有數(shù)據(jù)表達(dá)和流程控制兩大功能。有數(shù)據(jù)表達(dá)和流程控制兩大功能。 程序設(shè)計程序設(shè)計 應(yīng)用某種程序設(shè)計語言設(shè)計程序的過程。應(yīng)用某種程序設(shè)計語言設(shè)計程序的過程。 有面向?qū)ο蠛兔嫦蜻^程兩種設(shè)計方法。有面向?qū)ο蠛兔嫦蜻^程兩種設(shè)計方法。二、二、C語言的發(fā)展歷史與特點(diǎn)語言的發(fā)展歷史與特點(diǎn) (自學(xué))(自學(xué))C語言是一種程序設(shè)計語言。語言是一種程序設(shè)計語言。它既有高級語言的特點(diǎn),又具有匯編語它既有高級語言的特點(diǎn),又具有匯編語言的特點(diǎn)。言的特點(diǎn)。常用的常用的C語言集成開發(fā)環(huán)境(語言集成開發(fā)環(huán)境(Integrated Devel
5、opment Environment,IDE)有有Microsoft Visual C+、Borland C+、Microsoft C、Turbo C等。等。C語言的特點(diǎn)語言的特點(diǎn)1C語言是一種結(jié)構(gòu)化程序設(shè)計語言。語言是一種結(jié)構(gòu)化程序設(shè)計語言。2C語言語句簡潔、緊湊,使用方便、靈活語言語句簡潔、緊湊,使用方便、靈活32個關(guān)鍵字個關(guān)鍵字,9種控制語句,程序書寫形式自由。種控制語句,程序書寫形式自由。3C語言程序易于移植語言程序易于移植C語言將與硬件有關(guān)的因素從語言主體中分離出來語言將與硬件有關(guān)的因素從語言主體中分離出來,通過庫函數(shù)或其他實用程序?qū)崿F(xiàn)它們。,通過庫函數(shù)或其他實用程序?qū)崿F(xiàn)它們。 4C
6、語言有強(qiáng)大的處理能力語言有強(qiáng)大的處理能力5生成的目標(biāo)代碼質(zhì)量高,運(yùn)行效率高生成的目標(biāo)代碼質(zhì)量高,運(yùn)行效率高6數(shù)據(jù)類型檢查不嚴(yán)格,表達(dá)式出現(xiàn)二義性,不具數(shù)據(jù)類型檢查不嚴(yán)格,表達(dá)式出現(xiàn)二義性,不具備數(shù)據(jù)越界自動檢查功能,運(yùn)算符的優(yōu)先級與結(jié)備數(shù)據(jù)越界自動檢查功能,運(yùn)算符的優(yōu)先級與結(jié)合性對初學(xué)者難于掌握。合性對初學(xué)者難于掌握。三、三、C語言程序語言程序【例例1-1】在計算機(jī)屏幕上輸出在計算機(jī)屏幕上輸出“Hello,World!”/* c1_1.c */*注釋信息,運(yùn)行時忽略*/#include stdio.h /*預(yù)處理命令,用“#”號開頭*/int main()/*main() 主函數(shù),程序的入口和
7、出口*/ /*輸出Hello World!并換行,n是換行符*/printf(Hello World!n ); return 0; /*返回0*/#include #define PI 3.1415926 void main(void) int r; double c,s; printf(請輸入圓的半徑(整數(shù))請輸入圓的半徑(整數(shù)):); scanf(%d,&r); c=2*PI*r; s=PI*r*r; printf(circum=%fn,c); printf(area=%fn,s); /*文件包含,編譯預(yù)處理命令文件包含,編譯預(yù)處理命令*/*預(yù)定義標(biāo)識符,宏定義預(yù)定義標(biāo)識符,宏定義
8、*/ /*主函數(shù)首部主函數(shù)首部*/ /*定義半徑變量為整型數(shù)據(jù)定義半徑變量為整型數(shù)據(jù)*/ /*定義周長和面積為實型變量定義周長和面積為實型變量*/ /*提示信息提示信息*/ /*人機(jī)交互,從鍵盤輸入半徑值人機(jī)交互,從鍵盤輸入半徑值*/ /*計算圓的周長計算圓的周長*/*計算圓的面積計算圓的面積*/*按格式在屏幕上輸出周長值按格式在屏幕上輸出周長值*/*按格式在屏幕上輸出面積值按格式在屏幕上輸出面積值*/ 【例例1-21-2】編程實現(xiàn)求任意圓的周長和面積。編程實現(xiàn)求任意圓的周長和面積。 C語言程序的基本結(jié)構(gòu)語言程序的基本結(jié)構(gòu)(1)C源程序源程序 用用C語言編寫的程序稱為語言編寫的程序稱為C語言源
9、程序(語言源程序(Source Program),),C語言源程序文件的后綴為語言源程序文件的后綴為“.c”。 (2)C函數(shù)函數(shù)(Function) 函數(shù)是構(gòu)成函數(shù)是構(gòu)成C源程序的基本單位。源程序的基本單位。 一個函數(shù)由一個函數(shù)由函數(shù)首部(函數(shù)首部(Head)和和函數(shù)體函數(shù)體(Body)兩部分組兩部分組成。成。(3)主函數(shù))主函數(shù)(main) 任何一個任何一個C程序程序中有且只能有一個中有且只能有一個main函數(shù),也稱為主函數(shù),也稱為主函數(shù)。函數(shù)。 C程序總是從主函數(shù)開始執(zhí)行,并且結(jié)束于主函數(shù)。程序總是從主函數(shù)開始執(zhí)行,并且結(jié)束于主函數(shù)。(4 4)語句和輸出語句)語句和輸出語句C C語句以分號
10、語句以分號(;)(;)作為結(jié)束標(biāo)志。作為結(jié)束標(biāo)志。printfprintf(“.n”);(“.n”);是一個輸出語句。實現(xiàn)程序的輸是一個輸出語句。實現(xiàn)程序的輸出。出。(5 5)頭文件包含與標(biāo)準(zhǔn)庫函數(shù))頭文件包含與標(biāo)準(zhǔn)庫函數(shù)#include #include 是一個頭文件包含命令。是一個頭文件包含命令。編譯預(yù)處理命令行末尾不加分號。編譯預(yù)處理命令行末尾不加分號。(6 6)注釋)注釋“/ /* * */”/”是注釋符號,必須成對出現(xiàn)。兩者之間是注釋符號,必須成對出現(xiàn)。兩者之間的所有字符(可以是多行)均為注釋文字。的所有字符(可以是多行)均為注釋文字。注釋增加程序的可讀性,不作為程序代碼運(yùn)行。注釋增
11、加程序的可讀性,不作為程序代碼運(yùn)行。(7 7)C C語言程序嚴(yán)格區(qū)分大、小寫英文字母語言程序嚴(yán)格區(qū)分大、小寫英文字母四、結(jié)構(gòu)化程序設(shè)計四、結(jié)構(gòu)化程序設(shè)計 采用自頂向下、逐步細(xì)化、模塊化設(shè)計和結(jié)構(gòu)采用自頂向下、逐步細(xì)化、模塊化設(shè)計和結(jié)構(gòu)化編碼的方法?;幋a的方法。 模塊:一條語句(模塊:一條語句(Statement)、)、一段程序或一段程序或一個函數(shù)等。一個函數(shù)等。 單入口、單出口單入口、單出口 三種基本結(jié)構(gòu)三種基本結(jié)構(gòu)p順序結(jié)構(gòu)(Sequence Structure)p選擇結(jié)構(gòu)(Select Structure)p循環(huán)結(jié)構(gòu)(Loop Structure)結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計的
12、基本結(jié)構(gòu) 順序結(jié)構(gòu)順序結(jié)構(gòu) 順序結(jié)構(gòu)順序結(jié)構(gòu)使得語句按使得語句按先后順序依先后順序依次執(zhí)行,這次執(zhí)行,這是最基本的是最基本的程序結(jié)構(gòu);程序結(jié)構(gòu);AB結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu) 選擇結(jié)構(gòu)選擇結(jié)構(gòu)ABabpYN當(dāng)p為“真”當(dāng)p為“假”選擇結(jié)構(gòu)選擇結(jié)構(gòu)使程序能使程序能進(jìn)行邏輯進(jìn)行邏輯判斷,在判斷,在滿足條件滿足條件時轉(zhuǎn)去執(zhí)時轉(zhuǎn)去執(zhí)行相應(yīng)的行相應(yīng)的語句。語句。結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)A Ap1p1Y YN N當(dāng)當(dāng)p p為為“真真”當(dāng)當(dāng)p p為為“假假”循環(huán)結(jié)構(gòu)是根據(jù)情況自動重復(fù)執(zhí)行有關(guān)語句。循環(huán)結(jié)構(gòu)是根據(jù)情況自動重復(fù)執(zhí)行有關(guān)語句。任何程序
13、都任何程序都可以將模塊可以將模塊通過通過3種基本種基本的控制結(jié)構(gòu)的控制結(jié)構(gòu)進(jìn)行組合來進(jìn)行組合來實現(xiàn)。實現(xiàn)。五、問題求解過程五、問題求解過程(一)問題分析與算法設(shè)計(一)問題分析與算法設(shè)計(二)編輯程序(二)編輯程序(三)程序編譯連接(三)程序編譯連接(四)運(yùn)行與調(diào)試(四)運(yùn)行與調(diào)試 (一)問題分析與算法設(shè)計(一)問題分析與算法設(shè)計 【例例1-3】求求1100間所有偶數(shù)的和。間所有偶數(shù)的和。 分析:分析: 求在一定范圍內(nèi)(求在一定范圍內(nèi)(1100)、滿足一定條件)、滿足一定條件(偶數(shù)偶數(shù))的若干整的若干整數(shù)的和,求數(shù)的和,求累加和累加和問題。問題。 思路思路:設(shè)置一個變量:設(shè)置一個變量(sum)
14、,其初值為其初值為0,然后在,然后在1100的數(shù)的數(shù) 中中(i)尋找偶數(shù)尋找偶數(shù),將它們一個一個累加到將它們一個一個累加到sum中。中。 一步累加:一步累加:sum = sum + i; 重復(fù)累加,用循環(huán)語句實現(xiàn),在循環(huán)過程中:重復(fù)累加,用循環(huán)語句實現(xiàn),在循環(huán)過程中:(1) 判別判別 i 是不是偶數(shù):用選擇結(jié)構(gòu)來實現(xiàn)。是不是偶數(shù):用選擇結(jié)構(gòu)來實現(xiàn)。(2) 對循環(huán)次數(shù)進(jìn)行控制:通過對循環(huán)次數(shù)進(jìn)行控制:通過 i 值的變化值的變化算法的概念算法的概念算法算法是為了解決一個特定的問題而采取的是為了解決一個特定的問題而采取的確定的、有限的確定的、有限的、按照、按照一定次序一定次序進(jìn)行的、進(jìn)行的、缺一不可
15、的執(zhí)行步驟。缺一不可的執(zhí)行步驟。算法的特性算法的特性有窮性有窮性應(yīng)含有有限的操作步驟,不能是無限的。應(yīng)含有有限的操作步驟,不能是無限的。確定性確定性每一個步驟都是確定的,不能有二義性。每一個步驟都是確定的,不能有二義性。有零個或多個輸入有零個或多個輸入在執(zhí)行算法時需要從外界獲取必要的信息在執(zhí)行算法時需要從外界獲取必要的信息有一個或多個輸出有一個或多個輸出算法執(zhí)行的目的就是為了求解,算法執(zhí)行的目的就是為了求解,“解解”就是輸出的信息。就是輸出的信息。沒有輸出的算法是沒有意義的。沒有輸出的算法是沒有意義的。可行性可行性每一個步驟應(yīng)當(dāng)被有效的執(zhí)行,并得到確定的結(jié)果。每一個步驟應(yīng)當(dāng)被有效的執(zhí)行,并得到
16、確定的結(jié)果。算法的描述算法的描述 自然語言自然語言(Natural Language) 自然語言描述的算法表示如下:自然語言描述的算法表示如下: 定義三個整型變量:定義三個整型變量:num1和和num2存放兩個整數(shù),存放兩個整數(shù),sum存放存放兩數(shù)之和。兩數(shù)之和。 分別給變量分別給變量num1和和num2賦值。賦值。 計算計算num1和和num2的和,并將計算結(jié)果存入變量的和,并將計算結(jié)果存入變量sum。 把和把和sum的結(jié)果輸出到屏幕。的結(jié)果輸出到屏幕?!纠?-41-4】計算某學(xué)生兩門課程成績的和。計算某學(xué)生兩門課程成績的和。分析:這是分析:這是順序結(jié)構(gòu)順序結(jié)構(gòu)算法。算法。程序代碼:程序代
17、碼:#include void main(void)int num1,num2,sum; /*定義三個整型變量定義三個整型變量*/num1=4;num2=9; /*給變量賦值給變量賦值*/sum=num1+num2; /*求兩個變量的和求兩個變量的和*/printf(%dn,sum); /*輸出結(jié)果輸出結(jié)果*/n自然語言表示算法清楚易懂,但易冗長,有時會產(chǎn)自然語言表示算法清楚易懂,但易冗長,有時會產(chǎn)生二義性。所以除了簡單問題外,一般不采用自然生二義性。所以除了簡單問題外,一般不采用自然語言表示算法。語言表示算法。開始結(jié)束框開始結(jié)束框 判斷框判斷框 處理框處理框 輸入輸出框輸入輸出框 連接點(diǎn)連接
18、點(diǎn) 準(zhǔn)備框準(zhǔn)備框 流程線流程線 流程線流程線傳統(tǒng)流程圖的常用符號傳統(tǒng)流程圖的常用符號算法的描述算法的描述傳統(tǒng)流程圖傳統(tǒng)流程圖(flow charts)【例例1-51-5】輸出任意兩數(shù)中較大的數(shù)。輸出任意兩數(shù)中較大的數(shù)。分析:這是分析:這是選擇結(jié)構(gòu)選擇結(jié)構(gòu)算法。算法。 比較兩個數(shù),根據(jù)比較結(jié)果決定程序的輸出結(jié)果。比較兩個數(shù),根據(jù)比較結(jié)果決定程序的輸出結(jié)果。num1num2否否是是開始開始max=num2輸出輸出max輸入輸入num1和和num2結(jié)束結(jié)束max=num1程序代碼:程序代碼:#include #include void main(void)void main(void) int nu
19、m1,num2,max; int num1,num2,max; / /* *定義變量定義變量* */ /printf(printf(請輸入兩個整數(shù)(用空格隔開)請輸入兩個整數(shù)(用空格隔開));); / /* *提示用戶輸入數(shù)據(jù)提示用戶輸入數(shù)據(jù)* */ /scanf(scanf(%d%d%d%d,&num1,&num2); ,&num1,&num2); / /* *輸入數(shù)據(jù)輸入數(shù)據(jù)* */ /if(num1num2) max=num1; if(num1num2) max=num1; / /* *求比較大的數(shù)求比較大的數(shù)* */ / else max=num2;el
20、se max=num2;printf(printf(比較大的數(shù)是比較大的數(shù)是%dn%dn,max); ,max); / /* *輸出結(jié)果輸出結(jié)果* */ / sum = 0i = 1i= 100i 是偶數(shù)?是偶數(shù)?sum=sum+ii=i+1輸出輸出sum真真真真假假假假例例3的的傳傳統(tǒng)統(tǒng)流流程程圖圖 傳統(tǒng)流程圖的優(yōu)點(diǎn):傳統(tǒng)流程圖的優(yōu)點(diǎn):方便、直觀、靈活、方便、直觀、靈活、流程清晰、無流程清晰、無“歧義性歧義性”。 缺點(diǎn):缺點(diǎn):占用面積大占用面積大允許流程線指向任意一個框。對程序流允許流程線指向任意一個框。對程序流程不加任何限制,對大程序而言不適用。程不加任何限制,對大程序而言不適用。這種描述
21、方法的可維護(hù)性差。這種描述方法的可維護(hù)性差。vNSNS圖完全去掉了流程線,算法的每一步都用一個圖完全去掉了流程線,算法的每一步都用一個矩形框來描述,把一個個矩形框按執(zhí)行的次序連矩形框來描述,把一個個矩形框按執(zhí)行的次序連接起來就是一個完整的算法描述。接起來就是一個完整的算法描述。 vNSNS圖的幾種標(biāo)準(zhǔn)控制結(jié)構(gòu)圖的幾種標(biāo)準(zhǔn)控制結(jié)構(gòu)T 條件條件 FThen Else部分部分 部分部分條件結(jié)構(gòu)條件結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu) 選擇表達(dá)式選擇表達(dá)式 值值1 值值2 值值nCASE1 CASE2 CASEn當(dāng)當(dāng)P成立成立 循環(huán)循環(huán) 部分部分循環(huán)循環(huán)部分部分直到直到P成立成立當(dāng)型循環(huán)當(dāng)型循環(huán) 直到型循環(huán)直到型循環(huán)
22、第一任務(wù)第一任務(wù)第二任務(wù)第二任務(wù)第三任務(wù)第三任務(wù)順序結(jié)構(gòu)順序結(jié)構(gòu)算法的描述算法的描述3、盒圖、盒圖(NS圖圖)例例3的的NS流程圖流程圖i=1,sum=0 i=100i是偶數(shù)是偶數(shù) i+;輸出輸出sum是是否否sum=sum+i程序代碼:程序代碼:#include /*文件包含文件包含*/void main(void) int i, sum = 0; for(i = 1; i = 100; i+) /*循環(huán)控制,計算循環(huán)控制,計算*/ if (i%2 = 0) /*判斷判斷i是否為偶數(shù)是否為偶數(shù)*/ sum = sum + i; /*求累加和求累加和*/ printf(%d, sum); /*
23、輸出結(jié)果輸出結(jié)果*/ 二、編輯程序二、編輯程序 編輯工作是最繁雜而又必須細(xì)致地由人工在編輯工作是最繁雜而又必須細(xì)致地由人工在計算機(jī)上來完成的計算機(jī)上來完成的。具體步驟如下:。具體步驟如下:1、打開、打開vc,進(jìn)入輸入源程序的編輯窗口(注意進(jìn)入輸入源程序的編輯窗口(注意呈現(xiàn)閃爍狀態(tài)的輸入光標(biāo)),此時需要通過鍵盤呈現(xiàn)閃爍狀態(tài)的輸入光標(biāo)),此時需要通過鍵盤輸入源程序代碼。輸入源程序代碼。2、保存文件生成程序的源文件,、保存文件生成程序的源文件,C語言源文件語言源文件的后綴為的后綴為 .c 三、程序編譯連接三、程序編譯連接 編輯程序后,用該語言的編譯程序?qū)ζ溥M(jìn)行編輯程序后,用該語言的編譯程序?qū)ζ溥M(jìn)行編
24、譯,以生成二進(jìn)制代碼表示的目標(biāo)程序編譯,以生成二進(jìn)制代碼表示的目標(biāo)程序(.obj),與編程環(huán)境提供的庫函數(shù)進(jìn)行連接(與編程環(huán)境提供的庫函數(shù)進(jìn)行連接(Link)形成形成可執(zhí)行的程序可執(zhí)行的程序(.exe)。此過程編譯程序會指出此過程編譯程序會指出語法錯誤語法錯誤 。四、運(yùn)行與調(diào)試四、運(yùn)行與調(diào)試 經(jīng)過編輯、編譯、連接,生成執(zhí)行文件后,就可經(jīng)過編輯、編譯、連接,生成執(zhí)行文件后,就可以在編程環(huán)境或操作系統(tǒng)環(huán)境中運(yùn)行該程序。以在編程環(huán)境或操作系統(tǒng)環(huán)境中運(yùn)行該程序。 如果程序運(yùn)行所產(chǎn)生的結(jié)果不是你想要的結(jié)果,如果程序運(yùn)行所產(chǎn)生的結(jié)果不是你想要的結(jié)果,這是程序的這是程序的語義錯誤(邏輯錯誤)語義錯誤(邏輯錯
25、誤)。 調(diào)試:在程序中查找錯誤并修改錯誤的過程。調(diào)試:在程序中查找錯誤并修改錯誤的過程。 調(diào)試的方法調(diào)試的方法 設(shè)置斷點(diǎn)設(shè)置斷點(diǎn) 單步跟蹤單步跟蹤 調(diào)試是一個需要耐心和經(jīng)驗的工作,也是程序設(shè)調(diào)試是一個需要耐心和經(jīng)驗的工作,也是程序設(shè)計最基本的技能之一。計最基本的技能之一。開始開始結(jié)果結(jié)果語法語法錯誤錯誤源程序源程序.c 目標(biāo)程序目標(biāo)程序.obj可執(zhí)行程序可執(zhí)行程序.exe編輯編輯編譯編譯連接連接運(yùn)行運(yùn)行連接連接錯誤錯誤運(yùn)行運(yùn)行錯誤錯誤C語言程序的調(diào)試、運(yùn)行步驟語言程序的調(diào)試、運(yùn)行步驟 使用使用Visual C+6.0工作環(huán)境工作環(huán)境包含自定義函數(shù)的程序包含自定義函數(shù)的程序【例例1-6】輸入圓柱
26、體的底圓半徑和高,計算底輸入圓柱體的底圓半徑和高,計算底面積和體積。面積和體積。 #include stdio.h#define PI3.1415926double s,v; double area(double x) return PI*x*x; double volume (double h) return s*h; void main() void main() double r,h;double r,h; printf( printf( 請輸入圓柱體的底圓請輸入圓柱體的底圓半徑和高半徑和高); ); scanf(%lf,%lf,&r,&h);scanf(%lf,%lf,
27、&r,&h);s=area(r);s=area(r);printf(area is %lfn,s); printf(area is %lfn,s); v= volume(h); v= volume(h); printf(volume is %lfn,v); printf(volume is %lfn,v); 程序剖析:程序剖析:(1 1)程序:可以由多個源程序文件組成,也可以由)程序:可以由多個源程序文件組成,也可以由多個函數(shù)組成。多個函數(shù)組成。(2 2)用戶自定義函數(shù):用戶自己編寫的函數(shù)。)用戶自定義函數(shù):用戶自己編寫的函數(shù)。該程序中包含三個函數(shù),一個是主函數(shù)該程序中包含三個
28、函數(shù),一個是主函數(shù)mainmain,另外兩,另外兩個是名為個是名為area和和volume的用戶自定義函數(shù)。的用戶自定義函數(shù)。三個函數(shù)是獨(dú)立的,先后位置可以改變。三個函數(shù)是獨(dú)立的,先后位置可以改變。(3 3)變量:存放操作數(shù)據(jù)。)變量:存放操作數(shù)據(jù)。 每個已定義的變量在內(nèi)存占據(jù)一定的存儲單元,其中每個已定義的變量在內(nèi)存占據(jù)一定的存儲單元,其中&r和和&h表示變量的地址。表示變量的地址。(4 4)輸入函數(shù))輸入函數(shù)scanfscanf函數(shù)也是一個庫函數(shù),和庫函數(shù)函數(shù)也是一個庫函數(shù),和庫函數(shù)printfprintf一樣,其一樣,其原型說明也在名為原型說明也在名為“stdio.h”s
29、tdio.h”的頭文件中。的頭文件中。 (5 5)程序交互界面)程序交互界面程序運(yùn)行時,為了給用戶一個良好的人機(jī)交互操作界程序運(yùn)行時,為了給用戶一個良好的人機(jī)交互操作界面,需要設(shè)計一些提示信息。如面,需要設(shè)計一些提示信息。如 printf(printf(請輸入圓柱請輸入圓柱體的底圓半徑和高體的底圓半徑和高););提示用戶輸入數(shù)據(jù)。提示用戶輸入數(shù)據(jù)。本章小結(jié)本章小結(jié) 通過實例認(rèn)識了通過實例認(rèn)識了C C語言程序的基本結(jié)構(gòu),語言程序的基本結(jié)構(gòu),C C程序程序的基本單位函數(shù)。的基本單位函數(shù)。 算法及其描述方法。算法及其描述方法。 算法是程序的靈魂,學(xué)習(xí)程序設(shè)計就是學(xué)習(xí)和算法是程序的靈魂,學(xué)習(xí)程序設(shè)計就
30、是學(xué)習(xí)和掌握設(shè)計解決問題的方法和步驟,選用合適的掌握設(shè)計解決問題的方法和步驟,選用合適的語句編程實現(xiàn)的過程。語句編程實現(xiàn)的過程。 熟悉在熟悉在VCVC環(huán)境下處理一個環(huán)境下處理一個C C 程序的過程。程序的過程。作業(yè)作業(yè) 復(fù)習(xí)課堂所講的內(nèi)容(讀教材、課件)復(fù)習(xí)課堂所講的內(nèi)容(讀教材、課件) 在在VC環(huán)境下輸入程序,編譯、連接、運(yùn)環(huán)境下輸入程序,編譯、連接、運(yùn)行程序。行程序。 實驗作業(yè)一實驗作業(yè)一C語言程序結(jié)構(gòu)及格式特點(diǎn)總結(jié)語言程序結(jié)構(gòu)及格式特點(diǎn)總結(jié)n結(jié)構(gòu)特點(diǎn)結(jié)構(gòu)特點(diǎn) 函數(shù)(包括主函數(shù))函數(shù)(包括主函數(shù)) 程序由一個或多個程序由一個或多個源程序文件源程序文件組成組成 源程序文件由源程序文件由函數(shù)函
31、數(shù)組成組成 一個程序中一個程序中必須有且只能有一個主函數(shù)必須有且只能有一個主函數(shù)main( ) 程序程序總是總是從從main開始執(zhí)行,在開始執(zhí)行,在main中結(jié)束,其它函數(shù)通過中結(jié)束,其它函數(shù)通過調(diào)用得以執(zhí)行。調(diào)用得以執(zhí)行。 語句語句 C函數(shù)函數(shù)由語句組成由語句組成 語句語句用用“;”作為終止符作為終止符 注釋注釋 /* */為注釋為注釋,不能嵌套不能嵌套 不產(chǎn)生編譯代碼不產(chǎn)生編譯代碼例: /*This is the main /* of example1.1*/ */ 非法l編譯預(yù)處理命令編譯預(yù)處理命令 格式特點(diǎn)格式特點(diǎn) 習(xí)慣用小寫字母,大小寫敏感習(xí)慣用小寫字母,大小寫敏感 不使用行號,無程
32、序行概念不使用行號,無程序行概念 可使用空行和空格可使用空行和空格 常用鋸齒形書寫格式常用鋸齒形書寫格式 一個說明或一個語句占一行。一個說明或一個語句占一行。 一般與該結(jié)構(gòu)語句的第一個一般與該結(jié)構(gòu)語句的第一個字母對齊,并單獨(dú)占一行。字母對齊,并單獨(dú)占一行。main( ) . . . . . . .main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進(jìn) 對齊 有足夠的注釋(notation) 有合適的空行編程風(fēng)格編程風(fēng)格1在程序中使用注釋語句,增加程序的可讀性。在程序中使用注釋語句,增加程序的可讀性。使用空白行和縮進(jìn)以標(biāo)識程序的結(jié)構(gòu)。使用空白行和縮進(jìn)以標(biāo)識程序的結(jié)構(gòu)。變量名一般小寫,盡量做到見名知義。變量名一般小寫,盡量做到見名知義。把程序常用且值不改變的數(shù)值定義為符號常量,把程序常用且值不改變的數(shù)值定義為符號常量,符號常量名一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省2024-2025學(xué)年高中化學(xué)鈉與水的反應(yīng)12鈉與水反應(yīng)的教學(xué)設(shè)計
- 走向智能辦公時代全面掌握設(shè)備建知識實訓(xùn)練
- 語文教案大全(8篇)
- 大學(xué)生教師教學(xué)2024實習(xí)總結(jié)(4篇)
- 中學(xué)生演講稿4分鐘(3篇)
- 金融科技對財務(wù)管理的影響與挑戰(zhàn)
- 初級中學(xué)教職工“參加體育健身爭做幸福教師”活動方案
- 高效客戶服務(wù)溝通與解決問題的藝術(shù)
- 跨境電商業(yè)務(wù)中的高效物流策略
- 跨國公司科技創(chuàng)新能力的提升與市場機(jī)遇
- DZ∕T 0080-2010 煤炭地球物理測井規(guī)范(正式版)
- 2024年國家公務(wù)員考試時事政治必考試題庫(完整版)
- 否定副詞“不”和“沒有”比較研究
- 售樓部銷售禮儀培訓(xùn)內(nèi)容
- (高清版)DZT 0347-2020 礦山閉坑地質(zhì)報告編寫規(guī)范
- 2024年不停電電源UPS相關(guān)項目營銷計劃書
- 重汽重卡培訓(xùn)課件
- 干式變壓器培訓(xùn)課件
- 公司SWOT分析表模板
- 2023年上海中考語文試卷(附答案)
- 老年護(hù)理技巧培訓(xùn)
評論
0/150
提交評論