C語(yǔ)言第1章C語(yǔ)言程序設(shè)計(jì)初步_第1頁(yè)
C語(yǔ)言第1章C語(yǔ)言程序設(shè)計(jì)初步_第2頁(yè)
C語(yǔ)言第1章C語(yǔ)言程序設(shè)計(jì)初步_第3頁(yè)
C語(yǔ)言第1章C語(yǔ)言程序設(shè)計(jì)初步_第4頁(yè)
C語(yǔ)言第1章C語(yǔ)言程序設(shè)計(jì)初步_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)方法說明學(xué)習(xí)方法說明C語(yǔ)言難度較大語(yǔ)言難度較大注意重點(diǎn)注意重點(diǎn)多動(dòng)手編程多動(dòng)手編程、多分析思考、多分析思考平時(shí)成績(jī):平時(shí)成績(jī):30%(作業(yè)、上課(作業(yè)、上課和實(shí)驗(yàn)的出勤及表現(xiàn))和實(shí)驗(yàn)的出勤及表現(xiàn))期末考試成績(jī):期末考試成績(jī):70%本章主要介紹C語(yǔ)言的基本知識(shí),通過幾個(gè)簡(jiǎn)單的C語(yǔ)言程序?qū)嵗?,使讀者掌握C語(yǔ)言程序的基本結(jié)構(gòu)和書寫規(guī)則、明確C語(yǔ)言程序的上機(jī)操作步驟。 本章內(nèi)容本章內(nèi)容1.1 計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展1.2 C語(yǔ)言的發(fā)展及特點(diǎn)語(yǔ)言的發(fā)展及特點(diǎn)1.3 簡(jiǎn)單的簡(jiǎn)單的C語(yǔ)言程序語(yǔ)言程序1.4 C語(yǔ)言程序的開發(fā)步驟及調(diào)試方法語(yǔ)言程序的開

2、發(fā)步驟及調(diào)試方法1.5 算法及其描述算法及其描述1.6 格式化輸入、輸出函數(shù)格式化輸入、輸出函數(shù)1.7 學(xué)生信息管理系統(tǒng)案例簡(jiǎn)介學(xué)生信息管理系統(tǒng)案例簡(jiǎn)介 【學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)】 掌握掌握C語(yǔ)言程序的基本結(jié)構(gòu)和書寫規(guī)則語(yǔ)言程序的基本結(jié)構(gòu)和書寫規(guī)則 掌握掌握C語(yǔ)言程序的上機(jī)操作步驟語(yǔ)言程序的上機(jī)操作步驟 熟悉熟悉VC 6.0集成開發(fā)環(huán)境集成開發(fā)環(huán)境 了解計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展了解計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展 了解了解C語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn) 了解算法及其描述了解算法及其描述1.機(jī)器語(yǔ)言機(jī)器語(yǔ)言 直接使用二進(jìn)制編碼的程序語(yǔ)言為機(jī)器語(yǔ)言。直接使用二進(jìn)制編碼的程序語(yǔ)言為機(jī)器語(yǔ)言。 機(jī)器語(yǔ)言程序能在計(jì)算機(jī)上直接

3、運(yùn)行,具有占用機(jī)器語(yǔ)言程序能在計(jì)算機(jī)上直接運(yùn)行,具有占用內(nèi)存少、執(zhí)行速度快的優(yōu)點(diǎn),但機(jī)器語(yǔ)言不直觀、內(nèi)存少、執(zhí)行速度快的優(yōu)點(diǎn),但機(jī)器語(yǔ)言不直觀、難記、難認(rèn)、不易查錯(cuò),編程非常麻煩,只能被少難記、難認(rèn)、不易查錯(cuò),編程非常麻煩,只能被少數(shù)專業(yè)人員掌握。數(shù)專業(yè)人員掌握。 用機(jī)器語(yǔ)言編寫的程序可移植性差。用機(jī)器語(yǔ)言編寫的程序可移植性差。 2. 匯編語(yǔ)言匯編語(yǔ)言用一些簡(jiǎn)潔的助記符來替代二進(jìn)制的機(jī)器指令。用一些簡(jiǎn)潔的助記符來替代二進(jìn)制的機(jī)器指令。例如,用例如,用“ADD”ADD”表示加法,用表示加法,用“SUB”SUB”表示減法等表示減法等等。等。 匯編語(yǔ)言比機(jī)器語(yǔ)言更容易理解,能充分發(fā)揮計(jì)匯編語(yǔ)言比機(jī)器

4、語(yǔ)言更容易理解,能充分發(fā)揮計(jì)算機(jī)硬件的功能和特長(zhǎng),程序精煉而高效,但匯編算機(jī)硬件的功能和特長(zhǎng),程序精煉而高效,但匯編語(yǔ)言程序同樣依賴于計(jì)算機(jī)硬件、可移植性不好,語(yǔ)言程序同樣依賴于計(jì)算機(jī)硬件、可移植性不好,且助記符多、難以記憶。且助記符多、難以記憶。 3. 高級(jí)語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言用接近人們習(xí)慣的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言高級(jí)語(yǔ)言用接近人們習(xí)慣的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式,其語(yǔ)法和結(jié)構(gòu)類似于普通英作為語(yǔ)言的表達(dá)形式,其語(yǔ)法和結(jié)構(gòu)類似于普通英文,編程非常方便,一般人經(jīng)過學(xué)習(xí)之后都可以進(jìn)文,編程非常方便,一般人經(jīng)過學(xué)習(xí)之后都可以進(jìn)行編程。行編程。 高級(jí)語(yǔ)言程序不依賴于計(jì)算機(jī)硬件,能在所有機(jī)高級(jí)語(yǔ)言

5、程序不依賴于計(jì)算機(jī)硬件,能在所有機(jī)器上通用,可移植性好,但高級(jí)語(yǔ)言程序的運(yùn)行效器上通用,可移植性好,但高級(jí)語(yǔ)言程序的運(yùn)行效率要低于匯編語(yǔ)言和機(jī)器語(yǔ)言。率要低于匯編語(yǔ)言和機(jī)器語(yǔ)言。 1.2.1 C語(yǔ)言的發(fā)展語(yǔ)言的發(fā)展 C C語(yǔ)言的出現(xiàn)與語(yǔ)言的出現(xiàn)與UNIXUNIX操作系統(tǒng)密切相關(guān),操作系統(tǒng)密切相關(guān),UNIXUNIX操操作系統(tǒng)具有穩(wěn)定、可靠、安全等優(yōu)點(diǎn),是軍隊(duì)、電作系統(tǒng)具有穩(wěn)定、可靠、安全等優(yōu)點(diǎn),是軍隊(duì)、電信、銀行等大型機(jī)構(gòu)最受信任的操作系統(tǒng)。信、銀行等大型機(jī)構(gòu)最受信任的操作系統(tǒng)。早期的早期的UNIXUNIX操作系統(tǒng)是用匯編語(yǔ)言編寫的,匯編操作系統(tǒng)是用匯編語(yǔ)言編寫的,匯編語(yǔ)言程序?qū)τ?jì)算機(jī)硬件的依賴

6、性強(qiáng)、可讀性和可移語(yǔ)言程序?qū)τ?jì)算機(jī)硬件的依賴性強(qiáng)、可讀性和可移植性差,而一般的高級(jí)語(yǔ)言程序雖具有良好的可讀植性差,而一般的高級(jí)語(yǔ)言程序雖具有良好的可讀性和可移植性,但它們不能對(duì)硬件直接進(jìn)行操作,性和可移植性,但它們不能對(duì)硬件直接進(jìn)行操作,因此,需要設(shè)計(jì)一種集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能因此,需要設(shè)計(jì)一種集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能于一體的語(yǔ)言,這樣于一體的語(yǔ)言,這樣C C語(yǔ)言應(yīng)運(yùn)而生。語(yǔ)言應(yīng)運(yùn)而生。 1.2.2 C語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn)1. 1. 功能強(qiáng)大功能強(qiáng)大它能夠象匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行訪它能夠象匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行訪問,從而實(shí)現(xiàn)對(duì)硬件的直接操作。問,從而實(shí)現(xiàn)對(duì)硬件的直接操

7、作。C C語(yǔ)言兼有高級(jí)語(yǔ)言兼有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的雙重特點(diǎn),既可以用來編寫應(yīng)用語(yǔ)言和低級(jí)語(yǔ)言的雙重特點(diǎn),既可以用來編寫應(yīng)用軟件,又可以用來編寫系統(tǒng)軟件。軟件,又可以用來編寫系統(tǒng)軟件。2. 2. 語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活3. 3. 程序執(zhí)行效率高、可移植性好程序執(zhí)行效率高、可移植性好4. 4. 編程風(fēng)格結(jié)構(gòu)化編程風(fēng)格結(jié)構(gòu)化對(duì)大型程序可以采用模塊化設(shè)計(jì),將整個(gè)軟件按對(duì)大型程序可以采用模塊化設(shè)計(jì),將整個(gè)軟件按功能分成若干個(gè)模塊,每個(gè)模塊編寫相應(yīng)的函數(shù),功能分成若干個(gè)模塊,每個(gè)模塊編寫相應(yīng)的函數(shù),從而使得程序?qū)哟吻逦?,便于編程、調(diào)試和維護(hù)。從而使得程序?qū)哟吻逦?,便?/p>

8、編程、調(diào)試和維護(hù)。程序:按照一定的順序安排的工作步驟。程序:按照一定的順序安排的工作步驟。/ /* *文件名:文件名:p1-1.cp1-1.c 該程序的功能是求兩數(shù)之和該程序的功能是求兩數(shù)之和* */ /#include stdio.h#include /注明輸入輸出函數(shù)使用的注明輸入輸出函數(shù)使用的頭文件頭文件void main()void main()/定義定義主函數(shù)主函數(shù) int x,y,sum int x,y,sum; ;/定義定義變量變量 scanf(%d%d,&x,&yscanf(%d%d,&x,&y););/調(diào)用庫(kù)函數(shù)從鍵盤調(diào)用庫(kù)函數(shù)從鍵盤輸入數(shù)據(jù)輸

9、入數(shù)據(jù) sum=x+ysum=x+y; ;/計(jì)算計(jì)算兩數(shù)之和兩數(shù)之和 printf(sum=%dn,sumprintf(sum=%dn,sum); ); /在屏幕上在屏幕上顯示結(jié)果顯示結(jié)果 函數(shù)體函數(shù)體【例【例1-11-1】從鍵盤輸入任意兩個(gè)整數(shù),輸出兩數(shù)之和?!繌逆I盤輸入任意兩個(gè)整數(shù),輸出兩數(shù)之和。注釋注釋1 注釋注釋1.1.注釋有兩種:注釋有兩種:( (1)1)“/“/* * * */”/”,可以是單行或多行,可以是單行或多行 (2) “/”(2) “/”,只能是單行注釋,只能是單行注釋2.2.注釋可有可無,用來對(duì)程序進(jìn)行說明注釋可有可無,用來對(duì)程序進(jìn)行說明3.3.注釋不會(huì)影響程序的功能和

10、正確性注釋不會(huì)影響程序的功能和正確性2 包含頭文件包含頭文件作用是將頭文件作用是將頭文件stdio.hstdio.h的內(nèi)容讀到該命令的位的內(nèi)容讀到該命令的位置處。置處。為了用戶編程方便,為了用戶編程方便,C C編譯系統(tǒng)提供了許多完成編譯系統(tǒng)提供了許多完成各種功能的庫(kù)函數(shù)供用戶調(diào)用。需要注明該庫(kù)各種功能的庫(kù)函數(shù)供用戶調(diào)用。需要注明該庫(kù)函數(shù)所在的頭文件。函數(shù)所在的頭文件。scanfscanf()()為輸入庫(kù)函數(shù),為輸入庫(kù)函數(shù),printfprintf()()為輸出庫(kù)函數(shù),為輸出庫(kù)函數(shù),程序中只要用到這兩個(gè)庫(kù)函數(shù),就需要包含程序中只要用到這兩個(gè)庫(kù)函數(shù),就需要包含stdio.hstdio.h頭文件。頭

11、文件。3 定義主函數(shù)定義主函數(shù)構(gòu)成構(gòu)成C C程序的基本單位是函數(shù),一個(gè)程序的基本單位是函數(shù),一個(gè)C C程序可由程序可由一個(gè)或多個(gè)函數(shù)組成,有且只有一個(gè)主函數(shù)。一個(gè)或多個(gè)函數(shù)組成,有且只有一個(gè)主函數(shù)。C C程序總是從程序總是從main()main()函數(shù)開始執(zhí)行,函數(shù)開始執(zhí)行,main()main()函數(shù)函數(shù)執(zhí)行完了,程序也就結(jié)束了。執(zhí)行完了,程序也就結(jié)束了。一個(gè)函數(shù)由函數(shù)首部和函數(shù)體兩部分組成。函一個(gè)函數(shù)由函數(shù)首部和函數(shù)體兩部分組成。函數(shù)體中每條語(yǔ)句必須以分號(hào)數(shù)體中每條語(yǔ)句必須以分號(hào)( (;) )號(hào)結(jié)尾。號(hào)結(jié)尾。4 定義變量定義變量定義了三個(gè)整型變量定義了三個(gè)整型變量x x、y y和和sums

12、um。intint表示整型表示整型 。變量必須先定義后使用。變量必須先定義后使用。給變量命名時(shí)需要注意以下幾點(diǎn):給變量命名時(shí)需要注意以下幾點(diǎn):(1) (1) 變量名只能由字母、數(shù)字和下劃線三種字符變量名只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。組成,且第一個(gè)字符必須為字母或下劃線。(2) (2) 變量名一般采用小寫字母,并且區(qū)分大小寫。變量名一般采用小寫字母,并且區(qū)分大小寫。(3) (3) 變量名不能為關(guān)鍵字。變量名不能為關(guān)鍵字。(4) (4) 盡量做到盡量做到“見名知義見名知義”。 5 調(diào)用格式輸入函數(shù)調(diào)用格式輸入函數(shù)調(diào)用調(diào)用scanfscanf()()格式輸入函

13、數(shù)從鍵盤輸入數(shù)據(jù)給變量格式輸入函數(shù)從鍵盤輸入數(shù)據(jù)給變量x x和和y y,該函數(shù)的調(diào)用格式如下,該函數(shù)的調(diào)用格式如下: :scanfscanf(格式控制字符串格式控制字符串 ,變量地址列表,變量地址列表););格式說明符與各輸入項(xiàng)在數(shù)量和類型上一一對(duì)應(yīng)。格式說明符與各輸入項(xiàng)在數(shù)量和類型上一一對(duì)應(yīng)。 6 進(jìn)行兩數(shù)相加進(jìn)行兩數(shù)相加 x x、y y和和sumsum變量在計(jì)算機(jī)中存放在哪兒呢?變量在計(jì)算機(jī)中存放在哪兒呢? 答案是答案是: :計(jì)算機(jī)的內(nèi)存。計(jì)算機(jī)的內(nèi)存。 a=a+1;a=a+1;語(yǔ)句將執(zhí)行什么語(yǔ)句將執(zhí)行什么操作呢?操作呢?7 調(diào)用格式輸出函數(shù)調(diào)用格式輸出函數(shù)調(diào)用調(diào)用printfprintf

14、()()格式輸出函數(shù)在屏幕上顯示計(jì)算結(jié)果。格式輸出函數(shù)在屏幕上顯示計(jì)算結(jié)果。printfprintf(格式控制字符串格式控制字符串 ,輸出列表,輸出列表););格式控制字符串用來指定輸出格式,由普通字符、格式控制字符串用來指定輸出格式,由普通字符、格式說明符和控制字符組成。格式說明符和控制字符組成。 輸出時(shí)普通字符原樣顯示,格式說明符變量的值所輸出時(shí)普通字符原樣顯示,格式說明符變量的值所代替,控制字符代替,控制字符nn的作用是換行的作用是換行 。 如果想讓輸出結(jié)果顯如果想讓輸出結(jié)果顯示為:示為:15+12=2715+12=27,應(yīng),應(yīng)如何設(shè)置如何設(shè)置printfprintf()()函函數(shù)的參數(shù)

15、?數(shù)的參數(shù)?【歸納總結(jié)【歸納總結(jié)】編寫編寫C C程序的一般過程是:程序的一般過程是:(1) (1) 定義變量;定義變量;(2) (2) 設(shè)置變量的值,可以通過鍵盤輸入或直接賦值;設(shè)置變量的值,可以通過鍵盤輸入或直接賦值;(3) (3) 加工處理,得到結(jié)果;加工處理,得到結(jié)果;(4) (4) 輸出結(jié)果。輸出結(jié)果。1.4 C1.4 C語(yǔ)言程序的開發(fā)步驟及調(diào)試方法語(yǔ)言程序的開發(fā)步驟及調(diào)試方法 1.4.1 C1.4.1 C語(yǔ)言程序的開發(fā)步驟語(yǔ)言程序的開發(fā)步驟 C C語(yǔ)言程序的開發(fā)步驟一般分為四步:編輯、編譯、語(yǔ)言程序的開發(fā)步驟一般分為四步:編輯、編譯、連接和執(zhí)行。連接和執(zhí)行。1.4.2 C語(yǔ)言程序的上

16、機(jī)過程語(yǔ)言程序的上機(jī)過程單擊單擊“文件文件”菜單的菜單的“新建新建(New)”(New)”命令,出現(xiàn)以下界面:命令,出現(xiàn)以下界面: 1 編輯源程序 輸入源程序 2 編譯(compile) 假設(shè)將假設(shè)將sum=x+ysum=x+y語(yǔ)句后的分號(hào)語(yǔ)句后的分號(hào)(;)(;)輸?shù)袅?,則會(huì)出現(xiàn)輸?shù)袅?,則會(huì)出現(xiàn)如圖所示的錯(cuò)誤提示信息。如圖所示的錯(cuò)誤提示信息。雙擊錯(cuò)誤提示行,系統(tǒng)會(huì)自動(dòng)定位錯(cuò)誤的大概位置,雙擊錯(cuò)誤提示行,系統(tǒng)會(huì)自動(dòng)定位錯(cuò)誤的大概位置,再結(jié)合系統(tǒng)給出的提示信息進(jìn)行修改。再結(jié)合系統(tǒng)給出的提示信息進(jìn)行修改。 3 連接4 執(zhí)行 5. 關(guān)閉工作區(qū)關(guān)閉工作區(qū) 當(dāng)一個(gè)程序執(zhí)行完畢,想要建立下一個(gè)程序時(shí),必當(dāng)一

17、個(gè)程序執(zhí)行完畢,想要建立下一個(gè)程序時(shí),必須先關(guān)閉當(dāng)前文件所在的工作區(qū),再建立新文件。須先關(guān)閉當(dāng)前文件所在的工作區(qū),再建立新文件。 【例【例1-21-2】從鍵盤輸入圓的半徑,求圓的面積?!繌逆I盤輸入圓的半徑,求圓的面積。/ /* *文件名:文件名:p1-2.cp1-2.c* */ /#include stdio.h#include / /注明輸入輸出函數(shù)使用的頭文件注明輸入輸出函數(shù)使用的頭文件void main()void main()/定義主函數(shù)定義主函數(shù) float r,areafloat r,area; ;/定義單精度型變量定義單精度型變量scanf(%f,&rscanf(%f,&

18、amp;r);); /調(diào)用庫(kù)函數(shù)從鍵盤輸入半徑調(diào)用庫(kù)函數(shù)從鍵盤輸入半徑area=3.14area=3.14* *r r* *r;r; /計(jì)算圓的面積計(jì)算圓的面積printf(area=%fn,areaprintf(area=%fn,area););/在屏幕上顯示結(jié)果在屏幕上顯示結(jié)果 帶小數(shù)點(diǎn)的變量可定義為帶小數(shù)點(diǎn)的變量可定義為float(float(單精度型單精度型) ),%f%f為其格式說明符。為其格式說明符?!練w納總結(jié)【歸納總結(jié)】 為了使程序美觀、整齊,可讀性好,編寫為了使程序美觀、整齊,可讀性好,編寫C C程程序時(shí)應(yīng)盡量遵循以下規(guī)則:序時(shí)應(yīng)盡量遵循以下規(guī)則:“”和和“”對(duì)齊,且一般單獨(dú)占

19、一行。對(duì)齊,且一般單獨(dú)占一行。使用使用鍵縮進(jìn),書寫格式呈鋸齒形。鍵縮進(jìn),書寫格式呈鋸齒形。一條語(yǔ)句占一行。一條語(yǔ)句占一行。有足夠的注釋。有足夠的注釋?!纠纠?-31-3】從鍵盤輸入任意一個(gè)數(shù),輸出該數(shù)】從鍵盤輸入任意一個(gè)數(shù),輸出該數(shù)的平方根,輸出寬度占的平方根,輸出寬度占7 7位,并保留兩位小數(shù)。位,并保留兩位小數(shù)。 帶小數(shù)點(diǎn)的變量可定義為帶小數(shù)點(diǎn)的變量可定義為double(double(雙精度型雙精度型) ),其格,其格式說明符為式說明符為%lf%lf。#include stdio.h#include /注明輸入輸出函數(shù)使用的頭文件注明輸入輸出函數(shù)使用的頭文件#include math.h

20、#include /注明注明sqrtsqrt()()函數(shù)使用的頭文件函數(shù)使用的頭文件void main()void main()/定義主函數(shù)定義主函數(shù) double a,bdouble a,b; ;/定義變量定義變量scanf(%lf,&ascanf(%lf,&a););/調(diào)用庫(kù)函數(shù)從鍵盤輸入數(shù)據(jù)調(diào)用庫(kù)函數(shù)從鍵盤輸入數(shù)據(jù)b=sqrt(ab=sqrt(a););/計(jì)算平方根計(jì)算平方根printfprintf(平方根為:平方根為:%7.2lfn,b);%7.2lfn,b);/在屏幕上顯示結(jié)果在屏幕上顯示結(jié)果 7.27.2為附加格式說明符,表示輸出寬度占為附加格式說明符,表示輸出寬度

21、占7 7位,并保位,并保留兩位小數(shù)。留兩位小數(shù)。 floatfloat單精度型變量和單精度型變量和doubledouble雙精度型變量都可以雙精度型變量都可以存儲(chǔ)實(shí)數(shù),兩者有何區(qū)別?存儲(chǔ)實(shí)數(shù),兩者有何區(qū)別? 雙精度型變量精度更高、能存儲(chǔ)的數(shù)值范圍更大。雙精度型變量精度更高、能存儲(chǔ)的數(shù)值范圍更大。 雙精度型變量占雙精度型變量占8 8個(gè)字節(jié)存儲(chǔ)空間,有效數(shù)字達(dá)到個(gè)字節(jié)存儲(chǔ)空間,有效數(shù)字達(dá)到1515位;而單精度型變量占位;而單精度型變量占4 4個(gè)字節(jié)存儲(chǔ)空間,有效個(gè)字節(jié)存儲(chǔ)空間,有效數(shù)字只有數(shù)字只有6 6位。位。 一般情況下,采用單精度型變量就可以了。一般情況下,采用單精度型變量就可以了。 【例【例

22、1-41-4】從鍵盤輸入三角形的三條邊長(zhǎng)】從鍵盤輸入三角形的三條邊長(zhǎng)a a、b b、c c,求三角形的面積求三角形的面積s s,輸出寬度占,輸出寬度占7 7位,并保留兩位小位,并保留兩位小數(shù)。計(jì)算三角形面積的公式為,其中,數(shù)。計(jì)算三角形面積的公式為,其中,p=(a+b+c)/2p=(a+b+c)/2。 #include stdio.h#include / /注明輸入輸出函數(shù)使用的頭文件注明輸入輸出函數(shù)使用的頭文件#include math.h#include / /注明注明sqrtsqrt()()函數(shù)使用的頭文件函數(shù)使用的頭文件void main()void main()/定義主函數(shù)定義主函數(shù)

23、 double a,b,c,p,sdouble a,b,c,p,s; ;/定義變量定義變量printfprintf(請(qǐng)輸入三條邊長(zhǎng):請(qǐng)輸入三條邊長(zhǎng):););/顯示輸入提示信息顯示輸入提示信息scanf(%lf%lf%lf,&a,&b,&cscanf(%lf%lf%lf,&a,&b,&c););/調(diào)用庫(kù)函數(shù)調(diào)用庫(kù)函數(shù)p=(a+b+c)/2;p=(a+b+c)/2;s=sqrt(ps=sqrt(p* *(p-a)(p-a)* *(p-b)(p-b)* *(p-c(p-c););/計(jì)算面積計(jì)算面積printfprintf(結(jié)果為:結(jié)果為:%7.2lfn

24、,s);%7.2lfn,s);/在屏幕上顯示結(jié)果在屏幕上顯示結(jié)果 1.3.3 C語(yǔ)言程序的調(diào)試方法語(yǔ)言程序的調(diào)試方法 程序錯(cuò)誤總體上有兩類:語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。 對(duì)于語(yǔ)法錯(cuò)誤,編譯時(shí)會(huì)產(chǎn)生錯(cuò)誤提示信息,可以根據(jù)錯(cuò)誤提示信息加以修改。 如果程序編譯、連接都沒有錯(cuò)誤,但運(yùn)行結(jié)果與預(yù)期結(jié)果不一致,則需要通過調(diào)試來找出程序中存在的邏輯錯(cuò)誤,并加以排除。 調(diào)試可以借助“調(diào)試工具條(Debug)”來進(jìn)行,“調(diào)試工具條”中的主要命令如圖1-15所示。 如果VC 6.0當(dāng)前的工具欄上沒有顯示“調(diào)試工具條”命令按鈕,則可在菜單欄空白處右擊,選中“調(diào)試工具條(Debug)” 。 C語(yǔ)言的調(diào)試手段主要有:?jiǎn)尾綀?zhí)行單

25、步執(zhí)行、運(yùn)行到光標(biāo)處運(yùn)行到光標(biāo)處和設(shè)置斷點(diǎn)設(shè)置斷點(diǎn),這三種調(diào)試手段在實(shí)踐中常常結(jié)合使用。1. 單步執(zhí)行單步執(zhí)行(Step Over)單擊“單步執(zhí)行(Step Over)”按鈕一次,程序執(zhí)行一步 程序執(zhí)行的每一步都可以通過以下幾種方式來查看程序中變量的值,檢查程序的執(zhí)行情況。 把光標(biāo)移動(dòng)到某個(gè)變量上,停留一會(huì)就可以看到該變量的值。 在窗口的左下方,會(huì)自動(dòng)顯示變量的值。 在窗口右下方的觀察窗口中輸入變量名,會(huì)顯示該變量的值。2. 運(yùn)行到光標(biāo)處運(yùn)行到光標(biāo)處(Run to Cursor) 先在源程序中定位好光標(biāo)的位置,再單擊工具欄上的“運(yùn)行到光標(biāo)處(Run to Cursor)”按鈕,程序?qū)⒅苯舆\(yùn)行到

26、光標(biāo)所在的行,然后暫停,接下來可以通過單步執(zhí)行等方式繼續(xù)調(diào)試。3. 設(shè)置斷點(diǎn)設(shè)置斷點(diǎn)(Insert Breakpoint)程序運(yùn)行到斷點(diǎn)處會(huì)自動(dòng)暫停程序運(yùn)行到斷點(diǎn)處會(huì)自動(dòng)暫停 1.5 算法及其描述算法及其描述 1.5.1 算法的概念算法的概念所謂算法,就是為解決某個(gè)特定問題而所謂算法,就是為解決某個(gè)特定問題而采取的方法和步驟,算法是程序的靈魂。采取的方法和步驟,算法是程序的靈魂。 一個(gè)有效的算法應(yīng)該具備以下五個(gè)基本特性。1. 有窮性有窮性一個(gè)算法所包含的操作步驟應(yīng)該是有限的,并且每一步都能在合理的時(shí)間內(nèi)完成,否則,算法就失去了它的使用價(jià)值。2. 確定性確定性確定性是指算法的每個(gè)操作步驟都應(yīng)當(dāng)具

27、有明確的含義,不應(yīng)產(chǎn)生歧義,模棱兩可的算法是無法實(shí)現(xiàn)的。3. 有效性有效性有效性是指算法的每個(gè)操作步驟都是能夠?qū)崿F(xiàn)和執(zhí)行的,否則,無法編寫出相應(yīng)的程序代碼。4. 有零個(gè)或多個(gè)輸入有零個(gè)或多個(gè)輸入有些算法不需要從外界輸入數(shù)據(jù)。例如,求10!。但有些算法則必須從外界輸入數(shù)據(jù)。例如,求n!,必須從鍵盤輸入n的值后才能進(jìn)行計(jì)算。5. 有一個(gè)或多個(gè)輸出有一個(gè)或多個(gè)輸出算法最終必須將計(jì)算結(jié)果告訴用戶,沒有任何輸出的算法是毫無意義的。1.5.2 算法的描述算法的描述1. 傳統(tǒng)流程圖傳統(tǒng)流程圖結(jié)構(gòu)化程序設(shè)計(jì)有三種基本控制結(jié)構(gòu):順序結(jié)構(gòu)化程序設(shè)計(jì)有三種基本控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這三種基本控制結(jié)

28、構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這三種基本控制結(jié)構(gòu)用傳統(tǒng)流程圖表示如圖結(jié)構(gòu)用傳統(tǒng)流程圖表示如圖1-19所示。所示。 【例【例1-51-5】從鍵盤輸入一】從鍵盤輸入一個(gè)自然數(shù)個(gè)自然數(shù)n n,求,求n n!。!。2 NS圖圖 NS圖的每一種基本結(jié)構(gòu)都是一個(gè)矩形框,整個(gè)算法就像堆積木一樣形成。程序的三種基本控制結(jié)構(gòu)用NS圖表示如圖1-21所示。 【例【例1-61-6】從鍵盤輸入一個(gè)自然數(shù)】從鍵盤輸入一個(gè)自然數(shù)n n,求,求n n!。!。3 偽代碼偽代碼 偽代碼是一種介于自然語(yǔ)言與計(jì)算機(jī)語(yǔ)言之間的描述工具,它無嚴(yán)格的語(yǔ)法規(guī)則,書寫格式自由,容易表達(dá)出程序員的思想,但偽代碼不如流程圖直觀。 【例【例1-71-7

29、】從鍵盤輸入一個(gè)自然數(shù)】從鍵盤輸入一個(gè)自然數(shù)n n,求,求n n!。!。4 用計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)算法用計(jì)算機(jī)語(yǔ)言實(shí)現(xiàn)算法【例【例1-8】用】用C語(yǔ)言實(shí)現(xiàn)從鍵盤輸入一個(gè)自然數(shù)語(yǔ)言實(shí)現(xiàn)從鍵盤輸入一個(gè)自然數(shù)n,求,求n!。!。程序代碼如下:程序代碼如下:#include void main()int i=1, p=1, n; /定義變量并賦初值定義變量并賦初值scanf(%d,&n); /輸入輸入nwhile(i=n)/求求n!p=p*i;i=i+1;printf(計(jì)算結(jié)果為:計(jì)算結(jié)果為:%dn, p);/在屏幕上顯示結(jié)在屏幕上顯示結(jié)果果1.6 格式化輸入、輸出函數(shù)格式化輸入、輸出函數(shù) 1.6.

30、1格式化輸入函數(shù)格式化輸入函數(shù)scanf(格式控制字符串格式控制字符串,變量地址列表,變量地址列表);例:例:int a;scanf(%d,&a) ;1.6.2格式化輸出函數(shù)格式化輸出函數(shù)printf(格式控制字符串格式控制字符串,輸出列表,輸出列表); 例例: printf(%d,a); 對(duì)于一個(gè)大型的軟件系統(tǒng),采用模塊化程序設(shè)計(jì)是一種比較有效的方法。 所謂模塊化程序設(shè)計(jì)就是將一個(gè)大的程序按功能分割成一個(gè)個(gè)小的模塊,每個(gè)模塊功能單一、程序規(guī)模不大,這樣有利于編程和調(diào)試。 學(xué)生信息管理系統(tǒng)案例簡(jiǎn)介學(xué)生信息管理系統(tǒng)案例簡(jiǎn)介 學(xué)生信息管理系統(tǒng)菜單 【例【例1-91-9】 一個(gè)簡(jiǎn)單的菜單程序

31、。#include stdio.h#include stdio.h void main()void main() intint choice; choice;printfprintf( ( 歡迎使用學(xué)生信息管理系統(tǒng)歡迎使用學(xué)生信息管理系統(tǒng)n);n);printfprintf(n);(n);printf(1.printf(1.添加學(xué)生信息添加學(xué)生信息 2.2.顯示學(xué)生信息顯示學(xué)生信息n);n);printf(3.printf(3.修改學(xué)生信息修改學(xué)生信息 4.4.刪除學(xué)生信息刪除學(xué)生信息n);n);printf(5.printf(5.查找學(xué)生信息查找學(xué)生信息 6.6.統(tǒng)計(jì)不及格人數(shù)、最高分和平均

32、分統(tǒng)計(jì)不及格人數(shù)、最高分和平均分n);n);printf(7.printf(7.按總分排序按總分排序 8.8.保存至文件保存至文件( (文本方式文本方式)n);)n);printf(9.printf(9.從文件讀入從文件讀入( (文本方式文本方式) 10.) 10.保存至文件保存至文件( (二進(jìn)制方式二進(jìn)制方式)n);)n);printf(11.printf(11.從文件讀入從文件讀入( (二進(jìn)制方式二進(jìn)制方式) 12 .) 12 .退出程序退出程序n);n);printfprintf(n);(n);printfprintf(請(qǐng)選擇功能模塊,輸入數(shù)字請(qǐng)選擇功能模塊,輸入數(shù)字1-12: );1-

33、12: );scanf(%d,&choicescanf(%d,&choice););printfprintf(您選擇了第您選擇了第%d%d號(hào)子菜單號(hào)子菜單n, choice);n, choice); 本章小結(jié)本章小結(jié)本章主要介紹了本章主要介紹了C C程序的基本結(jié)構(gòu)和上機(jī)步驟,主要內(nèi)容總程序的基本結(jié)構(gòu)和上機(jī)步驟,主要內(nèi)容總結(jié)如下:結(jié)如下:(1) C(1) C程序由函數(shù)組成,有且只有一個(gè)程序由函數(shù)組成,有且只有一個(gè)main()main()主函數(shù)。當(dāng)調(diào)用庫(kù)函主函數(shù)。當(dāng)調(diào)用庫(kù)函數(shù)時(shí)需要將其所在的頭文件包含進(jìn)來。數(shù)時(shí)需要將其所在的頭文件包含進(jìn)來。(2) C(2) C函數(shù)由語(yǔ)句組成,每條語(yǔ)

34、句必須以分號(hào)結(jié)尾。函數(shù)由語(yǔ)句組成,每條語(yǔ)句必須以分號(hào)結(jié)尾。(3) (3) 變量名區(qū)分大小寫字母。變量名區(qū)分大小寫字母。(4) (4) 注釋用來增強(qiáng)程序的可讀性,注釋有二種方式,注釋用來增強(qiáng)程序的可讀性,注釋有二種方式,/ /* * */ /可用可用于單行或多行注釋,而于單行或多行注釋,而/只能用于單行注釋。只能用于單行注釋。(5) C(5) C語(yǔ)言輸入和輸出操作是由庫(kù)函數(shù)來實(shí)現(xiàn)的。語(yǔ)言輸入和輸出操作是由庫(kù)函數(shù)來實(shí)現(xiàn)的。(6) (6) 編程時(shí)應(yīng)采用分層縮進(jìn)的書寫格式,以便于程序的閱讀。編程時(shí)應(yīng)采用分層縮進(jìn)的書寫格式,以便于程序的閱讀。(7) C(7) C語(yǔ)言程序的開發(fā)步驟分為四步:編輯、編譯、連

35、接和執(zhí)行。語(yǔ)言程序的開發(fā)步驟分為四步:編輯、編譯、連接和執(zhí)行。1. 1. 從鍵盤輸入兩個(gè)整數(shù),計(jì)算這兩個(gè)數(shù)之差的絕對(duì)值。從鍵盤輸入兩個(gè)整數(shù),計(jì)算這兩個(gè)數(shù)之差的絕對(duì)值。#include stdio.h#include /注明輸入輸出函數(shù)使用的頭文件注明輸入輸出函數(shù)使用的頭文件#include math.h#include /注明絕對(duì)值函數(shù)使用的頭文件注明絕對(duì)值函數(shù)使用的頭文件void main()void main()/定義主函數(shù)定義主函數(shù) int x,y,zint x,y,z; ;/定義變量定義變量printfprintf(請(qǐng)輸入兩個(gè)整數(shù):請(qǐng)輸入兩個(gè)整數(shù):); /); /顯示輸入提示信息顯示輸

36、入提示信息scanf(%d%d,&x,&yscanf(%d%d,&x,&y););/調(diào)用庫(kù)函數(shù)從鍵盤輸入數(shù)據(jù)調(diào)用庫(kù)函數(shù)從鍵盤輸入數(shù)據(jù)z=abs(x-yz=abs(x-y););/計(jì)算兩個(gè)數(shù)之差的絕對(duì)值計(jì)算兩個(gè)數(shù)之差的絕對(duì)值printfprintf(結(jié)果為:結(jié)果為:%dn,z%dn,z););/顯示結(jié)果顯示結(jié)果 練習(xí)題練習(xí)題2.2.從鍵盤輸入直角三角形的兩條直角邊的長(zhǎng)度,求斜從鍵盤輸入直角三角形的兩條直角邊的長(zhǎng)度,求斜邊的長(zhǎng)度和三角形的面積,計(jì)算結(jié)果保留兩位小數(shù)。邊的長(zhǎng)度和三角形的面積,計(jì)算結(jié)果保留兩位小數(shù)。#include stdio.h#include /注明

37、輸入輸出函數(shù)使用的頭文件注明輸入輸出函數(shù)使用的頭文件#include math.h#include /注明注明sqrtsqrt()()函數(shù)使用的頭文件函數(shù)使用的頭文件void main()void main()/定義主函數(shù)定義主函數(shù) double x,y,z,areadouble x,y,z,area; ; / /定義變量定義變量printfprintf(請(qǐng)輸入兩條直角邊的長(zhǎng)度:請(qǐng)輸入兩條直角邊的長(zhǎng)度:); /); /顯示輸入提示信息顯示輸入提示信息scanf(%lf%lf,&x,&yscanf(%lf%lf,&x,&y););/從鍵盤輸入數(shù)據(jù)從鍵盤輸入數(shù)據(jù)z=

38、sqrt(xz=sqrt(x* *x+yx+y* *y);y);/計(jì)算斜邊計(jì)算斜邊area=xarea=x* *y/2y/2; ;/計(jì)算面積計(jì)算面積printfprintf(斜邊斜邊%7.2lf%7.2lf,面積,面積%7.2lf n,z,area%7.2lf n,z,area);/);/顯示結(jié)果顯示結(jié)果 3.3.求一元二次方程求一元二次方程3x3x2 2-20 x-100=0-20 x-100=0的根,計(jì)算結(jié)果保留的根,計(jì)算結(jié)果保留兩位小數(shù)。兩位小數(shù)。#include stdio.h#include /注明輸入輸出函數(shù)使用的頭文件注明輸入輸出函數(shù)使用的頭文件#include math.h#i

39、nclude /注明注明sqrtsqrt()()函數(shù)使用的頭文件函數(shù)使用的頭文件void main()void main()/定義主函數(shù)定義主函數(shù) double a=3,b=-20,c=-100,delta,x1,x2;double a=3,b=-20,c=-100,delta,x1,x2;/定義變量定義變量delta=sqrt(bdelta=sqrt(b* *b-4b-4* *a a* *c);c);/計(jì)算計(jì)算deltadeltax1=(-b+delta)/(2x1=(-b+delta)/(2* *a);a); /計(jì)算方程的根計(jì)算方程的根x2=(-b-delta)/(2x2=(-b-delta)/(2* *a);a);printf(x1printf(x1%7.2lf%7.2lf,x2x2%7.2lf n,x1,x1);%7.2lf n,x1,x1);/顯示結(jié)果顯示結(jié)果 4.4.從鍵盤輸入兩個(gè)整

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論