2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩123頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章C++簡單程序設(shè)計,C++語言程序設(shè)計,2,本章主要內(nèi)容,C++語言概述(熟悉)基本數(shù)據(jù)類型和表達式(重點)數(shù)據(jù)的輸入與輸出(熟悉)算法的基本控制結(jié)構(gòu)(重點)自定義數(shù)據(jù)類型(了解),3,C++語言的產(chǎn)生,C++出于C而勝于C引入類機制,最初被稱為“帶類的C”1983年正式取名為C++從1989年開始C++語言的標(biāo)準(zhǔn)化工作1994年制定了ANSI C++標(biāo)準(zhǔn)草案1998年11月被(ISO)批準(zhǔn)為國際標(biāo)準(zhǔn),C++語

2、言概述,4,C++的誕生,C++的創(chuàng)始人:Bjarne stroustrup (AT&T Bell實驗室),5,C++的特點,全面兼容C它保持了C的簡潔、高效和接近匯編語言等特點對C的類型系統(tǒng)進行了改革和擴充C++也支持面向過程的程序設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言支持面向?qū)ο蟮姆椒?C++語言概述,6,C++程序?qū)嵗?-1,//2_1.cpp#include using namespace std;int

3、 main(){ cout<<"Welcome to c++!"<<endl; return 0;}運行結(jié)果:Welcome to c++!,C++語言概述,7,C++程序的組成,程序主體函數(shù)、類(數(shù)據(jù)成員、成員函數(shù))程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。語句以英文分號結(jié)束;書寫格式自由預(yù)處理命令以#開頭的語句注釋單行

4、//多行 /* */ (C語言原有的注釋方式),8,C++字符集,大小寫的英文字母:A~Z,a~z數(shù)字字符:0~9特殊字符:空格!#%^&*_(下劃線)+=-~/\'";.,:?( )[ ]{ },C++語言概述,9,詞法記號,關(guān)鍵字C++預(yù)定義的單詞標(biāo)識符程序員聲明的單詞,它命名程序正文中的一些實體文字在程序中直接使用符號表示

5、的數(shù)據(jù)操作符用于實現(xiàn)各種運算的符號分隔符 () {} , : ; 用于分隔各個詞法記號或程序正文空白符空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱,C++語言概述,10,標(biāo)識符的構(gòu)成規(guī)則,以大寫字母、小寫字母或下劃線_開始可以由以大寫字母、小寫字母、下劃線_或數(shù)字0~9組成。大寫字母和小寫字母代表不同的標(biāo)識符。 大小寫敏感,C++語言概述,11,用戶自

6、定義標(biāo)識符,合法的: apple、_Student、_123、No1、max_num不合法的: 51job、max-num、abc$、 float、true 良好的標(biāo)識符命名習(xí)慣 1、Unix常用的命名法 my_age、num_of_student 2、駝峰式命名法 myAge、numOfStudent 3、匈牙利標(biāo)記法

7、 iMyCar、bIsRight,12,2.2 基本數(shù)據(jù)類型,什么是數(shù)據(jù)類型? 數(shù)據(jù)是程序處理的對象,根據(jù)其本身的特點進行分類,形成不同的數(shù)據(jù)類型。 例:數(shù)學(xué)中有自然數(shù)、整數(shù)、實數(shù)基本數(shù)據(jù)類型 整型:int 字符型:char 實型:單精度float、雙精度double 邏輯型:bool,13,基本類型 有序型

8、字符型(char)整型(int、 short、long) 布爾型(bool)浮點型單精度型(float)雙精度型(double) 構(gòu)造類型枚舉型(enum)數(shù)組結(jié)構(gòu)體(struct)共用體(union)類(class) 指針類型,14,修飾符

9、 在C++中描述為了更加準(zhǔn)確的描述數(shù)據(jù)類型,提供了4個關(guān)鍵字用來修飾基本的數(shù)據(jù)類型: 1、長型 long 2、短型 short 3、有符號 signed 4、無符號 unsigned,15,1、short:僅用來修飾int,稱為短整型,占2字節(jié)內(nèi)存,也可直接簡寫為short;2、long: 僅修飾int和double,在不同

10、的編譯環(huán)境中使用long修飾的數(shù)據(jù)所占內(nèi)存不同。 3、unsigned: 用來修飾char、short和int,表示該數(shù)據(jù)類型為無符號數(shù)。 4、signed: 用來修飾char、short和int,表示該數(shù)據(jù)類型為有符號數(shù),為缺省設(shè)置。,16,數(shù)據(jù)類型 —整型數(shù)據(jù)及取值范圍,類型說明符 位數(shù)數(shù)值范圍短整short16-32768~32767基本 int32

11、 -231~(231-1)長整long32-231~(231-1)無符號unsigned short160~65535 unsigned [int]320~(232-1)unsigned long320~(232-1),基本數(shù)據(jù)類型和表達式,17,數(shù)據(jù)類型和內(nèi)存空間,不同的數(shù)據(jù)類型,加上不同的修飾符,在內(nèi)存中占用的空間不同,其所能表示的數(shù)值范圍也不同。內(nèi)存單元的單位是字節(jié),因此用來表示數(shù)據(jù)類型的長度的單

12、位也是字節(jié)。整型int的長度等于機器的字長: 16位機:int=2字節(jié); 32位機:int=4字節(jié)。long int在32位系統(tǒng)中一般為4字節(jié),但在64位系統(tǒng)一般位 8字節(jié)。float和double型數(shù)據(jù)的有效位數(shù)分別為6位、15位,18,unsigned int與signed int的比較,指定為signed的數(shù)據(jù)以補碼形式存放,存儲單元中的最高位(bit)用來表示數(shù)值的符號。指定

13、為unsigned的數(shù)據(jù),全部二進制位都用來表示數(shù)值本身。例:短整型數(shù)據(jù)占兩個字節(jié),19,float 4字節(jié) 精度:3.4×10±38 6位有效數(shù)字double 8字節(jié) 精度:1.7×10±308 15位有效數(shù)字long double 8字節(jié) 精度:1.7×10±308 15位有效數(shù)字,,,,,,,數(shù)據(jù)類型—實型數(shù)據(jù),實型常量:

14、1.23默認(rèn)為double型1.23F或1.23f為 float型1.23L為long double型,20,常量,1. 在程序運行過程中,值不能被改變的量稱為常量。2. 文字常量是指可直接使用的常量。3. 文字常量分為整形、實型、字符型和字符串型常量。,21,常量,1.整型常量(1)十進制整數(shù),如:789, -456 (2)八進制整數(shù),如:0102,-026 (3)十六進制整數(shù),如:0x789, -0xAB(4)長整

15、型與無符號型整數(shù) 長整型整數(shù),如:12L, 0234L,-0xABl 無符號型整數(shù),如:12U, 0234U,0xABU,22,常量,2.實型常量 在內(nèi)存中以浮點形式存放,均為十進制數(shù),無數(shù)制區(qū)分。(1)小數(shù)形式: 1.65,1.,.123(2)指數(shù)形式:1.23e5、1.23e-5、1e3,23,數(shù)據(jù)類型 ——字符型數(shù)據(jù),字符常量單引號括起來的一個字符,如:'a', 'D'

16、;, '?', '$'字符變量用來存放字符例:char c1,c2; c1='a'; c2='A';字符數(shù)據(jù)在內(nèi)存中的存儲形式以ASCII碼存儲,占1字節(jié),用7個二進制位,基本數(shù)據(jù)類型和表達式,24,字符串常量例:"CHINA" "a" 'a'所以:char c;

17、 c="a";,數(shù)據(jù)類型 ——字符型數(shù)據(jù),基本數(shù)據(jù)類型和表達式,25,轉(zhuǎn)義字符,\a 響鈴(喇叭聲)\n 回車\t向右跳過一個水平制表符\nnn八進制數(shù)表示注意:每一位數(shù)字n<8\xhh十六進制數(shù)表示,26,數(shù)據(jù)類型 ——布爾型數(shù)據(jù),布爾型變量的說明:例:bool flag;布爾型數(shù)據(jù)的取值:只有 false 和 true 兩個值

18、,基本數(shù)據(jù)類型和表達式,27,變量,在程序運行中,值可變的量稱為變量。變量的三要素:變量名、內(nèi)存空間和值。 1定義變量:bool b;char gender, ch;int a, b ; double dx ; float f ; unsigned u ;,28,變量,2 變量賦值(1)變量定義后,用賦值語句賦初值。in

19、t a;a = -12+100; (2)在定義變量的同時,初始化。int a = 12; ★ 變量不賦值,其值是什么?,29,數(shù)據(jù)類型 ——變量初始化,例: int a=3; double f=3.56; char c='a'; int c(5);,基本數(shù)據(jù)類型和表達式,30,2.2.4 符號常量,例如:const double pi=3.14159; 常變量具有變量

20、的三個要素。所以又稱為常變量必須在定義時賦初值,且在程序的運行中值不可變。編譯器可對常變量進行類型檢查。,31,2.2.5 運算符和表達式,運算符:一元:負數(shù)- 邏輯非! 按位取反 ~二元:+ - * / %等三元運算符:條件運算?:關(guān)鍵字運算符:sizeof new delete 強制類型轉(zhuǎn)換運算需要考慮運算符的功能對操作數(shù)的要求(個數(shù)、類型)運算符的優(yōu)先級(見表2.4)運算符的結(jié)合性(見表

21、2.4 ),32,算術(shù)運算符與算術(shù)表達式,基本算術(shù)運算符 + - * /(若整數(shù)相除,結(jié)果取整) %(取余,操作數(shù)為整數(shù)) 運算符不能省略,a*(x+b)優(yōu)先級與結(jié)合性先乘除,后加減,同級自左至右,基本數(shù)據(jù)類型和表達式,33,試一試,溫度轉(zhuǎn)換公式求一元二次方程ax2+bx+c=0的根 x1=?x2=?,,1,2,34,運算符與表達式,關(guān)系運算符與關(guān)系表達式 六種:==、!=、>

22、=、>、=、>、<=、< 2、==、!=關(guān)系表達式的結(jié)果類型為bool,只能為true或false注意:不要把 "= "當(dāng)成等號用!例:設(shè)int a=0; 則a==0為true ,而a=0為false,35,int a=1, b=2, c=3;cout=b)b>a)<<endl; 編譯警告,結(jié)果false,輸出為0,結(jié)果

23、true,輸出為1,結(jié)果true,輸出為1,結(jié)果false,輸出為0,結(jié)果false,輸出為0,36,邏輯運算及其表達式,邏輯運算符 邏輯運算符有&&、||、! 三種;這些運算符的優(yōu)先級由高到低依次為 1、! 2、&& 3、|| 除了邏輯非,邏輯運算的級別低于關(guān)系運算邏輯表達式的結(jié)果類型為bool (tr

24、ue或false),37,邏輯運算及其表達式,例1: 4&&0||2 true例2: 5>3&&2||8<4 true例3: 3&&0&&9 false例2、3涉及"表達式短路"概念:如果多個表達式用&& 或 || 連接,為了提高判斷

25、效率,只要能夠確定表達式的結(jié)果,運行就不再繼續(xù)了。例4:閏年的判別:設(shè)年份為y,當(dāng)下式為真時為閏年: y%4==0 && y%100 !=0 || y%400==0,38,增1、減1運算,運算符:++和--分別表示將操作數(shù)增1、減1 操作對象:整型或字符型變量根據(jù)操作數(shù)的位置不同,分為前置和后置兩種 ++i 先自身加1,再將加1的值作為表達式的值i++ 將i作為表達式的值,然后自

26、身再加1。 --i 先自身減1,再將加1的值作為表達式的值i-- 將i作為表達式的值,然后自身再減1。結(jié)合性:從右向左,39,#include using namespace std;void main(){int i =1; cout<<"i="<<i<<endl; cout<<"i++:&q

27、uot;<<i++<<endl; cout<<"i="<<i<<endl; cout<<" ++i:"<<++i<<endl; cout<<"i="<<i<<endl; },40,試一試:

28、運行結(jié)果是什么?,#includeusing namespace std;int main(){int i,j,x,y;i=j=1;x=(++i)+(++i);y=(j++)+(j++);cout<<i<<j<<x<<y<<endl;cout<<x++<<x++<<endl;return 0;},why?,

29、1,2,41,賦值運算符和賦值表達式,賦值運算符:就是"=" 例如:float f=3.15左值:可以合法的放在"="左邊的操作數(shù)右值:可以合法的放在"="右邊的操作數(shù)常量為右值,所以不能放在"="左邊被賦值;變量既有左值又有右值,可以放在任何位置。左值是使用其地址,右值是使用其內(nèi)容。,42,a=b=c=5 (賦值表達式值為5,a

30、,b,c值均為5)a=5+(c=6) (表達式值為11,a值為11,c值為6)a=(b=4)+(c=6) 表達式值為10,a b c值為10,4,6)思考:1)a=3,b=2; f=a==b; g=a=b; (連續(xù)賦值) f=? g=?2)執(zhí)行(a=3*5)=4*3后,a的值是多少? 寫成 a=3*5=4*3 可以嗎?,43,賦值表達式,C++將賦

31、值表達式作為表達式的一種,使賦值操作不僅可以出現(xiàn)在賦值語句中,而且可以以表達式形式出現(xiàn)在其他語句(如輸出語句、循環(huán)語句等)中。這是C++語言靈活性的一種表現(xiàn)。注意:用cout語句輸出一個賦值表達式的值時,要注意運算符與"<<"的優(yōu)先級,保險的辦法是將該賦值表達式用括號括起來。例:如果寫成cout<<a=b;將編譯出錯!,44,復(fù)合賦值運算,在C++中可以將算術(shù)運算符和賦值運算符結(jié)合在一起進

32、行運算,因此C++還提供10種復(fù)合的賦值運算符+=,-=,*=,/= ,%=等。 好處:能產(chǎn)生質(zhì)量較高的目標(biāo)代碼。例如: x+=y 相當(dāng)于 x = x+y x-=y相當(dāng)于 x = x-y x*=y相當(dāng)于 x = x*y x/=y相當(dāng)于 x = x/y x%=y相當(dāng)于 x = x%y注意:a*=x+2等價于a=a*(x+2)而非a=a*x+2賦值號右端的

33、表達式相當(dāng)于帶括號的,45,賦值運算符和賦值表達式 復(fù)合的賦值運算符,有10種復(fù)合運算符:+=, -=, *=, /=, %=,>=,&=,^=,|= 例a+=3 等價于 a=a+3x*=y+8 等價于 x=x*(y+8),基本數(shù)據(jù)類型和表達式,46,逗號運算符與逗號表達式,逗號運算符,又叫"順序求值運算符"優(yōu)先級最低。 格式: 表達式1,表達式2,……,表達式n;

34、 依次計算表達式1,表達式2,……,表達式n的值,并將表達式n的結(jié)果作為逗號表達式的結(jié)果例1:逗號表達式a=3*5, a*4的值? 60例2: int a, b, c, x, y; a=3, b=4, c=a+b; x=b+c, a; x值為11,表達式值為3 y=(b+c, a) y和整個表達

35、式值都為3,47,① x=(a=3,6*3) a值為3, x值為18② x=a=3,6*a a值為3, x值為3逗號表達式其實是把若干個表達式"串聯(lián)"起來。使用逗號表達式是想分別得到各個表達式的值,而并非一定需要得到和使用整個逗號表達式的值,逗號表達式最常用于for循環(huán)語句中。在用cout輸出一個逗號表達式的值時,要將該逗號表達式用括號括起來,

36、如cout<<(3*5, 43-6*5, 67/3)<<endl;表達式類型豐富,運算符功能強,因而C和C++語言表達能力強,使用靈活。,48,條件運算符與條件表達式,一般形式表達式1?表達式2:表達式3表達式1 必須是 bool 類型執(zhí)行順序先求解表達式1,若表達式1的值為true,則求解表達式2,表達式2的值為最終結(jié)果若表達式1的值為false,則求解表達式3,表達式3的值為最終結(jié)果例: m

37、ax=a>b?a:b;,基本數(shù)據(jù)類型和表達式,49,sizeof 運算符,作用:獲取不同數(shù)據(jù)類型或表達式所占據(jù)的字節(jié)長度格式:sizeof (類型名) 或sizeof (表達式)結(jié)果值:“類型名”所指定的類型或“表達式”的結(jié)果類型所占的字節(jié)數(shù)。例:sizeof (char) sizeof(bool) sizeof(float) sizeof(int) 、 sizeof(sh

38、ort)、 sizeof(long)比較 sizeof(10+3.14),50,位運算——按位與(&),運算規(guī)則將兩個運算量的每一個位進行邏輯與操作舉例: 計算 3 & 5 3: 0 0 0 0 0 0 1 1 5:(&) 0 0 0 0 0 1 0 13 & 5: 0 0 0 0 0 0 0 1,基本數(shù)據(jù)類型和表達式,51,位運算——按位或(|),

39、運算規(guī)則將兩個運算量的每一個位進行邏輯或操作舉例: 計算 3 | 5 3: 0 0 0 0 0 0 1 1 5:(|) 0 0 0 0 0 1 0 13 | 5: 0 0 0 0 0 1 1 1,基本數(shù)據(jù)類型和表達式,52,按位取反運算~,按位取反是一個一元運算符,它的作用是將兩個操作數(shù)對應(yīng)的每一位分別進行取反操作。 具體運算規(guī)則:~1=0,~0=1。 例如:計算~

40、5 5:0 0 0 0 0 1 0 1 ~5:1 1 1 1 1 0 1 0比較:!0與~0的區(qū)別:cout<<!0<<endl;cout<<~0<<endl;,53,運算符優(yōu)先級,單目:[] () ++ -- + - ! ~ sizeof雙目:算術(shù):* / %+, -關(guān)系:>

41、= <=== !=位運算:& ^ |邏輯:&& ||三目:?:賦值運算:= += *= ...逗號運算,,低,高,基本數(shù)據(jù)類型和表達式,54,55,數(shù)據(jù)類型轉(zhuǎn)換,數(shù)據(jù)類型轉(zhuǎn)換 當(dāng)表達式中出現(xiàn)多種數(shù)據(jù)類型的混合運算時,往往需要進行類型轉(zhuǎn)換。表達式中的類型轉(zhuǎn)換分成兩種: 1、隱式類型轉(zhuǎn)換(自動轉(zhuǎn)換) 2、強制類型轉(zhuǎn)換,56,混

42、合運算時的類型轉(zhuǎn)換,不同類型數(shù)據(jù)進行混合運算時,C++編譯器會自動進行類型轉(zhuǎn)換。為了避免不同的數(shù)據(jù)類型在運算中出現(xiàn)類型問題,應(yīng)盡量使用同種類型數(shù)據(jù)。可以采用強制類型轉(zhuǎn)換:例如:float c;int a,b;c=float(a)/float(b); 或 c=(float)a/(float)b;,57,數(shù)據(jù)類型轉(zhuǎn)換,1、隱式類型轉(zhuǎn)換 各種二元運算符在進行運算時都要求兩個操作數(shù)的數(shù)據(jù)類型一致。如果類型不一致,則系統(tǒng)

43、自動對數(shù)據(jù)進行轉(zhuǎn)換(隱式類型轉(zhuǎn)換)。 轉(zhuǎn)換的基本原則: 將精度較低、范圍較小的類型轉(zhuǎn)換成精度較高、范圍較大的類型。 char→short→int→long→float→double,58,賦值過程中的類型轉(zhuǎn)換,賦值運算符要求"="左右兩邊的操作數(shù)數(shù)據(jù)類型相同,如果類型不一致,則自動將右邊的操作數(shù)類型向著左邊的操作數(shù)類型轉(zhuǎn)換。(1) 將浮點型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄其小

44、數(shù)部分。(2) 將整型數(shù)據(jù)賦給浮點型變量時,數(shù)值不變,但以指數(shù)形式存儲到變量中。(3) 將一個double型數(shù)據(jù)賦給float變量時,要注意數(shù)值范圍不能溢出。字符型數(shù)據(jù)賦給整型變量,將字符的ASCII碼賦給整型變量。邏輯運算符要求參與運算的操作數(shù)為bool類型,如果是其他類型,則系統(tǒng)自動將其轉(zhuǎn)換成bool類型,轉(zhuǎn)換規(guī)則:0為false,非0為true。,59,例:將一個int、short或long型數(shù)據(jù)賦給一個char型變量,

45、只將其低8位原封不動地送到char型變量(發(fā)生截斷)。例如short int i=289;char c;c=i; //將一個int型數(shù)據(jù)賦給一個char型變量賦值情況如圖。設(shè)short int型數(shù)據(jù)占2個字節(jié),60,(6) 將signed(有符號)型數(shù)據(jù)賦給長度相同的unsigned(無符號)型變量,將存儲單元內(nèi)容原樣照搬(連原有的符號位也作為數(shù)值一起傳送)。例2.5 將有符號數(shù)據(jù)傳送給無符號變量。#in

46、clude using namespace std;void main( ){ unsigned short a; short int b= -1; a=b; cout<<″a=″<<a<<endl; },61,運行結(jié)果為65535賦給b的值是-1,怎么會得到65535呢?-1的補碼形式為1111111111111111(即全部16個二進制位均為1),將它傳送給a,

47、而a是無符號型變量,16個位全1是十進制的65535。如果b為正值,且在0~32767之間,則賦值后數(shù)值不變。,62,數(shù)據(jù)類型轉(zhuǎn)換,2、強制類型轉(zhuǎn)換 通過類型說明符和括號來實現(xiàn)的顯式轉(zhuǎn)換式: 數(shù)據(jù)類型名(表達式) 例: int i=97; cout<<char(i)<<endl; float f=3.75;

48、 cout<<int(f)<<endl;,63,數(shù)據(jù)類型轉(zhuǎn)換,例1:計算球的體積 v=4.0/3*pi*r*r*r與 v=4/3*pi*r*r*r 的區(qū)別例2:1.0+3/2*4.0 是多少? 5.0例3:float a=1.6, b=2.8; //隱式轉(zhuǎn)換double?float int c, d; c=(int

49、)a + b; //強制轉(zhuǎn)換float?int d=(int)(a+b); //強制轉(zhuǎn)換float?int cout<<c<<endl; //3 cout<<d<<endl; //4 cout<<a<<endl;

50、 //1.6,64,例:分?jǐn)?shù)?小數(shù)——強制類型轉(zhuǎn)換,#include using namespace std; int main( ){cout << 1 << "/ 3 =" << (float)1/3 << endl; cout << 1 << "/ 3 =" << floa

51、t(1)/3 << endl; cout << 1 << "/ 3 =" << float(1/3) << endl; return 0; },65,語句,聲明語句表達式語句選擇語句 if語句,switch語句循環(huán)語句 while,do while,for語句跳轉(zhuǎn)語句 break, continue, goto復(fù)合語句

52、 {......},66,語句的概念,表達式語句格式:表達式;例:s=a*b; i++;表達式與表達式語句的區(qū)別:if((a=b)>0)t=a; √if((a=b;)>0)t=a;返回語句 return 表達式空語句 只有語句結(jié)束符 ";"的語句控制語句的種類: 分支、循環(huán)、轉(zhuǎn)向…,67,復(fù)合語句,將多個語句用一對大括號包圍,便構(gòu)成一個復(fù)合語句例如{su

53、m=sum+i;i++;},68,2.3 數(shù)據(jù)的輸入輸出,向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出例:int x; cout>x;1)從鍵盤輸入時默認(rèn)的分隔符為空格,也可以用回車、TAB鍵。2)不許在cin中加變量名以外的符號,例:逗號,69,順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu),算法的基本控制結(jié)構(gòu),70,選擇結(jié)構(gòu),if…else語句 1、沒有else分支 2、雙分支 3、多分支

54、 4、if 語句的嵌套,71,if-else 語句,1、沒有else分支 例:比較x和y的大小,如果x大,則輸出x的值if ( x>y ) cout<<x<<endl;,if (表達式) 語句;,72,if else 語句,2、雙分支例如:比較x,y的大小,將較大的數(shù)輸出,if (表達式) 語句1;else 語句2;,if ( x&

55、gt;y ) cout<<x<<endl;else cout<<y<<endl;,73,例:輸入一個4位整數(shù)年份,判斷是否閏年?#include void main(){ int year; cin>>year; if (year % 4==0 && year %100 != 0 ||

56、 year % 400==0) cout<<"閏年"<<endl; else cout<<"不是閏年"<<endl;},74,例:判斷輸入字符是否為數(shù)字,#include using namespace std;void main(){ char ch; cout>ch;

57、if (ch>= '0'&& ch<= '9') cout<<"是數(shù)字"<<endl; else cout<<"不是數(shù)字"<<endl;},75,if else 語句,3、多分支,if (表達式1) 語句1; else if (表達式2)

58、 語句2; else if (表達式3) 語句3; … else 語句n;,76,77,例:輸出學(xué)生的成績,#include void main(){ int x; cin>>x; if(x>=90) cout=80) cout=60)

59、 cout<<"合格"<<endl; else cout<<"不及格"<<endl;},78,if else 語句的嵌套,if (表達式1) if (表達式2) 語句1; else 語句2;else if

60、 (表達式3) 語句3; else 語句4;,79,80,例:計算 -1 (x0)if(x>=0)if(x!=0) y=1; else y=0;else y=-1;或者:y= (x>=0)?(x!=0)?1:0:-1;,,,81,例:輸出a,b,c中較大的數(shù),#include void main(){ i

61、nt a,b,c; cin>>a>>b>>c; if (a>b) if (a>c) coutc) cout<<b<<endl; else cout<<c<<endl;},coutb?(a>c?a:c):(b>c?b:c ) );,82,if…else 語句,注意:

62、二義性int a= -2, b=1, c=2;if (a<b) if (b<0) c=0; else c++;cout<< c <<endl;,編譯系統(tǒng)將else與if(b<0)匹配,如果想與第1個if相配,則要加括號!,{,},83,一般形式if( ) if( ) 語句 1 else 語句 2else if( ) 語句 3

63、 else 語句 4注意語句 1、2、3、4 可以是復(fù)合語句,每層的 if 與 else 配對,或用 { } 來確定層次關(guān)系,84,if else 語句的嵌套,注意事項在if語句中嵌套,也可在else語句中嵌套條件語句中,if的個數(shù)一定不少于else個數(shù) else總是與離它最近的if匹配if與else的匹配關(guān)系不因書寫的鋸齒形式而變,書寫格式只是為了看起來直觀要使else與外層的if匹配,需要用{ }括起來,85,swi

64、tch(開關(guān))語句,switch (表達式){ case 常量表達式1: 語句組1 ; break; case 常量表達式2: 語句組2 ; break; ┇case 常量表達式n: 語句組n ; break;defaul

65、t:語句組n+1 ;},86,87,例:輸出學(xué)生的成績,int x; cin>>x; switch(x/10) { case 10: case 9:cout<<"優(yōu)秀"<<endl; break; case 8: cout<<"良好"<<endl;

66、 break; case 7: case 6: cout<<"合格"<<endl; break; default: cout<<"不及格"<<endl;},88,輸入一個0~6的整數(shù),轉(zhuǎn)換成星期輸出,#include void mai

67、n() {int day; cin >> day;switch (day) { case 0: cout << "Sunday" << endl; break; case 1: cout << "Monday" << endl; break; case 2: cout << "

68、;Tuesday" << endl; break; case 3: cout << "Wednesday" << endl; break; case 4: cout << "Thursday" << endl; break; case 5: cout << "Friday&qu

69、ot; << endl; break; case 6: cout << "Saturday" << endl; break; default: cout << "Day out of range "<< endl; }},89,輸入年、月,計算該月有多少天?,#includevoid mai

70、n(){ int y,m,d; cin>>y>>m; switch(m){ case 1:case 3:case 5:case 7:case 8: case 10:case 12: d=31;break; case 4:case 6:case 9:case 11: d=30;break; case 2: d=(y%4==0&&y%100!=0

71、||y%400==0)?29:28; break; default:cout<<"輸入錯!"; } cout<<"day="<<d<<endl;},90,switch語句注意的問題,switch 后括號內(nèi)的表達式只能是整型、字符型、枚舉型等有序類型case 后面是常量表達式,不能含有變量名,各個case后面的表達式值要互不相同為

72、了在匹配一種情形,執(zhí)行結(jié)束后跳出switch語句,每個case最后都要添加break語句在每個case都有break的情況下,case次序?qū)?zhí)行結(jié)果沒影響多個case可以共用一組執(zhí)行語句沒有匹配項,則執(zhí)行default語句,無default,則退出case 后面的語句不用{ }括起來,91,循環(huán)語句,為什么要用循環(huán)語句?三種循環(huán)語句1、 while 語句2、 do…while 語句3、 for 語句,92,whil

73、e 循環(huán)語句,包括3個部分:1、循環(huán)控制條件: 判斷循環(huán)操作是否進行的條件;2、循環(huán)體: 重復(fù)進行的操作;3、循環(huán)控制變量: 記錄循環(huán)體執(zhí)行的次數(shù),或控制循環(huán)的結(jié)束條件。,93,while 循環(huán)語句,while循環(huán)語句格式,while(表達式) 循環(huán)體語句;,執(zhí)行順序先判斷表達式的值,若為 true 時,執(zhí)行語句。,94,例:編程循環(huán)輸出1-9這9個數(shù)字?,#include using

74、namespace std; void main() { int i=1; while (i<=9) { cout<<i<<endl; i++; } cout<<

75、;"循環(huán)結(jié)束"<<endl; },運行結(jié)果:123456789循環(huán)結(jié)束,95,例2-5:編程計算1+2+3+…+10的值,#include using namespace std; void main() { int sum=0, i=1; while(i<=10) { su

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論