計算機二級C++考點_第1頁
計算機二級C++考點_第2頁
計算機二級C++考點_第3頁
計算機二級C++考點_第4頁
計算機二級C++考點_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機二級C++考點

計算機二級C++考點:C++語言概述

1.1C++語言的發(fā)展

C++起源于C語言。1980年貝爾實驗室的

BjarneStroustrup和他的同事們開始對C語言進行改進和擴

充,把Simula67(一種早期的面向?qū)ο笳Z言)中類的概念引

入到C語言,并將改進后的C語言稱為“帶類的

Cw(Cwithclass)o1983年夏,“帶類的C”被正式命名為

“C++”,并于同年7月首次對外發(fā)表。

L2C++語言的特點

1C++是一種面向?qū)ο蟮某绦蛟O(shè)計語言

(1)抽象數(shù)據(jù)類型。

(2)封裝和信息隱藏。

(3)以繼承和派生方式實現(xiàn)程序的重用。

(4)以運算符重載和虛函數(shù)來實現(xiàn)多態(tài)性。

(5)以模板來實現(xiàn)類型的參數(shù)化。

2C++是程序員和軟件開發(fā)者在實踐中創(chuàng)造的

C++往往從編寫實際程序的角度出發(fā),為程序員提供了各

種實用、靈活、高效的語言特性。

3C++是C語言的超集

能夠很好地兼容C語言正是C++取得成功的原因之一,這

是因為:

(DC++繼承了c語言簡明、高效、靈活等眾多優(yōu)點。

(2)以前使用C語言編寫的大批軟件可以不加任何修改,

直接在C++開發(fā)環(huán)境下維護。

(3)C語言程序員只需要學習C++擴充的新特性,就可以

很快地使用C++編寫程序。

1.3面向?qū)ο蟪绦蛟O(shè)計

C++是一種面向?qū)ο蟮某绦蛟O(shè)計語言,它充分支持面向?qū)?/p>

象思想中的三個主要特征是:

1封裝性

封裝性是指將數(shù)據(jù)和算法捆綁成一個整體,這個整體就

是對象,描述對象的數(shù)據(jù)被封裝在其內(nèi)部。如果需要存取數(shù)

據(jù),可以通過對象提供的算法來進行操作,而無需知道對象

內(nèi)部的數(shù)據(jù)是如何表示和存儲的。這種思想被稱為信息隱

藏。

2繼承性

繼承性是指一種事物保留了另一種事物的全部特征,并

且具有自身的獨有特征。

C++語言采用繼承來支持重用,程序可以在現(xiàn)有類型的基

礎(chǔ)上擴展功能來定義新類型。新類型是從現(xiàn)有類型中派生出

來的,因此被稱為派生類。

3多態(tài)性

多態(tài)性是指當多種事物繼承自一種事物時,同一種操作

在它們之間表現(xiàn)出不同的行為。

C++語言中使用函數(shù)重載、模板、虛函數(shù)等概念來支持多

態(tài)性。

C++語言主要包括面向過程和面向?qū)ο髢刹糠謨?nèi)容。學習

C++語言時,應該先學習其面向過程部分,再學習面向?qū)ο蟛?/p>

分。

L4C++語言的基本符號

C++語言中的'基本符號可以分為3類:

1字母。包括大寫英文字母和小寫英文字母共52個符

號。

2數(shù)字

3特殊符號。包括:

+-?/=,_:;?="='~I!#%&()口{}<>

和“空格”共30個符號。

這三類符號共計92個,它們組成了C++語言的基本符號

集合。

L5C++語言的詞匯

1關(guān)鍵字

關(guān)鍵字也稱為保留字,它是由C++語言本身預先定義好的

一類單詞。

表1ANSIC標準規(guī)定的關(guān)鍵字

autobreakcasechar

constcontinuedefaultdo

doubleelseenumextern

floatforgotoif

intlongregisterreturn

shortsignedsizeofstatic

structswitchtypedefunion

unsignedvoidvolatilewhile

表2ANSIC++標準補充的關(guān)鍵字

boolcatchclassconst_cast

dynamic_castexplicitfalse

friendinlinemutablenamespace

newoperatorprivateprotected

publicreinterpret_casestatic_casttemplate

thisthrowtruetry

typeidtypenameusingvirtual

wchar_t2標識符

標識符是用戶為程序中各種需要命名的“元素”所起的

名字。標識符的組成要符合一定的規(guī)則:

(D標識符是一個以字母或下劃線開頭的,由字母、數(shù)

字、下劃線組成的字符串。

(2)標識符不能與任意一個關(guān)鍵字同名。

(3)標識符中的字母區(qū)分大小寫。

(4)標識符不宜過長。C++語言一般設(shè)定一個標識符的有

效長度為32個字符。

3字面常量

常量是指在程序中固定不變的值。常量一般有兩種表示

形式,即符號常量和字面常量。C++語言中符號常量的名字就

是一個標識符,而字面常量卻是一類特殊的單詞。字面常量

分為整型、浮點型、字符型和字符串型四類。

4運算符

運算符是對程序中的數(shù)據(jù)進行操作的一類單詞。C++語言

中運算符的種類非常豐富,其中有:

(1)單字符組成的運算符。

(2)雙字符組成的運算符。

(3)三個字符組成的運算符。

(4)關(guān)鍵字運算符。

5標點符號

標點符號是在程序中起分割內(nèi)容和界定范圍作用的一類

單詞。

表3C++語言的標點符號

標點符號描述

(空格)語句中各成分之間的分割符

;(分號)語句的結(jié)束符

'(單引號)字符常量的起止標記符

〃(雙引號)字符串常量的起止標記符

#(井字號)預處理命令的開始標記符

{(左花括號)復合語句的開始標記符

}(右花括號)復合語句的結(jié)束標記符

〃(雙斜杠)行注釋的開始標記符

/*(斜杠和星號)塊注釋的開始標記符

*/(星號和斜杠)塊注釋的結(jié)束標記符

L6C++程序的基本框架

由于C++語言既支持結(jié)構(gòu)化程序設(shè)計,又支持面向?qū)ο蟪?/p>

序設(shè)計,所以它同時具有結(jié)構(gòu)化程序設(shè)計和面向?qū)ο蟪绦蛟O(shè)

計兩種基本框架。

1結(jié)構(gòu)化程序設(shè)計框架

在C++的結(jié)構(gòu)化程序設(shè)計框架中,函數(shù)是程序的基本組成

單元。程序的主體通常由若干函數(shù)定義構(gòu)成。

函數(shù)是程序中完成一定功能的模塊。各個函數(shù)之間通過

參數(shù)、返回值和全局變量來進行數(shù)據(jù)通信。

當編寫一個較大的程序時,可以把它按照功能逐級劃分

成許多相對獨立的小模塊。每個小模塊的功能由一個函數(shù)實

現(xiàn),再通過適當?shù)姆椒▽⑦@些函數(shù)組織在一起協(xié)同工作,就

能夠完成整個程序所規(guī)定的任務。這種方法體現(xiàn)出了結(jié)構(gòu)化

程序設(shè)計中“功能分解,逐步求精”的思想。

使用結(jié)構(gòu)化程序設(shè)計方法編寫出的C++程序包括一個主函

數(shù)和若干用戶定義函數(shù)。主函數(shù)由操作系統(tǒng)調(diào)用,它是整個

程序的入口。在主函數(shù)中調(diào)用其他函數(shù),其他函數(shù)之間也可

以相互調(diào)用,并且同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任

意多次。在C++中一個函數(shù)被調(diào)用之前必須先被聲明。函數(shù)聲

明和函數(shù)體放在一起組成函數(shù)定義;函數(shù)體是用花括號括起

來的若干語句,它們完成了一個函數(shù)的具體功能。

一般地,一個C++程序的結(jié)構(gòu)化程序設(shè)計框架可以表示

為:

〈函數(shù)1的聲明〉

〈函數(shù)2的聲明,

〈函數(shù)n的聲明,

V主函數(shù)main()>

〈函數(shù)1的定義>

〈函數(shù)2的定義>

〈函數(shù)n的定義>

2面向?qū)ο蟪绦蛟O(shè)計框架

在C++的面向?qū)ο蟪绦蛟O(shè)計框架中,類成為程序的基本組

成單元。程序的主體通常由若干類的定義構(gòu)成。

類可以把數(shù)據(jù)和函數(shù)封裝在一起,用以描述事物的屬性

和對事物的操作。類與類之間一方面通過封裝而具有明確的

獨立性;另一方面又通過成員、友元、參數(shù)、繼承和派生等

關(guān)系,達到相互通信和聯(lián)絡的目的,從而形成一個有機的整

體。

在結(jié)構(gòu)化程序設(shè)計中,除了主函數(shù)之外,所有函數(shù)之間

一律“平等”,沒有層次關(guān)系可言,當程序規(guī)模稍大時,就

會使整體結(jié)構(gòu)變得相當混亂。相反,在面向?qū)ο蟪绦蛟O(shè)計

中,類與類之間能夠按照邏輯關(guān)系組成有條理的層次結(jié)構(gòu),

從而使一個復雜程序變得有“綱”可循。這正體現(xiàn)出面向?qū)?/p>

象思想的優(yōu)越性。

一般地,一個C++程序的面向?qū)ο蟪绦蛟O(shè)計框架可以表示

為:

〈類1的定義,

〈類2的定義,

〈類n的定義〉

V主函數(shù)main。>

〈類1的成員函數(shù)定義〉

〈類2的成員函數(shù)定義,

〈類n的成員函數(shù)定義,

1.7C++程序的開發(fā)過程

開發(fā)一個C++程序的過程通常包括編輯、編譯、鏈接、

運行和調(diào)試等步驟。

1編輯

在VC6集成開發(fā)環(huán)境中,用戶可以使用編輯窗口來進行

C++程序的編輯工作。VC6的編輯窗口是專門為編輯C++程序

而設(shè)計的,它提供了包括語法亮色、調(diào)用提示、自動縮進、

查找和替換等在內(nèi)的一系列功能,使用起來十分方便。

當用戶完成了C++程序的編輯時,應將輸入的程序文本保

存為以cpp為擴展名的文件(保存C++頭文時應以h為擴展

名)。

2編譯

在VC6集成開發(fā)環(huán)境中,用戶可以使用編譯(Compile)命

令將一個以cpp為擴展名的C++源程序文件轉(zhuǎn)換成一個以obj

為擴展名的目標文件。如果一個C++程序由多個源程序文件組

成,應將它們分別進行編譯形成多個目標文件。

3鏈接

在VC6集成開發(fā)環(huán)境中,用戶可以使用生成(Build)命令

來進行目標文件的鏈接工作。另外,在源程序文件沒有被編

譯的情況下直接使用此命令,可以使編譯和鏈接工作一起完

4運行和調(diào)試

在編譯和鏈接工作成功地完成之后可以運行得到的可執(zhí)

行程序,觀察程序是否符合我們所期望的運行結(jié)果。在VC6

集成開發(fā)環(huán)境中,用戶可以使用執(zhí)行(Execute)命令來運行程

序。

如果程序的運行結(jié)果不是我們所期望的,說明源程序文

件中存在著語義錯誤。這時,需要使用調(diào)試器對可執(zhí)行程序

進行跟蹤調(diào)試來查找錯誤發(fā)生的原因。在VC6集成開發(fā)環(huán)境

中,用戶可以很方便地進入調(diào)試狀態(tài),對程序進行設(shè)置斷

點、單步執(zhí)行、觀察變量等操作。

計算機二級C++考點:基本控制結(jié)構(gòu)

1C++語句

C++語句按照不同功能大體分為6種類型,它們是:

(1)聲明語句:用于對程序中的各種實體進行聲明、定義

及初始化。

(2)表達式語句:用于對程序中的數(shù)據(jù)進行具體操作和處

理。

(3)選擇語句:用于實現(xiàn)程序的選擇結(jié)構(gòu)。

(4)循環(huán)語句:用于實現(xiàn)程序的循環(huán)結(jié)構(gòu)。

(5)跳轉(zhuǎn)語句:用于實現(xiàn)程序執(zhí)行流程的轉(zhuǎn)移。

(6)復合語句:用于表示程序中的語句塊概念。

應當指出的是,C++中并不存在賦值語句和函數(shù)調(diào)用語

句,賦值和函數(shù)調(diào)用都屬于表達式而不是語句。

2順序結(jié)構(gòu)

1聲明語句

聲明語句又稱為說明語句,它可以用來對程序中出現(xiàn)的

各種名稱進行聲明。這些名稱通常是表示變量、常量、函

數(shù)、結(jié)構(gòu)、類、對象等實體的標識符。在C++程序中,一個名

稱在使用之前必須先被聲明。聲明的目的是告訴編譯器某個

名稱所指代的實體類型。使用聲明語句能夠在程序中進行如

下操作:

(1)變量聲明

(2)常量聲明

(3)函數(shù)聲明

(4)類型聲明

聲明語句可以完成的工作不僅局限于為名稱指定類型,

同時也是定義語句。

另外,使用聲明語句還可以在定義變量時對其進行初始

化。

2表達式語句

C++中所有對數(shù)據(jù)的操作和處理工作都是通過表達式語句

來完成的。表達式語句的語法格式為:

V表達式,;

(1)賦值操作。

(2)復合賦值操作。

(3)增量、減量操作。

(4)函數(shù)調(diào)用操作。

(5)輸入輸出操作。

3基本輸入輸出

一個程序通常會向用戶輸出一些信息,一般也會要求用

戶輸入一些信息。C++程序的輸入輸出操作是通過標準庫中的

輸入/輸出流對象來完成的。

在頭文件iostream中定義了代表屏幕的標準輸出流對象

cout和代表鍵盤的標準輸入流對象cinocin和cout具有強

大的輸入輸出功能和極為靈活的用法。在程序中使用cin和

cout之前,應首先加入預處理命令:#include<iostream

>,以包含標準頭文件iostreamo

使用cout進行數(shù)據(jù)輸出操作的一般格式為:

cout<<Expr;

這是一條表達式語句。其中,Expr代表一個表達式;

“VV”稱為插入運算符。整條語句的含義是:將表達式

Expr的值輸出(顯示)到屏幕上當前光標所在位置。

4復合語句和空語句

復合語句又稱為塊語句,它是用一對花括號“{}”將

若干條語句包圍起來而組成的一條語句,其語法格式為:

〈語句1>

〈語句2>

V語句n>

}

其中,〈語句i>(i=l,2…,n)可以是聲明語句、表

達式語句、選擇語句、循環(huán)語句或跳轉(zhuǎn)語句等任何合法的C++

語句,當然,也可以是一個復合語句。分隔符“{”和

“}”的作用是把若干條語句組成的序列包圍起來,使它們

在邏輯上成為一條語句。復合語句可以出現(xiàn)在程序中任何需

要語句的地方,但在通常情況下復合語句可以作為以下成分

出現(xiàn)在程序中。

(1)函數(shù)的函數(shù)體;

(2)循環(huán)語句的循環(huán)體;

(3)if語句的分支;

(4)switch語句的執(zhí)行部分。

實際上,空語句是一種特殊的表達式語句。其語法格式

為:

;即空語句只由一個分號組成。

3選擇結(jié)構(gòu)

1語句

if語句又稱為條件語句,它是程序設(shè)計語言中最常見的

一種選擇語句。

(1)基本if語句

基本if語句的功能是根據(jù)給定條件是否成立來決定要不

要執(zhí)行一條語句或語句塊,它的語法格式如下:

if(V條件>)V語句>

其中,if為關(guān)鍵字;V條件,通常是一個表達式且必須

用圓括號包圍起來;V語句〉稱為if子句,它可以是任何類

型的語句(包括復合語句和空語句)。

基本if語句的執(zhí)行過程是:首先計算V條件〉的值,如

果此值不為0(“真”),則執(zhí)行〈語句〉;如果此值為0

(“假”),則忽略V語句〉(即不執(zhí)行)而繼續(xù)執(zhí)行if語

句之后的下一條語句。

說明:

①C++中規(guī)定:如果V條件〉是一個表達式,則當此表達

式的值不為0時,條件結(jié)果為“真”;只有當此表達式的值

為0時,條件結(jié)果才為“假”。

②V條件,也可以是一條聲明語句,其中必須定義一個

變量并對它進行初始化。這時,若此變量的值不為0,則條件

結(jié)果為“真”;若此變量的值為0,則條件結(jié)果為“假”。

(2)if…else語句

if…else語句是基本if語句的擴展,其功能是根據(jù)給定

條件是否成立來決定執(zhí)行兩部分語句中的哪一部分,其語法

格式如下:

if(V條件〉)

〈語句1>

else

〈語句2>

其中,if和else為關(guān)鍵字;V語句1>稱為if子句,

〈語句2>稱為else子句,它們可以是單條語句或復合語

句。

if…else語句的執(zhí)行過程是:首先計算V條件〉的值,

如果此值不為0(“真”),則執(zhí)行〈語句1〉,然后忽略V

語句2>而去執(zhí)行if語句之后的下一條語句;如果此值為0

(“假”),則忽略〈語句1>,執(zhí)行V語句2>,然后繼續(xù)

執(zhí)行if語句之后的下一條語句。

(3)if語句的嵌套

if子句和else子句可以是任何類型的C++語句,當然也

可以是if-else語句本身。通常將這種情況稱為if語句的

嵌套。

2switch

switch語句又稱為開關(guān)語句,它也是一種選擇語句。

switch語句的功能是根據(jù)給定表達式的不同取值來決定從多

個語句序列中的哪一個開始執(zhí)行,其語法格式如下:

switch(V表達式〉){

caseV常量表達式1>:

〈語句序列1>

caseV常量表達式2>:

〈語句序列2>

caseV常量表達式n>:

V語句序列n>

default:

V語句序列n+l>

}

其中,switch,case和default為關(guān)鍵字;V表達式>

的值必須屬于整型、字符型或枚舉型?!闯A勘磉_式i>

(i=l,2…n)是取值互不相同的整型常量、字符常量或枚舉常

量,其具體類型應與〈表達式〉的值相一致。V語句序列i>

(i=l,2…n,n+1)可以是任意多條語句。

switch語句的執(zhí)行過程是:

(1)首先計算出V表達式>的值,設(shè)此值為E;

(2)然后計算每個V常量表達式i>的值,設(shè)它們分別為

Cl,C2,,,,,Cn;

(3)將E依次與Cl,C2,Cn進行比較。如果E與某

個值相等,則從該值所在的case標號語句開始執(zhí)行各個語句

序列,在不出現(xiàn)跳轉(zhuǎn)語句的情況下,將一直執(zhí)行到switch語

句結(jié)束。'

(4)如果E與所有值都不相等且存在default標號,則從

default標號語句起開始向下執(zhí)行,直到switch語句結(jié)束

(同樣,在不出現(xiàn)跳轉(zhuǎn)語句的情況下)。

(5)如果E與所有值都不相等且不存在default標號,則

switch語句不會執(zhí)行任何操作。

說明:

(1)多個case標號可以共用一組語句序列,以實現(xiàn)對于

幾個常量值都執(zhí)行同一操作。

(2)default標號語句是可選的。當default不出現(xiàn)時,

如果〈表達式〉的值與所有〈常量表達式i>(i=l,2…n)的

值都不相等,則程序執(zhí)行流程會跳過switch語句。

(3)switch語句是可以嵌套的。case和default標號只

與包含它們的最內(nèi)層的switch組合在一起。

(4)當需要針對表達式的不同取值范圍進行不同處理時,

使用if…else…if階梯結(jié)構(gòu)比較方便。因為switch語句只

能對相等關(guān)系進行測試,而if語句卻可以用關(guān)系表達式對一

個較大范圍內(nèi)的值進行測試。

4循環(huán)結(jié)構(gòu)

Ifor語句

for語句是C++中最常用且功能最強的循環(huán)語句,其語法

格式如下:

for(V表達式1>;V表達式2>;V表達式3>)

V語句〉

其中,for為關(guān)鍵字;V表達式1>是for循環(huán)的初始化

部分,它一般用來設(shè)置循環(huán)控制變量的初始值;V表達式2>

是for循環(huán)的條件部分,它是用來判定循環(huán)是否繼續(xù)進行的

條件;V表達式3>是for循環(huán)的增量部分,它一般用于修改

循環(huán)控制變量的值;V語句〉稱為for循環(huán)的循環(huán)體,它是

要被重復執(zhí)行的代碼行,for循環(huán)體可以是單條語句,也可以

是由花括號包圍起來的復合語句。

for語句的執(zhí)行過程是:

(1)計算V表達式1>的值;

(2)計算〈表達式2>的值,如果此值不等于0(即循環(huán)

條件為“真”),則轉(zhuǎn)向步驟(3);如果此值等于0(即循

環(huán)條件為“假”),則轉(zhuǎn)向步驟(5);

(3)執(zhí)行一遍循環(huán)體V語句〉:

(4)計算V表達式3>的值,然后轉(zhuǎn)向步驟(2);

(5)結(jié)束for循環(huán)。

C++中for語句的'書寫格式非常靈活,這主要表現(xiàn)為:

U)V表達式1>可以是變量聲明語句,即循環(huán)控制變量

可在其中定義。

(2)V表達式1>可以省略。這時,應在for語句之前給

循環(huán)控制變量賦初始值。注意:省略〈表達式1>時,其后的

分號不能省略。

(3)V表達式2>可以省略。這時,for語句將不再判斷

循環(huán)條件,循環(huán)會無限次地執(zhí)行下去。這種情況通常稱為

“死循環(huán)”。

(4)V表達式3>可以省略。這時,應在循環(huán)中對循環(huán)控

制變量進行遞增或遞減操作,以確保循環(huán)能夠正常結(jié)束。

(5)三個表達式可同時省略。這時,for語句顯然也是一

個“死循環(huán)”。

(6)V表達式1>、V表達式2>和V表達式3>都可以是

任何類型的C++表達式。

2while語句

while語句是一種形式較為簡單的循環(huán)語句,其語法格式

如下:

while(V表達式>)V語句,其中,while為關(guān)鍵字:V

表達式>是吐門6循環(huán)的條件,它用于控制循環(huán)是否繼續(xù)進

行;V語句〉稱為while循環(huán)的循環(huán)體,它是要被重復執(zhí)行

的代碼行;while循環(huán)體可以是單條語句,也可以是由花括號

括起來的復合語句。實際上,while語句是for語句省略掉表

達式1和表達式3的特殊情況。

while語句的執(zhí)行過程是:

(1)計算〈表達式〉的值,如果此值不等于0(即循環(huán)條

件為“真”),則轉(zhuǎn)向步驟(2);如果此值等于0(即循環(huán)

條件為“假”),則轉(zhuǎn)向步驟(4);

(2)執(zhí)行一遍循環(huán)體V語句〉;

(3)轉(zhuǎn)向步驟(1);

(4)結(jié)束while循環(huán)。

從中可以看出,while語句將在V表達式,成立的情況下

重復執(zhí)行〈語句〉;如果在第一次進入while循環(huán)時V表達

式,就不成立,則〈語句>一次也不會執(zhí)行。

注意:

(1)由于while語句中缺少對循環(huán)控制變量進行初始化的

結(jié)構(gòu),因此在使用while循環(huán)之前對循環(huán)控制變量進行初始

化顯得很重要。

(2)在while循環(huán)體中不要忘記對循環(huán)控制變量的值進行

修改,以使循環(huán)趨向結(jié)束。

3do…while語句;do…while語句也是一種循環(huán)語句,它

的功能類似于while語句,只是將循環(huán)的判定條件移到了循

環(huán)體之后,其語法格式如下:

doV語句》while(V表達式〉);

其中,do和while為關(guān)鍵字;V語句〉稱為do…while

循環(huán)的循環(huán)體,它是要被重復執(zhí)行的代碼行,do……while循

環(huán)體可以是單條語句,也可以是由花括號包圍起來的復合語

句;V表達式>是(10……while循環(huán)的條件,它用于控制循

環(huán)是否繼續(xù)進行。

注意:在do…while語句中最后的分號不能丟掉,它用

來表示do...while語句的結(jié)束。

do...while語句的執(zhí)行過程是:

(1)執(zhí)行一遍循環(huán)體〈語句〉;

(2)計算〈表達式〉的值,如果此值不等于0(即循環(huán)條

件為“真”),則轉(zhuǎn)向步驟(D;如果此值等于0(即循環(huán)

條件為“假”),則轉(zhuǎn)向步驟(3);

(3)結(jié)束doe,,while循環(huán)。

注意:

(1)在使用do-while循環(huán)之前同樣需要對循環(huán)控制變量

進行初始化;在do-while循環(huán)中仍然不要忘記對循環(huán)控制

變量進行修改,以使循環(huán)趨向結(jié)束,避免死循環(huán)的發(fā)生。

(2)do…while循環(huán)與while循環(huán)的不同之處在于:

do…while循環(huán)的循環(huán)體在前,循環(huán)條件在后,因此

do…while循環(huán)體在任何條件下(即使不滿足循環(huán)條件)都至

少被執(zhí)行一次。而while循環(huán)條件在前,循環(huán)體在后,當條

件不滿足時,循環(huán)體有可能一次也不會執(zhí)行。這一點正是在

構(gòu)造循環(huán)結(jié)構(gòu)時決定使用while語句還是do…while語句的

重要依據(jù)。

循環(huán)的嵌套

在一個循環(huán)結(jié)構(gòu)中又完整地包含著另一個循環(huán)結(jié)構(gòu)稱為

循環(huán)的嵌套。C++中三種類型的循環(huán)語句都可以相互嵌套,并

且嵌套的層數(shù)沒有限制。程序設(shè)計中有許多問題需要使用循

環(huán)結(jié)構(gòu)的嵌套來解決。

5跳轉(zhuǎn)語句

C++中有4種跳轉(zhuǎn)語句,它們是:break語句、continue

語句、return語句和goto語句。

Ibreak語句

break語句又稱為跳出語句,其語法格式如下:

break;

即由關(guān)鍵字break加上一個分號構(gòu)成。

break語句只能用在switch語句和循環(huán)語句中。在

switch語句中,break用來使執(zhí)行流程跳出switch語句,而

繼續(xù)執(zhí)行switch后面的語句。在循環(huán)語句中,break用來使

執(zhí)行流程無條件地跳出本層循環(huán)體。

另外,break語句還經(jīng)常用于使執(zhí)行流程跳出死循環(huán)。

2continue語句

continue語句又稱為繼續(xù)語句,其語法格式如下:

continue;

即由關(guān)鍵字continue加上一個分號構(gòu)成。

continue語句僅用在循環(huán)語句中,它的功能是:結(jié)束本

次循環(huán),即跳過循環(huán)中尚未執(zhí)行的語句,接著進行下一次是

否執(zhí)行循環(huán)的條件判定。

在while和do…while循環(huán)中,continue語句將使執(zhí)行

流程直接跳轉(zhuǎn)到循環(huán)條件的判定部分,然后決定循環(huán)是否繼

續(xù)進行。在for循環(huán)中,當遇到continue時,執(zhí)行流程將跳

過循環(huán)中余下的語句,而轉(zhuǎn)去執(zhí)行for語句中的V表達式3

>,然后根據(jù)V表達式2>進行循環(huán)條件的判定以決定是否繼

續(xù)執(zhí)行for循環(huán)體。

3return語句

return語句又稱為返回語句,它具有兩種語法格式:

(1)return;

(2)returnV表達式〉;

其中,return為關(guān)鍵字,第2種格式中的〈表達式〉可

以是任何類型的C++表達式。

return語句只能用在函數(shù)體中。在返回類型為void的函

數(shù)體中,若想跳出函數(shù)體,將執(zhí)行流程轉(zhuǎn)移到調(diào)用該函數(shù)的

位置,應使用return語句的第1種格式。在返回類型不是

void的函數(shù)體中,應使用return語句的第2種格式,使執(zhí)行

流程轉(zhuǎn)移到調(diào)用該函數(shù)的位置,并將〈表達式〉的值作為函

數(shù)的返回值。

對于非void返回類型的函數(shù)來說,其函數(shù)體中必須至少

具有一條return語句。

4goto語句

goto語句又稱為轉(zhuǎn)向語句,其語法格式如下:

gotoV標號》;

其中,goto為關(guān)鍵字;V標號》是一個由用戶命名的標

識符。在goto語句所處的函數(shù)體中必須同時存在一條由〈標

號》標記的語句,其格式為:

V標號>:V語句>

即在V標號〉和V語句〉之間使用一個冒號分隔,這種

語法結(jié)構(gòu)稱為標號語句。標號語句中的V標號〉應與goto語

句中的V標號,相同,V語句,可以是任何類型的C++語句。

注意:某個goto語句和相應的標號語句必須位于同一函數(shù)體

內(nèi)。

goto語句的功能是使執(zhí)行流程跳轉(zhuǎn)到V標號〉所標記的

V語句〉處(即對應的標號語句處)。

計算機二級C++函數(shù)考點

1函數(shù)定義

在標準C++中,函數(shù)的定義形式為:

〈返回類型〉〈函數(shù)名〉(V形參列表》)

V函數(shù)體,

}

〈函數(shù)名〉一般是標識符,一個程序只有一個main函

數(shù),其他函數(shù)名可隨意?。ó斎?,必須避免使用C++的關(guān)鍵

字),好的程序設(shè)計風格要求函數(shù)名最好是取有助于記憶的名

字,如getchar函數(shù),通過函數(shù)的名字可以知道函數(shù)的功

能,這無疑會增加程序的可讀性。

V形參列表》是由逗號分隔的,分別說明函數(shù)的各個參

數(shù)。形參將在函數(shù)被調(diào)用時從調(diào)用函數(shù)那里獲得數(shù)據(jù)。在C++

中,函數(shù)形參列表可以為空,即一個函數(shù)可以沒有參數(shù)。但

即使函數(shù)形參列表為空,括起函數(shù)參數(shù)的一對圓括號也不允

許省略。

V返回類型>又稱函數(shù)類型,表示一個函數(shù)所計算(或運

行)的結(jié)果值的類型。如果一個函數(shù)沒有結(jié)果值,如函數(shù)僅用

來更新(或設(shè)置)變量值、顯示信息等,則該函數(shù)返回類型為

void類型。一個沒有返回值的函數(shù)類似于一些程序語言(如

pascal語言)中的過程(procedure)。

由一對花括號括起來的V函數(shù)體>是語句的序列,它定

義了函數(shù)應執(zhí)行的具體操作。

需要注意的是,C++不允許函數(shù)定義嵌套,即在一個函數(shù)

體內(nèi)不能包含有其他函數(shù)的定義。

2函數(shù)調(diào)用

C++中函數(shù)調(diào)用的一般形式為:

V函數(shù)名>(〈實參表〉)

當調(diào)用一個函數(shù)時,其實參的個數(shù)、類型及排列次序必

須與函數(shù)定義時的形參相一致,也就是說實參與形參應該一

對一地匹配。當函數(shù)定義時沒有形參,則函數(shù)調(diào)用時,〈實

參表,亦為空。

依據(jù)對函數(shù)返回值的使用方式,函數(shù)的調(diào)用方法可分為

以下幾種:

(1)語句調(diào)用,這通常用于不帶返回值的函數(shù)。這種情況

下,被調(diào)用函數(shù)作為一個獨立的語句出現(xiàn)在程序中。

(2)表達式調(diào)用。將被調(diào)用函數(shù)作為表達式的一部分來進

行調(diào)用。它適用于被調(diào)用函數(shù)帶有返回值的情況。

(3)參數(shù)調(diào)用。被調(diào)用函數(shù)作為另一個函數(shù)的一個參數(shù)進

行調(diào)用。

3函數(shù)原型

在C++中,函數(shù)在使用之前要預先聲明。這種聲明在標準

C++中稱為函數(shù)原型(functionprototype),函數(shù)原型給出了

函數(shù)名、返回類型以及在調(diào)用函數(shù)時必須提供的參數(shù)的個數(shù)

和類型。函數(shù)原型的語法為:

〈返回類型>〈函數(shù)名〉(<形參列表》);

(注意在函數(shù)原型后要有分號)

實際上函數(shù)原型說明有兩種形式:

(1)直接使用函數(shù)定義的頭部,并在后面加上一個分號。

(2)在函數(shù)原型說明中省略參數(shù)列表中的形參變量名,僅

給出函數(shù)名、函數(shù)類型、參數(shù)個數(shù)及次序。

注意:在C++中,在調(diào)用任何函數(shù)之前,必須確保它已有

原型說明。函數(shù)原型說明通常放在程序文件的頭部,以使得

該文件中所有函數(shù)都能調(diào)用它們。實際上,標準函數(shù)的原型

說明放在了相應的頭文件中,這也是為什么在調(diào)用標準函數(shù)

時必須要包含相應的頭文件的原因之一。

在了解了函數(shù)定義、函數(shù)調(diào)用和函數(shù)原型之后,就可以

寫出一個完整的C++程序,并可將其編譯和運行。

4函數(shù)返回類型

根據(jù)函數(shù)是否帶有參數(shù)以及函數(shù)是否有返回值,可以將

函數(shù)分為如下四類。

1帶參數(shù)的有返回值函數(shù)

定義形式為:

〈返回類型>〈函數(shù)名>(V參數(shù)列表,)

〈語句序列》

}

2不帶參數(shù)的有返回值函數(shù)

定義形式為:

〈返回類型〉V函數(shù)名>()

〈語句序列〉

3帶參數(shù)的無返回值函數(shù)

定義形式為:

voidV函數(shù)名,(V參數(shù)列表,)

〈語句序列〉

}

4不帶參數(shù)的無返回值函數(shù)

定義形式為:

voidV函數(shù)名>()

V語句序列》

}

5函數(shù)參數(shù)

C++中,函數(shù)之間傳遞參數(shù)有傳值和傳地址兩種傳遞方

式。此外,C++還提供了默認參數(shù)機制,可以簡化復雜函數(shù)的

調(diào)用。

1參數(shù)的傳遞方式

(1)傳值

傳值是將實參值的副本傳遞(拷貝)給被調(diào)用函數(shù)的形

參。它是C++的默認參數(shù)傳遞方式,在此之前的多數(shù)函數(shù)參數(shù)

傳遞都是傳值。

由于傳值方式是將實參的值復制到形參中,因此實參和

形參是兩個不同的變量,有各自的存儲空間,可以把函數(shù)形

參看作是函數(shù)的局部變量。傳值的最大好處是函數(shù)調(diào)用不會

改變調(diào)用函數(shù)實參變量的內(nèi)容,可避免不必要的副作用。

(2)傳地址

有時我們確實需要通過函數(shù)調(diào)用來改變實參變量的、值,

或通過函數(shù)調(diào)用返回多個值(return語句只能返回一個值),

這時僅靠傳值方式是不能達到目的。

2默認參數(shù)

在C++中,可以為參數(shù)指定默認值,在函數(shù)調(diào)用時沒有指

定與形參相對應的實參時就自動使用默認值。默認參數(shù)可以

簡化復雜函數(shù)的調(diào)用。

默認參數(shù)通常在函數(shù)名第一次出現(xiàn)在程序中的時候,如

在函數(shù)原型中,指定默認參數(shù)值。指定默認參數(shù)的方式從語

法上看與變量初始化相似。

6函數(shù)重載

如果能用同一個函數(shù)名字在不同類型上做相類似的操作

就會方便很多,這種情況即為函數(shù)重載。其實這一技術(shù)早已

用于C++的基本運算符。例如加法操作只有一個運算符+,但

它卻可以用來做整型數(shù)、浮點數(shù)和指針的加法運算。將這一

思想推廣到函數(shù),即為函數(shù)重載。

7內(nèi)聯(lián)函數(shù)

C++引入內(nèi)聯(lián)(inline)函數(shù)的原因是用它來取代C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論