![C++程序設(shè)計(jì)教程第1章_第1頁](http://file4.renrendoc.com/view/e28b610a9bb3551805a873c2779a9505/e28b610a9bb3551805a873c2779a95051.gif)
![C++程序設(shè)計(jì)教程第1章_第2頁](http://file4.renrendoc.com/view/e28b610a9bb3551805a873c2779a9505/e28b610a9bb3551805a873c2779a95052.gif)
![C++程序設(shè)計(jì)教程第1章_第3頁](http://file4.renrendoc.com/view/e28b610a9bb3551805a873c2779a9505/e28b610a9bb3551805a873c2779a95053.gif)
![C++程序設(shè)計(jì)教程第1章_第4頁](http://file4.renrendoc.com/view/e28b610a9bb3551805a873c2779a9505/e28b610a9bb3551805a873c2779a95054.gif)
![C++程序設(shè)計(jì)教程第1章_第5頁](http://file4.renrendoc.com/view/e28b610a9bb3551805a873c2779a9505/e28b610a9bb3551805a873c2779a95055.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章C語言及程序設(shè)計(jì)初步
本章主要內(nèi)容:1.1C/C++歷史及特點(diǎn)1.2程序與程序設(shè)計(jì)1.3算法與算法的表示1.4C語言的基本結(jié)構(gòu)1.5C程序的調(diào)試C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第1頁。1.1.1C/C++歷史C語言是在70年代初問世的。1978年由美國電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)表了C語言。同時(shí)由B.W.Kernighan和D.M.Ritchit合著了著名的“THECPROGRAMMINGLANGUAGE”一書。通常簡稱為《K&R》C,也有人稱之為《K&R》C標(biāo)準(zhǔn)。但是,在《K&R》C中并沒有定義一個(gè)完整的標(biāo)準(zhǔn)C語言。《K&R》C通常被作為C編譯器所支持的最基本的C語言部分。1983年,由美國國家標(biāo)準(zhǔn)學(xué)會(huì)(ANSI)建立了一個(gè)委員會(huì),著手制定ANSI的標(biāo)準(zhǔn)C。1988年,ANSI公布了標(biāo)準(zhǔn)ANSIC。這個(gè)標(biāo)準(zhǔn)的大部分特性已經(jīng)由現(xiàn)代的編譯系統(tǒng)所支持。1989年,國際標(biāo)準(zhǔn)化組織(ISO)也采納了ANSI標(biāo)準(zhǔn),稱ANSI/ISOstandardC。(ANSIX3.159-1989)。標(biāo)準(zhǔn)化的一個(gè)目的是擴(kuò)展《K&R》C。在ANSI標(biāo)準(zhǔn)化的過程中,一些新的特征被加了進(jìn)去。在ANSI標(biāo)準(zhǔn)化后,C語言的標(biāo)準(zhǔn)在一段相當(dāng)?shù)臅r(shí)間內(nèi)都保持不變。C語言的標(biāo)準(zhǔn)在90年代才經(jīng)歷了改進(jìn),這就是ISO9899:1999(1999年出版)。這個(gè)版本就是通常提及的C99。它被ANSI于2000年三月采用。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第2頁。1.1.2C語言的特點(diǎn)
(1)C語言是一種功能強(qiáng)大的高級語言它可以直接訪問內(nèi)存的物理地址,進(jìn)行位(bit)一級的操作。由于C語言實(shí)現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。C語言可以象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第3頁。1.1.2C語言的特點(diǎn)
(2)結(jié)構(gòu)式語言
C語言是一種結(jié)構(gòu)化語言。它用函數(shù)作為程序的基本單位,容易做到層次清晰,便于按模塊化方式組織程序。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第4頁。1.1.2C語言的特點(diǎn)
(3)功能齊全C語言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。C語言具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的。因此既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第5頁。1.1.2C語言的特點(diǎn)
(4)適用范圍大
C語言還具有效率高,可移植性強(qiáng)等特點(diǎn)。C語言還有一個(gè)突出的優(yōu)點(diǎn)就是適合于多種操作系統(tǒng),如DOS、UNIX,也適用于多種機(jī)型。因此廣泛地移植到了各類各型計(jì)算機(jī)上,從而形成了多種版本的C語言。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第6頁。1.2程序與程序設(shè)計(jì)
1.2.1程序1.2.2程序設(shè)計(jì)語言1.2.3程序設(shè)計(jì)C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第7頁。1.2.1程序
定義:程序是供計(jì)算機(jī)執(zhí)行后,能完成特定功能的指令序列。計(jì)算機(jī)程序主要包括兩個(gè)方面的內(nèi)容:數(shù)據(jù)結(jié)構(gòu)和算法。數(shù)據(jù)結(jié)構(gòu)描述數(shù)據(jù)對象及數(shù)據(jù)對象之間的關(guān)系;算法描述數(shù)據(jù)對象的處理過程。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第8頁。1.2.1程序
計(jì)算機(jī)程序有以下性質(zhì):(1)目的性程序有明確的目的,程序執(zhí)行后能完成指定的功能。(2)分步性程序由計(jì)算機(jī)可執(zhí)行的一系列基本步驟組成。(3)有序性程序的執(zhí)行步驟是有序的,不可隨意改變程序步驟的執(zhí)行順序。(4)有限性程序包含的指令序列是有限的。(5)操作性有意義的程序總是對某些對象進(jìn)行操作,完成預(yù)定的功能。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第9頁。1.2.2程序設(shè)計(jì)語言
通用的計(jì)算機(jī)不能識(shí)別自然語言,只能識(shí)別特定的計(jì)算機(jī)語言。計(jì)算機(jī)語言即程序設(shè)計(jì)語言是程序設(shè)計(jì)的工具,一般分為低級語言和高級語言。低級語言直接依賴于計(jì)算機(jī)硬件,不同的機(jī)型使用的低級語言是完全不一樣的。高級語言則不依賴于計(jì)算機(jī)硬件,用高級語言編寫的程序可以方便地、幾乎不加修改地用在不同類型的計(jì)算機(jī)上。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第10頁。1.2.2程序設(shè)計(jì)語言
1.低級語言低級語言包括機(jī)器語言和匯編語言。機(jī)器語言是直接使用二進(jìn)制代碼表示指令來編程的語言,它依賴于不同機(jī)型的指令系統(tǒng)。必須準(zhǔn)確地牢記每一條指令的二進(jìn)制代碼,才能編寫程序,因此不是意見容易的事情。機(jī)器語言的優(yōu)點(diǎn)是執(zhí)行速度快,并且可以直接對硬件進(jìn)行操作。缺點(diǎn)是可讀性差、移植性差。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第11頁。1.2.2程序設(shè)計(jì)語言
2.高級語言高級語言是一種敘述性語言,是一種比較接近自然語言和數(shù)學(xué)語言的程序設(shè)計(jì)語言。高級語言與人類所貫用的語法比較接近,所以容易編寫、排錯(cuò)。因此,高級語言的出現(xiàn)大大提高了程序員的工作效率,降低了程序設(shè)計(jì)難度,并且改善了程序質(zhì)量。但是,相對于低級語言,高級語言對硬件的控制能力比較差,執(zhí)行效率也比較低。常見的高級語言有BASIC、FORTRAN、COBOL、PASCAL等。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第12頁。1.2.2程序設(shè)計(jì)語言
2.高級語言C語言不僅具有高級語言的優(yōu)點(diǎn),還兼顧了低級語言的特點(diǎn),可以象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,實(shí)現(xiàn)了對硬件的編程,利用低級語言的特點(diǎn)來提高程序代碼的執(zhí)行效率。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第13頁。1.2.3程序設(shè)計(jì)
程序設(shè)計(jì)是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計(jì)就是根據(jù)問題的需求,設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和算法,編制程序和調(diào)試程序,使計(jì)算機(jī)程序能完成所需要的任務(wù)。程序首先應(yīng)能正確完成任務(wù),并且是可靠的。簡單地說,程序設(shè)計(jì)是設(shè)計(jì)和編制程序的過程。
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第14頁。1.2.3程序設(shè)計(jì)
除了好的程序設(shè)計(jì)方法和技術(shù)之外,程序設(shè)計(jì)風(fēng)格也是很重要的。因?yàn)槌绦蛟O(shè)計(jì)風(fēng)格會(huì)深刻地影響軟件的質(zhì)量和可維護(hù)性,良好的程序設(shè)計(jì)風(fēng)格可以使程序結(jié)構(gòu)清晰合理,使程序代碼便于維護(hù),因此程序設(shè)計(jì)風(fēng)格對保證程序的質(zhì)量是很重要的。
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第15頁。1.2.3程序設(shè)計(jì)
源程序文檔化源程序文檔化應(yīng)考慮如下幾點(diǎn):(1)符號(hào)名的命名:符號(hào)名包括文件名和變量名,符號(hào)名的命名應(yīng)具有一定的實(shí)際含義,以便對程序功能的理解;符號(hào)名的命名還應(yīng)該由規(guī)律,以便對程序文件的整理。(2)程序注釋:正確的注釋能夠幫助讀者理解程序。注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開頭部分,他給出程序的整體說明。主要描述內(nèi)容包括:程序標(biāo)題、程序功能說明、主要算法、程序位置、接口說明、程序設(shè)計(jì)者、開發(fā)簡歷、審查者、修改日期等。功能性注釋的位置一般嵌入在源程序體中,主要描述下面的語句或程序做什么。(3)視覺組織:為了使程序的結(jié)構(gòu)一目了然,可以在程序中利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第16頁。1.2.3程序設(shè)計(jì)
數(shù)據(jù)說明的方法在編寫程序時(shí),需要注意數(shù)據(jù)說明的風(fēng)格,以便使程序中的數(shù)據(jù)說明更易于理解和維護(hù)。一般應(yīng)注意如下幾點(diǎn):(1)數(shù)據(jù)說明的次序規(guī)范化。鑒于程序理解、閱讀和維護(hù)的需要,使數(shù)據(jù)說明次序固定,可以使數(shù)據(jù)的屬性容易查找,這樣有利于測試、排錯(cuò)和維護(hù)。(2)說明語句中變量安排有序化。當(dāng)一個(gè)說明語句說明多個(gè)變量時(shí),變量按照字母順序排列為好。(3)使用注釋語句來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第17頁。1.2.3程序設(shè)計(jì)
語句的結(jié)構(gòu)程序應(yīng)該簡單易懂,語句構(gòu)造應(yīng)該簡單直接,不應(yīng)該為提高效率而把語句復(fù)雜化。一般應(yīng)該注意如下:(1)在一行只寫以條語句;(2)編寫程序首先考慮清晰性;(3)除非對效率有特殊要求,否則編寫程序時(shí),要做到清晰第一,效率第二;(4)首先保證程序正確,然后再提高速度;(5)避免使用大量的臨時(shí)變量而使程序的可讀性下降;(6)避免使用無條件轉(zhuǎn)移語句;(7)盡可能使用庫函數(shù);(8)避免使用復(fù)雜的條件嵌套語句;(9)模塊功能盡可能單一,即一個(gè)模塊完成一個(gè)功能;(10)不要對不良的程序修修補(bǔ)補(bǔ),不良的程序要重新編寫,避免因修改帶來新的問題。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第18頁。1.2.3程序設(shè)計(jì)
輸入/輸出無論是批處理的輸入和輸出方式,還是交互式的輸入和輸出方式,在設(shè)計(jì)和編程時(shí)都應(yīng)考慮如下原則:(1)對所有的輸入數(shù)據(jù)都要檢驗(yàn)其合法性;(2)檢查輸入項(xiàng)之間的合理性;(3)輸入數(shù)據(jù)盡可能少,操作盡可能的簡單;(4)在以交互輸入/輸出方式進(jìn)行輸入時(shí),要采用人——機(jī)會(huì)話的方式給出明確的提示信息和運(yùn)行的狀態(tài)信息;(5)設(shè)計(jì)輸出格式。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第19頁。1.3算法與算法的表示方法
1.3.1算法的概念1.3.2算法的特性1.3.3算法的常用表示方法C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第20頁。1.3.1算法的概念
為解決一個(gè)實(shí)際問題而采取的方法和步驟,稱之為“算法”。對于同一個(gè)問題,可能有不同的方法和步驟,即可能有不同的算法。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第21頁。1.3.1算法的概念
【例1.1】給出求1+2+3+……+100=?的算法描述。第1種算法:步驟1:1+2=3步驟2:3+3=6……步驟99:4950+100=5050第2種算法:步驟1:0+100=100步驟2:1+99=100步驟3:2+98=100……步驟50:49+51=100步驟51:100*50=5000步驟52:5000+50=5050C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第22頁。1.3.1算法的概念
【例1.1】給出求1+2+3+……+100=?的算法描述。第3種算法:步驟1:i=1,s=0步驟2:如果i>100,則算法結(jié)束,s即為所求結(jié)果,輸出s;否則轉(zhuǎn)向步驟3執(zhí)行。步驟3:s=s+i,i=i+1步驟4:轉(zhuǎn)向步驟2執(zhí)行。第4種算法:步驟1:i=100,s=0步驟2:如果i<1,則算法結(jié)束,s即為所求結(jié)果,輸出s;否則轉(zhuǎn)向步驟3執(zhí)行。步驟3:s=s+i,i=iI-1步驟4:轉(zhuǎn)向步驟2執(zhí)行。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第23頁。1.3.1算法的概念
可以看出,解決同一個(gè)問題有多種算法。當(dāng)然,算法有優(yōu)劣之分,有的算法簡練,有的算法煩瑣。一般來說,總是希望采用算法簡單、運(yùn)算步驟少的算法。上面4個(gè)算法中,算法1的步驟最多,算法3和算法4的步驟最少,質(zhì)量最優(yōu)。因此,為了有效地解決問題,在保證算法正確的前提下,要考慮算法的質(zhì)量,在多種算法中選擇合適的算法。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第24頁。1.3.2算法的特性
算法是一個(gè)有窮的指令集,是解決某一問題的運(yùn)算序列。一個(gè)算法一般應(yīng)具有以下幾個(gè)基本特征:(1)可行性。算法中描述的操作都可以通過已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次來實(shí)現(xiàn)。(2)確定性。算法的確定性,是指算法中的每一個(gè)步驟都必須是有明確定義的,不允許有模棱兩可的解釋,也不允許有多義性。對于每一種情況,需要執(zhí)行的動(dòng)作都應(yīng)嚴(yán)格地、清晰地規(guī)定。(3)有窮性。算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。算法的有窮性還應(yīng)包括合理的執(zhí)行時(shí)間的含義。假如,一個(gè)算法需要執(zhí)行千萬年,顯然失去了實(shí)用價(jià)值。(4)輸入。算法總是要施加到運(yùn)算對象上,提供運(yùn)算對象的初始情況。因此,一個(gè)算法必須有0個(gè)或多個(gè)輸入。(5)輸出。一個(gè)算法應(yīng)該有一個(gè)或多個(gè)輸出,輸出的量是算法計(jì)算的結(jié)果。如果沒有輸出,則無法知道結(jié)果。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第25頁。1.3.3算法的常用表示方法
1.流程圖流程圖是用圖形的方式來表示算法,是軟件制作過程的設(shè)計(jì)表示工具,流程圖表達(dá)直觀、清晰,易于學(xué)習(xí)和掌握。通常用一些幾何圖形來代表各種不同性質(zhì)的操作。美國國家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)規(guī)定了一些常用流程圖符號(hào),如圖1-1所示,已被大多數(shù)國家接受。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第26頁。1.3.3算法的常用表示方法
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第27頁。1.3.3算法的常用表示方法
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第28頁。1.3.3算法的常用表示方法
2.N-S結(jié)構(gòu)圖N-S圖是用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖的技術(shù)。在這種流程圖種把流程線全部去掉,全部算法寫在一個(gè)矩形框內(nèi),在框內(nèi)還可以包含其它框。N-S結(jié)構(gòu)圖的基本圖形有5種,如圖1-3所示。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第29頁。1.3.3算法的常用表示方法
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第30頁。1.3.3算法的常用表示方法
3.PAD圖PAD圖是問題分析圖(ProblemAnalysisDiagram)。它是繼程序流程圖和方框圖之后,提出的又一種描述算法的圖形工具?;緢D形有5種。如圖1-4所示。
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第31頁。1.3.3算法的常用表示方法
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第32頁。1.3.3算法的常用表示方法
4.偽碼表示法偽代碼是介于自然語言和計(jì)算機(jī)語言之間的文字和符號(hào)來表示算法,即用與程序設(shè)計(jì)語言很相近的偽碼描述處理過程的細(xì)節(jié),如結(jié)構(gòu)化語言。偽代碼是計(jì)算機(jī)程序設(shè)計(jì)種具有的語句關(guān)鍵字用英文表示,其它的可用漢字,也可用英文,只要便于書寫和閱讀即可。用偽碼表示算法無固定的、嚴(yán)格的語法規(guī)則,只要求把意圖表達(dá)清楚,書寫格式清晰易懂。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第33頁。1.3.3算法的常用表示方法
【例1.3】某工廠對工人的超產(chǎn)獎(jiǎng)勵(lì)政策為:該廠生產(chǎn)兩種產(chǎn)品A和B。凡工人每月的實(shí)際生產(chǎn)量超過計(jì)劃指標(biāo)者均有獎(jiǎng)勵(lì)。獎(jiǎng)勵(lì)政策為:對于產(chǎn)品A的生產(chǎn)者,超產(chǎn)數(shù)N小于或等于100件時(shí),每超產(chǎn)1件獎(jiǎng)勵(lì)2元;N大于100件小于等于150件時(shí),大于100件的部分每件獎(jiǎng)勵(lì)2.5元,其余的每件獎(jiǎng)勵(lì)金額不變;N大于150件時(shí),超過150件的部分每件獎(jiǎng)勵(lì)3元,其余按超產(chǎn)150件以內(nèi)的方案處理。對于產(chǎn)品B的生產(chǎn)者,超產(chǎn)數(shù)N小于或等于50件時(shí),每超產(chǎn)1件獎(jiǎng)勵(lì)3元;N大于50件小于等于100件時(shí),大于50件的部分每件獎(jiǎng)勵(lì)4元,其余的每件獎(jiǎng)勵(lì)金額不變;N大于100件時(shí),超過100件的部分每件獎(jiǎng)勵(lì)5元,其余按超產(chǎn)100件以內(nèi)的方案處理。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第34頁。1.3.3算法的常用表示方法
偽代碼描述如下:If產(chǎn)品=ACase數(shù)量<=100
獎(jiǎng)金=2×數(shù)量
Case數(shù)量>100and數(shù)量<=150
獎(jiǎng)金=200+(數(shù)量-100)×2.5Case數(shù)量>500
獎(jiǎng)金=200+125+(數(shù)量-150)×3ElseCase數(shù)量<=50
獎(jiǎng)金=3×數(shù)量
Case數(shù)量>50and數(shù)量<=100
獎(jiǎng)金=150+(數(shù)量-50)×4Case數(shù)量>100
獎(jiǎng)金=150+200+(數(shù)量-100)×5EndIfC++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第35頁。1.4.1C語言程序的組成1.4.2程序中的數(shù)據(jù)描述1.4.3程序功能及注釋1.4.4C源程序結(jié)構(gòu)的特點(diǎn)1.4C語言的基本結(jié)構(gòu)C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第36頁。計(jì)算機(jī)程序是指計(jì)算機(jī)為解決某個(gè)問題或完成某項(xiàng)任務(wù)而編制的指令序列。例如,輸入兩個(gè)數(shù),然后計(jì)算并輸出這兩個(gè)數(shù)的和。下面是一段比較簡單的C語言程序,以此為例,介紹C語言程序的組成。1.4.1程序的組成C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第37頁?!纠?.4】編程序計(jì)算并輸出兩個(gè)數(shù)的和。程序如下:01/*-------sumofxaddy-----------*/02#include<stdio.h>03voiudmain()/*定義主函數(shù),整數(shù)加法器程序*/04{05intx,y;/*變量定義*/06intz;/*變量定義*/07scanf(“%d,%d”,&x,&y);/*輸入兩個(gè)整數(shù),數(shù)據(jù)間以逗號(hào)分隔*/08z=x+y;/*求x+y的和,并存入z*/09printf(“Sum=%d”,z);/*輸出結(jié)果,既z的值*/10}1.4.1程序的組成C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第38頁。高級語言程序中的數(shù)據(jù)有兩種:一種是在程序運(yùn)行中不變的數(shù)值稱為常量,另一種是在程序運(yùn)行中發(fā)生改變的數(shù)值稱為變量。這兩種數(shù)據(jù)在程序編碼中使用符號(hào)描述,并根據(jù)取值類型預(yù)先定義。例如,【例1.4】中的變量定義,x、y、z均為整型變量。intx,y;/*變量定義*/intz;/*變量定義*/1.4.2程序中的數(shù)據(jù)描述C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第39頁。此程序的功能是在運(yùn)行時(shí)從鍵盤接收用戶輸入的兩個(gè)數(shù),然后計(jì)算并輸出這兩個(gè)數(shù)的和。程序語句如下:01scanf(“%d,%d”,&x,&y);02z=x+y;03printf(“Sum=%d”,z)該功能由三條語句完成,語句01輸入2個(gè)整數(shù),語句02求輸入的2個(gè)數(shù)的和,語句03輸出計(jì)算的結(jié)果。1.4.3程序功能及注釋C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第40頁。正確的注釋可以幫助讀者正確地理解程序。注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開頭部分,它給出程序的整體說明。功能性注釋的位置一般嵌入在源程序體中,主要描述語句或程序做什么。例如給上面的3條語句加注釋。【例1.5】給語句加功能性注釋。01scanf(“%d,%d”,&x,&y);/*輸入兩個(gè)整數(shù),數(shù)據(jù)間以逗號(hào)分隔*/02z=x+y;/*求x+y的和,并存入z*/03printf(“Sum=%d”,z)/*輸出結(jié)果,既z的值*/1.4.3程序功能及注釋C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第41頁。1.C語言源程序的結(jié)構(gòu)(1)一個(gè)C語言源程序可以由一個(gè)或多個(gè)源程序文件組成。(2)每個(gè)源程序文件可由一個(gè)或多個(gè)函數(shù)組成,函數(shù)是程序的基本單位。(3)一個(gè)源程序程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù)。Main是一個(gè)特殊的函數(shù)名,一個(gè)程序總是從main()開始執(zhí)行。1.4.4C源程序結(jié)構(gòu)的特點(diǎn)C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第42頁。任何一個(gè)函數(shù)都由函數(shù)首部和函數(shù)體兩部分組成。函數(shù)首部:用于定義函數(shù)的名字、函數(shù)的類型和指定各種參數(shù)。例如:main()和max(intx,inty)函數(shù)體:函數(shù)首部下面由一對大括號(hào){……}括起來的部分,稱為函數(shù)體。(4)每個(gè)語句用分號(hào)“;”作為結(jié)束符,分號(hào)“;”是C語句不可缺少的組成部分。(5)源程序中可以有預(yù)處理命令(include命令),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。1.4.4C源程序結(jié)構(gòu)的特點(diǎn)C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第43頁。(6)每一個(gè)說明都必須用斜杠加星號(hào)括起來(/**/),每一個(gè)語句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“}”之后不能加分號(hào)。(7)標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。1.4.4C源程序結(jié)構(gòu)的特點(diǎn)C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第44頁。2.書寫程序時(shí)應(yīng)遵循的規(guī)則從書寫清晰,便于閱讀,理解,維護(hù)的角度出發(fā),在書寫程序時(shí)應(yīng)遵循以下規(guī)則:(1)一個(gè)說明或一個(gè)語句占一行。(2)用{}括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語句的第一個(gè)字母對齊,并單獨(dú)占一行。(3)低一層次的語句或說明可比高一層次的語句或說明縮進(jìn)若干格后書寫。以便看起來更加清晰,增加程序的可讀性。在編程時(shí)應(yīng)力求遵循這些規(guī)則,以養(yǎng)成良好的編程風(fēng)格。
1.4.4C源程序結(jié)構(gòu)的特點(diǎn)C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第45頁。1.5.1調(diào)試步驟C語言的編譯程序術(shù)語編譯系統(tǒng)。要完成一個(gè)C程序的調(diào)試,必須經(jīng)過編輯源程序、編譯源程序、連接目標(biāo)程序和運(yùn)行可執(zhí)行程序四個(gè)步驟。簡單一點(diǎn),可將四個(gè)階段成為編輯、編譯、連接、運(yùn)行。第一步編輯源程序。C的源程序是符合C語言語法的程序文本文件,文本文件又稱為源程序文件,擴(kuò)展名為.c。許多文本編輯器都可以用來編輯源程序,例如Windows寫字板、Word以及DOS的Edit等。需要注意的是C源程序的存儲(chǔ)格式必須是文本文件,在保存時(shí)必須選擇文本文件格式。1.5C程序的調(diào)試
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第46頁。第二步編譯源程序。編譯源程序的目的是對源程序進(jìn)行語法和語義分析,在排除編輯過程中的語法錯(cuò)誤和語義錯(cuò)誤后,生成目標(biāo)文件。目標(biāo)文件的主文件名與源程序的主文件名相同,擴(kuò)展名為.obj。當(dāng)源程序的語法和語義無錯(cuò)誤,才能生成目標(biāo)文件;否則要回到編輯狀態(tài)修改源程序。第三步連接。編譯后的目標(biāo)文件是不能運(yùn)行的,還需將目標(biāo)程序和庫函數(shù)連接為一個(gè)整體,即可執(zhí)行文件??蓤?zhí)行文件的主文件名與源程序的主文件名相同,擴(kuò)展名為.exe。1.5.1調(diào)試步驟C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第47頁。第四步運(yùn)行。可執(zhí)行文件需要裝入內(nèi)存執(zhí)行。如果在運(yùn)行過程中發(fā)現(xiàn)可執(zhí)行程序不能達(dá)到預(yù)期的目標(biāo),則必須重復(fù)“編輯、編譯、連接、運(yùn)行”這四個(gè)步驟。源程序的編譯及連接過程如圖1-5所示。1.5.1調(diào)試步驟C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第48頁。1.5.1調(diào)試步驟C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第49頁。1.5.2TurboC集成開發(fā)環(huán)境
下面簡單介紹使用TurboC++3.0編譯程序調(diào)試C程序的方法。盡管TurboC++3.0是C++版本,但是C++是在C的基礎(chǔ)上擴(kuò)展的,所以C程序也能夠在該環(huán)境下正確調(diào)試。TurboC++3.0是全屏幕編輯環(huán)境,程序的編輯、編譯、連接、運(yùn)行都可以在它的控制下完成。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第50頁。1.5.2TurboC集成開發(fā)環(huán)境
【例1.6】編寫計(jì)算a+b的程序,并將結(jié)果顯示在屏幕上,程序名為first.c。要求在TurboC++3.0環(huán)境下調(diào)試該程序。編寫的程序清單如下:/*----sumofaaddb------*/#include“stdio.h”voidmain(){inta,b,sum;a=8;b=10;sum=a+b;
printf(“aaddbis%d\n”,sum);}C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第51頁。1.5.2TurboC集成開發(fā)環(huán)境
下面是生成源程序first.c,編譯、連接、運(yùn)行該程序的具體步驟。(1)TurboC++3.0是DOS環(huán)境下的C++調(diào)試環(huán)境,因此首先要進(jìn)入Windows的DOS命令環(huán)境。選擇“開始”菜單下的“程序\附件\DOS命令提示符”,進(jìn)入DOS命令環(huán)境。(2)利用DOS命令進(jìn)入TurboC++的BIN目錄。命令如下:C>cd盤符:\tc\bin(3)在\tc\bin\目錄下執(zhí)行TC命令,進(jìn)入TurboC++3.0集成開發(fā)環(huán)境,如圖1-6所示:C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第52頁。1.5.2TurboC集成開發(fā)環(huán)境
圖1-6TurboC++3.0集成開發(fā)環(huán)境C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第53頁。1.5.2TurboC集成開發(fā)環(huán)境
(4)編輯源文件。在主菜單[File]下選擇[New],彈出編輯區(qū),在編輯區(qū)的光標(biāo)處輸入C源程序。在主菜單[Window]下選擇[Message],彈出信息區(qū),在信息區(qū)顯示你的工作狀態(tài)。如圖1-7所示。C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第54頁。1.5.2TurboC集成開發(fā)環(huán)境
(5)現(xiàn)在就可以在編輯區(qū)輸入程序了。輸入源程序之后,如圖1-8所示。
圖1-8輸入C語言源程序
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第55頁。1.5.2TurboC集成開發(fā)環(huán)境
(6)輸入源程序后必須保存。保存文件的方法是在[File]菜單下選擇[Save]選項(xiàng),并在保存文件對話框中輸入文件名,例如文件名為first.c,然后選擇[OK]命令按鈕,如圖1-9所示。圖1-9保存源文件
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第56頁。1.5.2TurboC集成開發(fā)環(huán)境
(7)編譯源文件。
在主菜單中,選擇[Compile]編譯菜單下的[Compile]命令,或按快捷鍵[Alt+F9],程序?qū)⒈痪幾g。操作方法如圖1-10所示。
圖1-10選擇編譯源程序的命令
C++程序設(shè)計(jì)教程第1章全文共65頁,當(dāng)前為第57頁。1.5.2TurboC集成開發(fā)環(huán)境
(8)如果程序出現(xiàn)語法錯(cuò)誤,系統(tǒng)將顯示出錯(cuò)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025項(xiàng)目法律服務(wù)合同
- 2023八年級英語下冊 Unit 4 Why don't you talk to your parents Section A 第1課時(shí)(1a-2d)說課稿 (新版)人教新目標(biāo)版
- 7多元文化 多樣魅力《多彩的世界文化》(說課稿)-統(tǒng)編版道德與法治六年級下冊
- 2025合同模板承包合同書(車輛)范本
- 2025中外合資公司勞動(dòng)合同協(xié)議書
- 直飲水施工方案
- 食堂餐廳售賣設(shè)備施工方案
- 2024年春七年級語文下冊 第4單元 13 葉圣陶先生二三事說課稿 新人教版
- 《1 信息并不神秘》說課稿-2023-2024學(xué)年華中師大版信息技術(shù)三年級上冊
- Unit 2 Expressing yourself Part A Lets spell(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級下冊001
- 河南省鄭州市十校聯(lián)考2024-2025學(xué)年高二上學(xué)期11月期中考試語文試題
- 音樂教學(xué)集訓(xùn)課程設(shè)計(jì)
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期期末 地理試題(含答案)
- 肺切除手術(shù)的術(shù)前評估課件
- 招聘專職人員報(bào)名表
- 牛津上海版小學(xué)英語四年級下冊(英語單詞表)
- 《大學(xué)生創(chuàng)新與創(chuàng)業(yè)》課件
- 護(hù)士的護(hù)理職業(yè)生涯規(guī)劃
- 2024年高考語文復(fù)習(xí):古詩文閱讀強(qiáng)化練習(xí)題匯編(含答案解析)
- 不良反應(yīng)事件及嚴(yán)重不良事件處理的標(biāo)準(zhǔn)操作規(guī)程藥物臨床試驗(yàn)機(jī)構(gòu)GCP SOP
- 勞動(dòng)合同(模版)4篇
評論
0/150
提交評論