




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、,3,第2章,基本編程語句 (Basic Programming Statements),語句用來規(guī)定程序執(zhí)行的控制流,在沒有跳轉或分支的情況下,語句將按照其在程序中出現的次序順序執(zhí)行。一條語句以分號“;” 結束。 語句可以是空語句,不產生任何操作。 復合語句也稱為塊(Block),是指用一對花括號括起來的語句序列。從語法上,復合語句可以被認為是單個語句。例如: if(x9) cout “The number is perfect .n”; cout “It is larger than 9n”; else cout “not larger than 9n”; ,內容提要,2.1 說明語句 2
2、.2 條件語句 3.3 循環(huán)語句 3.4 輸入輸出語句 3.5 轉移語句,2.1 說明語句,2.1.1 變量定義(包含 2.1.3 初始化與賦值) 2.1.2 函數聲明和定義,.1.1 變量定義(Variable declaration),程序中的變量必須先定義后使用,為變量命名時 應符合標識符的規(guī)定。 、變量定義方式 ; int sum; char a, b; float area, width, length;,2 、初始化與賦值 賦值運算符“=”可用于對變量賦值 初始化:變量定義的時候賦值 有初始化的定義與定義之后再賦值形式上不同,效果相同。 例如:,unsignedcolor; /定義
3、 color = 16; /賦初值 unsigned color=16; /定義并賦初值 unsigned color(16); /定義并賦初值 long counter1, counter2=52347; /定義時可部分賦值 注:在C+中,有些變量可以具有默認的值,但為了養(yǎng)成良好的編程習慣,變量在使用之前都要先明確的賦值。,等價,等價,2.1.2 函數聲明與定義,C+程序是由函數構成的,由一個主函數和若干個函數構成。 C+程序是函數驅動的。 1、函數聲明 函數聲明只是聲明函數的名稱,但若要真正運行,還必須在適當的地方提供該名稱的定義。 函數聲明包括函數返回值、函數名稱和參數列表三部分(以分號
4、結束)。 例如: int area_s(int a ,int b);,2、 函數定義 定義的一般形式: 類型標識符 函數名(形式參數表) 函數體 ,其中: 函數名給自定義的函數取的名字。 形式參數表函數被調用時,接收調用函數傳遞的實參數。 函數體執(zhí)行功能的語句塊。 函數返回值通過函數調用獲得的函數返回值,其值由 return語句返回。,例如: int area_s(int a ,int b) return(a*b); ,3、函數聲明與定義的完整例子 f0203.cpp,2.2 條件語句,2.2.1 if語句 2.2.2 條件表達式 2.2.3 switch語句 2.2.4 if 或switch
5、語句,程序通常是由順序、分支和循環(huán)三種控制結構組成的。任何 高級語句都有條件選擇控制結構。 C+中if條件選擇控制語句(Selection statement)包括: 1、if 語句(Simple selection statement),2.2.1 if語句,if(條件表達式) 語句塊 ,2、空語句 if(條件表達式) ;,if(條件表達式) 語句;,或,3、 if else語句(Two-way selection statement) if(條件表達式) 語句1; else 語句2; 例: #include using namespace std; void main ( ) cout p
6、lease input the b key to hear a bell .n; char ch = cin.get( ); if (ch = b) cout a; else if(ch = n) cout what a boring select on n; else cout bye!n; ,4、注意二義性 if語句嵌套時,應注意二義性。 例如: int x = 20; if (x = 0) if (x =0 且 x=0 且 x=50 if else語句配對原則是:else與其緊靠的沒有配對的且為 可見的if配對。 如:int x = 20; if ( x = 0) if ( x 50)
7、/該if不可見 cout “ x is okn”; else cout “ x is not okn”;,2.2.2 條件表達式 ? : 為三目運算符 語法形式: (條件表達式)?(條件為真時的表達式) : (條件為假的表達式) 例如: x = a b ? a : b; /將a,b中較小數賦x 事實上,三目運算操作是簡單if語句的另一種表達方式。 if (a b) x = a; else x = b;,注意使用圓括號(運算符有優(yōu)先級關系) cout b ? a : b )y)? ”greater than”:(x = = y)? ”equal to”: ” less than”);,2.2.3
8、 switch語句,Switch語句也稱開關語句,是多分支語句,而if語句二分支語句。 該語句實現多選1結構: switch (表達式) case 常量表達式1:語句組1; break; case 常量表達式2:語句組2; break; case 常量表達式n:語句組n; break; default: 語句組n+1; ,特點: (1)表達式只能是整型、字符型或枚舉型,不能為浮點型。 (2)當表達式的值與某個case后常量表達式值相同時,執(zhí)行之。 (3)都不匹配,執(zhí)行default后的語句。 (4)各個case(包括default)的出現次序可任意,不會影響結果 例如;根據考試成績的等級輸出百
9、分制分數段。 char grade=B; switch(grade) caseA:cout“85-100n”;break; caseB:cout“70-84n”;break; caseC:cout“60-69n”;break; caseD:cout“60n”;break; default:cout“errorn”; /最后可省略break 輸出結果為: 70-84,多個case可共用一組執(zhí)行語句 char grade=B; switch(grade) caseA: caseB: caseC: cout60n”;break; caseD: cout60 Switch可以嵌套,2.2.4 if或s
10、witch語句,if語句與switch語句可以互補。switch只能對確定值進行條件測試,如果是進行范圍測試或則浮點值比較,只能用嵌套的if。 例:根據分數輸出等級 int grade; / if(grade=85,2.3 循環(huán)語句,2.3.1 for循環(huán) 2.3.2 while 循環(huán) 2.3.3 do-while循環(huán) 2.3.4 循環(huán)語句舉例,2.3.1 for循環(huán),結構: for(表達式1;表達式2;表達式3) 循環(huán)體 for 語句的特點是:可用于循環(huán)次數能被確定的情況。 可以靈活使用for語句 (1)表達式1可以省略 for(;i=100;i+) /分號不能省略 sum+=i; ,Exp
11、ression1,Expression2,Expression3,Loop body,T,F,i=1;,for(i=1;i=100;i+) Sum+=i;,(2)表達式2可以省略 for (i=1;i+) /等效于for(i=1;1;i+) sum+=i; (3)表達式3可以省略 for(i=1;i=100;) sum+=i+; (4)表達式1和表達式3可以同時省略 i=1; for(;i=100;) sum+=i+; ,if(i100) break;,(5)三個表達式都省略 i=1; for (;) if(i100) break; sum+=i+; (6)表達式1,2,3,可為任意表達式 f
12、or(sum=0,i=1;i=100;i+) /逗號表達式 sum+=i; for(i=0,j=100,k=0;ij;i+,j-) k+=i*j; for(i=1;i=100;sum+=i+); (7)表達式1可以作為循環(huán)變量定義 for(int i=1;i=100;i+) sum+=i;,2.3.2 while 循環(huán),結構: while (條件表達式) 循環(huán)體,例: i=1; /循環(huán)變量初始化 while (i= 10) /循環(huán)條件 /循環(huán)體 sum=sum+i; i+ ; /改變循環(huán)變量的值 可簡化為:,while(sum+=i+,i=10 );,Sum+=i+;,2.3.3 do-whi
13、le循環(huán),結構: do 循環(huán)體 while(條件表達式) 該語句至少執(zhí)行一次循環(huán),而while 語句可能一次都不執(zhí)行。,例: #include using namespace std; void main( ) int i ,sum=0; i=1; do sum=sum+i; i+; while(i=100); coutsum=sumendl; 結果: sum=5050 注:編程時,循環(huán)體通常是復合語句,應注意使用花括號。,2.3.4 循環(huán)語句舉例,例1:字符圖形 例2:素數判定,例1:字符圖形 用for循環(huán)編程畫出下列圖形: M MM MMM MMMM MMMMM MMMMMM MMMMMM
14、M 程序代碼:f0204.cpp,例2:素數判定 給定一個整數m,判斷該數是否為素數。 分析: m是素數的條件是m不能被2,3,m-1整除。 實現代碼: 方法一:f0207 方法二:f0208,2.5 輸入輸出語句,2.5.1 標準I/O流 2.5.2 流狀態(tài)(流控制符) 2.5.3文件流 2.5.4 C語言版輸入輸出語句(補充),2.5.1 標準I/O流,I/O流是指輸入輸出的一系列數據流。 cin標準輸入 流,cin指標準輸入設備鍵盤 cout 標準輸出流,cout指標準輸出設備顯示器 在程序中使用cin和cout需要使用標準輸入輸出庫,即包含iostream頭文件,插入操作符“” 輸出使
15、用插入操作符“”從cin輸入流中抽取字符。 int myage; cin myage; 又如: int i; float f; long l; cin i f l; cin 能抽取輸入變量的類型,i, f, l分別接收輸入的整型,浮點型 和長整型。,.5.2流狀態(tài)(流控制符),當不希望以默認方式輸出時,可以使用流控制符對輸出狀態(tài)進行控制。 控制符是在頭文件iomanip.h中定義的對象,可直接插入流中。使用控制符時,應在程序的頭上加上此頭文件。 下面是一些常用的控制字符:,例、設置輸出寬度(setw) cout setw(8) 10 endl; 輸出結果是: 若數值10和20均按照寬度8輸出,
16、則 cout setw(8) 10 setw(8) 20 endl; 輸出結果是: 注意:如果一個值的位數大于setw(n)確定的寬度位數,則按原寬度輸出 。 float amount = 4.53671; cout setw(4) amount endl; 輸出結果是:,_ _ _ _ _ _10,_ _ _ _ _ _ 10_ _ _ _ _ _20,4.53671,例2、輸出八進制,十六進制和十進制數 #include #include using namespace std; void main( ) int number=1001; cout “Decimal:” decnumber
17、endl “Hexadecimal:”hexnumberendl “Octal:”octnumberendl “Hexadecimal:”hex uppercasenumberendl; ,Decimal:1001 Hexadecimal:3e9 Octal:1751 Hexadecimal:3E9,輸出結果:,例3、用字符填充輸出寬度(setfill) #include #include using namespace std; void main( ) coutsetfill(*) setw(2)25endl setw(3)25endl setw(4)25endl; coutsetfill
18、( ); /恢復缺省設置 輸出結果:,25 *25 *25,例4、控制左右對齊輸出(left,right) 缺省時,I/O流以右對齊格式顯示 #include #include using namespace std; void main( ) coutrightsetw(5)1setw(5)2 setw(5)3endl; coutleftsetw(5)1setw(5)2 setw(5)3endl; 輸出結果為:,_ _ _ _ 1_ _ _ _ 2_ _ _ _ 3 1_ _ _ _2_ _ _ _ 3,例5 強制顯示小數點和符號(showpoint,showpos) #include #i
19、nclude using namespace std; void main( ) cout10.0/5endl; coutshowpoint10.0/5endl; cout10 -20endl; coutshowpos 10 -20endl; coutnoshowpos33endl; 輸出為:2 2.00000 10 -20 +10 -20 33,例6、精度(setprecision) #include #include using namespace std; void main( ) double amout=22.0/7; coutamoutendl; coutsetprecision(
20、0)amoutendl setprecision(1)amoutendl setprecision(2)amoutendl setprecision(3)amoutendl setprecision(4)amoutendl;,3.14286,3.14286,3,3.1,3.14,3.143,coutfixed; coutsetprecision(8)amoutendl; coutscientificamout endl; coutsetprecision(6);/還原系統(tǒng)默認設置 ,3.14285714,3.14285714e+000,.5.3 文件流,流是一種設備,一種概念設備。 將流與某個
21、文件捆綁后,對流的操作就是對文件的操作。 打開一個文件,就是將實際的文件名與文件流名對應,程序中只要操作文件流就可以實際地進行文件讀寫。,中打開文件的方法: ifstream fin(filename, openmode=ios:in); ofstream fout(filename, openmode=ios:out); 注: ifstream和ofstream是類型名,表述輸入和輸出文件流,需要包含頭文件; fin和fout是定義的文件流名稱; filename是外部文件名,即需要進行操作的磁盤文件; openmode是打開方式,ifstream的默認打開方式是ios:in,表示輸入方式,
22、ofstream的默認打開方式是ios:out,表示輸出方式,在打開已經存在的輸入文件和新建一個輸出文件時可以省略這個參數。 舉例:f0211.cpp,2.5.4 C語言版輸入輸出語句(補充),C語言版輸入輸出,2.6 轉移語句,2.6.1 break語句 2.6.2 continue語句 2.6.3 goto 語句 2.6.4 轉移語句舉例,2.6.1 break語句,用途: break 語句用于while, dowhile, for語句中,從最近的封閉循環(huán)體中跳出。 break語句用于switch語句中,跳出switch語句。 例1:break 用于循環(huán)語句中 for(;) for(;) / if(i=1) break; / a=1; / ,/從break跳出至此處,例2: break 用于switch語句中 char grade=B; switch(grade) caseA:cout“85-100n”;break; c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 怎樣設置減免活動方案
- 徒步活動拍攝策劃方案
- 品牌推廣授權合作合同及宣傳責任分配
- 開展讀書會活動方案
- 當代青年立志活動方案
- 德國兄弟活動方案
- 心算比賽頒獎活動方案
- 快遞公司商家活動方案
- 開裝修公司招標策劃方案
- 開展自我批判活動方案
- Cpk 計算標準模板
- 化工原理課程設計-用水冷卻煤油產品的列管式換熱器的工藝設計
- 初中美術(湘教版)八年級下冊《變廢為寶》單元作業(yè)設計
- 熱力學與統(tǒng)計物理-試題及答案 2
- 2023-2024學年四川省雅安市小學數學一年級下冊期末高分試卷
- 網絡游戲代理合同通用版范文(2篇)
- GB/T 6414-1999鑄件尺寸公差與機械加工余量
- GB/T 27773-2011病媒生物密度控制水平蜚蠊
- GB/T 12817-1991鐵道客車通用技術條件
- 質量風險識別項清單及防控措施
- 【課件超聲】常見的超聲效應與圖象偽差
評論
0/150
提交評論