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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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++語言的標準化工作1994年制定了ANSI C++標準草案1998年11月被(ISO)批準為國際標準,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ù)定義的單詞標識符程序員聲明的單詞,它命名程序正文中的一些實體文字在程序中直接使用符號表示

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

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

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++中描述為了更加準確的描述數(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默認為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注意:不要把 "= "當成等號用!例:設(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,當下式為真時為閏年: 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ì)量較高的目標代碼。例如: x+=y 相當于 x = x+y x-=y相當于 x = x-y x*=y相當于 x = x*y x/=y相當于 x = x/y x%=y相當于 x = x%y注意:a*=x+2等價于a=a*(x+2)而非a=a*x+2賦值號右端的

33、表達式相當于帶括號的,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)換 當表達式中出現(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ù)??梢圆捎脧娭祁愋娃D(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,例:分數(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ù)的輸入輸出,向標準輸出設(shè)備(顯示器)輸出例:int x; cout>x;1)從鍵盤輸入時默認的分隔符為空格,也可以用回車、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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論