高級(jí)語(yǔ)言程序設(shè)計(jì)-從C到C++(第二版)課件:C語(yǔ)言入門_第1頁(yè)
高級(jí)語(yǔ)言程序設(shè)計(jì)-從C到C++(第二版)課件:C語(yǔ)言入門_第2頁(yè)
高級(jí)語(yǔ)言程序設(shè)計(jì)-從C到C++(第二版)課件:C語(yǔ)言入門_第3頁(yè)
高級(jí)語(yǔ)言程序設(shè)計(jì)-從C到C++(第二版)課件:C語(yǔ)言入門_第4頁(yè)
高級(jí)語(yǔ)言程序設(shè)計(jì)-從C到C++(第二版)課件:C語(yǔ)言入門_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.1初識(shí)C程序1.2C程序從編輯到運(yùn)行1.3變量與賦值1.4輸入與輸出1.5流程控制1.6函數(shù)1.7編程風(fēng)格1.1初識(shí)C程序?qū)τ诔鯇W(xué)者來(lái)說(shuō),C語(yǔ)言的詞匯即關(guān)鍵字,接近于我們使用的自然語(yǔ)言(這里指英語(yǔ)),在某種程度上可以見(jiàn)名知義。下面就讓我們通過(guò)一個(gè)簡(jiǎn)單的程序來(lái)認(rèn)識(shí)和了解C語(yǔ)言?!纠?.1】在屏幕上輸出一行文字:歡迎使用C語(yǔ)言!對(duì)于上述代碼,我們需要進(jìn)行編輯、保存、編譯和運(yùn)行,從而在屏幕上輸出相應(yīng)的文字。編輯代碼,必須有一個(gè)可以進(jìn)行文字編輯的軟件。Windows操作系統(tǒng)中自帶的記事本或者M(jìn)SWORD等軟件,均可以完成代碼的編輯與存儲(chǔ)功能。在C語(yǔ)言程序設(shè)計(jì)中,程序代碼編寫完成后保存在擴(kuò)展名為“.c”的文件中,該文件即為源程序文件。我們將上述代碼保存在Lianxi_1_1.c源程序文件中。由于C語(yǔ)言是高級(jí)語(yǔ)言,因此需要將源程序翻譯成計(jì)算機(jī)可以識(shí)別的機(jī)器語(yǔ)言,也就是要對(duì)源程序進(jìn)行編譯。程序在編譯成功以后,即可以運(yùn)行,在屏幕上輸出相應(yīng)的文字。程序執(zhí)行后,輸出結(jié)果顯示在Windows的Console控制臺(tái)(也稱作Windows的命令行DOS框,本書中簡(jiǎn)稱為控制臺(tái))中。運(yùn)行結(jié)果中,在標(biāo)題欄列出了當(dāng)前運(yùn)行的程序“Lianxi_1_1.exe”,該程序即源程序編譯之后的可執(zhí)行程序??刂婆_(tái)上顯示出要求輸出的文字“歡迎使用C語(yǔ)言!”,以及該程序執(zhí)行所用時(shí)間與返回值。當(dāng)根據(jù)控制臺(tái)上的提示“請(qǐng)按任意鍵繼續(xù)…”操作時(shí),該程序運(yùn)行結(jié)束。雖然例1.1僅有短短數(shù)行程序代碼,但是已經(jīng)具備了C語(yǔ)言的基本框架和特征。源程序中符號(hào)“//”后面的內(nèi)容為注釋,注釋的作用是在源程序中對(duì)特定的代碼進(jìn)行簡(jiǎn)要解釋,起到標(biāo)記相應(yīng)代碼的作用,以增強(qiáng)程序的可讀性,尤其是在復(fù)雜的源程序文件中,注釋對(duì)理解源代碼起到了非常重要的作用。當(dāng)程序運(yùn)行時(shí),注釋不會(huì)對(duì)程序產(chǎn)生任何作用。C語(yǔ)言中的注釋有兩種形式:(1)單行注釋:使用雙斜線符號(hào)“//”注釋其后的內(nèi)容,表示雙斜線以后到本行結(jié)束的內(nèi)容均為注釋部分。(2)多行注釋:使用一對(duì)符號(hào)“/*”與“*/”完成內(nèi)容注釋,表示從符號(hào)“/*”開始到符號(hào)“*/”結(jié)束之間的內(nèi)容均為注釋,無(wú)論這些內(nèi)容是在一行還是多行中。單行注釋短小精悍,多用于代碼中對(duì)某語(yǔ)句的解釋。多行注釋可以詳細(xì)描述某個(gè)部分的具體功能。C語(yǔ)言編譯器在編譯源程序時(shí),對(duì)注釋部分忽略不計(jì),不會(huì)為注釋生成機(jī)器代碼。源程序的第二行以“#”開始的部分,是一個(gè)預(yù)處理指令。該指令在對(duì)程序進(jìn)行編譯之前告訴預(yù)處理器,該程序要包括標(biāo)準(zhǔn)輸入輸出函數(shù)庫(kù)。其中“stdio”是“standardinput&output”的縮寫,擴(kuò)展名“.h”中的“h”是英文單詞head的縮寫,意為頭文件。C語(yǔ)言頭文件stdio.h中包含與輸入/輸出相關(guān)的函數(shù),在本程序中使用的printf(?)函數(shù)即定義在該文件中。因此凡是涉及與輸入/輸出相關(guān)的函數(shù)時(shí),需要確認(rèn)標(biāo)準(zhǔn)函數(shù)庫(kù)中是否已經(jīng)定義,若已定義,則可以直接使用,并在源程序中應(yīng)用上述預(yù)處理指令。代碼“intmain(?)”是任何C語(yǔ)言程序必不可少的一部分。C語(yǔ)言程序由一系列的函數(shù)所構(gòu)成,C語(yǔ)言程序設(shè)計(jì)的基本單位是函數(shù),這些函數(shù)可以在一個(gè)源文件中,也可以根據(jù)不同功能而分布在多個(gè)源文件中。在這一系列的函數(shù)中,必須有一個(gè)而且只能有一個(gè)以main為名的函數(shù),這個(gè)函數(shù)稱為主函數(shù),整個(gè)程序由主函數(shù)開始執(zhí)行,一般也是以主函數(shù)結(jié)束。該行代碼中,關(guān)鍵字int表示該主函數(shù)需返回一個(gè)整型數(shù)值,與程序最后一行的“return0;”相對(duì)應(yīng)。代碼“printf("歡迎使用C語(yǔ)言!");”告訴計(jì)算機(jī)執(zhí)行一個(gè)輸出動(dòng)作,它是一條可執(zhí)行語(yǔ)句?!皃rintf”為“printfunction”的縮寫,是一個(gè)格式化輸出函數(shù),該函數(shù)在標(biāo)準(zhǔn)輸入/輸出文件stdio.h中定義。該函數(shù)將雙引號(hào)中的內(nèi)容輸出到屏幕上。C語(yǔ)言的語(yǔ)法規(guī)定分號(hào)“;”是一條語(yǔ)句的終止符號(hào),每一條可執(zhí)行語(yǔ)句都必須以分號(hào)結(jié)束,但是只要符合語(yǔ)法,多條語(yǔ)句可以在一行書寫,一條語(yǔ)句也可以在多行書寫。1.2C程序從編輯到運(yùn)行一個(gè)簡(jiǎn)單的C語(yǔ)言程序,從編寫到運(yùn)行經(jīng)過(guò)了幾個(gè)必不可少的過(guò)程,如圖1.2所示。在編輯階段,使用文字處理軟件編寫代碼,并將文件保存為以“.c”為擴(kuò)展名的源程序文件。在編譯階段,編譯器(Compiler)將源程序翻譯為計(jì)算機(jī)可識(shí)別和執(zhí)行的機(jī)器指令,即目標(biāo)程序,文件以“.obj”為擴(kuò)展名。和源程序一樣,目標(biāo)程序也不能直接執(zhí)行,需要經(jīng)過(guò)連接器(Linker),將目標(biāo)程序同C語(yǔ)言庫(kù)中提供的支持程序和其他相關(guān)目標(biāo)模塊連接起來(lái),然后就生成了可以直接運(yùn)行的可執(zhí)行文件(以“.exe”為擴(kuò)展名)。連接器為C語(yǔ)言提供了豐富的手段,通過(guò)與外在資源的連接,迅速地?cái)U(kuò)充了C語(yǔ)言,從而得到了功能強(qiáng)大的可執(zhí)行程序。Dev-C++?是一個(gè)Windows環(huán)境下的集成開發(fā)環(huán)境,可用于C語(yǔ)言或者C++?語(yǔ)言程序的開發(fā)。作為一款自由開源軟件,它集成了眾多C/C++?語(yǔ)言開發(fā)環(huán)境的優(yōu)點(diǎn),免費(fèi)且實(shí)用。Dev-C++?遵循C11標(biāo)準(zhǔn)并兼容C99標(biāo)準(zhǔn),其開發(fā)環(huán)境包括多頁(yè)面窗口、工程編輯器以及調(diào)試器等,在工程編輯器中集成了編輯器、編譯器、連接程序和執(zhí)行程序,提供高亮度語(yǔ)法顯示以減少編輯錯(cuò)誤,具備基本的調(diào)試功能,可以進(jìn)行單步語(yǔ)句跟蹤調(diào)試。最重要的是Dev-C++?有中文界面,這也是目前很多C語(yǔ)言開源軟件不具備的優(yōu)勢(shì)。該軟件可通過(guò)網(wǎng)絡(luò)免費(fèi)下載使用,在下載了該軟件之后,雙擊該軟件,軟件即開始自動(dòng)安裝;在安裝完成后第一次運(yùn)行時(shí),需要對(duì)運(yùn)行環(huán)境進(jìn)行配置,即選取開發(fā)界面所使用的語(yǔ)言,如圖1.3(a)所示。這時(shí)如果選擇中文,軟件的開發(fā)界面則為中文模式(見(jiàn)圖1.3(b))。下面我們結(jié)合例1.1來(lái)介紹如何使用Dev-C++?實(shí)現(xiàn)從源程序編輯到程序執(zhí)行的完整過(guò)程。1.源程序編輯選取菜單項(xiàng)【文件】→【新建】→【源代碼】,進(jìn)入源代碼的編輯界面。按照例1.1的內(nèi)容輸入代碼,并保存為L(zhǎng)ianxi_1_1.c源程序文件。在學(xué)習(xí)C語(yǔ)言程序之初,就應(yīng)該有一個(gè)良好的編程習(xí)慣,除了前文提到的對(duì)代碼進(jìn)行詳盡的注釋之外,還應(yīng)該將代碼編寫得錯(cuò)落有致,不同部分之間以空行間隔,這樣程序的可讀性也會(huì)隨之提高。2.源程序編譯在程序編寫完成后,選取菜單項(xiàng)【運(yùn)行】→【編譯】,如圖1.6所示,即開始對(duì)源程序進(jìn)行編譯。編譯過(guò)程中相關(guān)信息的反饋以及編譯結(jié)果會(huì)顯示在開發(fā)環(huán)境的編譯日志中。在編譯日志中,我們可以看到當(dāng)前編譯的文件個(gè)數(shù)、文件名及所使用的編譯器的名稱。編譯過(guò)程中會(huì)進(jìn)行C語(yǔ)言的語(yǔ)法檢查,對(duì)于沒(méi)有遵守語(yǔ)法規(guī)則所引起的錯(cuò)誤,編譯器會(huì)顯示錯(cuò)誤信息,從而使程序編寫人員可以很容易地定位該錯(cuò)誤并進(jìn)行修正。如果我們將例1.1中printf語(yǔ)句后的分號(hào)去掉,再進(jìn)行編譯,就會(huì)看到,在開發(fā)界面下部的編輯器窗口中顯示了錯(cuò)誤信息,并且指明了錯(cuò)誤產(chǎn)生的位置。同時(shí),在編譯日志中,也相應(yīng)地指出了程序錯(cuò)誤及錯(cuò)誤發(fā)生的位置。在編譯結(jié)果中,顯示出錯(cuò)誤發(fā)生數(shù)目(1個(gè)),而且由于編譯過(guò)程中有錯(cuò)誤產(chǎn)生,編譯沒(méi)有生成可執(zhí)行程序(如圖1.9所示)。3.程序執(zhí)行當(dāng)源程序編譯成功之后,即生成了相應(yīng)的可執(zhí)行文件,選取菜單項(xiàng)【運(yùn)行】→【運(yùn)行】,可運(yùn)行該程序。此時(shí),運(yùn)行的是編譯生成的可執(zhí)行文件,而不是源程序文件。這時(shí)將彈出Windows控制臺(tái)窗口,顯示運(yùn)行結(jié)果。1.3變量與賦值【例1.2】使用C語(yǔ)言編寫程序,實(shí)現(xiàn)兩個(gè)整數(shù)的加法運(yùn)算,并將結(jié)果顯示在屏幕上。程序第一行的預(yù)處理指令引入標(biāo)準(zhǔn)輸入/輸出函數(shù)庫(kù),因此在程序中可以直接使用printf(?)標(biāo)準(zhǔn)輸出函數(shù)。在主函數(shù)main(?)中,定義了三個(gè)變量,名稱分別是a、b、sum。所謂變量,就是程序中用來(lái)存放數(shù)據(jù)的對(duì)象,在程序運(yùn)行期間其值可以改變。每一個(gè)變量都應(yīng)該有一個(gè)名字,即變量名,便于在程序設(shè)計(jì)過(guò)程中使用。C語(yǔ)言規(guī)定所有變量在使用前必須先定義,包括定義變量的數(shù)據(jù)類型和變量名。通常,變量的定義會(huì)放在函數(shù)的開始部分、其他可執(zhí)行語(yǔ)句之前。C語(yǔ)言的變量除了可以定義為整型外,還可以定義為其他類型。不同的數(shù)據(jù)類型,對(duì)應(yīng)的存儲(chǔ)空間不同,存儲(chǔ)的數(shù)據(jù)也不同。在定義變量的時(shí)候,需要遵從C語(yǔ)言的語(yǔ)法規(guī)則:變量的定義至少應(yīng)包含變量的數(shù)據(jù)類型與變量名,即也可以通過(guò)逗號(hào)間隔,定義同一類型的多個(gè)變量:根據(jù)上述規(guī)則,例1.2中的三個(gè)變量可以分別定義,如下:由于這三個(gè)變量均為整型變量,也可以定義為變量必須先定義后使用,如果變量在使用之前沒(méi)有定義,則在對(duì)程序進(jìn)行編譯時(shí),編譯器會(huì)返回錯(cuò)誤信息,指出該變量在使用前沒(méi)有定義。C語(yǔ)言強(qiáng)制要求變量在使用之前被定義,可以起到以下作用:

(1)如果在定義變量時(shí)明確指定了數(shù)據(jù)類型,則程序在編譯時(shí)就能為該變量分配相應(yīng)的存儲(chǔ)空間,并檢查該變量的使用是否正確。(2)在定義變量時(shí),除了指定數(shù)據(jù)類型,還需要為變量命名,如例1.2中的變量名a、b和sum。為變量命名就好像為飯店的每一個(gè)包廂指定名稱一樣,便于程序設(shè)計(jì)過(guò)程中對(duì)其進(jìn)行操作。C語(yǔ)言規(guī)定變量的命名需要遵循一定的規(guī)則:①變量名只能由字母、數(shù)字或下劃線組成;②變量名的第一個(gè)字符只能是下劃線或者字母。此外,C語(yǔ)言對(duì)字母的大小寫敏感,即認(rèn)為大寫字母與小寫字母是兩個(gè)不同的字符。因此在上述變量名中,firstName與FirstName是兩個(gè)不同的變量名。除了上述兩項(xiàng)規(guī)則以外,C語(yǔ)言的相關(guān)標(biāo)準(zhǔn)并沒(méi)有規(guī)定變量名的長(zhǎng)度,以及如何給變量命名,因此變量名的選擇相對(duì)來(lái)說(shuō)是自由的。而且C語(yǔ)言也沒(méi)有限定變量名的長(zhǎng)度,理論上講,變量名可以無(wú)限長(zhǎng)。但是為了程序書寫的便利以及閱讀的方便,變量名應(yīng)控制在有限長(zhǎng)度內(nèi),并且變量的名字應(yīng)該有一定的含意(與英文含意相對(duì)應(yīng))。變量必須先定義后使用,但是變量也不能重復(fù)定義,因?yàn)樵诰幾g時(shí)會(huì)根據(jù)變量的類型進(jìn)行空間分配,如果變量重復(fù)定義,則編譯器會(huì)給出錯(cuò)誤信息。在變量被定義以后即可以按照其數(shù)據(jù)類型來(lái)使用。變量可以在使用的時(shí)候賦值,也可以在定義的時(shí)候賦值。在定義的同時(shí)對(duì)變量進(jìn)行賦值稱作變量的初始化。如果變量在定義之后、使用之前沒(méi)有賦值,變量中所存儲(chǔ)的數(shù)據(jù)不確定,則編譯程序時(shí)并不會(huì)出錯(cuò),但是程序執(zhí)行的結(jié)果會(huì)出錯(cuò)。1.4輸入與輸出在例1.2的程序中,對(duì)變量a和b分別賦值23與24,那么該程序只能實(shí)現(xiàn)對(duì)整數(shù)23與24的求和運(yùn)算。如果我們想要實(shí)現(xiàn)對(duì)任意兩個(gè)整數(shù)的求和計(jì)算,則需要將程序做適當(dāng)?shù)男薷?,如下例?!纠?.3】編寫程序,實(shí)現(xiàn)對(duì)任意兩個(gè)整數(shù)的求和運(yùn)算。對(duì)例1.3程序編譯成功之后,運(yùn)行該程序,Windows的控制臺(tái)第一行顯示結(jié)果如圖1.11所示。通過(guò)鍵盤輸入數(shù)字23之后按回車鍵,則顯示結(jié)果如圖1.12所示。通過(guò)鍵盤輸入數(shù)字24之后按回車鍵,則程序計(jì)算出兩個(gè)整數(shù)的和。在程序執(zhí)行的過(guò)程中實(shí)現(xiàn)了簡(jiǎn)單的人機(jī)交互,按照程序執(zhí)行過(guò)程中對(duì)數(shù)據(jù)類型的要求,通過(guò)鍵盤分別輸入兩個(gè)整數(shù),從而實(shí)現(xiàn)了對(duì)任意兩個(gè)整數(shù)的求和計(jì)算。在例1.3中,使用了前面提到的標(biāo)準(zhǔn)輸出函數(shù)printf,給用戶進(jìn)行提示,并且使用了一個(gè)新的函數(shù)scanf,用于獲取從鍵盤輸入的信息。函數(shù)scanf與函數(shù)printf一樣,都被定義在了標(biāo)準(zhǔn)輸入/輸出函數(shù)庫(kù)<stdio.h>中。因此,通過(guò)程序的預(yù)處理指令“#include<stdio.h>”,即可在程序中使用這兩個(gè)函數(shù)。在例1.3中,函數(shù)scanf通過(guò)逗號(hào)分隔開兩個(gè)參數(shù),分別是“%d”和“&a”。第一個(gè)參數(shù),我們?cè)诶?.2中的函數(shù)printf中也用到了,該參數(shù)是格式控制字符串,指出程序希望接收的輸入數(shù)據(jù)。字符串“%d”中,字符“d”指出該數(shù)據(jù)應(yīng)該是十進(jìn)制的整型數(shù)據(jù)(字母d即decimal的首字母),“%”是一個(gè)特定的字符,指出其后緊跟格式控制符。函數(shù)的第二個(gè)參數(shù)“&a”中的字符“a”對(duì)應(yīng)著前面定義的整型變量a,而符號(hào)“&”表示該變量的地址,又稱作取地址運(yùn)算符,表明了通過(guò)該語(yǔ)句輸入的數(shù)據(jù)要存放到變量a中。符號(hào)“&”是函數(shù)scanf要求使用的,函數(shù)printf并不需要。例1.3中的標(biāo)準(zhǔn)輸出函數(shù)printf有兩種形式,即無(wú)格式輸出和有格式輸出,分別為和無(wú)格式輸出時(shí),只有一個(gè)參數(shù),該參數(shù)被雙引號(hào)括起來(lái)。程序執(zhí)行時(shí)將按照雙引號(hào)內(nèi)的字符串原樣顯示,即顯示有格式輸出時(shí),函數(shù)printf有兩個(gè)參數(shù),第一個(gè)參數(shù)為格式控制字符串,雙引號(hào)內(nèi)的字符串將按照順序輸出,但是遇到格式控制符“%d”時(shí),將使用第二個(gè)參數(shù),即變量sum中的數(shù)據(jù)(假設(shè)為47)對(duì)格式控制符進(jìn)行替換,從而輸出函數(shù)scanf與printf的一般形式分別為其中,變量列表即用逗號(hào)分隔的一個(gè)或多個(gè)變量;而格式控制字符串中,需要有對(duì)應(yīng)數(shù)目的格式控制符。注意,函數(shù)scanf中變量列表的每一個(gè)變量前都需要有地址符號(hào)“&”。而函數(shù)printf正如前面所述,可以只有一個(gè)參數(shù),即省略參數(shù)變量列表。1.5流程控制例1.3中實(shí)現(xiàn)了最簡(jiǎn)單的人機(jī)交互,即根據(jù)程序的提示和要求通過(guò)鍵盤輸入兩個(gè)整數(shù),然后程序計(jì)算出兩個(gè)整數(shù)的和?,F(xiàn)在我們希望程序能夠根據(jù)計(jì)算的結(jié)果,指出結(jié)果是大于0、等于0還是小于0。因此在源程序代碼中,需要引入能夠根據(jù)結(jié)果進(jìn)行判斷的語(yǔ)句?!纠?.4】編寫程序,由鍵盤輸入兩個(gè)整數(shù),求和并判斷結(jié)果是大于0還是小于0。程序編譯成功后,執(zhí)行該程序,并根據(jù)屏幕提示分別輸入第一個(gè)整數(shù)25和第二個(gè)整數(shù)-30,如圖1.14所示。在程序編譯成功而開始執(zhí)行時(shí),首先提示輸入第一個(gè)整數(shù),通過(guò)鍵盤輸入25后按回車鍵,將數(shù)值25賦給整型變量a;接著程序提示輸入第二個(gè)整數(shù),通過(guò)鍵盤輸入?-30后按回車鍵,將數(shù)值?-30賦給整型變量b。然后,程序計(jì)算變量a與變量b的和并賦值給整型變量sum。到目前為止,程序中的語(yǔ)句按照它們?cè)谠创a中的順序一句一句地被執(zhí)行。這就是順序結(jié)構(gòu)。然而在執(zhí)行求和語(yǔ)句之后,需要根據(jù)結(jié)果進(jìn)行判斷,不同的結(jié)果將顯示輸出不同的內(nèi)容。選擇結(jié)構(gòu)就是為了完成類似的任務(wù)而產(chǎn)生的,在源程序中通過(guò)if語(yǔ)句來(lái)判斷結(jié)果并根據(jù)結(jié)果輸出相應(yīng)的內(nèi)容。對(duì)于例1.4中的if語(yǔ)句:可以理解為,當(dāng)程序按順序執(zhí)行到if語(yǔ)句時(shí),判斷變量sum是否大于0,如果成立,則輸出“結(jié)果大于0”。在例題中,整數(shù)a+b的結(jié)果為?-5,不滿足if語(yǔ)句的判斷條件,因此程序?qū)⒉粓?zhí)行緊跟著if的語(yǔ)句,而是執(zhí)行下一條if語(yǔ)句。同理,若該判斷條件也不成立,則程序繼續(xù)執(zhí)行下一條判斷語(yǔ)句。因?yàn)閟um的值為?-5,小于0,if語(yǔ)句的條件滿足,所以程序執(zhí)行緊跟著該if語(yǔ)句的輸出語(yǔ)句,顯示“結(jié)果小于0”。if語(yǔ)句的出現(xiàn),為程序的執(zhí)行增添了多種可能性。在需要進(jìn)行判斷的場(chǎng)合,均可以根據(jù)需要使用if語(yǔ)句。圖1.15的流程圖簡(jiǎn)單示意了基于判斷的選擇語(yǔ)句。if語(yǔ)句的一般形式為程序執(zhí)行到if語(yǔ)句時(shí),首先計(jì)算條件判斷表達(dá)式的結(jié)果。如果該條件成立,則執(zhí)行緊跟著if的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。如果條件成立,有多個(gè)操作語(yǔ)句需要執(zhí)行,可以使用“{”和“}”將條件成立時(shí)需執(zhí)行的語(yǔ)句括起來(lái)。1.6函數(shù)如果我們繼續(xù)將例題的功能復(fù)雜化,要求可以判斷從鍵盤輸入的兩個(gè)數(shù)據(jù)的大小,則根據(jù)上一節(jié)的內(nèi)容,我們可以很容易地將例1.4修改為例1.5?!纠?.5】由鍵盤輸入兩個(gè)整數(shù),判斷結(jié)果是大于0還是小于0,并判斷哪個(gè)數(shù)字較大。在分析題目的要求以及程序時(shí),可以看到程序已經(jīng)具備了兩個(gè)基本功能:(1)根據(jù)求和結(jié)果,輸出不同的內(nèi)容。(2)根據(jù)輸入數(shù)據(jù)大小,輸出較大的數(shù)據(jù)。功能的不斷增加,使主程序本身的功能變得模糊。如果能夠?qū)⒊绦虻拇a根據(jù)功能的不同分別組織起來(lái),程序在閱讀及編寫上將會(huì)變得條理清晰。C語(yǔ)言程序設(shè)計(jì)的基本單位就是函數(shù),將復(fù)雜功能通過(guò)函數(shù)的形式封裝起來(lái),可以重復(fù)使用,而通過(guò)函數(shù)調(diào)用語(yǔ)句,就可以完成相應(yīng)的復(fù)雜功能。因此根據(jù)例1.5的要求,采用函數(shù)調(diào)用形式將其改寫為例1.6?!纠?.6】由鍵盤輸入兩個(gè)整數(shù),判斷結(jié)果是大于0還是小于0,并判斷哪個(gè)數(shù)字較大。從程序源代碼中可以看到整個(gè)程序由三部分組成,我們用結(jié)構(gòu)圖簡(jiǎn)化為圖1.16。正如前面所述,主函數(shù)main是C語(yǔ)言程序中必不可少的函數(shù),程序從主函數(shù)開始執(zhí)行,一般也在主函數(shù)結(jié)束運(yùn)行。通過(guò)函數(shù)調(diào)用的形式將不同的功能模塊組合在一起,便于程序代碼的編寫、閱讀以及管理。函數(shù)的重復(fù)調(diào)用,也可以減少重復(fù)編寫代碼的工作量。主函數(shù)的起始部分:對(duì)程序后面使用到的函數(shù)進(jìn)行了聲明,正如前面提到的C語(yǔ)言對(duì)變量要求先定義后使用,對(duì)函數(shù)也有同樣的要求。在本例中,因?yàn)楹瘮?shù)定義在了主函數(shù)的后面,而主函數(shù)中又需要使用這兩個(gè)函數(shù),因此在主函數(shù)的開始部分,對(duì)兩個(gè)函數(shù)進(jìn)行聲明以便在程序中使用。如果兩個(gè)函數(shù)的定義部分寫在了主函數(shù)之前,則主函數(shù)中的聲明部分可以省略。編寫函數(shù)的過(guò)程也就是定義函數(shù)的過(guò)程。函數(shù)定義的基本格式為函數(shù)的定義包含了函數(shù)頭和函數(shù)體兩部分。函數(shù)頭定義函數(shù)的名字和參數(shù)。函數(shù)體則定義該函數(shù)要完成的功能。函數(shù)的命名也遵循前面提到的與變量命名一致的規(guī)則,即函數(shù)名只能由字母、數(shù)字、下劃線組成,并且首字符只能是字母或下劃線。函數(shù)的聲明則相對(duì)要簡(jiǎn)單,只需要符合下面的格式即可:函數(shù)定義與聲明的不同是顯而易見(jiàn)的。函數(shù)的聲明有時(shí)也稱作是函數(shù)的原型。函數(shù)的定義、函數(shù)的聲明以及函數(shù)的調(diào)用三者應(yīng)一致,否則將導(dǎo)致編譯錯(cuò)誤。通常一

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論