C++重點(diǎn)知識(shí)點(diǎn)總結(jié)及習(xí)題(共142頁(yè))_第1頁(yè)
C++重點(diǎn)知識(shí)點(diǎn)總結(jié)及習(xí)題(共142頁(yè))_第2頁(yè)
C++重點(diǎn)知識(shí)點(diǎn)總結(jié)及習(xí)題(共142頁(yè))_第3頁(yè)
C++重點(diǎn)知識(shí)點(diǎn)總結(jié)及習(xí)題(共142頁(yè))_第4頁(yè)
C++重點(diǎn)知識(shí)點(diǎn)總結(jié)及習(xí)題(共142頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩137頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C+的特點(diǎn):1.支持抽象數(shù)據(jù)類型 2.多態(tài)性,一個(gè)接口,多重算法,支持早期聯(lián)編和滯后聯(lián)編3.繼承性,保證了代碼復(fù)用,支持分類的概念一個(gè)c+程序由一個(gè)或多個(gè)函數(shù)構(gòu)成,并且在這些函數(shù)中只有一個(gè)主函數(shù)main,它是程序執(zhí)行的入口。C+程序嚴(yán)格區(qū)別字母的大小寫。第2章 基本數(shù)據(jù)類型、運(yùn)算符與表達(dá)式【內(nèi)容提要】數(shù)據(jù)類型變量與常量運(yùn)算符與表達(dá)式簡(jiǎn)單輸入與輸出【重點(diǎn)與難點(diǎn)】2.1 數(shù)據(jù)類型在C+程序里,每個(gè)名字都有一個(gè)與之相關(guān)聯(lián)的類型,這個(gè)類型決定了可以對(duì)這個(gè)名字所指代的實(shí)體應(yīng)用什么操作,并決定這些操作將如何做出解釋。數(shù)據(jù)類型基本數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型字符型 char結(jié)構(gòu)類型 struct枚舉類型 enum單

2、精度型 float數(shù)組類型 Type雙精度型 double布爾型 bool浮點(diǎn)型指針類型 Type*聯(lián)合類型 union類類型 class空類型 void整型 int圖2.1 C+的數(shù)據(jù)類型圖中Type表示非控?cái)?shù)據(jù)類型。2.1.1 基本數(shù)據(jù)類型l 邏輯型:又稱布爾型,用關(guān)鍵字bool表示。有兩個(gè)值true或false。true可以轉(zhuǎn)換成整數(shù)1,false可以轉(zhuǎn)換成整數(shù)0。與此對(duì)應(yīng),整數(shù)也可以隱式的轉(zhuǎn)換成bool值:非0的整數(shù)轉(zhuǎn)換成true,0轉(zhuǎn)換成false。l 字符型:用關(guān)鍵字char表示。取值包含具體實(shí)現(xiàn)所用的字符集里的一個(gè)字符。字符型數(shù)據(jù)通常占用1個(gè)字節(jié)的存儲(chǔ)空間。l 整型:用關(guān)鍵字in

3、t表示。取值是計(jì)算機(jī)所能表示的所有整數(shù)。l 浮點(diǎn)型:包括單精度型(float)和雙精度型(double)。單精度型通常占用4個(gè)字節(jié)的存儲(chǔ)空間,雙精度型通常占用8個(gè)字節(jié)的空間。l 空類型:用關(guān)鍵字void表示。用于說明某個(gè)函數(shù)沒有返回值。沒有void類型的對(duì)象。在基本的數(shù)據(jù)類型前可以添加修飾符,以改變基本類型的意義。signed:有符號(hào)。 unsigned:無(wú)符號(hào)。unsigned和signed只用于修飾char和int,且signed修飾詞可以省略。當(dāng)用unsigned修飾詞時(shí),后面的類型說明符可以省略。對(duì)于有符號(hào)和無(wú)符號(hào)的整型數(shù)據(jù),它們所占的存儲(chǔ)空間的大小相同,但它們的表數(shù)范圍卻不相同(對(duì)字

4、符型意義相同)。short:短型。只用于修飾int,且用short修飾時(shí),int可以省略。long:長(zhǎng)型。只用于修飾int和double。當(dāng)用long修飾int時(shí),int可以省略。數(shù)據(jù)類型的描述確定了其內(nèi)存所占空間的大小,也確定了其表示范圍。用sizeof(數(shù)據(jù)類型)可以確定某數(shù)據(jù)類型的字節(jié)長(zhǎng)度。請(qǐng)讀者查看在你所用的機(jī)器上,下面類型的最大值和最小值是什么:char、short、int、long、float、double、long double 、unsigned。2.1.2 復(fù)合數(shù)據(jù)類型l 數(shù)組:由具有相同數(shù)據(jù)類型的元素組成的集合。 l 結(jié)構(gòu)體:由不同的數(shù)據(jù)類型構(gòu)成的一種混合的數(shù)據(jù)結(jié)構(gòu),構(gòu)成結(jié)

5、構(gòu)體的成員的數(shù)據(jù)類型一般不同,并且在內(nèi)存中分別占據(jù)不同的存儲(chǔ)單元。 l 共用體:是類似于結(jié)構(gòu)體的一種構(gòu)造類型,與結(jié)構(gòu)體不同的是構(gòu)成共同體的數(shù)據(jù)成員共用同一段內(nèi)存單元。l 枚舉:將變量的值一一列舉出來(lái),每個(gè)枚舉成員(枚舉符)都與一個(gè)整數(shù)相對(duì)應(yīng)。按默認(rèn)方式,枚舉符所賦的值從0開始遞增。枚舉的值也可以用整型的表達(dá)式賦值進(jìn)行初始化。如果某個(gè)枚舉中所有枚舉符的值均非負(fù),該枚舉的表示范圍是0: 2K -1,其中2K是能使所有枚舉符位于此范圍內(nèi)的最小的2的冪;如果存在負(fù)的枚舉符值,該枚舉的取值范圍就是-2K:2K -1。l 指針類型:指針類型變量用于存儲(chǔ)另一變量的地址,而不能用來(lái)存放基本類型的數(shù)據(jù)。它在內(nèi)存

6、中占據(jù)一個(gè)存儲(chǔ)單元。 l 類類型:類是體現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的最基本特征,也是體現(xiàn)C+與C最大的不同之處。類是一個(gè)數(shù)據(jù)類型,它定義的是一種對(duì)象類型,由數(shù)據(jù)和方法組成,描述了屬于該類型的所有對(duì)象的性質(zhì)。 2.2變量與常量2.1.1 變量:指在運(yùn)行期間其值可以改變的量。變量有三個(gè)特征:變量類型、變量名、變量值。l 命名:遵循標(biāo)識(shí)符命名規(guī)則。標(biāo)識(shí)符是對(duì)實(shí)體定義的一種定義符,用來(lái)標(biāo)識(shí)用戶定義的常量名、變量名、函數(shù)名、文件名、數(shù)組名、和數(shù)據(jù)類型名和程序名等。只能由字母、數(shù)字和下劃線組成,且以字母或下劃線開頭。命名時(shí)注意以下幾點(diǎn):1C+的關(guān)鍵字不能用作用戶自定義的實(shí)體名;2以下劃線開頭的名字是保留給實(shí)現(xiàn)或者

7、運(yùn)行環(huán)境,用于特殊目的,在應(yīng)用程序里不要采用這樣的名字;3大寫與小寫字母是區(qū)分的;4見名知義。5維持統(tǒng)一的命名風(fēng)格。l 定義:格式: =,l typedef:為某種類型聲明一個(gè)新名字,而不是定義一種新類型。格式:typedef 2.1.2 常量:程序執(zhí)行期間其值不變的量。主要有下列幾類常量。l 布爾常量l 字符常量用單引號(hào)括起的一個(gè)字符。在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),如字符a的ASCII碼為97。以轉(zhuǎn)義字符開始的字符常量后跟不同的字符表示不同的特殊字符。l 字符串常量由一對(duì)雙引號(hào)括起來(lái)的零個(gè)或多個(gè)字符序列。 字符串可以寫在多行上,不過在這種情況下必須用反斜線表示下一行字符是這一行字符的

8、延續(xù)。 字符串常量實(shí)際上是一個(gè)字符數(shù)組,組成數(shù)組的字符除顯示給出的外,還包括字符結(jié)尾處標(biāo)識(shí)字符串結(jié)束的符號(hào)0,所以字符串“abc”實(shí)際上包含4個(gè)字符:a、b、c和0。注意字符常量與字符串常量在表示、存儲(chǔ)、運(yùn)算方面的區(qū)別。l 整型常量可以用十進(jìn)制、八進(jìn)制或十六進(jìn)制表示。 十進(jìn)制常量 :一般占一個(gè)機(jī)器字長(zhǎng),是一個(gè)帶正負(fù)號(hào)的常數(shù)(默認(rèn)情況下為正數(shù))。 八進(jìn)制常量 :由數(shù)字0開頭,其后由若干0-7的數(shù)字組成,如0378,0123等。十六進(jìn)制常量:以0x或0X開頭,其后由若干0-9的數(shù)字及A-F(或小寫a-f)的字母組成,如0x123,0x3ab。l 浮點(diǎn)型常量只能以十進(jìn)制形式表示。共有兩種表示形式:小

9、數(shù)表示法和指數(shù)表示法。 如:11.3、.2、2.3e10、-2.3E-1等。l 枚舉常量枚舉聲明形式: enum ;枚舉符可以有兩種形式:/= l 符號(hào)常量定義形式:const =,;表示可選項(xiàng),以下都采用這種標(biāo)記。定義的符號(hào)常量必須初始化。一個(gè)符號(hào)常量可看作是一個(gè)只讀變量,由const定義的常量的值不可以改變。const的最常見的用途是作為數(shù)組的界和作為分情況標(biāo)號(hào)。2.3 運(yùn)算符與表達(dá)式在程序中,表達(dá)式是計(jì)算求值的基本單位,它是由運(yùn)算符和運(yùn)算數(shù)組成的式子。運(yùn)算符是表示進(jìn)行某種運(yùn)算的符號(hào)。運(yùn)算數(shù)包含常量、變量和函數(shù)等。C+語(yǔ)言的運(yùn)算符按其在表達(dá)式中與運(yùn)算對(duì)象的關(guān)系(連接運(yùn)算對(duì)象的個(gè)數(shù))可分為:

10、單目運(yùn)算、雙目運(yùn)算、三目運(yùn)算。C+運(yùn)算符一覽表名稱運(yùn)算符舉例優(yōu)先級(jí)結(jié)合性作用域區(qū)分符:x1左結(jié)合性分量運(yùn)算符. -p.next,p-next2函數(shù)調(diào)用運(yùn)算符()fac()下標(biāo)運(yùn)算符p10后增量、后減量前增量、前減量+ -+ -p+-p23右結(jié)合性求字節(jié)運(yùn)算符sizeofsizeof(int)3正號(hào)、負(fù)號(hào)+ -1,+3指針運(yùn)算符* 和 &*p,&x分配、回收空間運(yùn)算符New deletep=new int;delete p;強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(type)(int)x算術(shù)運(yùn)算符* / % + -3%5(取模)45左結(jié)合性左移、右移83, 836關(guān)系運(yùn)算符 = !=3b?x:y14右結(jié)合性賦值運(yùn)算符

11、= 及其擴(kuò)展(+= -= *= /= %= 等)a=2a+=215逗號(hào)運(yùn)算符,a=1,b=2,c=316左結(jié)合性表2.1 C+運(yùn)算符一覽表2.4 簡(jiǎn)單輸入與輸出在C+中,I/O使用了流的概念-字符(或字節(jié))流。每一個(gè)I/O 設(shè)備傳送和接收一系列的字節(jié),稱之為流。輸入操作可以看成是字節(jié)從一個(gè)設(shè)備流入內(nèi)存,而輸出操作可以看成是字節(jié)從內(nèi)存流出到一個(gè)設(shè)備。要使用C+標(biāo)準(zhǔn)的I/O流庫(kù)的功能,需要包括兩個(gè)頭文件:iostream.h用于提供基本的輸入輸出功能,iomanip.h用于提供格式化的功能。2.4.1 I/O的書寫格式(基本數(shù)據(jù)類型的輸入輸出)頭文件iostream.h包含有cin和cout對(duì)象,

12、對(duì)應(yīng)于標(biāo)準(zhǔn)輸入流和標(biāo)準(zhǔn)輸出流。流讀取運(yùn)算符“”表示流的輸入,可以從cin輸入流中讀取字符;流插入運(yùn)算符“”表示流的輸出,可以向cout輸出流插入字符。如:cout”hello world.”ij; /輸入i,j的值2.4.2使用控制符(基本數(shù)據(jù)類型輸入輸出的格式控制)C+中提供了大量的用于執(zhí)行格式化輸入輸出的格式控制符,具體名稱及作用請(qǐng)參看表2.2??刂品枋鏊陬^文件dec 置基數(shù)為10iostream.hhex置基數(shù)為16oct置基數(shù)為8setfill(c)設(shè)填充字符為csetprecision(n)設(shè)顯示小數(shù)精度為n位setw(n)設(shè)域?qū)挒閚個(gè)字符setiosflags(ios:fixe

13、d)固定的浮點(diǎn)顯示iomanip.hsetiosflags(ios:scientific)指數(shù)表示setiosflags(ios:left)左對(duì)齊setiosflags(ios:right)右對(duì)齊setiosflags(ios:skipws)忽略前導(dǎo)空白setiosflags(ios:uppercase)16進(jìn)制數(shù)大寫輸出setiosflags(ios:lowercase)16進(jìn)制數(shù)小寫輸出setiosflags(ios:showpoin)顯示小數(shù)點(diǎn)setiosflags(ios:showpos)顯示符號(hào)(正負(fù)號(hào))setiosflags(ios:showbase)指定在數(shù)值前輸出進(jìn)制(0表示八

14、進(jìn)制,0x或0X表示十六進(jìn)制)表2.2 I/O流的常用控制符【典型例題】例題1:對(duì)以下各種數(shù)據(jù)類型比較所占用存儲(chǔ)空間的大?。?(1)char、int、short int、long int、double、long double. (2) signed int、unsigned int.解答:(1) 本題主要考查的知識(shí)點(diǎn)是各種類型所占用的存儲(chǔ)空間的大小以及相應(yīng)的表數(shù)范圍。在32位計(jì)算機(jī)中,char占1個(gè)字節(jié),short int 占2個(gè)字節(jié),int占4個(gè)字節(jié),long int占4個(gè)字節(jié),double占8個(gè)字節(jié)。sizeof運(yùn)算符用于求解某種數(shù)據(jù)類型的大小。short和long在修飾整型時(shí)可以省略in

15、t。答案為: (2)對(duì)于一種確定的數(shù)據(jù)類型有符號(hào)數(shù)與無(wú)符號(hào)數(shù)所占的存儲(chǔ)空間相同,表數(shù)范圍不同。修飾符signed和unsigned只能用于修飾字符型和整型。答案為: 例題2:下列哪一項(xiàng)能用作用戶自定義的標(biāo)識(shí)符: (a)const (b)2var (c)my name (d)var2解答:本題主要考查標(biāo)識(shí)符命名規(guī)則。C+關(guān)鍵字不能用于用戶自定義標(biāo)識(shí)符,(a)中const是關(guān)鍵字;第一個(gè)字符必須是字母或下劃線,(b)中2var是以數(shù)字開頭;不能含有空格,(c)中my name含有空格。答案為:d。例題3:指出下列程序中的錯(cuò)誤:_。int main()const int x; x=100; retu

16、rn 0;解答:本題主要考查對(duì)符號(hào)常量的理解。const定義的符號(hào)常量必須初始化,由const定義的常量的值不可以改變。所以本題有兩處錯(cuò)誤:第一、沒有對(duì)符號(hào)常量x進(jìn)行初始化;第二、給符號(hào)常量賦值是錯(cuò)誤的。 例題4:給下列表達(dá)式加上全部的括號(hào)(假設(shè)所用變量均已定義):(1) a+b-c-%b(2) ab?b:cd?a:cb?b:(cd?a:(cb?(ac?a:c):(bc?b:c)。(2) 主要考查對(duì)邏輯表達(dá)式的理解和書寫。答案為:1=age&age=100。(3) 主要考查如何在計(jì)算機(jī)中表示一個(gè)數(shù)學(xué)公式。答案為:(a+b)*h/2。(4) 主要考查對(duì)邏輯表達(dá)式的理解和書寫。答案為:(year%

17、4=0&year%100!=0)|(year%400=0)。例題6:下列選項(xiàng)中兩個(gè)表達(dá)式的運(yùn)算結(jié)果相同的是( )。(a)3/2和3.0/2.0 (b)3/2和3.0/2 (c) 3/2.0和3.0/2.0 (d) 3/2.0和3/2解答:本題考查數(shù)據(jù)類型及表達(dá)式中數(shù)據(jù)類型的隱式轉(zhuǎn)換。3/2中兩個(gè)操作數(shù)都為整型,運(yùn)算結(jié)果仍為整型即1;3.0/2和3/2.0中一個(gè)操作數(shù)為整型另一個(gè)為浮點(diǎn)型,運(yùn)算時(shí)整型隱式轉(zhuǎn)換為浮點(diǎn)型,運(yùn)算結(jié)果也為浮點(diǎn)型即1.5;3.0/2.0兩個(gè)操作數(shù)均為浮點(diǎn)型,結(jié)果也為浮點(diǎn)型即1.5。答案為:(c)。例題7:下列程序的運(yùn)行結(jié)果為:_。#includevoid main()int

18、 a=2,b=4,i=0,x; x=ab&+i;coutx:xendl;couti:ib為假,所以表達(dá)式ab&+i為假,而+i沒有執(zhí)行。故i為0。答案為:x:0 i:0例題8:求解下列各表達(dá)式的值(其中x的值為100)。(1) (a=1,b=2,c=3)(2) 1|35(3) a+3&!0%1(4) x%2?“odd”:” even” 解答:(1) 逗號(hào)表達(dá)式的值是其最后一個(gè)表達(dá)式的值。答案為:3。(2) 運(yùn)算符的優(yōu)先級(jí)高于|運(yùn)算符,所以先算35結(jié)果為96(二進(jìn)制),然后與1做按位與運(yùn)算則結(jié)果為97(二進(jìn)制)。答案為:97。(3) 參與本題的運(yùn)算符,按優(yōu)先級(jí)由高到低依次是:!運(yùn)算符、算術(shù)運(yùn)算符

19、、邏輯運(yùn)算符。a+3時(shí)字符型首先隱式轉(zhuǎn)換成整型然后相加結(jié)果為100,!0%1即1%1結(jié)果為0,100&0結(jié)果為0。答案為:0。(4) 算術(shù)表達(dá)式的優(yōu)先級(jí)高于條件表達(dá)式,所以先算x%2結(jié)果為0,0?”odd”:”even”結(jié)果為”even”。本題完成判斷一個(gè)數(shù)是奇數(shù)還是偶數(shù),若該數(shù)為奇數(shù),則表達(dá)式的值為”odd”,為偶數(shù),則表達(dá)式的值為”even”。答案為:”odd”。例題9:下列程序運(yùn)行結(jié)果為:_。#include#includevoid main() int a=23; double b=23.; coutatbendl; coutsetprecision(0)bendl; coutseti

20、osflags(ios:fixed)setprecision(7)bendl; coutsetiosflags(ios:scientific)bendl; coutsetprecision(6); coutsetiosflags(ios:showbase); couthexataendl; coutdec; coutsetw(10)setfill(*)setiosflags(ios:left)aendl;coutsetfill( );解答:本題主要考查對(duì)格式化輸入輸出的掌握。本題主函數(shù)中第三行輸出a,b,t為轉(zhuǎn)義字符,其含義是跳過一個(gè)制表位。不設(shè)置輸出寬度時(shí),默認(rèn)輸出6位有效數(shù)字,超出部分四舍

21、五入。所以該行輸出為:23 23.1235。 setprecision(n)設(shè)置顯示精度,最少顯示一位有效數(shù)字。如果不重新設(shè)置,則其保持效力,所以使用完后要還原為6位默認(rèn)值。第四行中設(shè)置setprecision(0)與setprecision(1)作用相同,結(jié)果顯示一位有效數(shù)字即為:2e+001。 setiosflags(ios:fixed)為固定的浮點(diǎn)顯示,其后跟setprecision(n)表示小數(shù)點(diǎn)后顯示精度為n。所以第五行輸出結(jié)果為:23.。 setiosflags(ios:scientific)為指數(shù)顯示,當(dāng)其整數(shù)部分寬度大于設(shè)置的顯示精度(默認(rèn)為6位)時(shí),以指數(shù)形式顯示結(jié)果。否則根

22、據(jù)設(shè)置的(或默認(rèn)的)顯示精度顯示n位有效數(shù)字。所以第六行輸出結(jié)果為:23.12346。 setiosflags(ios:showbase)為指定在數(shù)值前輸出進(jìn)制。hex置基數(shù)為16,且該操作保持效力,所以使用完后應(yīng)該恢復(fù)為默認(rèn)值10進(jìn)制。第九行輸出結(jié)果為:0x17 0x17。setw(n) 設(shè)域?qū)挒閚個(gè)字符,setfill(c) 設(shè)填充字符為c ,setiosflags(ios:left)為左對(duì)齊。第十一行輸出結(jié)果為:23*。答案為:23 23.12352e+00123.23.123460x17 0x1723*【習(xí)題】一、 選擇題1. 下列數(shù)據(jù)類型不是C+語(yǔ)言基本數(shù)據(jù)類型的是( )。(a)字符

23、型 (b)整型 (c)浮點(diǎn)型 (d)數(shù)組一、 下列字符列中,可作為C+語(yǔ)言程序自定義標(biāo)識(shí)符是( )。選擇題2.(a)x (b)-var (c)new (d)3i3. 下列數(shù)中哪一個(gè)是8進(jìn)制數(shù)( )。(a)0x1g (b)010 (c)080 (d)01b4. 已知a=1,b=2,c=3,則表達(dá)是+a|-b&+c的值為( )。(a)0 (b)1 (c)2 (d)35. 下列表達(dá)式選項(xiàng)中,( )是正確的。(a)+(a+) (b)a+b (c)a+b (d)a+b6. 已知枚舉類型定義語(yǔ)句為:( )。enum colorRED,BLUE,PINK=6,YELLOW,GREEN,PURPLE=15;則

24、下列敘述中錯(cuò)誤的是( )。(a)枚舉常量RED的值為1 (b)枚舉常量BLUE的值為1(c)枚舉常量YELLOW的值為7 (d)枚舉常量PURPLE的值為157. 下列程序的運(yùn)行結(jié)果正確的是( )。#include#includevoid main()const double pi=3.;coutsetprecision(3)piendlsetiosflags(ios:fixed)piendlsetprecision(8)setfill(*)setw(12)piendl;return;(a) 3.1423.142*3.(b) 3.143.142*3.(c) 3.143.143.*(d) 3.1

25、43.142*3.8. 若int x=3,y=5;則表達(dá)式x&y+%3的值為( )。(a)0 (b)1 (c)2 (d)39. 下列常量正確的是( )。(a) ”hello (b)1FL (c) 3.14UL (d) 1.8E-3 World” 10. 若char x=97;,則變量x包含幾個(gè)字符( )。(a)1個(gè) (b)2個(gè) (c)4個(gè) (d)8個(gè)二、 填空題1. c+語(yǔ)言標(biāo)示符是以字母或_開頭的,由字母、數(shù)字、下劃線組成。2. 在C+語(yǔ)言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是_。3. 在內(nèi)存中,存儲(chǔ)字符x占用1個(gè)字節(jié),存儲(chǔ)字符串“x”要占用_個(gè)字節(jié)。4. 符號(hào)常量可以用宏定義define和

26、_表示。5. 轉(zhuǎn)義字符序列中的首字符是_。6. 空字符串的長(zhǎng)度是_。7. 表達(dá)式coutn;還可以表示為_。8. 若要為unsigned int定義一個(gè)新的名字UINT應(yīng)采用的語(yǔ)句是_。9. 以下程序不借助第3個(gè)變量實(shí)現(xiàn)a,b值得交換,請(qǐng)?zhí)羁铡?includeVoid main()int a,b;coutab;a=_a+b_;b=_a-b_;a=_(a-b)/2;coutatbendl;10. 大多數(shù)C+程序都要包含頭文件_。該文件中包含了所有輸入/輸出流操作所需的基本信息。當(dāng)使用帶參數(shù)的操作時(shí),程序中必須包含頭文件_。三、 編程題1. 編寫一個(gè)程序,輸入一個(gè)三位數(shù),分別輸出該數(shù)的百位、十位和

27、個(gè)位。2. 編寫一個(gè)程序打印出各種基本數(shù)據(jù)類型、幾個(gè)你自己定義的復(fù)合數(shù)據(jù)類型的大小。使用sizeof運(yùn)算符。【參考答案】一、 選擇題1 d2 a3 b4 b5 c6 a7 b8 c9 d10 a二、 填空題1 下劃線2 ASCII3 24 const5 6 07 coutendl;8 typedef unsigned int UINT;9 a+b a-b a-b10 iomanip.h iostream.h三、 編程題1#includevoid main()int num,var1,var2,var3;cout請(qǐng)輸入一個(gè)三位數(shù):num;if(num999|num100) /用于檢查輸入數(shù)據(jù)的合

28、法性cout您的輸入有誤!endl;elsevar1=num/100;var2=(num-var1*100)/10;var3=num%10;cout百位數(shù)為:var1endl十位數(shù)為:var2endl個(gè)位數(shù)為:var3endl;2#include#includevoid main() int array10; enum monthJan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec; char *p;coutThe size of char is:sizeof(char)endl The size of int is:sizeof(int)endl T

29、he size of short int is:sizeof(short int)endl The size of long int is:sizeof(long int)endl The size of float is:sizeof(float)endl The size of double is:sizeof(double)endlThe size of long double is:sizeof(long double)endlThe size of signed int is:sizeof(int)endlThe size of unsigned int is:sizeof(unsi

30、gned)endlThe size of array is:sizeof(array)endlThe size of month is:sizeof(month)endlThe size of p is:sizeof(p)表達(dá)式1表達(dá)式2; 向屏幕輸出語(yǔ)句格式為: cout表達(dá)式1表達(dá)式2; 注意:連續(xù)輸入多項(xiàng)數(shù)據(jù)時(shí)應(yīng)鍵入空白字符(包括空格鍵、回車鍵和Tab鍵)將相鄰的兩項(xiàng)數(shù)據(jù)分開。而連續(xù)輸出時(shí),cout不會(huì)在相鄰數(shù)據(jù)項(xiàng)間加分隔符,為了增強(qiáng)顯示效果,用戶可通過控制符自定義顯示寬度,換行等(部分控制符在iomanip.h頭文件中聲明)。3.1.3 復(fù)合語(yǔ)句 C+語(yǔ)言允許把一組語(yǔ)句用一對(duì)花括號(hào)括起

31、來(lái),構(gòu)成一個(gè)復(fù)合語(yǔ)句。復(fù)合語(yǔ)句被視為一個(gè)獨(dú)立的單元它可以出現(xiàn)在程序中任何單個(gè)語(yǔ)句可以出現(xiàn)的地方復(fù)合語(yǔ)句不需要用分號(hào)作為結(jié)束。注意空語(yǔ)句;和空復(fù)合語(yǔ)句 是等價(jià)的。3.2 選擇控制語(yǔ)句 針對(duì)于不同情況采用不同的處理方式的問題,用選擇結(jié)構(gòu)來(lái)實(shí)現(xiàn)。選擇語(yǔ)句包含:if語(yǔ)句和switch語(yǔ)句。3.2.1 if語(yǔ)句 if語(yǔ)句: 格式:if() 作用:當(dāng)為真時(shí),執(zhí)行,否則直接執(zhí)行if語(yǔ)句后邊的語(yǔ)句。這里的可以是一條語(yǔ)句,也可以是幾條語(yǔ)句,但對(duì)于多條語(yǔ)句的情況必須用 將幾條語(yǔ)句括起來(lái)構(gòu)成復(fù)合語(yǔ)句,在if語(yǔ)句中當(dāng)做一個(gè)整體處理。 ifelse語(yǔ)句: 格式:if() else 作用:當(dāng)為真時(shí),執(zhí)行;當(dāng)為假時(shí),執(zhí)行。

32、這里和可以是一條語(yǔ)句也可以是復(fù)合語(yǔ)句。說明:if語(yǔ)句有時(shí)可以用條件表達(dá)式替代。if語(yǔ)句支持多種形式的嵌套使用,但一般嵌套層次不超過三層。另外約定else總是與它上邊最近的一個(gè)if配對(duì)。為了防止語(yǔ)法或邏輯錯(cuò)誤的發(fā)生,建議在較復(fù)雜的情形中使用花括號(hào)區(qū)分。3.2.2 switch語(yǔ)句 格式:switch()case :case :case :default: 作用:計(jì)算判斷它與哪個(gè)匹配,執(zhí)行第一個(gè)相匹配的后的語(yǔ)句,直到遇到break轉(zhuǎn)去執(zhí)行switch語(yǔ)句以外的語(yǔ)句;如果均不匹配則執(zhí)行default后定義的語(yǔ)句(在default省略的情形中,直接執(zhí)行switch語(yǔ)句以外的語(yǔ)句)。 說明: switc

33、h語(yǔ)句中的的值只能是整型、字符型或枚舉型表達(dá)式。switch語(yǔ)句中,case和其后的間必須有空格否則會(huì)產(chǎn)生邏輯錯(cuò)誤。case后的的值是互不相同的,且它的類型與switch后的的類型一致。通常情況下,每個(gè)case分支語(yǔ)句結(jié)束后都要加一個(gè)break語(yǔ)句來(lái)結(jié)束switch語(yǔ)句。但在要表示一個(gè)范圍,或描述一類對(duì)象時(shí)(如A,B,C都屬于合格,D屬于不合格)有可能幾條case分支語(yǔ)句后才有一個(gè)break語(yǔ)句。switch語(yǔ)句與嵌套的if語(yǔ)句都可以用于處理多分支選擇的問題。3.3 循環(huán)控制語(yǔ)句對(duì)于同一個(gè)語(yǔ)句或同一組語(yǔ)句序列需要重復(fù)多次,則采用循環(huán)結(jié)構(gòu)。C+提供了三種循環(huán)控制語(yǔ)句:while語(yǔ)句,dowhil

34、e語(yǔ)句,for語(yǔ)句。3.3.1 while語(yǔ)句 格式:while() 作用:判斷是否為真,若為真則執(zhí)行,然后重復(fù)判斷,直到為假時(shí)跳出while循環(huán)執(zhí)行其后的語(yǔ)句。說明:這里的可以是單條語(yǔ)句也可以是復(fù)合語(yǔ)句。當(dāng)在循環(huán)開始就不滿足,則不執(zhí)行while循環(huán)也就是說while循環(huán)有可能一次都不執(zhí)行。3.3.2 dowhile語(yǔ)句 格式: do while(); 作用:當(dāng)流程到達(dá)do后,立即執(zhí)行循環(huán)體語(yǔ)句,然后再對(duì)條件表達(dá)式進(jìn)行判斷。若的值為真,則重復(fù)執(zhí)行循環(huán)體語(yǔ)句,直到為假時(shí)退出循環(huán),執(zhí)行dowhile循環(huán)后的語(yǔ)句。 說明:這種循環(huán)中至少執(zhí)行一次,當(dāng)條件在循環(huán)開始時(shí)就不滿足時(shí)這種做法是危險(xiǎn)的,所以應(yīng)盡

35、量使用while語(yǔ)句而避免使用dowhile語(yǔ)句。3.3.3 for語(yǔ)句 格式:for(;) 作用:可以稱為初始化表達(dá)式,一般用于對(duì)循環(huán)變量進(jìn)行初始化或賦初值;可以稱為條件表達(dá)式,當(dāng)它的判斷條件為真時(shí),就執(zhí)行循環(huán)體,否則終止循環(huán),退出for循環(huán);可以稱為修正表達(dá)式,一般用于在每次循環(huán)體執(zhí)行之后,對(duì)循環(huán)變量進(jìn)行修改操作。說明:這里的可以是一條語(yǔ)句也可以是復(fù)合語(yǔ)句。for循環(huán)中三個(gè)表達(dá)式可能省略一個(gè)、兩個(gè)或三個(gè)都省略,但它們之間分號(hào)在三種情況下都不可以省略。3.4 跳轉(zhuǎn)語(yǔ)句3.4.1 break語(yǔ)句 格式:break; 作用:結(jié)束當(dāng)前正在執(zhí)行的循環(huán)(for、while、dowhile)或多路分支(

36、switch)程序結(jié)構(gòu),轉(zhuǎn)而執(zhí)行這些結(jié)構(gòu)后面的語(yǔ)句。 說明:在循環(huán)結(jié)構(gòu)中使用時(shí),如果有多層循環(huán),只跳出其所在的最近的循環(huán)層。3.4.2 continue語(yǔ)句 格式:continue; 作用:結(jié)束當(dāng)前正在執(zhí)行的這一次循環(huán)(for、while、dowhile),接著執(zhí)行下一次循環(huán)。即跳過循環(huán)體中尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)語(yǔ)句的判定?!镜湫屠}】 例題1:下列程序的運(yùn)行結(jié)果為_。 #include void main( ) char c= ; if (c=A & c=Z) cout=a & c=z) cout是小寫字母; else cout=A & c=a & c=z,如果滿足則輸出

37、是小寫字母否則輸出是其它字符。else總是與離它最近的前一個(gè)if配對(duì)。答案為:是其它字符。例題2:已定義:char grade; ,若成績(jī)?yōu)锳、B、C時(shí)輸出合格,成績(jī)?yōu)镈時(shí)輸出不合格,其他情況提示重新輸入。要完成以上功能,則下列switch語(yǔ)句正確的是( )。(a) switch(grade) case A: case B: case C: cout”合格”;break; case D: cout”不合格”;break; default: cout”請(qǐng)重新輸入:”;(b) switch(grade) case A: case B: case C: cout”合格”; case D: cout”

38、不合格”;default: cout”請(qǐng)重新輸入:”;(c) switch(grade) caseA, B, C: cout”合格”;break; case D: cout”不合格”;break;default: cout”請(qǐng)重新輸入:”;(d) switch(grade) case A: case B: case C: cout”合格”;break; case D: cout”不合格”;break;default: cout0);- y=x+1;-else;- y=x-1;-(2) While(i) - coutiendl; - i-;-(3) int i=1,sum; -while(i=1

39、00) - sum+=i; - i+;-(4) int i=1,sum=0;-do - sum+=i; - i+;while(i=100) -解答:本題中包含了初學(xué)者在編程中容易犯的一些錯(cuò)誤,提醒讀者注意。(1)本題考查對(duì)if語(yǔ)句的語(yǔ)法結(jié)構(gòu)的掌握。本題的錯(cuò)誤在于在if和else后不應(yīng)加分號(hào)。答案為:將、句末的分號(hào)去掉。(2)C+是大小寫敏感的語(yǔ)言。答案為:將中While改為while。(3)本題目的是完成1到100求和,結(jié)果放在sum中,但是sum在參與運(yùn)算前應(yīng)該首先對(duì)其賦值。答案為:將改為 int i=1,sum=0;(4)本題主要考查對(duì)dowhile的語(yǔ)法結(jié)構(gòu)的掌握以及與while結(jié)構(gòu)進(jìn)行

40、對(duì)比區(qū)別兩者在作用和語(yǔ)法上的不同。答案為:將第行while后加分號(hào)即while(i=100);例題4:循環(huán)語(yǔ)句for(int i=0;i=5&!i;i+) coutiendl;執(zhí)行循環(huán)次數(shù)為( )。 (a) 1次 (b)3次 (c) 5次 (d)6次解答:本題考查對(duì)for循環(huán)的理解以及表達(dá)式運(yùn)算。執(zhí)行for循環(huán)i的初值為0,第一次循環(huán)時(shí)表達(dá)式0=5&!0結(jié)果為1所以執(zhí)行循環(huán)體輸出0;然后i自加為1,計(jì)算表達(dá)式1=5&!1結(jié)果為0,所以退出循環(huán)。答案為:a。例題5:程序段:int i,sum=0;for(i=1;i=100;sum+=i,i+);與上邊程序段不等價(jià)的是( )。(a) int sum=0,i=1;dosum+=i+;while(i=100);(b) int i=1,sum=0;while(i100) break;sum+=i+;(d) int i,sum=0;for(i=1;i=100;i+,sum+=i);解答:本題主要考查對(duì)各種循環(huán)結(jié)構(gòu)的以及它們之間轉(zhuǎn)換關(guān)系的理解。本題中的程序段是求解1到1

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論