




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c+等級(jí)考試培訓(xùn)輔導(dǎo)題型分值應(yīng)得分計(jì)算機(jī)基礎(chǔ)知識(shí)201012c+語(yǔ)言程序設(shè)計(jì)選擇題107填空題53閱讀程序題13108完善程序題126總分6036一、基本概念題1、標(biāo)識(shí)符、常量、變量、表達(dá)式、優(yōu)先級(jí)、結(jié)合性()(1)標(biāo)識(shí)符是以字母或下劃線開(kāi)頭的,由字母、數(shù)字和下劃線組成的字符序列。(2)表達(dá)式:是用運(yùn)算符將常量、變量、函數(shù)等連接而成的式子。(3)運(yùn)算符,分成算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、逗號(hào)運(yùn)算符、位運(yùn)算符、條件運(yùn)算符和數(shù)據(jù)類型長(zhǎng)度運(yùn)算符等。(4)優(yōu)先級(jí),運(yùn)算符的優(yōu)先級(jí)從高到低依次為:()單目運(yùn)算符(!、+、類型轉(zhuǎn)換)算術(shù)運(yùn)算符( *、/、% +、-) /a%b,a與b必須為
2、整型關(guān)系運(yùn)算符(、=、= = =、!=)邏輯運(yùn)算符(& |)賦值運(yùn)算符(=)與復(fù)合賦值運(yùn)算符(+=、-=、*=、/=、%=等)逗號(hào)運(yùn)算符(,)(先左后右,最后取最右邊表達(dá)式的值為逗號(hào)表達(dá)式的值)。(5)結(jié)合性, 雙目運(yùn)算符、逗號(hào)運(yùn)算符具有左結(jié)合性,單目運(yùn)算符與賦值運(yùn)算符具有右結(jié)合性。(6)數(shù)據(jù)類型轉(zhuǎn)換,有自動(dòng)類型轉(zhuǎn)換(charint float)與強(qiáng)制類型轉(zhuǎn)換兩種。(7)sizeof運(yùn)算符:用于計(jì)算運(yùn)算對(duì)象占用內(nèi)存字節(jié)數(shù)。使用格式:sizeof()或 sizeof()運(yùn)算結(jié)果為“類型”所指定的數(shù)據(jù)類型或“表達(dá)式”的結(jié)果類型所占的字節(jié)數(shù)。例如:sizeof(float)/值為4sizeof(a+
3、b)/值為4; a+b=97+98=195,整型數(shù)195占用4個(gè)字節(jié)內(nèi)存空間char s=”abcd”;sizeof(s)/值為5,字符數(shù)組s5共有5個(gè)元素,每個(gè)元素占用一個(gè)字節(jié),/所以字符數(shù)組s5共占用5*1=5個(gè)字節(jié)的內(nèi)存空間2007年(春)21.設(shè)有變量說(shuō)明:short int a=0,b=0;則表達(dá)式sizeof(a+b)的值為: c a1b2c4/a+b轉(zhuǎn)換成int類型,int 類型長(zhǎng)度為4字節(jié)(書(shū)p18)d83、執(zhí)行以下語(yǔ)句后,a的值為 14 。int a=0,m=3,n=10;a=(m+,m+n); /a=(m=m+1=4,m+n=4+10=14)=144、在c+中,標(biāo)識(shí)符是以字
4、母或 下劃線 開(kāi)頭的,由字母、數(shù)字和 下劃線 組成的字符序列。2010年(春)21.若有“int x=6;”,則執(zhí)行語(yǔ)句“x+=x- =x*x;”后的值是: b a36b-60 /因?yàn)閺?fù)合賦值運(yùn)算符“+=”與“-=”具有右結(jié)合性,/所以,x=x-x*x=6-36=-30; x=x+x=-30+(-30)=-60c60d-242010年(秋)24. 設(shè)有語(yǔ)句“int a=10,b=20,c=30;”,則執(zhí)行語(yǔ)句“cout(a,b,c);”,其輸出結(jié)果是: c a10b20c30 /“,”表達(dá)式從左向右計(jì)算,最后取最右邊的值,coutn;int bn; /bn數(shù)組長(zhǎng)度n不能是變量dchar st9
5、=“a string!”; /st9個(gè)單元放不下“a string!”+010個(gè)字符。23.設(shè)有變量說(shuō)明“int a,b;float x,y;”,以下c+語(yǔ)句中存在語(yǔ)法錯(cuò)誤的語(yǔ)句是: a ay=x%a;/%運(yùn)算符要求兩個(gè)操作數(shù)必須是整數(shù)by=x+ +x;cy=a+bx+y?a:b;da=x+y;2、程序控制語(yǔ)句(1)if浯句if () else (2)條件表達(dá)式:?:(3)switch語(yǔ)句switch () /表達(dá)式只能是整型、字符型與枚舉型。case :/當(dāng)條件1滿足時(shí),若不用break則將執(zhí)行語(yǔ)句2 case :.case :default:(4)while語(yǔ)句(當(dāng)型循環(huán),先判斷后執(zhí)行,循
6、環(huán)體可以1次也不執(zhí)行)while ()(5)dowhile語(yǔ)句(直到型循環(huán),先執(zhí)行后判斷,循環(huán)體至少執(zhí)行1次)do while ();(6)for語(yǔ)句(當(dāng)型循環(huán),先判斷后執(zhí)行,循環(huán)體可以1次也不執(zhí)行)for (;) (7)break語(yǔ)句:只能用在循環(huán)語(yǔ)句和switch語(yǔ)句中,用于終止循環(huán)語(yǔ)句和switch語(yǔ)句的執(zhí)行。(8)continue語(yǔ)句:只能用在循環(huán)語(yǔ)句中,結(jié)束本次循環(huán),重新開(kāi)始下一次循環(huán)。2007年(春)22下列關(guān)于while與do while循環(huán)語(yǔ)句的敘述中,正確的是: a ado while循環(huán)體至少執(zhí)行一次。/先執(zhí)行后判斷,循環(huán)體至少執(zhí)行一次bwhile循環(huán)體至少執(zhí)行一次。cdo
7、 while循環(huán)體不能是復(fù)合語(yǔ)句。ddo while允許從循環(huán)體外跳轉(zhuǎn)到循環(huán)體內(nèi)。30. 設(shè)變量a,b是整型變量,下列switch語(yǔ)句中,語(yǔ)法正確的是: d aswitch(a) case a:a+;break;/case 后只能跟常量,不能用變量,書(shū)p43 case b:b+;break;bswitch(a+b) case 1:b=a+;break;/case后不能有兩個(gè)相同的常量 case 1:a=+b;cswitch(a*a) case 10,12:+a;/case 后不能跟兩個(gè)常量 case 14,16:+b;dswitch(a/10+b) case 3:b=a/10;break; d
8、efualt :a+=b;1、對(duì)于switch(e),表達(dá)式只能是整型、 字符型 、或枚舉型。書(shū)p432010年(春)24. 執(zhí)行以下語(yǔ)句序列:int j=0;while(j25) j+=3;coutjendl;其輸出結(jié)果是: c a24b25c27 / int j=0;while(j25) j+=3; j=0,3,6,9,12,15,18,21,24,27d22010年(秋)21.對(duì)于for和do while循環(huán)語(yǔ)句,以下描述正確的是: c afor語(yǔ)句中循環(huán)體至少執(zhí)行一次。b兩個(gè)語(yǔ)句中循環(huán)體體可能都不執(zhí)行。cdo while 語(yǔ)句中循環(huán)體至少執(zhí)行一次。 /先執(zhí)行后判斷,循環(huán)體至少執(zhí)行一次d
9、兩個(gè)語(yǔ)句中的循環(huán)至少執(zhí)行一次。2011年(春)21.以下關(guān)于switch語(yǔ)句的描述中,不正確的是: b a. switch語(yǔ)句中的default子句可以沒(méi)有,也可以有一個(gè)。bswitch語(yǔ)句中的每一個(gè)case子句中必須有一個(gè)break語(yǔ)句。cswitch語(yǔ)句中的default子句可放在switch 語(yǔ)句中的任何位置。dswitch語(yǔ)句中的case子句后面的表達(dá)式只能是整型、字符型或枚舉類型常量。2012年(春)4、c+語(yǔ)言提供的基本控制結(jié)構(gòu)分三種類型:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和 循環(huán)結(jié)構(gòu)。3、數(shù)組(1)一維數(shù)組定義: =初始化列表;訪問(wèn):(2)二維數(shù)組定義: =初始化列表1,初始化列表n;訪問(wèn):數(shù)值
10、數(shù)組a不允許整體輸入、輸出。cina;是錯(cuò)誤的!couta;輸出的是數(shù)組a的首地址,而不是數(shù)組a的元素值。(3)字符數(shù)組定義:char =“字符串” ;(或=”字符串”;)字符數(shù)組str可以整體賦初值、整體輸入和輸出, 即:cinstr; 是正確的!coutstr;是以空格作為串輸入的結(jié)束符。串函數(shù):字符串長(zhǎng)度函數(shù)strlen();字符串復(fù)制函數(shù)strcpy();字符串連接函數(shù)strcat();字符串比較函數(shù)strcmp()。注意:在字符串運(yùn)算符未重載之前,不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組賦給另一個(gè)字符數(shù)組,只能用字符串復(fù)制函數(shù)來(lái)處理。str=”字符串”;是錯(cuò)誤的!兩個(gè)字符串間也不能用
11、關(guān)系運(yùn)算符進(jìn)行比較,而只能用字符串比較函數(shù)來(lái)處理。if(str1str2) 是錯(cuò)誤的!2007年(春)24.執(zhí)行以下程序時(shí),輸入一行字符串為:thank you very much!程序輸出結(jié)果是: b #include void main(void) char line100; cinline; /cin輸入 thank you vrey much! 時(shí),以空格為字符串的分隔符 coutlinen;int arrn;dchar str=“i am student”;2011年(春)23.設(shè)有說(shuō)明語(yǔ)句“char ss =“i am a student”;static float x20;”,以
12、下選項(xiàng)中,存在語(yǔ)法錯(cuò)誤的是: d acoutss;ccoutx;/不能用cin輸入數(shù)組x4、函數(shù)()(1)定義:類型 () 函數(shù)體 (2)調(diào)用:()函數(shù)調(diào)用方式:函數(shù)調(diào)用語(yǔ)句、函數(shù)表達(dá)式、函數(shù)參數(shù)。(3)傳送1)傳值:當(dāng)形參為變量,實(shí)參為表達(dá)式值時(shí),在函數(shù)調(diào)用過(guò)程中,實(shí)參值傳給形參,函數(shù)執(zhí)行過(guò)程中均為形參參與運(yùn)算,函數(shù)返回時(shí),實(shí)參保持原來(lái)的值不變。2)傳地址:當(dāng)形參為數(shù)組、指針,而實(shí)參為數(shù)組名、指針、&變量時(shí),在函數(shù)調(diào)用過(guò)程,將實(shí)參地址傳遞給形參,使實(shí)參與形參占用相同單元,實(shí)參與形參同時(shí)發(fā)生變化。3)引用傳送:當(dāng)形參為引用變量,實(shí)參為變量時(shí),形參為實(shí)參的別名,因此,在函數(shù)執(zhí)行過(guò)程中,實(shí)參與形參
13、同時(shí)發(fā)生變化。(4)返回:return ; 或: return ();函數(shù)中允許寫多條return語(yǔ)句,或不寫return語(yǔ)句;函數(shù)執(zhí)行到return語(yǔ)句時(shí),將表達(dá)式值返回給主調(diào)函數(shù),并終止本函數(shù)的執(zhí)行。因此,函數(shù)的類型應(yīng)與表達(dá)式的類型一致,并最多只會(huì)執(zhí)行一條return語(yǔ)句。當(dāng)函數(shù)沒(méi)用return 語(yǔ)句返回值時(shí),函數(shù)類型應(yīng)為void。(5)原型說(shuō)明當(dāng)函數(shù)調(diào)用在前、定義在后時(shí),應(yīng)在調(diào)用前增加對(duì)被調(diào)函數(shù)的原型說(shuō)明。原型說(shuō)明格式: ();或 ();在函數(shù)原型說(shuō)明中,可只寫形參的數(shù)據(jù)類型,而省略形參名。(6)函數(shù)的嵌套調(diào)用和遞歸調(diào)用1)嵌套調(diào)用:被調(diào)用函數(shù)中調(diào)用另一個(gè)函數(shù)。2)遞歸調(diào)用:直接或間接地
14、調(diào)用函數(shù)本身。利用遞歸方法解決問(wèn)題時(shí),必須注意三點(diǎn):遞歸的公式、遞歸的結(jié)束條件、遞歸的限制條件。(7)變量存儲(chǔ)類型1)作用域塊作用域:從塊內(nèi)變量定義開(kāi)始到塊結(jié)束;文件作用域:從函數(shù)外變量定義開(kāi)始到文件結(jié)束(可用extern進(jìn)行擴(kuò)展);函數(shù)原型作用域:從原型變量定義開(kāi)始到函數(shù)原型說(shuō)明結(jié)束;函數(shù)作用域:從函數(shù)開(kāi)始到函數(shù)結(jié)束;類作用域:從類定義開(kāi)始到類定義結(jié)束。2)局部與全局變量局部變量是在函數(shù)內(nèi)部定義或在塊內(nèi)定義的變量。局部變量都具有塊作用域。全局變量是在函數(shù)外定義的變量。全局變量具有文件作用域。當(dāng)局部變量與全局變量同名時(shí),局部變量?jī)?yōu)先。在塊作用域內(nèi)可通過(guò)作用域運(yùn)算符“:”來(lái)引用與局部變量同名的全
15、局變量。全局變量的默認(rèn)初值為0。3)靜態(tài)與動(dòng)態(tài)變量動(dòng)態(tài)變量是在程序的執(zhí)行過(guò)程中為其分配內(nèi)存的變量。靜態(tài)變量是在程序開(kāi)始執(zhí)行時(shí)就為其分配內(nèi)存,直到程序執(zhí)行結(jié)束時(shí),才收回內(nèi)存的變量。靜態(tài)變量的默認(rèn)初值為0。4)變量的存儲(chǔ)類型存儲(chǔ)類型全局、局部變量作用域靜、動(dòng)態(tài)變量auto(自動(dòng))局部變量塊作用域動(dòng)態(tài)變量register(寄存器)局部變量塊作用域動(dòng)態(tài)變量static(靜態(tài))局部變量塊作用域靜態(tài)變量全局變量文件作用域靜態(tài)變量extern(外部)全局變量文件作用域靜態(tài)變量(7)具有默認(rèn)參數(shù)值的函數(shù)(給形參指定默認(rèn)值)指定默認(rèn)值的形參必須從形參表的右邊開(kāi)始寫。在調(diào)用函數(shù)時(shí),若明確給出了實(shí)參的值,則使用相應(yīng)
16、實(shí)參的值;若沒(méi)有給出相應(yīng)實(shí)參的值,則使用默認(rèn)的值。(8)函數(shù)重載:用重名函數(shù)完成不同功能的函數(shù)運(yùn)算重載函數(shù)形參必須不同,即或者參數(shù)個(gè)數(shù)不同或者數(shù)據(jù)類型不同,但返回類型可以相同。2007年(春)23.設(shè)有函數(shù)原型說(shuō)明:void test(int a,int =7,char *=”#”); /具有默認(rèn)值的形參必須從右邊開(kāi)始寫下面的函數(shù)調(diào)用中,存在語(yǔ)法錯(cuò)誤的是 c atest(3)btest(3,8.2)ctest(6,”*”) /原型說(shuō)明等價(jià)于void test(int a,int b=7,char *p=”#”); 實(shí)參“*”不能傳送給bdtest(0,0,”*”)2010年(春)23. 以下關(guān)
17、于函數(shù)的敘述中,正確的是: c a函數(shù)必須返回一個(gè)值。/void 類型函數(shù)可以沒(méi)有返回值b函數(shù)體中必須有return語(yǔ)句。c函數(shù)可以多次重載。d函數(shù)可以嵌套定義。 /函數(shù)可以嵌套調(diào)用,但不能嵌套定義2010年(秋)4、為使函數(shù)不返回任何值,定義函數(shù)時(shí)應(yīng)在函數(shù)名前加保留字(關(guān)鍵字) void 。5、c+存儲(chǔ)類型的四種說(shuō)明符分別是auto、static、extern和 register 。2011年(春)24.設(shè)有說(shuō)明語(yǔ)句“float f(int &a,int b);int x,y;”,以下對(duì)函數(shù)f的調(diào)用語(yǔ)句正確的是: a af(x,y);/引用類型的形參int &a只能賦變量值x,即int &a
18、=x;bf(&x,y);cf(15,20);df(*x,y);3、在定義全局和靜態(tài)變量時(shí),若沒(méi)有設(shè)置其初值,則這兩種變量的初始值為 0 。2012年(春)27. c+中,函數(shù)重載是指兩個(gè)或兩個(gè)以上的函數(shù),其函數(shù)名: c a不同,但形參的個(gè)數(shù)或類型相同b相同,但返回值的類型不同c相同,但形參的個(gè)數(shù)或類型不同 /正確d相同,但必定是形參的個(gè)數(shù)相同且其類型不同30.有關(guān)函數(shù)調(diào)用的描述中,不正確的是: c a函數(shù)調(diào)用語(yǔ)句可實(shí)現(xiàn)任何函數(shù)的調(diào)用b一個(gè)函數(shù)調(diào)用可作為另一函數(shù)調(diào)用的實(shí)參c函數(shù)調(diào)用均可出現(xiàn)在表達(dá)式中 void print () main() int x=1,y; y=x+print(); /出錯(cuò)
19、d函數(shù)之間允許嵌套調(diào)用3、c+語(yǔ)言規(guī)定,所有函數(shù)說(shuō)明都必須返回值類型,沒(méi)有返回值的函數(shù)應(yīng)該說(shuō)明為 void 類型的函數(shù)。5、宏定義宏定義是用一個(gè)宏名來(lái)代表一個(gè)字符串。(1)無(wú)參宏定義:#define 字符串(2)帶參宏定義:#define (參數(shù)表) 字符串宏定義可以寫在函數(shù)的任意位置。2010年(秋)2、定義了宏“# define f(x,y,z) x/y*z”,執(zhí)行語(yǔ)句“b=f(3+4,2+2,4+4);”后變量b的值是b=3+4/2+2*4+4=3+2+8+4=172006年(秋)22下列定義變量與常量的語(yǔ)句中,語(yǔ)法正確的是: c a float i,j,int k; / float i
20、,j ;int k;b const int i; /書(shū)p186,const常量必須賦初值c. int const k=1;d#define pi=3.14159 /#define 字符串 (書(shū)p142)2012年(春)24.以下有關(guān)c+宏定義的說(shuō)明中,不正確的是:(b)a是以#開(kāi)頭的行b一行中可以存在一條以上的宏定義 /c+規(guī)定,一行只能寫一條宏定義c一條宏定義占一行d宏定義可放在函數(shù)內(nèi),也可以放在函數(shù)定義之外6、指針指針是變量、數(shù)組、字符串、函數(shù)等在內(nèi)存的地址;指針變量是存放指針(地址)的變量;當(dāng)指針變量賦null或 0時(shí),表示指針變量不指向任何變量。指針變量按定義格式大致可分為五種:l 指
21、針變量:int *p; /可指向變量、數(shù)組與字符串l 指針數(shù)組:int *pn;l 指向一維數(shù)組的指針變量:int (*p)n;l 返回指針值的函數(shù):int *p(int x);l 函數(shù)指針變量:int (*p)(int x);a0a1a2aian-1pp+i(1)指針變量1)定義: * ;2)賦值:=&;3)指針變量的引用:*;int a10,* p=a; p+;/使p指向a1,p+i;/使p指向ai。4)一維數(shù)組an元素值:ai、*(p+i)、*(a+i)、pi。a0aia2a00a01a02ai0ai1ai2a20a21a22 5)二維數(shù)組amn:行首地址、行地址與元素地址。第i行首地址
22、:&ai0、ai、*(a+i)第i行行地址:a+i、&ai,用于指向一維數(shù)組的指針變量。元素aij值:aij、*(ai+j) 、 *(*(a+i)+j) 、 *(&ai0+j)。6)字符數(shù)組snchar s = i am a student,*p;cinp; /錯(cuò)誤,指針變量在未賦數(shù)組地址前,不能進(jìn)行cin操作p=s; /正確cinp; /正確,指針變量在賦數(shù)組地址后,可以進(jìn)行cin操作 p=i am a student;/正確,可將字符串賦給指針變量。7)數(shù)組與指針作為函數(shù)參數(shù)l 實(shí)參=數(shù)組名,形參=數(shù)組。l 實(shí)參=數(shù)組名,形參=指針變量。l 實(shí)參=指針變量,形參=數(shù)組。l 實(shí)參=指針變量,
23、形參=指針變量。(2)指針數(shù)組: *;例如: char c3 4= abc,def,ghi; char *pc3 =c0,c1,c2;(3)指向一維數(shù)組的指針變量:用于處理二維數(shù)組的運(yùn)算問(wèn)題。 (*); int a33,(*p)3=a; 或 p=a+0; (*p)0、(*p)1、(*p)2=a00、a01、a02。p+; (*p)0、(*p)1、(*p)2=a10、a11、a12。由此可見(jiàn),只要用算術(shù)運(yùn)算改變p所指的行,則(*p)0、(*p)1、(*p)2可以表示數(shù)組a的任一行元素值。因此,指向一維數(shù)組的指針變量可用于處理二維數(shù)組的運(yùn)算問(wèn)題。注意:在定義語(yǔ)句中的“數(shù)組列數(shù)”必須與所指向的二維數(shù)
24、組的列數(shù)相同。(4)返回指針值的函數(shù): *() (5)函數(shù)指針變量:用于存放函數(shù)指針的變量,也即存放函數(shù)入口地址的變量。定義: (*) ();在實(shí)際使用時(shí),必須將真實(shí)的函數(shù)入口地址賦給函數(shù)指針變量。此時(shí)對(duì)函數(shù)指針變量的調(diào)用就變成了對(duì)真實(shí)函數(shù)的調(diào)用。如:float f1(float x) return 1+x; main() float (*p)(float x); p=f1; coutp(1)endl; /等同于coutf1(1)endl; (6)new運(yùn)算符:動(dòng)態(tài)地分配內(nèi)存空間,并將分配內(nèi)存的地址賦給指針變量。 *p=new (初值); /動(dòng)態(tài)分配變量?jī)?nèi)存空間,并將變量地址賦給指針p *p=
25、new 長(zhǎng)度;/動(dòng)態(tài)分配數(shù)組內(nèi)存空間,并將數(shù)組首地址賦給指針p(7)delete 運(yùn)算符:將動(dòng)態(tài)分配的內(nèi)存空間歸還給系統(tǒng)。delete p; /動(dòng)態(tài)回收p所指變量占用內(nèi)存空間delete p;/動(dòng)態(tài)回收p所指數(shù)組占用內(nèi)存空間(8)const 常量:定義常量const =; /用const定義的常量必須賦初值,且不能修改。或 const =; 2007年(春)27.設(shè)有以下語(yǔ)句:int a=5;int arra; /第1行const int b=5;int xb;/第2行int c=5;int *p=new int c;/第3行const int d=5;int *p1=new int d; /
26、第4行其中存在語(yǔ)法錯(cuò)誤的是: a a第1行 /定義數(shù)組arra時(shí),不能用變量a作為數(shù)組長(zhǎng)度,書(shū)p73b第2行/常量b可以作為定義數(shù)組arrb時(shí)的長(zhǎng)度,書(shū)p186c第3行/用new動(dòng)態(tài)分配數(shù)組內(nèi)存時(shí),長(zhǎng)度可以是變量,書(shū)p182d第4行/用new動(dòng)態(tài)分配數(shù)組內(nèi)存時(shí),長(zhǎng)度可以是常量,書(shū)p1823、要使一個(gè)指針不指向任一變量,應(yīng)將該指針變量的值賦為 0或null 。2010年(春)22以下語(yǔ)句中,存在編譯錯(cuò)誤的是 a achar a7,*p; p=a=”china”;/字符數(shù)組a不能進(jìn)行字符串賦運(yùn)算(書(shū)p165)bchar a7,*p; p=a;p=”china”;cchar *a;a=”china”
27、;dchar a7=”china”;2010年(秋)22設(shè)有說(shuō)明語(yǔ)句“int hh4=2,3,4,*p=hh;”,則以下選取項(xiàng)中,存在語(yǔ)法錯(cuò)誤的是 b a0a1a2a3an-1p1p2ap+;/p指向hh1bhh+; /數(shù)組名表示數(shù)組首地址,不能加1c(*p)+;/(*p)+=hh0+=3d(*hh)+;/(*hh)+= hh0+=330.以下關(guān)于指針運(yùn)算的敘述中,不正確的是: d a可以將null賦給任一指針變量。b兩個(gè)同類型的指針變量可進(jìn)行相等或不等的比較運(yùn)算。c指針變量的值加上整常數(shù)n,可使該指針指向當(dāng)前元素后的第n個(gè)元素。d指向同一數(shù)組的兩個(gè)指針變量,在任何情況下,兩指針變量相減都是無(wú)
28、意義的。/相減后為兩個(gè)指針變量所指單元序號(hào)之差,p2-p1=3。2012年(春)29.以下有關(guān)指針變量的運(yùn)算中,不正確的是: d a一個(gè)指針變量可以加減一個(gè)整數(shù)b兩個(gè)指針變量在一定條件下可進(jìn)行關(guān)系運(yùn)算c可將null賦給任一指針變量d兩個(gè)指針變量可進(jìn)行加法運(yùn)算 /兩個(gè)指針變量只能進(jìn)行關(guān)系運(yùn)算,不能進(jìn)行加法運(yùn)算1、在c+中,* 既是單目運(yùn)算符,又是雙目運(yùn)算符。* 作為單目運(yùn)算符時(shí),其功能是 指針運(yùn)算,作為雙目運(yùn)算符時(shí),其功能是 乘法運(yùn)算 7、類與對(duì)象()(1)類:由描述事物的數(shù)據(jù)(數(shù)據(jù)成員)及處理數(shù)據(jù)的函數(shù)(成員函數(shù))組成。class public: /定義公有數(shù)據(jù)成員或成員函數(shù)(類內(nèi)外均可訪問(wèn))
29、, private: /定義私有數(shù)據(jù)成員或成員函數(shù)(只能在類內(nèi)訪問(wèn)) protected: /定義保護(hù)數(shù)據(jù)成員或成員函數(shù)(只能在類內(nèi)或派生類內(nèi)訪問(wèn)) 默認(rèn)訪問(wèn)權(quán)限為:private。特性:類具有封裝性、繼承性與多態(tài)性。(2)對(duì)象:用類定義的變量稱為對(duì)象。(3)引用類內(nèi)對(duì)象成員引用:成員,或this-成員類外對(duì)象成員引用:對(duì)象.成員 (4)構(gòu)造函數(shù)作用:構(gòu)造函數(shù)用于對(duì)象數(shù)據(jù)成員的初始化。特點(diǎn):構(gòu)造函數(shù)名必須與類名相同,且無(wú)返回類型,構(gòu)造函數(shù)允許重載。缺省構(gòu)造函數(shù):是無(wú)參或有缺省值參數(shù)的構(gòu)造函數(shù)。類型:有參構(gòu)造函數(shù)、無(wú)參構(gòu)造函數(shù)與拷貝構(gòu)造函數(shù)??截悩?gòu)造函數(shù)的形參必須為類的對(duì)象。(5)析造函數(shù)1)作
30、用:完成撤消對(duì)象有關(guān)操作。2)特點(diǎn):析造函數(shù)名由類名前加“”組成,且無(wú)參數(shù)及返回類型,不允許重載,惟一。(6)構(gòu)造與析構(gòu)函數(shù)的調(diào)用用類定義對(duì)象時(shí),系統(tǒng)先為其分配內(nèi)存空間,然后自動(dòng)調(diào)用構(gòu)造函數(shù)對(duì)數(shù)據(jù)成員進(jìn)行初始化。當(dāng)對(duì)象結(jié)束其生命期,系統(tǒng)自動(dòng)調(diào)用析構(gòu)函數(shù),完成撤消對(duì)象有關(guān)操作。(7)構(gòu)造函數(shù)與對(duì)象成員:(形參):(實(shí)參1),(實(shí)參2),(實(shí)參n)函數(shù)體構(gòu)造函數(shù)調(diào)用順序:先調(diào)用各對(duì)象成員的構(gòu)造函數(shù),再調(diào)用類本身的構(gòu)造函數(shù)。析構(gòu)函數(shù)調(diào)用順序:與構(gòu)造函數(shù)相反。(8)this指針用類定義一個(gè)對(duì)象時(shí),由系統(tǒng)自動(dòng)建立指向該對(duì)象的指針?lè)Q為this指針。this 指針的缺省定義格式: * const this=
31、& 對(duì)象;因?yàn)殪o態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù)只屬于類,而不屬于對(duì)象,所以靜態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù)沒(méi)有this指針。2007年(春)2、面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特點(diǎn)是封裝性、繼承性和 多態(tài)性 。書(shū)p3025、在c+中,類的每一個(gè)非靜態(tài)成員函數(shù)都有一個(gè) this 指針,該指針指向正在調(diào)用成員函數(shù)的對(duì)象。2010年(春)27. 對(duì)于任意一個(gè)類,其析構(gòu)函數(shù) a a是惟一的。b可有多個(gè)。c只能是缺省的。d允許重載。28. 類成員函數(shù)中,沒(méi)有this指針的是: d a構(gòu)造函數(shù)。b析構(gòu)函數(shù)。c虛函數(shù)。d靜態(tài)成員函數(shù)。/靜態(tài)成員函數(shù)為類中所有對(duì)象所共有2010年(秋)27.下列關(guān)于構(gòu)造函數(shù)的敘述中,不正確的是 a
32、 a可以定義沒(méi)有構(gòu)造函數(shù)的類。b任何一個(gè)類必定有構(gòu)造函數(shù)。c類的構(gòu)造函數(shù)可以重載。d構(gòu)造函數(shù)沒(méi)有返回值。29.以下有關(guān)類與對(duì)象的敘述中,不正確的是: a a不同的類可以產(chǎn)生相同類型的對(duì)象。 /對(duì)象是用類定義的變量,/所以不同類定義的對(duì)象類型不會(huì)相同b類是一種類型,它定義了數(shù)據(jù)和操作。c對(duì)象是類的實(shí)例。d任一對(duì)象必屬于一個(gè)類。2012年(春)25.以下有關(guān)c+析構(gòu)函數(shù)的敘述中,不正確的是: d a析構(gòu)函數(shù)名必須以“”開(kāi)頭b不可以定義析構(gòu)函數(shù)的形式參數(shù)c析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用d可以重載析構(gòu)函數(shù)/析構(gòu)函數(shù)名=類名、無(wú)形參、無(wú)返回類型(惟一),不能重載8、繼承、派生與虛基類()(1)繼承:從已有類出發(fā)
33、建立新類,使新類部分或全部地繼承已有類的成員稱為繼承。(2)派生:通過(guò)繼承已有一個(gè)或多個(gè)類產(chǎn)生新類稱為派生。(3)定義:class :,派生類體;(4)公有或私有派生后,基類成員在派生類中訪問(wèn)權(quán)限的變化基類成員訪問(wèn)權(quán)限 公有派生后的訪問(wèn)權(quán)限 私有派生后的訪問(wèn)權(quán)限publicpublicprivateprivate不可直接訪問(wèn)不可直接訪問(wèn)protectedprivateprivate(5)派生類構(gòu)造函數(shù)(形參表):(實(shí)參表1)(實(shí)參表n) ;構(gòu)造函數(shù)的調(diào)用順序是先基類后派生類,析構(gòu)函數(shù)的調(diào)用順序是先派生類后基類。(6)沖突:派生類使用基類中同名成員時(shí)出現(xiàn)不唯一稱為沖突。沖突的解決方法::(7)支
34、配規(guī)則:使用派生類中與基類中同名成員時(shí),派生類成員優(yōu)于基類同名成員的規(guī)則稱為支配規(guī)則。(8)兼容性:派生類對(duì)象可賦值給基類對(duì)象,基類對(duì)象不能賦給派生類對(duì)象稱為賦值的兼容性。(9)虛基類:在多重派生中,欲使公共基類在派生類中只有一個(gè)拷貝,可將此基類說(shuō)明成虛基類。此時(shí),在執(zhí)行派生類構(gòu)造函數(shù)時(shí),不再通過(guò)其父類調(diào)用公共基類構(gòu)造函數(shù)??梢越鉀Q二義性問(wèn)題!class :virtual ; (10)靜態(tài)成員類內(nèi)作引用性說(shuō)明:static 數(shù)據(jù)成員; /不分配內(nèi)存類外作定義性說(shuō)明: :=初值;/分配內(nèi)存引用格式::由于同類不同對(duì)象的靜態(tài)數(shù)據(jù)成員占用相同的內(nèi)存空間,所以其使用方式只與類有關(guān)即::,而與對(duì)象無(wú)關(guān)。
35、2007年(春)26. 定義以下的類:class x int a; public:x(int x=0) a=x; ;class y:public xint b;public:y(int x=0,int y=0):x(y)b=x;在下列選項(xiàng)的說(shuō)明語(yǔ)句中,存在語(yǔ)法錯(cuò)誤的是: c ax *pa=new y(1,2);bx a1=y(1,3);cx b2(2,3);y &a2=b2; /類x的構(gòu)造函數(shù)只有一個(gè)形參,與兩個(gè)實(shí)參不匹配。dy b3(10); x a3(b3);2010年(春)29.以下有關(guān)繼承的的敘述中,不正確的是: c a繼承可以實(shí)現(xiàn)軟件復(fù)用。/節(jié)省編程量。b虛基類可以解決多繼承產(chǎn)生的二
36、義性問(wèn)題。c派生類不繼承基類的私有成員。d派生類的構(gòu)造函數(shù)要調(diào)用基類的構(gòu)造函數(shù)。30. 靜態(tài)數(shù)據(jù)成員是 d 的數(shù)據(jù)。a私有b公有c保護(hù)d所有對(duì)象共享2011年(春)30.以下關(guān)于this指針的敘述中,不正確的是: d a當(dāng)調(diào)用對(duì)象的非靜態(tài)成員時(shí),總存在一個(gè)this指針。b非靜態(tài)成員函數(shù)調(diào)用類中的成員時(shí),可直接使用this指針。cthis指針隱含地指向要用到的當(dāng)前對(duì)象。d靜態(tài)成員函數(shù)也存在this指針。/c+為類的每個(gè)對(duì)象定義this指針,而靜態(tài)成員為類的所有對(duì)象所共有,所以不存在this指針。2、在c+中,類的繼承方式有三種:保護(hù)繼承、私有繼承和 公有繼承 。2012年(春)26.以下c+靜態(tài)
37、數(shù)據(jù)成員的描述中,正確的是: d a靜態(tài)數(shù)據(jù)成員不能被成員函數(shù)調(diào)用b靜態(tài)數(shù)據(jù)成員要在構(gòu)造函數(shù)內(nèi)初始化c靜態(tài)數(shù)據(jù)成員必須為公有的d靜態(tài)數(shù)據(jù)成員為該類的所有對(duì)象所共有 /c+規(guī)定靜態(tài)數(shù)據(jù)成員為該類所有對(duì)象所共有28.以下有關(guān)繼承的敘述中,正確的是: a a派生類繼承基類的所有成員b派生類繼承基類的所有非私有成員c派生類不繼承基類的析構(gòu)函數(shù)d虛函數(shù)不能解決多繼承產(chǎn)生的二義性9、運(yùn)算符重載、多態(tài)性與虛函數(shù)()(1)友元概念類的友元可訪問(wèn)類中所有數(shù)據(jù)成員或成員函數(shù),雖然友元方便了用戶,但破壞了數(shù)據(jù)的安全性。(2)友元定義類內(nèi)引用說(shuō)明( friend (形參);),類外定義性說(shuō)明。(3)運(yùn)算符重載l 運(yùn)算
38、符重載是指用同一運(yùn)算符完成不同的運(yùn)算操作;l 運(yùn)算符重載是通過(guò)運(yùn)算符重載函數(shù)來(lái)實(shí)現(xiàn)的;l 運(yùn)算符重載不能改變操作數(shù)的個(gè)數(shù)、不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。(4)二元運(yùn)算符重載函數(shù)用成員函數(shù)重載運(yùn)算符定義::(對(duì)象) 函數(shù)體調(diào)用:;c+將運(yùn)算符操作解釋為對(duì)運(yùn)算符成員重載函數(shù)的調(diào)用:.(右操作數(shù)對(duì)象);如:complex operator +(complex c) complex t; t.real=real+c.real; t.image=image+c.image; return t; c3=c1+c2;/c3=c1.operator+(c2)用友元函數(shù)重載運(yùn)算符類內(nèi)定義:friend (對(duì)象
39、1,對(duì)象2);類外定義:(對(duì)象1,對(duì)象2) 函數(shù)體。調(diào)用: ;c+將運(yùn)算符操作解釋為對(duì)運(yùn)算符友元重載函數(shù)的調(diào)用:(左操作數(shù)對(duì)象,右操作數(shù)對(duì)象);如:complex operator +(complex c1,complex c2) complex t; t.real=c1.real+c2.real; t.image=c1.image+c2.image; return t; c3=c1+c2;/c3=operator+(c1,c2)(5)一元運(yùn)算符重載函數(shù)用成員函數(shù)重載“+”運(yùn)算符前置+::()后置+::(int)用友元函數(shù)重載“+”運(yùn)算符前置+:friend :( 類名 &)后置+:frien
40、d :(類名&,int)其中形參中的int 只用于區(qū)別前置+重載函數(shù),還是后置+重載函數(shù)。對(duì)于前置+成員函數(shù),必須用this指針?lè)祷刈约咏Y(jié)果。(6)字符串運(yùn)算符重載函數(shù)使用字符串運(yùn)算符重載函數(shù),可使字符串拷貝、拼接、比較等操作直接用字符串運(yùn)算符“=”、“+”、“”、“”來(lái)進(jìn)行。字符串常進(jìn)行二元運(yùn)算,其重載函數(shù)的定義格式與二元運(yùn)算符重載函數(shù)相同。(7)多態(tài)性技術(shù)多態(tài)性技術(shù)是指調(diào)用同名函數(shù)完成不同的函數(shù)功能,或使用同名運(yùn)算符完成不同的運(yùn)算功能。分為:編譯時(shí)的多態(tài)性(靜態(tài)多態(tài)性):函數(shù)重載或運(yùn)算符重載;運(yùn)行時(shí)的多態(tài)性(動(dòng)態(tài)多態(tài)性):虛函數(shù);(8)虛函數(shù)用虛函數(shù)實(shí)現(xiàn)“運(yùn)行時(shí)的多態(tài)性”的方法是:l 在基
41、類中定義虛函數(shù)virtual (參數(shù))函數(shù)體l 在派生類中定義與基類虛函數(shù)同名同參數(shù)同返回類型的虛函數(shù), (參數(shù))函數(shù)體nl 用基類定義指針變量p,將基類或派生類對(duì)象的地址賦給p(即p=&對(duì)象),l 用p-虛函數(shù),則可實(shí)現(xiàn)“運(yùn)行時(shí)的多態(tài)性”。class high virtual void show()/在基類中定義虛函數(shù)show() couthigh=hendl;class cuboid:public high void show()/在長(zhǎng)方體派生類中定義虛函數(shù)show() coutcuboid volume=length*width*hendl; ;class cylinder:public
42、 high void show() coutcylinder volume=r*r*3.141*hshow(); / high=10 p=&cu; p-show();/ cuboid volume=100 p=&cy; p-show();/ cylinder volume=3141虛函數(shù)實(shí)現(xiàn)了運(yùn)行時(shí)的多態(tài)性!注意:l 若派生類中沒(méi)有定義虛函數(shù),將派生類對(duì)象地址賦給基類定義的指針變量后,用指針變量虛函數(shù)(實(shí)參);方式去調(diào)用的虛函數(shù)時(shí),調(diào)用的虛函數(shù)是基類的虛函數(shù)。class cuboid:public high void show(int t)/ show(int i)不構(gòu)成虛函數(shù) coutcuboid volume=length*width*hshow(); / high=10,調(diào)用基類虛函數(shù)l 構(gòu)造函數(shù)不能定義為虛函數(shù),析構(gòu)函數(shù)可以定義為虛函數(shù)。(9)純虛函數(shù)將函數(shù)名賦0值且無(wú)函數(shù)體的虛函數(shù)稱為純虛函數(shù),定義格式為:virtual (參數(shù))=0;含有純虛函數(shù)的類稱為抽象類,不能用抽象類定義對(duì)象。因?yàn)榧兲摵瘮?shù)無(wú)函數(shù)體,所以純虛函數(shù)不能調(diào)用,因此必須在派生類中重新定義虛函數(shù)。2007年(春)25.下列關(guān)于運(yùn)算符重載的敘述中,正確的是: d a運(yùn)算符重載可以改變操作數(shù)的個(gè)數(shù)。b運(yùn)算符重載可以改變運(yùn)算符的優(yōu)先級(jí)。c運(yùn)算符重載可以改變運(yùn)算符的結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于孩子撫養(yǎng)權(quán)的離婚合同書(shū)
- 貨物采購(gòu)合同補(bǔ)充協(xié)議
- 設(shè)備銷售與購(gòu)買合同范文
- 車險(xiǎn)綜合保險(xiǎn)合同示例
- 服務(wù)合同預(yù)付款借款范本
- 歌手簽約演出服務(wù)合同
- 服裝采購(gòu)代理合同
- 大型建筑機(jī)械租賃合同樣本范本
- 城鄉(xiāng)結(jié)合部三方共建項(xiàng)目合同
- 商鋪?zhàn)赓U合同規(guī)范樣本
- 醫(yī)療器械經(jīng)營(yíng)基礎(chǔ)知識(shí)培訓(xùn)合規(guī)指南
- 小學(xué)數(shù)學(xué)(含奧數(shù))數(shù)圖形個(gè)數(shù)和找規(guī)律、簡(jiǎn)便運(yùn)算專項(xiàng)及練習(xí)題附答案
- 新產(chǎn)品研發(fā)(開(kāi)發(fā))項(xiàng)目管理培訓(xùn)教材
- 課堂-可以這么有聲有色
- Android Studio開(kāi)發(fā)實(shí)戰(zhàn)(從零基礎(chǔ)到App上線)
- 布草類送洗記錄表
- 藥物警戒培訓(xùn)
- 中央民族大學(xué) 學(xué)生休學(xué)申請(qǐng)表
- 哈薩克斯坦勞動(dòng)法中文版
- 寰樞椎脫位的護(hù)理課件
- 反面典型案例剖析材料范文(通用6篇)
評(píng)論
0/150
提交評(píng)論