《C程序設(shè)計項目教程》整套ppt課件完整版教學(xué)教程最全電子講義(最新)_第1頁
《C程序設(shè)計項目教程》整套ppt課件完整版教學(xué)教程最全電子講義(最新)_第2頁
《C程序設(shè)計項目教程》整套ppt課件完整版教學(xué)教程最全電子講義(最新)_第3頁
《C程序設(shè)計項目教程》整套ppt課件完整版教學(xué)教程最全電子講義(最新)_第4頁
《C程序設(shè)計項目教程》整套ppt課件完整版教學(xué)教程最全電子講義(最新)_第5頁
已閱讀5頁,還剩310頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計項目教程項目一共分為兩個任務(wù)項目一 歡迎進(jìn)入C語言世界任務(wù)一 熟悉C開發(fā)環(huán)境任務(wù)二 創(chuàng)建簡單的C應(yīng)用程序任務(wù)一 熟悉C開發(fā)環(huán)境一、計算機(jī)語言二、C語言的歷史三、C語言程序執(zhí)行過程四、C語言開發(fā)環(huán)境簡介在本任務(wù)中,我們將學(xué)習(xí)C語言的歷史及其常用的開發(fā)環(huán)境。任務(wù)說明預(yù)備知識一、計算機(jī)語言按計算機(jī)語言的發(fā)展進(jìn)程,可將計算機(jī)語言分為三類:1機(jī)器語言 以二進(jìn)制代碼(0和1)表示機(jī)器指令的一種語言,其程序能被計算機(jī)直接執(zhí)行。2匯編語言 用助記符代替機(jī)器指令,用變量代替各類地址,稱為匯編語言(也稱符號語言)。3高級語言 高級語言屏蔽了機(jī)器的細(xì)節(jié),更接近于自然語言和數(shù)學(xué)語言,給編程帶來了極大的方

2、便。二、C語言的歷史1967年為開發(fā)UNIX操作系統(tǒng),Ken Thompson在BCPL程序設(shè)計語言的基礎(chǔ)上,將其改造成B語言。1971年M.Ritchie改進(jìn)B語言,并命名為C語言。隨著UNIX操作系統(tǒng)的成功,C語言也獲得巨大成功。1989年ANSI發(fā)布了一個完整的C語言標(biāo)準(zhǔn),被稱為C89或ANSI C。ISO直接采用了C89作為C語言標(biāo)準(zhǔn),有的資料上稱其為C90。1990年ISO發(fā)布了最新的C語言規(guī)范,被稱為C99。1999年ISO正式發(fā)布了C語言的新標(biāo)準(zhǔn)C11。2011年12月8日三、C語言程序執(zhí)行過程高級語言編寫的程序只有借助編譯程序?qū)⑵浞g為用0和1表示的機(jī)器語言指令代碼,才能真正在

3、計算機(jī)中執(zhí)行。高級語言翻譯有兩種方式:一是編譯方法,二是解釋方法。1編寫源代碼2編譯(Compile)將我們編寫的源代碼翻譯為計算機(jī)能夠理解的二進(jìn)制目標(biāo)代碼。3連接(Link)將目標(biāo)文件與函數(shù)合并成完整的可執(zhí)行文件,即生成.exe文件。4運行執(zhí)行連接成功后得到的可執(zhí)行程序。C語言程序都采用編譯方式運行。四、C語言開發(fā)環(huán)境簡介 Dev-C+是一個運行在Windows環(huán)境下、免費的C/C+開發(fā)工具,體積非常小,只有9M多一點,其界面如下圖所示。1Dev-C+2Code:Blocks 它是一個開源、免費、跨平臺的C/C+開發(fā)工具。由純粹的C+語言開發(fā)完成,使用了著名的圖形界面庫wxWidgets,其

4、運行界面如右圖所示。3C-FreeC-Free是一款支持多種編譯器的國產(chǎn)C/C+集成開發(fā)環(huán)境(IDE),其運行界面如右圖所示。4Microsoft Visual C+系列 Microsoft Visual C+系列是最經(jīng)典的、功能強大的C/C+開發(fā)工具,尤以Visual C+ 6.0(簡稱VC或者VC6.0)版本使用最多。類視圖用于面向?qū)ο蟮腃+語言編程文件視圖列出了整個工程的文件架構(gòu),用戶可以從不同文件夾中找到不同后綴的文件,如源文件、頭文件、資源文件等。工作區(qū)任務(wù)實施輸出問候信息實施步驟1創(chuàng)建源程序步驟1 啟動Visual C+ 6.0,打開“文件”菜單,選擇“新建”菜單項,在打開的 “新

5、建”對話框中選擇“文件”選項卡,在左側(cè)文件類型列表中選擇“C+ Source File”選項,創(chuàng)建一個C+源程序,如圖1-8所示。圖1-8 選擇新建C+源文件步驟2 在右側(cè)“文件名”編輯框中輸入文件名“任務(wù)1-1”,然后單擊 按鈕選擇文件存儲位置。單擊“確定”按鈕,接下來在編輯區(qū)中輸入以下代碼:/任務(wù)1-1#include /*文件包含*/void main( ) /*主函數(shù) */ /*函數(shù)體開始*/ printf (Welcome to C World!n); /*輸出語句*/ /*函數(shù)體結(jié)束*/步驟3 單擊工具欄中的“保存”按鈕 或者直接按【Ctrl+S】組合鍵,保存文件,源程序創(chuàng)建完成。

6、2編譯連接步驟1 選擇“組建”“編譯任務(wù)1-1.cpp”菜單,系統(tǒng)將顯示如圖1-9所示對話框,詢問是否在創(chuàng)建源文件的目錄下建立一個活動工程和一個工作空間。圖1-9 詢問對話框步驟2 單擊“是”按鈕,創(chuàng)建一個與源程序同名的工作區(qū)(對應(yīng)文件為“任務(wù)1-1.dsw”)和一個工程(對應(yīng)文件為“任務(wù)1-1.dsp”),系統(tǒng)開始編譯。編譯結(jié)束后,將在輸出窗口顯示編譯信息,如圖1-10所示。圖1-10 輸出編譯信息步驟3 編譯信息顯示“任務(wù)1-1.obj - 0 error(s), 0 warning(s)”,表示編譯程序時沒有錯誤和警告。為此,可繼續(xù)選擇“組建”“組建任務(wù)1-1.exe”菜單,對生成的目標(biāo)

7、程序進(jìn)行連接,以生成可執(zhí)行程序,如圖1-11所示。圖1-11 輸出連接信息3調(diào)試運行編譯連接通過后,選擇“組建”“執(zhí)行任務(wù)1-1.exe”菜單,或者直接按【Ctrl+F5】組合鍵,運行生成的程序,將出現(xiàn)圖1-12所示畫面。結(jié)果正確無誤,按任意鍵返回。圖1-12 運行結(jié)果任務(wù)二 創(chuàng)建簡單的C應(yīng)用程序一、C程序基本結(jié)構(gòu)任務(wù)說明在正式學(xué)習(xí)C語言語法之前,我們先來感受一下C程序的概貌。預(yù)備知識二、VC的調(diào)試程序功能一、C程序基本結(jié)構(gòu)下面來看一段C程序的代碼,該代碼用于求取計算兩個整數(shù)中的最大值。【例1-4】 求取兩個整數(shù)的最大值。#include /* GetMax函數(shù)用于求兩個整數(shù)中的最大值,參數(shù)類

8、型和返回值類型均為整型 */int GetMax(int a, int b)if(ab) /* 如果a值大于b值,則返回a */return a;return b;/* 否則返回b */void main()int x, y, max;printf(Please input two integers: );scanf(%d%d, &x, &y);/* 通過鍵盤輸入兩個整數(shù)值 */max = GetMax( x, y );/* 調(diào)用GetMax函數(shù)求兩個整數(shù)中的最大值, 并將其保存到max變量中 */printf(The max number is: %dn, max);/* 輸出最大值 */1

9、C語言程序由函數(shù)構(gòu)成2程序中包含對庫函數(shù)的引用3程序有良好的編碼格式4編寫程序注釋5友好的人機(jī)交互提示二、VC的調(diào)試程序功能第一步 設(shè)置斷點程序成功編譯后,將鼠標(biāo)光標(biāo)停留在需要設(shè)置斷點的代碼行,單擊工具欄按鈕 即可添加斷點,此時該行前端將出現(xiàn)一個斷點標(biāo)志 ,如右圖所示。第二步 開始調(diào)試程序如圖1-16所示,打開“組建”下拉菜單,執(zhí)行“開始調(diào)試”“GO”命令(或直接按【F5】鍵),程序會進(jìn)入調(diào)試模式,并且會在斷點處暫停,如圖1-17所示。第三步 單步運行打開“調(diào)試”下拉菜單,執(zhí)行“Step Over”命令或直接按【F10】鍵,即可單步運行程序。不斷按【F10】鍵,程序會一步一步地向前執(zhí)行,如圖1

10、-18所示。單步調(diào)試程序時,可以Variables窗口和Watch窗口中察看變量值的變化,這兩個窗口的作用如下: 在Variables窗口中會自動顯示當(dāng)前運行程序中所有變量的值。隨著單步調(diào)試的進(jìn)行,我們會看到變量i的值逐漸遞增。 如果本地變量比較多,Variables窗口就會比較混亂,此時可以直接在代碼中選中需要監(jiān)控的變量,將其拖放到Watch列表,該變量的值會被顯示出來。在調(diào)試模式下,“調(diào)試”工具欄會自動彈出,各按鈕作用如下:重啟調(diào)試(【Ctrl+ Shift+F5】);結(jié)束調(diào)試(【Shift+F5】);在當(dāng)前點上掛起程序的執(zhí)行;可以在調(diào)試狀態(tài)下修改程序源代碼(【Alt+F10】);顯示程序

11、代碼中的下一條語句(【Alt+Num】);正在跟蹤的語句是一個子程序調(diào)用(函數(shù)或方法)時,該選項單步進(jìn)入所調(diào)用的子程序(【F11】);正在跟蹤的語句是一個子程序調(diào)用(函數(shù)或方法)時,該選項跳過所調(diào)用的子程序,停留在子程序調(diào)用下面的語句(【F10】);確認(rèn)當(dāng)前子程序中沒有程序錯誤時,該選項可以快速執(zhí)行該子程序,并停留在子程序后面的語句(【Shift+F11】);快速執(zhí)行到光標(biāo)所在的代碼處(【Ctrl+F10】);顯示QuickWatch窗口,在該窗口可以計算表達(dá)式的值(【Shift+F9】);打開Watch窗口,該窗口包含當(dāng)前程序中變量名的當(dāng)前值,以及所有選擇表達(dá)式;打開Variables窗口,

12、該窗口包含關(guān)于當(dāng)前和前面的語句中所使用的變量和返回值。任務(wù)實施輸出“九九”乘法口訣表實施步驟步驟1 啟動VC,按任務(wù)一中介紹的方法創(chuàng)建一個C源程序,命名為“九九口訣”,在打開的代碼編輯框中輸入如下代碼:#include stdio.hvoid main() int i,j,result; /用到3個變量,i和j用于存儲乘數(shù),result用于存儲乘積 printf(n); for(i=1;i10;i+)/i的值從1到9 for(j=1;j“執(zhí)行九九口訣.exe”菜單命令,或者直接按【Ctrl+F5】組合鍵,運行生成的程序,結(jié)果如圖1-21所示。圖1-21 “九九”乘法口訣C語言程序設(shè)計項目教程項

13、目二共分為兩個任務(wù)項目二 C語法基礎(chǔ)任務(wù)一 熟悉C語言的基礎(chǔ)語言元素任務(wù)二 掌握簡單的C語句項目拓展 數(shù)據(jù)類型轉(zhuǎn)換任務(wù)一 熟悉C語言的基礎(chǔ)語言元素任務(wù)說明預(yù)備知識 在本任務(wù)中,我們首先了解數(shù)據(jù)在計算機(jī)中的存儲方式和數(shù)據(jù)類型,然后學(xué)習(xí)常量、變量、運算符和表達(dá)式等C語言的基礎(chǔ)語言元素。一、數(shù)據(jù)存儲方式與數(shù)據(jù)類型二、標(biāo)識符三、常量和變量四、運算符和表達(dá)式一、數(shù)據(jù)存儲方式與數(shù)據(jù)類型(一)數(shù)據(jù)存儲方式 在計算機(jī)中,所有信息(包括數(shù)值、字符、漢字、計算機(jī)指令等)的存儲、處理與傳送都采用二進(jìn)制的形式。二進(jìn)制數(shù)中只有“0”和“1”兩個數(shù)字符號,其運算規(guī)則如下表所示。在計算機(jī)中,數(shù)的表示方法一般有兩種,它們分別

14、是定點數(shù)和浮點數(shù)。1定點數(shù)定點數(shù)是指小數(shù)點位置固定不變的數(shù),又分為定點整數(shù)和定點小數(shù)。定點整數(shù) 定點整數(shù)規(guī)定小數(shù)點的位置固定在數(shù)據(jù)的最低位之后,但不占一個二進(jìn)制位,如下圖所示。定點小數(shù) 定點小數(shù)規(guī)定小數(shù)點的位置固定在符號位之后,但不占一個二進(jìn)制位,如下圖所示。2浮點數(shù) 浮點數(shù)是指小數(shù)點位置不固定的數(shù)。對于既有整數(shù)部分又有小數(shù)部分的數(shù),一般用浮點數(shù)表示。 任意一個二進(jìn)制數(shù)N可以表示為N=S2P形式。其中S是一個純小數(shù),表示數(shù)N的全部有效數(shù)字,稱為尾數(shù);P是一個整數(shù),表示小數(shù)點的位置,稱為階碼。例如,(0.0011001)2=0.110012-10,其中尾數(shù)S=(0.11001)2,階碼P=(10

15、)2。浮點數(shù)由兩部分組成:尾數(shù)部分和階碼部分,如下圖所示。(二)數(shù)據(jù)類型 為了便于在程序中表示不同類型的數(shù)據(jù),C語言也提供了多種數(shù)據(jù)類型,如下圖所示。不同類型的數(shù)據(jù)所占存儲空間及表示范圍不同,如右表所示。二、標(biāo)識符 在計算機(jī)語言中,常量、變量、數(shù)組、函數(shù)等需要定義名字,這些名稱統(tǒng)稱為標(biāo)識符。標(biāo)識符分為系統(tǒng)定義標(biāo)識符和用戶定義標(biāo)識符。(一)系統(tǒng)定義標(biāo)識符 系統(tǒng)定義標(biāo)識符是指具有固定名字和特定含義的標(biāo)識符,分為關(guān)鍵字和預(yù)定義標(biāo)識符。1關(guān)鍵字 表示數(shù)據(jù)類型的關(guān)鍵字int、char、float、double、short、long、void、signed、unsigned、enum、struct、uni

16、on、const、typedef、volatile 表示存儲類別的關(guān)鍵字auto、static、register、extern 表示語句命令的關(guān)鍵字break、case、continue、default、do、else、for、goto、if、return、switch、while 表示運算符的關(guān)鍵字sizeof2預(yù)定義標(biāo)識符 表示系統(tǒng)標(biāo)準(zhǔn)庫函數(shù)的預(yù)定義標(biāo)識符scanf、printf、putchar、getchar、strcpy、strcmp、sqrt等 表示編譯預(yù)處理命令(簡稱預(yù)處理)的預(yù)定義標(biāo)識符include、define等在指令處展開被包含的文件用于定義符號常量(二)用戶定義標(biāo)識符 C

17、語言中用戶定義標(biāo)識符必須以字母或下劃線“_”開頭,且不能含有除字母、數(shù)字和下劃線“_”外的其他字符。三、常量和變量 常量是指在程序執(zhí)行過程中值保持不變的量,變量是指在程序運行過程中值可以改變的量,每個變量都必須在聲明時明確定義其數(shù)據(jù)類型,并且需要用標(biāo)識符標(biāo)識。(一)常量常量分為字面常量和符號常量(標(biāo)識符常量)字面本身就是它的值符號常量是一個標(biāo)識符,對應(yīng)著一個和它類型一致的存儲空間,該存儲空間中保存的數(shù)據(jù)就是該符號常量的值。1常量類型 C語言中的常量包括整型常量、實型常量、字符常量、字符串常量和布爾型常量。(1)整型常量 整型常量表示通常意義上的整數(shù),如2、0、7等。整型常量可以用十進(jìn)制、八進(jìn)制

18、和十六進(jìn)制表示。(2)實型常量 實型常量是指通常意義上的實數(shù),也稱浮點數(shù)。實型常量有兩種表示形式:十進(jìn)制小數(shù)形式和指數(shù)形式。(3)字符常量字符型常量分為普通字符常量和轉(zhuǎn)義字符常量。用單引號括起來的一個字符,例如A、g等。轉(zhuǎn)義字符常量是由“”開頭的一個或多個字符的序列,用于表示一些無法顯示的字符,如回車符、換行符、制表符等。常用的轉(zhuǎn)義字符常量及其含義如下表所示。(4)字符串常量 字符串常量是由一對雙引號括起來的零個或多個字符序列,如C is programming language.、computer等。字符串可以寫在多行上,不過在這種情況下必須用反斜杠“”表示下一行字符是這一行字符的延續(xù)。字符

19、串常量與字符常量有所不同:字符型常量在內(nèi)存中只占一個字節(jié);字符串是按照串中字符的排列順序存放的,每一個字符占一個字節(jié),并在末尾添加“0”作為字符串結(jié)尾標(biāo)志或結(jié)束標(biāo)志。(5)布爾型常量 布爾型(bool)常量只有兩個值,即false或0(表示邏輯假)和true或1(表示邏輯真)。2符號常量 對于經(jīng)常引用的數(shù)值常量,可以將它們“定義”為符號常量,其名稱的命名規(guī)則同樣遵循標(biāo)識符的命名規(guī)則。C語言中,使用編譯預(yù)處理指令#define“定義”符號常量,如:#define PI 3.1415926 /定義一個符號常量PI,表示3.1415926符號常量通常用大寫字母表示,符號常量名稱和值之間用空格分隔。(

20、二)變量1變量的命名原則 變量名又叫做變量標(biāo)識符,由字母、數(shù)字和下劃線組成,且第一個字符必須是字母或下劃線。變量名不允許使用C語言關(guān)鍵字、系統(tǒng)函數(shù)名和系統(tǒng)類名。合法變量名,如:std,code1,n_date,_kufun,i_jing,WAN,S_name,c_Code以下變量名是非法的: Mr.Smith,$dollar,y,7rain,li hua,C#,car-clour,stdn,U.S.A程序員們通常會對變量命名做一些約束,如:(1)標(biāo)識符采用英文單詞或其組合。保證直觀且用詞準(zhǔn)確,可望文知意。(2)遵循最小化長度與最大化信息量原則。在保證一個標(biāo)識符意思明確的同時,應(yīng)當(dāng)盡量縮短其長度

21、。(3)避免標(biāo)識符過于相似。不要出現(xiàn)僅靠大小寫區(qū)分的相似標(biāo)識符,例如“i”與“I”,“function”與“Function”等。(4)用正確的反義詞組命名具有互斥意義的標(biāo)識符。例如“nMinValue”和“nMaxValue”,“GetName()”和“SetName()”等。(5)除非邏輯上的確需要編號,否則盡量避免名字中出現(xiàn)數(shù)字編號。例如Value1,Value2等,以防產(chǎn)生無意義的名字。2變量的定義 定義變量用于為變量分配存儲空間,以存放變量的值。其中,變量存儲空間的大小由變量的類型決定。在一個程序中,變量有且只有一個定義,并且變量在使用之前需要先定義或聲明。定義變量的一般形式如下:數(shù)

22、據(jù)類型 變量名1,變量名2,變量名n; 若程序中需要多次使用某個常量,可將該常量定義為常變量,其聲明形式為:const 數(shù)據(jù)類型 常量名=數(shù)值/表達(dá)式;四、運算符和表達(dá)式 據(jù)操作數(shù)個數(shù)不同,可將運算符分為:單目運算符(一元運算符)、雙目運算符(二元運算符)和三目運算符(三元運算符)。C語言中的運算符非常豐富,總體可以分為以下幾類: (1)算術(shù)運算符 (2)關(guān)系運算符 (3)邏輯運算符 (4)位運算符(5)賦值運算符(6)條件運算符(7)逗號運算符(8)指針運算符(9)求字節(jié)數(shù)運算符(10)特殊運算符(一)算術(shù)運算符(二)賦值運算符一般形式為:變量名=數(shù)值/表達(dá)式例如a=5a=sin(2.0)

23、a=b+ci=i2;等價于“i=2;” ,“=”稱為復(fù)合的賦值運算符。C提供的復(fù)合賦值運算符包括:=、=、*=、/=、%=、=、&=、=和|=(三)位運算符任務(wù)實施計算三角形的面積計算三角形面積的公式為:實施步驟步驟1 啟動Visual C+ 6.0,打開“文件”菜單,選擇“新建”菜單項,在打開的 “新建”對話框中選擇“文件”選項卡,在左側(cè)文件類型列表中選擇“C+ Source File”選項創(chuàng)建一個C+源程序。步驟2 單擊“確定”按鈕后,在編輯區(qū)中輸入以下代碼:#include #include void main()float edge1, edge2,edge3;float s;doub

24、le area;printf(Please input 3 edges length: );scanf(%f%f%f, &edge1, &edge2, &edge3);s=(edge1+edge2+edge3)/2;area=sqrt(s*(s-edge1)*(s-edge2)*(s-edge3);printf(The area is: %fn,area);步驟3 單擊工具欄中的“保存”按鈕 或者直接按【Ctrl+S】組合鍵保存文件,源程序創(chuàng)建完成。編譯、連接后執(zhí)行程序,執(zhí)行結(jié)果如圖2-8所示。圖2-8 程序執(zhí)行結(jié)果任務(wù)二 掌握簡單的C語句任務(wù)說明學(xué)完C語言的基礎(chǔ)元素后,下面我們來學(xué)習(xí)一些簡單

25、的C語句。預(yù)備知識一、C語句概述二、數(shù)據(jù)輸入輸出的概念三、用printf函數(shù)輸出數(shù)據(jù)四、用scanf函數(shù)輸入數(shù)據(jù)五、字符數(shù)據(jù)的輸入輸出一、C語句概述C語句可以劃分以下五類:(一)表達(dá)式語句 通過運算符將操作對象連接起來構(gòu)成表達(dá)式,在表達(dá)式之后加一個分號,便構(gòu)成表達(dá)式語句。(二)控制語句(1)if() else (2)for() (3)while() (4)do while()(5)continue(6)break(7)switch(8)goto(9)return(三)函數(shù)調(diào)用語句 由一次函數(shù)調(diào)用加上分號便構(gòu)成函數(shù)調(diào)用語句,它實際上是表達(dá)式語句的一種。例如,調(diào)用printf庫函數(shù)進(jìn)行屏幕輸出。p

26、rintf(Hello World!n);(四)復(fù)合語句 用“”和“”括起來的若干條語句稱為復(fù)合語句,也稱為塊語句。復(fù)合語句有一些特殊的地方,比如可以在復(fù)合語句中定義局部變量等。(五)空語句只有一個分號也可以作為一條語句,稱為空語句。二、數(shù)據(jù)輸入輸出的概念 C語言中并沒有輸入輸出的語句,輸入和輸出是通過調(diào)用編譯系統(tǒng)提供的庫函數(shù)實現(xiàn),如printf、scanf、putchar、getchar、puts和gets。使用這些標(biāo)準(zhǔn)的庫函數(shù),程序開頭需要包含stdio.h頭文件。三、用printf函數(shù)輸出數(shù)據(jù)其一般調(diào)用格式為:printf(格式控制字符串,輸出項列表); 輸出項可以是常量、變量、表達(dá)式,

27、其類型、個數(shù)必須與控制字符串中格式字符的類型個數(shù)一致,當(dāng)有多個輸出項時,各項之間用逗號分隔??刂谱址仨氂秒p引號括起,由格式說明和普通字符兩部分組成。(一)格式說明一般格式為:%格式字符規(guī)定了對應(yīng)輸出項的輸出格式,常用格式字符如下表所示。 修飾符是可選的,用于確定數(shù)據(jù)輸出的寬度、精度、小數(shù)位數(shù)、對齊方式等,用于產(chǎn)生更規(guī)范更整齊的輸出,當(dāng)沒有修飾符時,以上各項按系統(tǒng)缺省設(shè)定顯示。下面我們介紹一些常用的修飾符。(1)字符寬度修飾符printf函數(shù)中的字符寬度修飾符如下表所示。(2)對齊方式修飾符 默認(rèn)情況下,數(shù)據(jù)為右對齊格式。負(fù)號“”為左對齊控制符,使用該符號后,數(shù)據(jù)將以左對齊方式顯示。下面我們

28、通過一個例子來體會該符號的使用。(3)l和h 這兩個字符可以與輸出格式字符d、f、u等連用,以說明是用long型或short型格式輸出數(shù)據(jù)。例如:%hd短整型%ld長整型%hu無符號短整型(二)普通字符與轉(zhuǎn)義字符 普通字符包括可打印字符和轉(zhuǎn)義字符:可打印字符一般是一些說明字符,這些字符按原樣顯示在屏幕上;轉(zhuǎn)義字符是不可打印字符,其實質(zhì)是控制字符,用于產(chǎn)生一些特殊的輸出效果,如下表所示。四、用scanf函數(shù)輸入數(shù)據(jù) scanf()的功能是接收從鍵盤上輸入的數(shù)據(jù),輸入數(shù)據(jù)將按指定的輸入格式賦給相應(yīng)的變量。其一般調(diào)用格式為:scanf(格式控制字符串,輸入項地址列表); 格式控制字符串規(guī)定數(shù)據(jù)的輸入

29、格式,其含義與printf函數(shù)類似。輸入項地址列表則由一個或多個變量地址組成,當(dāng)變量地址有多個時,各變量地址之間用逗號“,”分隔。需要注意的是,各變量要加地址操作符“&”。scanf中所用的格式字符和附加字符含義如表2-9和表2-10所示。在使用scanf函數(shù)輸入數(shù)據(jù)時,應(yīng)注意以下問題: (1)當(dāng)有多個輸入項時,一般用空格或回車作為分隔符。其中,若以空格作為分隔符,則當(dāng)輸入項中包含字符類型時,可能產(chǎn)生非預(yù)期的結(jié)果。 (2)如果在格式控制字符串中包含除格式聲明外的其他字符,則需要輸入數(shù)據(jù)時在相應(yīng)位置上輸入這些字符。例如:scanf(%d%c, &a, &b);輸入 32 q 我們期望的結(jié)果是a=

30、32,b=q,但實際上,分隔符空格被讀入并賦給b。為避免這種情況,可使用如下語句:scanf(%d %c, &a, &b);/%d和%c之間加空格當(dāng)輸入1,2,q時,結(jié)果為:a=1,b=2,c=q;若輸入1 2 q時,結(jié)果為:則除a正確賦值外,其余的值均不能正確賦值。五、字符數(shù)據(jù)的輸入輸出 對單個字符的輸入輸出可以使用getchar和putchar函數(shù),對字符串的輸入輸出可使用gets和puts函數(shù)。1getchar和putchar函數(shù):字符輸入、輸出函數(shù) getchar的功能是接收從鍵盤輸入的一個字符,它不帶任何參數(shù)。 putchar函數(shù)每次可以向顯示器上輸出一個字符,只能接收字符變量、字符

31、常量作為參數(shù)并進(jìn)行輸出。#include main() char ch; ch=getchar(); putchar(ch); printf(%dn,ch); 2gets和puts函數(shù):字符串輸入、輸出函數(shù)(1)puts()函數(shù) puts()函數(shù)用來向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)寫字符串并換行,其調(diào)用格式為:puts(s);(2)gets()函數(shù) gets()函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取字符串直到回車結(jié)束,但回車符不屬于這個字符串。其調(diào)用格式為:gets(s); 任務(wù)實施輸出QQ好友信息 QQ是我們?nèi)粘I钪谐S玫囊豢罴磿r通訊軟件,圖2-14所示為QQ軟件中查看好友資料的頁面,我們將該好友的信

32、息進(jìn)行整理如表2-11所示。下面我們將使用C語言編程,在屏幕上輸出該好友的資料。圖2-14 QQ好友資料實施步驟步驟1 啟動VC,按任務(wù)一中的方法創(chuàng)建一個C+源程序,命名為“輸出QQ好友信息”,在打開的代碼編輯框中輸入如下代碼:#include stdio.hvoid main() /定義變量,用于存儲QQ好友的信息 int QQ_num; char pet_name10 ;/字符串用數(shù)組方式存儲,下同 char true_name10 ; char sex; int age; char city15 ; char E_mail20; printf(*n); printf(輸入與輸出QQ好友信

33、息n); printf(*n); /輸入并存儲QQ好友信息 printf(nn); printf(請輸入好友QQ號碼:n); scanf(%d, &QQ_num); printf(請輸入好友昵稱:n); scanf(%s, &pet_name); printf(請輸入好友真實名稱:n); scanf(%s, &true_name); fflush(stdin);/清空緩存 printf(請輸入好友性別:n); scanf(%c, &sex); printf(請輸入好友年齡:n); scanf(%d, &age); printf(請輸入好友所在城市信息:n); scanf(%s, &city);

34、 printf(請輸入好友E-mail地址:n); scanf(%s, &E_mail); /輸出QQ好友信息 printf(nn下面輸出已輸入的好友信息n); printf(好友QQ號碼為:%dn,QQ_num); printf(好友昵稱為:%sn,pet_name); printf(好友真實姓名為:%sn,true_name); printf(好友性別為:%cn,sex); printf(好友年齡為:%dn,age); printf(好友所在城市為:%sn,city); printf(好友E-mail地址為:%sn,E_mail);步驟2 編譯連接通過后,執(zhí)行“組建”“執(zhí)行輸出QQ好友信息

35、.exe”菜單命令,或者直接按【Ctrl+F5】組合鍵,運行生成的程序,程序執(zhí)行結(jié)果如圖2-15所示。圖2-15 程序運行結(jié)果項目拓展數(shù)據(jù)類型轉(zhuǎn)換一、數(shù)據(jù)類型的自動轉(zhuǎn)換 在C語言中,精度低、表示范圍小的數(shù)據(jù)類型可以向精度高、表示范圍大的類型自動轉(zhuǎn)換。下面我們具體看一下在賦值運算中數(shù)據(jù)類型轉(zhuǎn)換的情況: = 小數(shù)部分自動補0。 = 自動舍去實型表達(dá)式的小數(shù)部分(注意不進(jìn)行四舍五入)。 = = 自動截取表達(dá)式值的低字節(jié)賦值,舍去高字節(jié)。 = = 自動給高字節(jié)補0或補1。二、數(shù)據(jù)類型的強制轉(zhuǎn)換 若需要轉(zhuǎn)換的數(shù)據(jù)類型不滿足自動轉(zhuǎn)換條件時,我們就需要使用強制轉(zhuǎn)換方法。強制轉(zhuǎn)換的一般形式:(類型名) (表達(dá)

36、式)例如:(int)( b+3*x)%3)1/(float)a+6C語言程序設(shè)計項目教程項目三共分為兩個任務(wù)項目三 算法程序設(shè)計的靈魂任務(wù)一 了解什么是算法任務(wù)二 掌握算法的表示方法項目拓展 算法的復(fù)雜度任務(wù)一 了解什么是算法在本任務(wù)中我們將了解算法的概念和特性。任務(wù)說明預(yù)備知識一、什么是算法二、算法的特性 為解決一個問題而采取的方法和步驟就稱為算法。計算機(jī)能夠執(zhí)行的算法可分為兩大類:數(shù)值運算算法非數(shù)值運算算法主要用于求解數(shù)值,如求復(fù)雜算式的值、求方程的根等;主要用于事務(wù)管理領(lǐng)域,如圖書檢索、公交汽車車輛調(diào)度等。二、算法的特性(1)有窮性(2)確定性(3)有效性(4)存在零個或多個輸入(5)存

37、在若干輸出結(jié)果任務(wù)實施漢諾塔問題 漢諾塔(Towers of Hanoi,Hanoi為越南首都河內(nèi))也稱河內(nèi)之塔。它源于印度一個古老傳說:大梵天創(chuàng)造世界的時候做了三根金剛石柱子,在其中一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。當(dāng)盤子全數(shù)搬運完畢之時,也就是世界末日來臨之時。 下圖為模擬漢諾塔問題的模型玩具 在本任務(wù)中我們就來編寫算法解決漢諾塔問題,這里將柱子標(biāo)為A、B、C,要由A搬至C,假設(shè)A柱上的盤數(shù)為n,n由用戶輸入。任務(wù)分析 漢諾塔問題是典型的遞

38、歸調(diào)用問題。當(dāng)n1時,直接將盤子從A移動到C即可。將n(n1)個盤子從A柱移動到C柱可以分為三個步驟: 將n1個盤子從A借助C移到B; 將最后一個盤子從A移到C; 將n1個盤子從B借助A移到C。實施步驟步驟1 啟動Visual C+ 6.0,新建一個C+源程序,在編輯區(qū)中輸入以下代碼:#include void hanoi(int n, char A, char B, char C) if(n = 1) printf(Move sheet %d from %c to %cn, n, A, C); else hanoi(n-1, A, C, B); printf(Move sheet %d fr

39、om %c to %cn, n, A, C); hanoi(n-1, B, A, C); int main() int n; printf(請輸入盤數(shù):); scanf(%d, &n); hanoi(n, A, B, C); return 0;步驟2 編譯、連接后執(zhí)行程序,執(zhí)行結(jié)果如下圖所示。(a)n=2時移動方法(b)n=4時移動方法任務(wù)二 掌握算法的表示方法任務(wù)說明 除可以用自然語言對算法進(jìn)行描述外,還有其他一些表示算法的方法,下面我們就來學(xué)習(xí)。一、算法的表示方法預(yù)備知識二、結(jié)構(gòu)化程序設(shè)計方法一、算法的表示方法在使用計算機(jī)語言編寫算法前,可以通過以下幾種方式描述算法: 自然語言 流程圖 N

40、-S結(jié)構(gòu)圖 偽代碼(一)用自然語言表示算法 自然語言就是人們?nèi)粘I钪兴褂玫恼Z言,可以使用人類語言加上數(shù)學(xué)語言描述一個算法的實現(xiàn),其特點是通俗易懂,但描述不直觀、容易造成歧義。(二)用流程圖表示算法 流程圖采用圖形符號配合文字說明來表示各種操作,這種方法形象直觀,易于理解。常用的流程圖符號如右圖所示。(三)用N-S結(jié)構(gòu)圖表示算法 N-S流程圖與傳統(tǒng)流程圖相比,取消了流程線的使用,算法只能自上而下執(zhí)行,常用的N-S結(jié)構(gòu)圖符號如圖3-6所示。(四)用偽代碼表示算法 偽代碼介于自然語言和計算機(jī)語言之間,通過接近編程語言的文字和符號來描述算法。采用這種方式時,并無固定、嚴(yán)格的語法規(guī)則,可以使用英文也

41、可以使用中文,把意思表達(dá)清楚即可?!纠?-5】 用偽代碼表示計算n!的算法。begin t1; i2; while(i5) tt*i ii+1 printf tend二、結(jié)構(gòu)化程序設(shè)計方法任何復(fù)雜的問題都可以通過順序、選擇和循環(huán)三種基本算法結(jié)構(gòu)來描述。(1)順序結(jié)構(gòu)各部分操作按照書寫順序依次執(zhí)行,不存在任何跳轉(zhuǎn)。(2)分支結(jié)構(gòu)也稱選擇結(jié)構(gòu),通過一個判斷框來描述。(3)循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)是對一組操作進(jìn)行重復(fù)操作的結(jié)構(gòu),往往需要借助對循環(huán)控制條件的判斷,決定是否繼續(xù)重復(fù)執(zhí)行操作。三種基本結(jié)構(gòu)的共同點: 都是只有一個入口和一個出口; 結(jié)構(gòu)內(nèi)的每一個框都有機(jī)會被執(zhí)行; 結(jié)構(gòu)內(nèi)沒有死循環(huán)。結(jié)構(gòu)化程序設(shè)計

42、的基本原則: 采用自頂向下、逐步細(xì)化的方法進(jìn)行設(shè)計; 采用模塊化原則和方法進(jìn)行設(shè)計。即將大型任務(wù)從上向下劃分為多個功能模塊,每個模塊又可以劃分為若干子模塊,然后分別進(jìn)行模塊程序的編寫; 每個模塊都是用結(jié)構(gòu)化程序?qū)崿F(xiàn),即都只能由三種基本結(jié)構(gòu)組成,并通過計算機(jī)語言的結(jié)構(gòu)化語句實現(xiàn)。任務(wù)實施約瑟夫環(huán)問題(Josephus Problem) 據(jù)說,著名猶太歷史學(xué)家Josephus曾講過故事:在羅馬人占領(lǐng)喬塔帕特后,39個猶太人與Josephus及他的朋友躲到一個洞中。39個猶太人決定寧愿死也不要被敵人逮到,于是決定了一個自殺方式:41個人排成一個圓圈,由第1個人開始報數(shù),每報數(shù)到3,該人就必須自殺,然

43、后再由下一個人重新報數(shù),直到所有人都自殺身亡為止。 然而Josephus和他的朋友并不想遵從,他將朋友與自己安排在第16個與第31個位置,逃過了這場死亡游戲。 在本任務(wù)中,我們將這個問題擴(kuò)大,假設(shè)現(xiàn)在你與m位朋友不幸參與了這個游戲,你要如何做才能保護(hù)自己和朋友呢?任務(wù)分析 要解決約瑟夫問題,只要畫兩個圓圈就可以了,內(nèi)圈是排列順序,外圈是自殺順序,如下圖所示。 最后一個自殺的人排在第31位置上,而倒數(shù)第二個自殺的人排在第16個位置。約瑟夫?qū)⒆约汉团笥寻才旁诹诉@兩個位置上,之前的人都死了,所以他們也就不知道約瑟夫與他的朋友沒有遵守游戲規(guī)則了。如何計算外環(huán)的自殺順序呢?首先我們畫出程序的流程圖如圖3

44、-9所示。首先我們建立一個長度為41的數(shù)組man,數(shù)組中的每個值代表一個人,然后使用變量pos記錄報數(shù)者的位置,變量i記錄報數(shù)值13,變量cout記錄報數(shù)為3的數(shù)組元素的順序。 當(dāng)i的值為3時,將跳出報數(shù)循環(huán)(此時i的值將會置為0,以備下次報數(shù)),將cout的值加1,并將cout存入數(shù)組元素manpos,pos開始指向下一個報數(shù)者的位置,這里為使pos計數(shù)到41后自動回到0,需要通過語句“pos = (pos1) % N;”對數(shù)值進(jìn)行環(huán)狀處理。實施步驟步驟1 啟動VC,創(chuàng)建一個C+源程序,在打開的代碼編輯框中,輸入如下代碼:#include #define N 41 #define M 3 i

45、nt main(void) int manN = 0;/數(shù)組初值為0 int count = 1; int i = 0, pos = -1; int alive = 0; while(count = N) do pos = (pos+1) % N; /環(huán)狀處理 if(manpos = 0) i+; if(i = M) /若報數(shù)為3 i = 0; break; /報數(shù)為3后,將跳出do.while循環(huán) while(1); manpos = count; /記錄自殺順序 count+; printf(n約琴夫排列:); for(i = 0; i N; i+) printf(%d , mani);

46、printf(nn您想要救多少人?); scanf(%d, &alive); printf(nL表示這%d人要放的位置:n, alive); for(i = 0; i N; i+) if(mani (42- alive)printf(D); else /將需要拯救的人標(biāo)記為Lprintf(L); if(i+1) % 5 = 0)/5個人一組顯示,方便讀者辨別位置printf( ); printf(n); return 0;步驟2 編譯連接通過后,按【Ctrl+F5】組合鍵運行生成的程序,結(jié)果如圖3-10所示。圖3-10 程序運行結(jié)果項目拓展算法的效率 對于給定的任意問題,設(shè)計出復(fù)雜度盡可能低的

47、算法是我們在設(shè)計算法時追求的一個重要目標(biāo)。算法的復(fù)雜度有時間復(fù)雜度和空間復(fù)雜度之分。一、時間復(fù)雜度 一個算法中的語句執(zhí)行次數(shù)稱為語句頻度或時間頻度,記為T(n)。若有某個輔助函數(shù)f(n),使得當(dāng)n趨近于無窮大時,T(n)/f(n)的極限值為不等于零的常數(shù),則稱f(n)是T(n)的同數(shù)量級函數(shù),記作T(n)=(f(n),稱(f(n)為算法的漸進(jìn)時間復(fù)雜度,簡稱時間復(fù)雜度?!纠?-6】 分析三個算法的時間復(fù)雜度。(1)x:=x+1;(2)for i:=1 to n do x:=x+1;(3)for i:=1 to n dofor i:=1 to n do x:=x+1; 上面三個算法都包含基本語句

48、x:=x1,它們的執(zhí)行頻度分別為1、n和n2,這三個程序段的時間復(fù)雜度分別為O(1)、O(n)、O(n2),分別稱為常量階、線性階和平方階。二、空間復(fù)雜度 與時間復(fù)雜度類似,空間復(fù)雜度是指算法在計算機(jī)內(nèi)執(zhí)行時所需存儲空間的度量(一般所討論的是除正常占用內(nèi)存開銷外的輔助存儲單元規(guī)模),記作:S(n)=O(f(n)。【例3-8】 將一維數(shù)組的n個數(shù)據(jù)逆序存放到原數(shù)組中。下面是實現(xiàn)該問題的兩種算法:算法1for i=1 to n dobi=an-i+1;for i=1 to n doai=bi;算法2for i=1 to n/2 do begint=ai;ai=an-i+1;an-i+1=t; en

49、d; 算法1的時間復(fù)雜度為2n,空間復(fù)雜度為2n;算法2的時間復(fù)雜度為3*n/2,空間復(fù)雜度為n1。顯然,算法2優(yōu)于算法1。C語言程序設(shè)計項目教程項目四共分為兩個任務(wù) 項目四 邏輯值與分支語句 讓你的選擇多樣化任務(wù)一 掌握常用運算符與if分支語句結(jié)構(gòu)任務(wù)二 掌握條件運算符與swith分支結(jié)構(gòu)任務(wù)一 掌握常用運算符與if分支語句結(jié)構(gòu)任務(wù)說明預(yù)備知識 下面我們就來學(xué)習(xí)條件表達(dá)式中用到的這些運算符、程序的基本控制結(jié)構(gòu)以及if分支語句的相關(guān)知識。一、關(guān)系運算符與表達(dá)式二、邏輯運算符與表達(dá)式三、邏輯型變量四、ifelse分支結(jié)構(gòu)一、關(guān)系運算符與表達(dá)式關(guān)系運算符的作用與優(yōu)先級如表4-1所示。 關(guān)系表達(dá)式的

50、運算結(jié)果為真和假,通過0和1來表示。下面我們來看幾個具體的示例:二、邏輯運算符與表達(dá)式三、邏輯型變量 邏輯型變量是C99標(biāo)準(zhǔn)中新增的一種數(shù)據(jù)類型,用于存儲關(guān)系運算和邏輯運算的結(jié)果,定義邏輯變量使用類型符_Bool。另外,在頭文件中,將bool定義為_Bool的同義詞,同時定義符號常量true和false代表真和假。四、ifelse分支結(jié)構(gòu)(一)if語句的基本結(jié)構(gòu)if語句一般有以下三種形式:(1)單分支語句if(表達(dá)式) 語句;或語句1;語句2; 如果表達(dá)式的值為真,則執(zhí)行if后面的語句;否則,跳過該語句直接執(zhí)行后面的語句。執(zhí)行過程如下圖所示。(2)雙分支語句語句結(jié)構(gòu)如下:if(表達(dá)式) 語句1

51、;else 語句2; 如果表達(dá)式的值為真,則執(zhí)行語句1;否則執(zhí)行語句2。執(zhí)行過程如右圖所示。(3)多分支語句 有時必須判定多個條件以便決定執(zhí)行什么操作。在這種情況下就要使用多分支語句了,其聲明語法如下:if(表達(dá)式1) 語句1;else if(表達(dá)式2) 語句2;else if(表達(dá)式n) 語句n;Else 語句n1;執(zhí)行過程如下圖所示。 首先判斷表達(dá)式1的值,如果值為真,則執(zhí)行語句1,否則判斷表達(dá)式2的值;如果表達(dá)式2的值為真,則執(zhí)行語句2,否則判斷表達(dá)式3的值;依此類推,若所有表達(dá)式的值為假,則執(zhí)行語句n1。(二)if語句的嵌套 在if語句中又包含一個或多個if語句稱為if語句的嵌套,它可

52、以用來實現(xiàn)多路選擇功能,其一般形式為:(三)使用if語句的注意事項 else必須與if配對使用,它總是與它上面最近的且未配對的if配對。if()if() 語句1;elseif() 語句2;else 語句3;if()if() 語句1;elseif() 語句2;else 語句3; 雖然第一個else與第一個if寫在同一列上,但實際上第一個else是與第二個if匹配的。 為使第一個else與第一個if匹配,可將以上語句改寫成:任務(wù)實施制作簡易教師考核成績評定系統(tǒng) 教師的成績由以下幾部分組成:教務(wù)處得分、督導(dǎo)處得分、學(xué)生評定分和系部自評分,其中教務(wù)處得分占總分的10%,督導(dǎo)處得分占總分10%,學(xué)生評分

53、占總分的50%,系部自評分占總分的30%。各個單項分值的取值范圍為0到100,因此教師總分的取值范圍為0100。最后通過各個部分的得分總和評定教師的考核等級,總分小于70分為不“稱職”,總分大于等于70小于90分為“稱職”,總分大于等于90分為“優(yōu)秀”。實施步驟步驟1 啟動VC,創(chuàng)建一個C+源程序,在打開的代碼編輯框中輸入如下代碼:#include void main() float jw, dd, xb, xs, zf; printf(請依次輸入教務(wù)處評分、督導(dǎo)處評分、系部評分和學(xué)生評分:); scanf(%f%f%f%f,&jw,&dd,&xb,&xs);/計算教師總分 zf = jw *

54、 0.1 + dd * 0.1 + xb * 0.3 + xs * 0.5; printf(nn教師總評分?jǐn)?shù)為:%fnn, zf);/計算評定等級 if (zf = 90) printf(您的評定等級為:優(yōu)秀!); else if (zf = 70) printf(您的評定等級為:稱職!); else printf(您的評定等級為:不稱職!);步驟2 單擊工具欄中的“保存”按鈕 或者直接按【Ctrl+S】組合鍵保存文件,源程序創(chuàng)建完成。編譯、連接后執(zhí)行程序,執(zhí)行結(jié)果如圖4-4所示。圖4-4 程序執(zhí)行結(jié)果任務(wù)二 掌握條件運算符與swith分支結(jié)構(gòu)任務(wù)說明 C語言提供了switch語句直接處理多分

55、支選擇問題。在本任務(wù)中我們就來學(xué)習(xí)條件運算符和switch語句的使用。預(yù)備知識一、條件運算符二、switch分支語句一、條件運算符 條件運算符“?:”也稱三元運算符,它根據(jù)布爾型表達(dá)式的值返回兩個值中的一個,其格式如下:條件 ? 第一個表達(dá)式 : 第二個表達(dá)式; 如果條件為 true,則計算第一表達(dá)式并以它的計算結(jié)果為整個條件表達(dá)式的值;如果為 false,則計算第二表達(dá)式并以它的計算結(jié)果為整個條件表達(dá)式的值。二、switch分支語句switch語句的一般形式如下:switch (表達(dá)式) case常量表達(dá)式1: 語句組1; break; case常量表達(dá)式2: 語句組2; break; ca

56、se常量表達(dá)式3: 語句組3; Break; case常量表達(dá)式n: 語句組n; break; default: 語句組n1; break; 首先計算switch語句中表達(dá)式的值(表達(dá)式一般為整型、字符或字符串類型),當(dāng)表達(dá)式的值與某個case后面常量表達(dá)式的值匹配時,就執(zhí)行該case后面的語句,執(zhí)行完后退出switch語句;若表達(dá)式的值與所有case后面的常量表達(dá)式的值都不匹配,則執(zhí)行default后面的語句。使用switch語句時應(yīng)注意以下幾點: switch語句中的表達(dá)式通常為整型或字符型,配套的常量類型也應(yīng)該是字符型或整型。此外,如果常量類型是字符型,一定要用單引號括起來(如A),而不

57、能使用雙引號(A)。 每個case后面的常量表達(dá)式必須各不相同,否則會出現(xiàn)矛盾,即一個值有多種選擇。 各個case語句和default語句出現(xiàn)的順序?qū)?zhí)行結(jié)果沒有影響。 每個分支的語句可以是單條語句,也可以是多條語句,多條語句不用加花括號。 通常情況下,每個分支語句后都要加一個break語句,表示跳出switch語句。程序在執(zhí)行完該分支的語句后,如果有break語句,則結(jié)束switch語句,否則,繼續(xù)執(zhí)行下面的語句,直到遇到break語句或整個switch語句結(jié)束。任務(wù)實施創(chuàng)建自動售貨機(jī)程序 下面我們使用switch多分支條件語句創(chuàng)建簡單的自動售貨機(jī)程序。用戶可以選擇相應(yīng)的商品,根據(jù)不同的商品

58、系統(tǒng)提示不同的商品價格,運行效果如圖4-6所示。圖4-6 “自動售貨機(jī)程序”運行效果圖實施步驟步驟1 啟動VC,創(chuàng)建一個C+源程序,在打開的代碼編輯框中輸入【代碼4-2】。#include void main()printf(請選擇商品: 1=可樂 2=冰紅茶 3=營養(yǎng)快線 4=礦泉水 5=雪碧);printf(n請輸入您要購買的商品的代號:);int n; /用于存儲商品代號scanf(%d,&n);/等待用戶輸入數(shù)字float price = 0;/用來存儲顧客消費的金額switch (n)case 1:price = 3.5;break;case 2:price = 2.5;break;

59、case 3:price = 4.5;break;case 4:price = 1.0;break;case 5:price = 3.5;break;default:printf(您選擇商品有誤!);break;if(price!=0)printf(n您消費%f元 !, price); printf(n謝謝您的惠顧!);步驟2 單擊工具欄中的“保存”按鈕或者直接按【Ctrl+S】組合鍵保存文件,源程序創(chuàng)建完成。編譯、連接后執(zhí)行程序,在彈出的程序窗口中輸入商品數(shù)值,系統(tǒng)將顯示相應(yīng)商品的價格,若輸入數(shù)值不在其顯示范圍內(nèi),將彈出相應(yīng)提示,如圖4-6所示。C語言程序設(shè)計項目教程項目五共分為三個任務(wù)項目

60、五 循環(huán)語句 解決迭代問題的好辦法任務(wù)一 掌握while和dowhile循環(huán)語句任務(wù)二 掌握for循環(huán)語句任務(wù)三 掌握break和continue語句任務(wù)說明預(yù)備知識任務(wù)一 掌握while和dowhile循環(huán)語句 在本任務(wù)中我們來學(xué)習(xí)while和dowhile循環(huán)語句的使用,讀者要重點掌握這兩種語句的區(qū)別。一、while循環(huán)語句二、dowhile循環(huán)語句一、while循環(huán)語句while循環(huán)語句語法格式如下:while ( 條件表達(dá)式 ) 循環(huán)體語句; while語句實現(xiàn)的循環(huán)是“當(dāng)型循環(huán)”,即先測試循環(huán)條件再執(zhí)行循環(huán)體。當(dāng)條件表達(dá)式成立時才執(zhí)行后面的循環(huán)體語句,否則不執(zhí)行。該語句的程序流程如下

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論