C++試題無(wú)敵題庫(kù)_第1頁(yè)
C++試題無(wú)敵題庫(kù)_第2頁(yè)
C++試題無(wú)敵題庫(kù)_第3頁(yè)
C++試題無(wú)敵題庫(kù)_第4頁(yè)
C++試題無(wú)敵題庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩551頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

題庫(kù)一一、填空共7題(共計(jì)20分)第1題若a為int類型的變量,表達(dá)式a=1,a+5,a++的值為【1】第2題與!(x>2)等價(jià)的表達(dá)式是【x<=2或(x>2)==0】第4題x*=y+8等價(jià)于【x=x*(y+8)或x=(y+8)*x】第5題C++語(yǔ)言具有面向?qū)ο蠓椒ㄖ幸蟮娜筇匦裕骸痉庋b】性、繼承性和【多態(tài)】性。第6題C++語(yǔ)言的參數(shù)傳值傳遞機(jī)制包括傳數(shù)值和【傳地址】?jī)煞N。第7題若有定義:inta[3][4]={{1,2},{0},{4,6,8,10}};則初始化后,a[1][2]得到的初值是【0】,a[2][1]得到的初值是【6】.第1題若a為double類型的變量,表達(dá)式a=1,a+5,a++的值為【1.0或1.00或1.000或1.0000或1.00000】第2題表達(dá)式7.5+1/2+45%10=【12.5】第3題賦值運(yùn)算符的結(jié)合性是由【右】至【左】第4題已知:char*s="hello";執(zhí)行語(yǔ)句"for(inti=0;*s++;i++);"之后,變量i的結(jié)果是【5】第5題在C++語(yǔ)言結(jié)構(gòu)化程序中,【函數(shù)】是程序的基本組成單元;在C++語(yǔ)言的面向?qū)ο笤O(shè)計(jì)框架中,【類】是程序的基本組成單元。第6題C++語(yǔ)言的參數(shù)傳遞機(jī)制包括傳值和傳地址兩種,如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取【傳地址或傳址】方式。第7題字符串"ab\n\\012\\\""的長(zhǎng)度是【9】。第8題若有以下定義,則執(zhí)行表達(dá)式y(tǒng)+=y-=m*=y后的y值是【-16】.intm=5,y=2;第9題若a是int型變量,則執(zhí)行a=25/3%3表達(dá)式后a的值為【2】.第10題若有定義:charc='\010';則變量c中包含的字符個(gè)數(shù)為【1】.第11題已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch='a'+'8'-'3'的值為【f】.第12題若有定義:doublex[3][5];則x數(shù)組中行下標(biāo)的下限為【0】,列下標(biāo)的上限為【4】.第13題表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的數(shù)據(jù)類型為【整型或int】.第14題假設(shè)變量a、b和c均為整型,以下語(yǔ)句借助中間變量t把a(bǔ)、b和c中的值進(jìn)行交換,即:把b中的值給a,把c中的值給b,把a(bǔ)中的值的給c.例如:交換前,a=10,b=20,c=30;交換后,a=20,b=30,c=10.請(qǐng)?zhí)羁?【1】;a=b;b=c;【2】;答案1t=a答案2c=t第15題使用關(guān)鍵字inline說(shuō)明的函數(shù)稱為【內(nèi)聯(lián)】函數(shù),具有相同函數(shù)名但具有不同實(shí)現(xiàn)的函數(shù)稱為【重載】函數(shù)。第17題C++中任何一個(gè)數(shù)組的名字是一個(gè)【常量】指針,該指針的值是該數(shù)組第一個(gè)數(shù)組元素的地址.第18題運(yùn)行時(shí)的多態(tài)性是通過(guò)繼承和【虛函數(shù)】來(lái)實(shí)現(xiàn)的.用【virtual】聲明的函數(shù)稱為虛函數(shù).第19題C++中使用關(guān)鍵字【operator】引出重載運(yùn)算符函數(shù)的定義.第20題類繼承中,缺省的繼承方式是【私有派生或私有或私有繼承或private】.二、判斷共10題(共計(jì)10分)第1題 字符串常量與字符常量的區(qū)別僅表現(xiàn)在定義形式上的不同,一個(gè)用雙撇號(hào),另一個(gè)用單撇號(hào)。答案:N第2題 數(shù)組元素可以用下標(biāo)表示,也可以用指針表示。答案:Y第3題 在C++語(yǔ)言中,說(shuō)明函數(shù)時(shí)要用函數(shù)原型,即定義函數(shù)時(shí)的函數(shù)頭部分.答案:Y第4題 如果一個(gè)函數(shù)在其函數(shù)體內(nèi)直接或間接的調(diào)用了自己,該函數(shù)稱為遞歸函數(shù)。答案:Y第5題 switch語(yǔ)句中必須有break語(yǔ)句,否則無(wú)法退出switch語(yǔ)句。答案:N第6題 while循環(huán)語(yǔ)句的循環(huán)體至少執(zhí)行一次。答案:N第7題 for循環(huán)是只有可以確定的循環(huán)次數(shù)時(shí)才可使用,否則不能用for循環(huán)。答案:N第8題 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性可以確定表達(dá)式的計(jì)算順序.答案:Y第9題 使用關(guān)鍵字class定義的類中默認(rèn)的訪問(wèn)權(quán)限是私有(private)的.答案:第10題 C語(yǔ)言是C++語(yǔ)言的一個(gè)子集。C++語(yǔ)言繼承了C語(yǔ)言。答案:Y三、單項(xiàng)選擇共10題(共計(jì)20分)第1題若有說(shuō)明:inta[10];則對(duì)a數(shù)組元素的正確引用是__D__A:a[10]B:a[3.5]C:a(5)D:a[10-10]第2題若整型變量a、b、c、d中的值依次為:1、4、3、2.則條件表達(dá)式a<b?a:c<d?c:d的值為(A)A:1B:2C:3D:4第3題執(zhí)行語(yǔ)句:for(i=1;i++<4;)后;變量i的值是(C)A:3B:4C:5D:不定第4題字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是:【D】A:原碼B:補(bǔ)碼C:反碼D:ASCII碼第5題已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為:【C】A:1B:3C:3.0D:3.5第6題如有inta=11;則表達(dá)式(a++*1/3)的值是【B】A:0B:3C:4D:12第7題表達(dá)式9!=10的值為:【D】A:非零值B:trueC:0D:1第8題已知:inta[]={1,2,3,4,5,6},*p=a;下面表達(dá)式中其值為5的是【D】A:p+=3;*(p++);B:p+=5;*p++;C:p+=4;*++p;D:p+=4;*p++;第9題C語(yǔ)言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符__C__.A:必須為字母B:必須為下劃線C:必須為字母或下劃線D:可以是字母、數(shù)字和下劃線中任一種字符第10題如果變量x,y已經(jīng)正確定義,下列語(yǔ)句(D)不能正確將x,y的值進(jìn)行交換:A:x=x+y;y=x-y;x=x-yB:t=x;x=y;y=tC:t=y;y=x;x=tD:x=t;t=y;y=x四、程序填空共3題(共計(jì)30分)第1題功能:在一維數(shù)組中統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù),正數(shù)的個(gè)數(shù)存入變量C1中,負(fù)數(shù)的個(gè)數(shù)存入變量C2中。*/#include<iostream.h>voidmain(){inta[10]={1,-2,3,4,-5,6,7,8,-9,10};/***********SPACE***********/【?】/***********SPACE***********/for(inti=0;【?】;i++)/***********SPACE***********/if(【?】>0)c1++;else/***********SPACE***********/【?】cout<<c1<<""<<c2;}(答案1)intc1=0,c2=0;或intc1=c2=0; (答案2)i<10或i<=9(答案3)a[i] (答案4)c2++;或c2=c2+1;或++c2;或c2+=1;第2題功能:打印圖形****************/#include<iostream.h>voidmain(){charc[6];inti,j;for(i=0;i<5;i++){/***********SPACE***********/【?】;/***********SPACE***********/for(【?】)/***********SPACE***********/c【?】='*';/***********SPACE***********/cout<<【?】;}}(答案1)c[5-i]='\0'或c[5-i]=0(答案2)j=0;j<5-i;j++(答案3)[j](答案4)c<<'\n'或c<<endl第3題功能:求1-10之間所有奇數(shù)的和。*/#include<iostream.h>voidmain(){/***********SPACE***********/【?】k=i=0;/***********SPACE***********/while(【?】)/***********SPACE***********/{if(【?】)k+=i;/***********SPACE***********/【?】}/***********SPACE***********/cout<<【?】;}(答案1)intk,i;或inti,k; (答案2)i<10或i<=9或i<=10或i<11(答案3)i%2==1或i%2!=0 (答案4)i++;或i=i+1;或++i; (答案5)k五、程序改錯(cuò)共1題(共計(jì)10分)第1題題目:在[100,5000]之間打印出各位數(shù)字和為5的所有整數(shù)的個(gè)數(shù).注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)。*/#include<iostream.h>voidmain(){inta,b,c,d,k,i;k=0;for(i=104;i<=500;i++){/***********FOUND***********/a=i%100;b=(i-a*100)/10;c=i-a*100-b*10;}/***********FOUND***********/if(a+b+c<>5)k++;for(i=1000;i<=5000;i++){a=i/1000;b=(i-a*1000)/100;/***********FOUND***********/c=(i-A*1000-b*100)/100;d=i-a*1000-b*100-c*10;/***********FOUND***********/if(a+b+c==5)k++;}cout<<k;}(答案1)a=i/100; (答案2)if(a+b+c==5)k++;(答案3)c=(i-a*1000-b*100)/10; (答案4)if(a+b+c+d==5)k++;六、程序設(shè)計(jì)共1題(共計(jì)10分)第1題題目:打印水仙花數(shù)及個(gè)數(shù)n(水仙花數(shù)是三位數(shù),每位數(shù)字的立方和等于這個(gè)數(shù)本身示例見(jiàn)圖1)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)的花括號(hào)中填入所編寫的若干語(yǔ)句。*/#include<iostream.h>#include<fstream.h>#include<stdio.h>voidwriteinfile(intn);voidmain(){intm,n=0,a,b,c;/**********Program**********//**********End**********/writeinfile(n);}voidwriteinfile(intn){fstreammyfile;myfile.open("f.txt",ios::out);myfile<<n<<endl;myfile.close();}答案:for(m=100;m<=999;m++) {a=m/100; b=m%100/10; c=m%100%10; if(m==a*a*a+b*b*b+c*c*c) {cout<<m<<"\n";n++;} }題庫(kù)二判斷共20題(共計(jì)20分)第1題使用內(nèi)聯(lián)函數(shù)是以犧牲增大空間開(kāi)銷為代價(jià)的.答案:Y第2題可以在類的構(gòu)造函數(shù)中對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化.答案:N第3題在C++語(yǔ)言中,定義函數(shù)時(shí)必須給出函數(shù)的返回類型.答案:Y第4題預(yù)處理命令是在進(jìn)行編譯時(shí)首先執(zhí)行的,然后再進(jìn)行正常編譯。答案:Y第5題continue語(yǔ)句只能出現(xiàn)在循環(huán)體中.答案:Y第6題所謂繼承就是利用已有的數(shù)據(jù)類型定義出新的數(shù)據(jù)類型。答案:Y第7題在一定條件下,兩個(gè)指針可以進(jìn)行相加運(yùn)算.答案:N第8題靜態(tài)函數(shù)可聲明為虛函數(shù)。答案:N第9題抽象類不僅可用做派生其他類的基類,也可以用于直接創(chuàng)建對(duì)象實(shí)例。答案:N第10題靜態(tài)成員函數(shù)沒(méi)有this指針。答案:Y第11題開(kāi)關(guān)語(yǔ)句中的default關(guān)鍵字,只能放在該語(yǔ)句的末尾,不能放在開(kāi)頭或中間.答案:N第12題對(duì)象成員的表示與結(jié)構(gòu)變量成員表示相同,使用運(yùn)算符.或一>.答案:Y第13題返回值類型、參數(shù)個(gè)數(shù)和參數(shù)類型都相同的函數(shù)也可以重載.答案:N第14題所有的函數(shù)在定義它的程序中都是可見(jiàn)的.答案:N第15題局部靜態(tài)變量與自動(dòng)變量作用域相同,但生命周期不同.答案:Y第16題重新定義的標(biāo)識(shí)符在定義它的區(qū)域內(nèi)是可見(jiàn)的,而與其同名的原標(biāo)識(shí)符在此區(qū)域內(nèi)是不可見(jiàn)的,但是它是存在的.答案:Y第17題使用關(guān)鍵字class定義的類中默認(rèn)的訪問(wèn)權(quán)限是私有(private)的.答案:Y第18題構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能重載.答案:N第19題所謂私有成員是指只有類中所提供的成員函數(shù)才能直接使用它們,任何類外的函數(shù)對(duì)它們的訪問(wèn)都是非法的.答案:N第20題某類中的友元類的所有成員函數(shù)可以存取或修改該類中的私有成員.答案:Y三、單項(xiàng)選擇共30題(共計(jì)60分)第1題以下正確的說(shuō)法是___CA:定義函數(shù)時(shí),形參的類型說(shuō)明可以放在函數(shù)體內(nèi)B:return后邊的值不能為表達(dá)式C:如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)D:如果形參與實(shí)參的類型不一致,以實(shí)參類型為準(zhǔn)第2題下面敘述不正確的是AA:基類的保護(hù)成員在派生類中必然是保護(hù)成員B:基類的保護(hù)成員在公有派生類中仍然是保護(hù)成員C:基類的保護(hù)成員在私有派生類中是私有成員D:對(duì)基類成員的訪問(wèn)必須是無(wú)二義性第3題下列條件語(yǔ)句中,功能與其它語(yǔ)句不同的是(D).A:if(a)cout<<x<<endl;elsecout<<y<<endl;B:if(a==0)cout<<y<<endl;elsecout<<x<<endl;C:if(a!=0)cout<<x<<endl;elsecout<<y<<endl;D:if(a==0)cout<<x<<endl;elsecout<<y<<endl;第4題下面常數(shù)中錯(cuò)誤的是【D】A:0xA5B:2.5e-2C:3e2D:0583第5題下列標(biāo)識(shí)符中,(B)不是局部變量.A:register類B:外部static類C:auto類D:函數(shù)形參第6題以下錯(cuò)誤的描述是.答案:D函數(shù)調(diào)用可以A:出現(xiàn)在執(zhí)行語(yǔ)句中B:出現(xiàn)在一表達(dá)式中C:做為一個(gè)函數(shù)的實(shí)參D:做為一個(gè)函數(shù)的形參第7題在inta[2][3]={{1,0},{3,2}};中a[1][0]的值是(C)A:0B:1C:3D:2第8題在類的定義中,用于為對(duì)象分配內(nèi)存空間,對(duì)類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是答案:CA:友元函數(shù)B:虛函數(shù)C:構(gòu)造函數(shù)D:析構(gòu)函數(shù)第9題()是析構(gòu)函數(shù)的特征.答案:AA:一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)B:析構(gòu)函數(shù)與類名不同C:析構(gòu)函數(shù)的定義只能在類體內(nèi)D:析構(gòu)函數(shù)可以有一個(gè)或多個(gè)參數(shù)第10題下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是答案:DA:靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化B:靜態(tài)數(shù)據(jù)成員不可以被類的對(duì)象調(diào)用C:靜態(tài)數(shù)據(jù)成員不能受private控制符的作用D:靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用第11題下面對(duì)友元函數(shù)描述正確的是答案:CA:友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義B:友元函數(shù)是類的成員函數(shù)C:友元函數(shù)破壞了類的封裝性和隱藏性D:友元函數(shù)不能訪問(wèn)類的私有成員第12題以下不構(gòu)成無(wú)限循環(huán)的語(yǔ)句或語(yǔ)句組是(A)A:n=0;do{++n;}while(n<=0);B:n=0;while(1){n++};C:n=10;while(n);{n--;}D:for(n=0,i=1;;i++)n+=i;第13題下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為(D).for(inti=0,j=10;i=j=4;i++,j--)A:0B:1C:4D:無(wú)限第14題派生類的對(duì)象對(duì)它的基類成員中(A)是可以訪問(wèn)的。A:公有繼承的公有成員;B:公有繼承的私有成員;C:公有繼承的保護(hù)成員;D:私有繼承的公有成員。第15題已知:inta[]={1,2,3,4,5,6},*p=a;下面表達(dá)式中其值為5的是(D)A:p+=3;*(p++)B:p+=5;*p++C:p+=4;*++pD:p+=4;*p++第16題若有說(shuō)明:inta[3][4]={0};則下面正確的敘述是___DA:只有元素a[0][0]可得到初值0B:此說(shuō)明語(yǔ)句不正確C:數(shù)組a中各元素都可得到初值,但其值不一定為0D:數(shù)組a中每個(gè)元素均可得到初值0第17題若有以下語(yǔ)句,且0<=k<6,則正確表示數(shù)組元素地址的語(yǔ)句是【C】intx[]={1,9,10,7,32,4},*ptr=x,k=1;A:x++B:&ptrC:&ptr[k]D:&(x+1)第18題下列的各種函數(shù)中,(C)不是類的成員函數(shù).A:構(gòu)造函數(shù)B:析構(gòu)函數(shù)C:友元函數(shù)D:復(fù)制構(gòu)造函數(shù)第19題int*pa[5];的描述中,【D】是正確的。A:pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素B:pa是一個(gè)指向某數(shù)組中的第5個(gè)元素的指針,該元素是int型變量C:pa[5]表示某個(gè)數(shù)組的第5個(gè)元素的值D:pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針第20題以下不正確的說(shuō)法為_(kāi)___DA:在不同函數(shù)中可以使用相同名字的變量B:形式參數(shù)是局部變量C:在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D:在函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效第21題無(wú)論采用何種繼承方式,基類中的(D)在派生類中是不可訪問(wèn)的.A:公有成員B:保護(hù)成員C:靜態(tài)成員D:私有成員第22題繼承機(jī)制的作用是CA:信息隱藏B:數(shù)據(jù)封裝C:定義新類D:數(shù)據(jù)抽象第23題以下代碼運(yùn)行后,abcd的值為:(D)inta,b,c,d;a=b=c=1;d=++a||++b&&++c;A:1,1,1,1B:2,2,2,1C:2,1,1,2D:2,1,1,1第24題假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是____.BA:7B:8C:6D:2第25題下列(A)是語(yǔ)句.A:;B:a=17C:x+yD:cout<<"\n"第26題下列關(guān)于對(duì)象的描述中,錯(cuò)誤的是[C]A:對(duì)象是類的一個(gè)實(shí)例B:對(duì)象是屬性和行為的封裝體C:對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)變量D:對(duì)象是現(xiàn)實(shí)世界中客觀存在的某種實(shí)體第27題通過(guò)(A)調(diào)用虛函數(shù)時(shí),采用動(dòng)態(tài)束定。A:對(duì)象指針B:對(duì)象名C:成員名限定D:派生類名第28題下面描述正確的是____DA:兩個(gè)字符串所包含的字符個(gè)數(shù)相同時(shí),才能比較字符串B:字符個(gè)數(shù)多的字符串比字符個(gè)數(shù)少的字符串大C:字符串"STOP"與"STOP"相等D:字符串"That"小于字符串"The"第29題設(shè)a、b、C、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為(C)A:0B:1C:2D:3第30題(D)不是構(gòu)造函數(shù)的特征.A:構(gòu)造函數(shù)的函數(shù)名與類名相同B:構(gòu)造函數(shù)可以重載C:函數(shù)可以設(shè)置默認(rèn)參數(shù)D:函數(shù)必須指定類型說(shuō)明四、程序填空共6題(共計(jì)60分)第2題功能:輸入若干學(xué)生成績(jī)以-1作結(jié)束,統(tǒng)計(jì)100,90-99,80-89,70-79,60-69,0-60各段的人數(shù)。*/#include<iostream.h>voidmain(){ints,n[6],i,m;for(i=0;i<6;i++)/***********SPACE***********/【?】;cin>>s;while(s>=0&&s<=100)/***********SPACE***********/{m=【?】;if(m<1)m=0;if(m>5)m=5;/***********SPACE***********/【?】;/***********SPACE***********/【?】;}cout<<"0-59"<<""<<n[0]<<endl;for(i=1;i<5;i++)cout<<(i+5)*10<<"-"<<(i+5)*10+9<<""<<n[i]<<endl;cout<<"100"<<n[5]<<endl;}(答案1)n[i]=0 (答案2)s/10-5 (答案3)n[m]=n[m]+1 (答案4)cin>>s第3題功能:以下程序用來(lái)對(duì)從鍵盤上輸入的兩個(gè)字符串進(jìn)行比較,然后輸出兩個(gè)字符串中第一個(gè)不相同字符的ASCII碼之差。例如:輸入的兩個(gè)字符串分別為abcdef和abceef,則輸出為-1,請(qǐng)?zhí)羁铡?/#include<iostream.h>#include<string.h>voidmain(){charstr1[50],str2[50];inti,s;cout<<"\ninputstring1:\n";/***********SPACE***********/【?】cout<<"\ninputstring2:\n";cin.getline(str2,50);i=0;/***********SPACE***********///提示:獲得兩字符串不相同字符的下標(biāo)while((【?】)&&(str1[i]!='\0'))/***********SPACE***********/【?】;/***********SPACE***********/s=【?】;cout<<s<<endl;}(答案1)cin.getline(str1,50);或cin>>str1;(答案2)str1[i]==str2[i]或str2[i]==str1[i](答案3)i++ (答案4)str1[i]-str2[i]或str2[i]-str1[i]第4題(10.0分)/*程序讀入20個(gè)整數(shù),統(tǒng)計(jì)非負(fù)數(shù)個(gè)數(shù),并計(jì)算非負(fù)數(shù)之和。注意:答案中不要隨便添加空格或0*/#include<iostream.h>voidmain(){inti,a[20],s=0,count=0;for(i=0;i<20;i++)/***********SPACE***********/【?】for(i=0;i<20;i++){if(a[i]<0)/***********SPACE***********/【?】/***********SPACE***********/【?】/***********SPACE***********/【?】}cout<<s<<'\t'<<cout;}答案:(答案1)cin>>a[i];(答案2)continue;(答案3)s+=a[i];或count++;或s=s+a[i];或count=count+1;(答案4)s+=a[i];或s=s+a[i];或count++;或count=count+1;第5題(10.0分)/*以下程序設(shè)計(jì)了一個(gè)基類Student和其派生類Student1,請(qǐng)完善此程序注意:答案中不要隨便添加無(wú)用的空格或0*/#include<iostream>#include<string>usingnamespacestd;classStudent//聲明基類{public:/***********SPACE***********/【?】(intn,stringnam,chars){num=n;name=nam;sex=s;}~Student(){}protected:intnum;stringname;charsex;};/***********SPACE***********/classStudent1:【?】Student//以公有繼承方式定義派生類Student1{public:/***********SPACE***********/Student1(intn,stringnam,chars,inta,stringad)【?】Student(n,nam,s){/***********SPACE***********/【?】addr=ad;}voidshow(){cout<<"num:"<<num<<endl;cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;cout<<"age:"<<age<<endl;cout<<"address:"<<addr<<endl<<endl;}~Student1(){}private:intage;/***********SPACE***********/【?】};intmain(){Student1stud1(10010,"Wang-li",'f',19,"Beijing");stud1.show();//輸出學(xué)生的數(shù)據(jù)return0;}答案:(答案1)Student(答案2)public(答案3):(答案4)age=a;(答案5)stringaddr;第6題(10.0分)/*該程序中定義一個(gè)類A,該類中有兩個(gè)構(gòu)造函數(shù),一個(gè)是默認(rèn)構(gòu)造函數(shù),另一個(gè)是帶兩個(gè)參數(shù)的構(gòu)造函數(shù)。類中還有一個(gè)print()函數(shù),用來(lái)輸出顯示該類的兩個(gè)私有數(shù)據(jù)成員的值。請(qǐng)完善以下程序,注意答案中不要隨便增加無(wú)用的空格或0*/#include<iostream.h>classA{public:/***********SPACE***********/【?】A(inti,intj);voidprint();/***********SPACE***********/【?】inta,b;/***********SPACE***********/【?】A::A(){a=b=0;cout<<"Defaultconstructorcalled.\n";}A::A(inti,intj){/***********SPACE***********/【?】b=j;cout<<"Constructorcalled\n";}/***********SPACE***********/void【?】print(){cout<<"a="<<a<<",b="<<b<<endl;}voidmain(){Am,n(4,8);m.print();n.print();}答案:(答案1)A();或A(void);(答案2)private:(答案3)};或};(答案4)a=i;(答案5)A::五、程序改錯(cuò)共4題(共計(jì)40分)題目:統(tǒng)計(jì)100-300之間同時(shí)被3,7整除的數(shù)的個(gè)數(shù),輸出這些數(shù)的個(gè)數(shù)及它們的平方和434385.注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)。*/#include<iostream.h>voidmain(){floatns;/***********FOUND***********/intk;n=0;/***********FOUND***********/ns=1;for(k=100;k<=300;k++){/***********FOUND***********/n37=7%k+3%k;/***********FOUND***********/if(n37=0){n++;/***********FOUND***********/ns=ns+k;}}cout<<n<<ns;}答案:(答案1)intn37,k,n;(答案2)ns=0;(答案3)n37=k%7+k%3;或n37=k%7+k%3或n37=k%7+k%3;(答案4)if(n37==0)(答案5)ns=ns+k*k;第3題題目:下列程序是求某班級(jí)的最高成績(jī)、最低成績(jī)和平均成績(jī)的程序,輸入-1表示結(jié)束。注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)。*/#include<iostream.h>voidmain(){floatcj,sum,max,min,ave;intn;/***********FOUND***********/n=1cin>>cj;/***********FOUND***********/sum=0;/***********FOUND***********/min=max=0;cin>>cj;/***********FOUND***********/while(cj!=0){n++;/***********FOUND***********/sum=cj;if(cj>max)max=cj;if(cj<min)min=cj;cin>>cj;}ave=sum/n;cout<<ave<<max<<min;}(答案1)n=1;(答案2)sum=cj;(答案3)min=max=cj;(答案4)while(cj>=0)(答案5)sum+=cj;第4題題目:有一個(gè)點(diǎn)類point,包含橫、縱兩個(gè)坐標(biāo)數(shù)據(jù),由它派生出圓類circle,并添加一個(gè)半徑數(shù)據(jù),求其面積。本程序的運(yùn)行結(jié)果:圓心為:(5,7)半徑為:9面積為:254.469注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)。*/#include<iostream.h>classpoint{ intx;inty;/***********FOUND***********/private:point(inta,intb){x=a;y=b;}intgetx(){returnx;}intgety(){returny;}};/***********FOUND***********/classcircle::point{private:intr;public:/***********FOUND***********/circle(inta,intb,intc):point(inta,intb){r=c;}intgetr(){returnr;}floatarea(){return3.14159*r*r;}};voidmain(){/***********FOUND***********/circlec(5,7);cout<<"圓心為:("<<c.getx()<<","<<c.gety()<<")"<<endl;/***********FOUND***********/cout<<"半徑為:"<<getr()<<endl;cout<<"面積為:"<<c.area()<<endl;}答案:(答案1)public: (答案2)classcircle:publicpoint(答案3)circle(inta,intb,intc):point(a,b)(答案4)circlec(5,7,9); (答案5)cout<<"半徑為:"<<c.getr()<<endl;六、程序設(shè)計(jì)共4題(共計(jì)40分)第1題設(shè)計(jì)一個(gè)學(xué)生類Student,包括姓名name、三門課程成績(jī)(score1,score2,score3)(double型)以及一個(gè)靜態(tài)數(shù)據(jù)成員(num)用于存放總?cè)藬?shù),另有構(gòu)造函數(shù)、求各學(xué)生平均分的函數(shù)aver()和顯示各學(xué)生成績(jī)及平均分的成員函數(shù)display()。請(qǐng)完善以下程序注意:若沒(méi)指定各數(shù)據(jù)成員的值,則name的默認(rèn)值為"某某某",各門課程的默認(rèn)值為80。*/#include<iostream>#include<string>#include<fstream>usingnamespacestd;/**********Program**********//**********End**********/voidwwjt(Student,Student,Student);voidmain(){Studentst1,st2("cai",61,90),st3("wang",80,70,90);cout<<"目前共有"<<Student::num<<"個(gè)學(xué)生"<<endl;cout<<"各學(xué)生的成績(jī)?yōu)椋?<<endl;st1.display();st2.display();st3.display();wwjt(st1,st2,st3);}voidwwjt(Studentst1,Studentst2,Studentst3){fstreammyfile;myfile.open("out.txt",ios::out);myfile<<st1.aver()<<endl;myfile<<st2.aver()<<endl;myfile<<st3.aver()<<endl;myfile.close();}答案:classStudent{private: stringname; doublescore1; doublescore2; doublescore3;public: staticintnum; Student(stringn="某某某",doubles1=80,doubles2=80,doubles3=80) { name=n; score1=s1; score2=s2; score3=s3; num+=1; } doubleaver() { return(score1+score2+score3)/3; } voiddisplay() { cout<<name<<":"<<score1<<","<<score2<<","<<score3<<endl; cout<<"平均分為:"<<aver()<<endl; }};intStudent::num=0;第2題設(shè)計(jì)一個(gè)矩形類,數(shù)據(jù)成員包括矩陣的左上角坐標(biāo)(x1,y1)和右下角坐標(biāo)(x2,y2),成員函數(shù)包括構(gòu)造函數(shù)、求矩形周長(zhǎng)perimeter()、求矩形面積area()函數(shù),返回值都為double型以及顯示矩形數(shù)據(jù)(包括周長(zhǎng)、面積)的函數(shù)display(),請(qǐng)完善以下程序。注意:若只給定了一個(gè)點(diǎn)坐標(biāo),則右下角坐標(biāo)默認(rèn)為(0,0)*/#include<iostream>#include<string>#include<fstream>#include<cmath>usingnamespacestd;/**********Program**********//**********End**********/voidwwjt(Rectangle*,Rectangle);voidmain(){RectangleRect1(2,3),Rect2(2,2,5,6);Rectangle*Rect3=&Rect1;Rect1.display();Rect2.display();Rect3->display();wwjt(Rect3,Rect2);}voidwwjt(Rectangle*r1,Rectangler2){fstreammyfile;myfile.open("out.txt",ios::out);myfile<<r1->perimeter()<<endl;myfile<<r1->area()<<endl;myfile<<r2.perimeter()<<endl;myfile<<r2.area()<<endl;myfile.close();}答案:classRectangle{intx1,y1,x2,y2; public: Rectangle(inta1,intb1,inta2=0,intb2=0) {x1=a1;y1=b1;x2=a2;y2=b2;} doubleperimeter() { return2*abs(x1-x2)+2*abs(y1-y2); } doublearea() { returnabs((x1-x2)*(y1-y2)); } voiddisplay() {cout<<"Rectangle:x1="<<x1<<",y1="<<y1<<endl; cout<<"x2="<<x2<<",y2="<<y2<<endl; cout<<"周長(zhǎng)為:"<<perimeter()<<endl; cout<<"面積為:"<<area()<<endl; }};第3題設(shè)計(jì)一個(gè)三角形類Triangle,包含三角形底和高兩個(gè)私有數(shù)據(jù)成員(double);成員函數(shù)中除了構(gòu)造函數(shù)外,還要求有一個(gè)計(jì)算面積的成員函數(shù)(area),有返回值;一個(gè)打印底和高的成員函數(shù)(print)。注意:如果沒(méi)有指定底和高的值,則默認(rèn)值為1*/#include<iostream.h>#include<fstream.h>/**********Program**********//**********End**********/voidwwjt(Trianglet1,Trianglet2,Trianglet3);voidmain(){Trianglet1,t2(10),t3(15,15);t1.print();t1.area();t2.print();t2.area();t3.print();t3.area();wwjt(t1,t2,t3);}voidwwjt(Trianglet1,Trianglet2,Trianglet3){fstreammyfile;myfile.open("out.txt",ios::out);myfile<<t1.area()<<endl;myfile<<t2.area()<<endl;myfile<<t3.area()<<endl;myfile.close();}答案:classTriangle{private: doubledi; doublegao;public:Triangle(doubled=1,doubleg=1){ di=d; gao=g;}doublearea(){ return0.5*di*gao;}voidprint(){ cout<<"三角形的底為:"<<di<<"三角形高為"<<gao<<endl;}};第4題求下列分?jǐn)?shù)序列的前15項(xiàng)之和。2/1,3/2,5/3,8/5,13/8,21/13,…*/#include<iostream.h>#include<fstream.h>voidwwjt(doubleo);voidmain(){doublea=2,b=1,sum=0,t;/**********Program**********//**********End**********/cout<<"SUM="<<sum<<endl;wwjt(sum);}voidwwjt(doubleo){fstreammyfile;myfile.open("out.txt",ios::out);myfile<<o<<endl;myfile.close();}答案:for(inti=1;i<=15;i++){sum+=a/b;t=a;a+=b;b=t;}題庫(kù)三一、填空共10題(共計(jì)20分)第1題類繼承中,缺省的繼承方式是【私有派生或私有或私有繼承或private】.第2題C++中使用關(guān)鍵字【operator】引出重載運(yùn)算符函數(shù)的定義.第3題C++中任何一個(gè)數(shù)組的名字是一個(gè)【常量】指針,該指針的值是該數(shù)組第一個(gè)數(shù)組元素的地址.第4題運(yùn)行時(shí)的多態(tài)性是通過(guò)繼承和【虛函數(shù)】來(lái)實(shí)現(xiàn)的.用【virtual】聲明的函數(shù)稱為虛函數(shù).第5題面向?qū)ο蟪绦蛟O(shè)計(jì)的核心技術(shù)是【封裝】、【繼承】和多態(tài).第6題使用關(guān)鍵字inline說(shuō)明的函數(shù)稱為【內(nèi)聯(lián)】函數(shù),具有相同函數(shù)名但具有不同實(shí)現(xiàn)的函數(shù)稱為【重載】函數(shù)。第7題若有定義:doublex[3][5];則x數(shù)組中行下標(biāo)的下限為【0】,列下標(biāo)的上限為【4】.第8題已知:char*s="hello";執(zhí)行語(yǔ)句"for(inti=0;*s++;i++);"之后,變量i的結(jié)果是【5】第9題字符串"ab\n\\012\\\""的長(zhǎng)度是【9】。第10題C++語(yǔ)言的頭文件與源程序文件擴(kuò)展名分別是【.h】和【.cpp】.二、判斷共10題(共計(jì)10分)第1題在多重循環(huán)中,內(nèi)重循環(huán)的循環(huán)變量引用的次數(shù)比外重的多。答案:Y第2題預(yù)處理命令是在進(jìn)行編譯時(shí)首先執(zhí)行的,然后再進(jìn)行正常編譯。答案:Y第3題對(duì)于數(shù)值類型數(shù)組,如果給定的數(shù)值不夠,則沒(méi)有指定數(shù)值的元素將初始化為'0\';答Y第4題所謂繼承就是利用已有的數(shù)據(jù)類型定義出新的數(shù)據(jù)類型。答案:Y第5題抽象類不僅可用做派生其他類的基類,也可以用于直接創(chuàng)建對(duì)象實(shí)例。答案:N第6題沒(méi)有參數(shù)的兩個(gè)函數(shù)是不能重載的。答案:Y第7題重新定義的標(biāo)識(shí)符在定義它的區(qū)域內(nèi)是可見(jiàn)的,而與其同名的原標(biāo)識(shí)符在此區(qū)域內(nèi)是不可見(jiàn)的,但是它是存在的.答案:Y第8題指針的類型是它所指向的變量或?qū)ο蟮念愋汀4鸢福篩第9題函數(shù)形參的作用域是在函數(shù)的函數(shù)體.答案:Y第10題可以在類的構(gòu)造函數(shù)中對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化.答案:N三、單項(xiàng)選擇共15題(共計(jì)30分)第1題下列哪個(gè)不是重載函數(shù)在調(diào)用時(shí)選擇的依據(jù)(C).A:參數(shù)類型B:參數(shù)個(gè)數(shù)C:函數(shù)類型D:函數(shù)名第2題通過(guò)(A)調(diào)用虛函數(shù)時(shí),采用動(dòng)態(tài)束定。A:對(duì)象指針B:對(duì)象名C:成員名限定D:派生類名第3題派生類的對(duì)象對(duì)它的基類成員中(A)是可以訪問(wèn)的。A:公有繼承的公有成員;B:公有繼承的私有成員;C:公有繼承的保護(hù)成員;D:私有繼承的公有成員。第4題已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語(yǔ)句c2='A'+'6'-'3';后,c2中的值為_(kāi)___.AA:DB:68C:不確定的值D:C第5題如果類A被說(shuō)明為類B的友元,則(C)A:類A的成員即類B的成員;B:類B的成員即類A的成員C:類A的成員函數(shù)可以訪問(wèn)類B的私有成員D:類B的成員函數(shù)可以訪問(wèn)類A的私有成員第6題下面敘述不正確的是答案:AA:基類的保護(hù)成員在派生類中必然是保護(hù)成員B:基類的保護(hù)成員在公有派生類中仍然是保護(hù)成員C:基類的保護(hù)成員在私有派生類中是私有成員D:對(duì)基類成員的訪問(wèn)必須是無(wú)二義性第7題下列標(biāo)識(shí)符中,(B)不是局部變量.A:register類B:外部static類C:auto類D:函數(shù)形參第8題(A)是析構(gòu)函數(shù)的特征.A:一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)B:析構(gòu)函數(shù)與類名不同C:析構(gòu)函數(shù)的定義只能在類體內(nèi)D:析構(gòu)函數(shù)可以有一個(gè)或多個(gè)參數(shù)第9題通常的拷貝初始化構(gòu)造函數(shù)的參數(shù)是(C)A:某個(gè)對(duì)象名B:某個(gè)對(duì)象的成員名C:某個(gè)對(duì)象的引用名D:某個(gè)對(duì)象的指針名第10題下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是DA:靜態(tài)數(shù)據(jù)成員可以在類體內(nèi)進(jìn)行初始化B:靜態(tài)數(shù)據(jù)成員不可以被類的對(duì)象調(diào)用C:靜態(tài)數(shù)據(jù)成員不能受private控制符的作用D:靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用第11題下面對(duì)友元函數(shù)描述正確的是答案:CA:友元函數(shù)的實(shí)現(xiàn)必須在類的內(nèi)部定義B:友元函數(shù)是類的成員函數(shù)C:友元函數(shù)破壞了類的封裝性和隱藏性D:友元函數(shù)不能訪問(wèn)類的私有成員第12題下列【A】是語(yǔ)句。A:;B:a=17C:x+yD:cout<<\n第13題若有以下語(yǔ)句,且0<=k<6,則正確表示數(shù)組元素地址的語(yǔ)句是【C】intx[]={1,9,10,7,32,4},*ptr=x,k=1;A:x++B:&ptrC:&ptr[k]D:&(x+1)第14題派生類的構(gòu)造函數(shù)的成員初始化列中,不能包含(C)。A:基類的構(gòu)造函數(shù);B:派生類中子對(duì)象的初始化;C:基類成員的初始化;D:派生類中一般數(shù)據(jù)成員的初始化第15題無(wú)論采用何種繼承方式,基類中的(D)在派生類中是不可訪問(wèn)的.A:公有成員B:保護(hù)成員C:靜態(tài)成員D:私有成員四、程序填空共2題(共計(jì)20分)第1題/*設(shè)計(jì)一個(gè)學(xué)生類student,包括姓名(name)和三門課程成績(jī)(deg1,deg2,deg3),,以及一個(gè)公有的靜態(tài)數(shù)成員num(int型),用于存放學(xué)生人數(shù),每當(dāng)增加一個(gè)學(xué)生對(duì)象時(shí),num的值加1;一個(gè)顯示數(shù)據(jù)的成員函數(shù)disp()*/#include<iostream.h>#include<iomanip.h>#include<string.h>classStudent{charname[10];intdeg1,deg2,deg3;public:/***********SPACE***********/【?】Student(){}Student(charna[],intd1,intd2,intd3){strcpy(name,na);deg1=d1;deg2=d2;deg3=d3;/***********SPACE***********/【?】}voiddisp(){cout<<setw(10)<<name<<setw(5)<<deg1<<setw(5)<<deg2<<setw(5)<<deg3<<endl;}};/***********SPACE***********/【?】voidmain(){Students1("Li",78,82,86),s2("Zheng",75,62,89);/***********SPACE***********/cout<<"共有"<<【?】<<"個(gè)學(xué)生"<<endl;cout<<"各學(xué)生數(shù)據(jù)為:"<<endl;s1.disp();/***********SPACE***********/【?】}答案:(答案1)staticintnum;或intstaticnum;(答案2)num+=1;或num=num+1;(答案3)intStudent::num=0;(答案4)Student.num或s1.num或s2.num或Student::num(答案5)s2.disp();第2題功能:求100-1000之間的水仙花數(shù)(所謂"水仙花數(shù)"是指一個(gè)3位數(shù),其各位數(shù)字立方和等于該數(shù)本身,如圖所示)*/#include<iostream.h>voidmain(){inti,i1,i2,i3,m;/***********SPACE***********/for(i=100;i<【?】;i++){/***********SPACE***********/i1=【?】;//取百位/***********SPACE***********/i2=【?】;//取十位/***********SPACE***********/i3=【?】;//取個(gè)位m=i1*i1*i1+i2*i2*i2+i3*i3*i3;/***********SPACE***********/if(【?】)cout<<i<<endl;}}答案:(答案1)1000(答案2)i/100(答案3)i/10%10或i%100/10或i/10%10(答案4)i%10(答案5)i==m或m==i五、程序改錯(cuò)共1題(共計(jì)10分)第1題題目:在一個(gè)具有N個(gè)數(shù)的數(shù)組中查找并刪除一個(gè)數(shù)K。注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)。*/#definen10#include<iostream.h>voidmain(){/***********FOUND***********/inta[n],k,i,j;/***********FOUND***********/for(i=1;i<=n;i++)/***********FOUND***********/cin>>a[i]>>endl;cin>>k;/***********FOUND***********/for(i=0;i<n&&a[i]!=k;i++);if(i<n){for(j=i;j<n-1;j++)a[j]=a[j+1];/***********FOUND***********/for(i=0;i<n;i++)cout<<a[i];}else{cout<<"notfound";for(i=0;i<n;i++)cout<<a[i];}}答案:(答案1)inta[n],k,i,j;(答案2)for(i=0;i<n;i++)(答案3)cin>>a[i](答案4)for(i=0;i<n&&a[i]!=k;i++);或for(i=0;i<n&&a[i]!=k;i++);(答案5)for(i=0;i<n-1;i++)六、程序設(shè)計(jì)共1題(共計(jì)10分)第1題設(shè)計(jì)一個(gè)圓類Circle,要求包括一個(gè)三個(gè)數(shù)據(jù)成員:圓心坐標(biāo)(x,y)和圓的半徑r(double型),除構(gòu)造函數(shù)外,還需要:求圓的周長(zhǎng)的函數(shù)circum()、求圓的面積的函數(shù)area()以及顯示圓心坐標(biāo)、半徑、周長(zhǎng)、面積的函數(shù)display()。請(qǐng)完善以下程序。注意:圓心坐標(biāo)的默認(rèn)值為(0,0),圓半徑的默認(rèn)值為1*/#include<iostream.h>#include<fstream.h>/**********Program**********//**********End**********/voidwwjt(Circlec1,Circlec2,Circlec3);voidmain(){Circlec1,c2(3),c3(5,10,10);//c2僅給出了半徑c1.display();c2.display();c3.display();wwjt(c1,c2,c3);}voidwwjt(Circlec1,Circlec2,Circlec3){fstreammyfile;myfile.open("out.txt",ios::out);myfile<<(int)c1.circum()<<endl;myfile<<(int)c1.area()<<endl;myfile<<(int)c2.circum()<<endl;myfile<<(int)c2.area()<<endl;myfile<<(int)c3.circum()<<endl;myfile<<(int)c3.area()<<endl;myfile.close();}答案:classCircle{private: doublex,y; doubler;public: Circle(doublerr=1,doublexx=0,doubleyy=0) { r=rr; x=xx; y=yy; } doublecircum() { return2*3.4*r; } doublearea() { return3.14*r*r; } voiddisplay() { cout<<"圓心坐標(biāo)為:("<<x<<","<<y<<")"<<endl; cout<<"圓的半徑為:"<<r<<endl; cout<<"圓的周長(zhǎng)為:"<<circum()<<endl; cout<<"圓的面積為:"<<area()<<endl; }};題庫(kù)四一、填空共10題(共計(jì)20分)第1題表達(dá)式7.5+1/2+45%10=【12.5】第2題已知:char*s="hello";執(zhí)行語(yǔ)句"for(inti=0;*s++;i++);"之后,變量i的結(jié)果是【5】第3題 在C++語(yǔ)言結(jié)構(gòu)化程序中,【函數(shù)】是程序的基本組成單元;在C++語(yǔ)言的面向?qū)ο笤O(shè)計(jì)框架中,【類】是程序的基本組成單元。第4題C++語(yǔ)言的參數(shù)傳遞機(jī)制包括傳值和傳地址兩種,如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取【傳地址或傳址】方式。第5題字符串"ab\n\\012\\\""的長(zhǎng)度是【9】。第6題類繼承中,缺省的繼承方式是【私有派生或私有或私有繼承或private】.第7題若a是int型變量,則執(zhí)行a=25/3%3后a的值為【2】.第8題使用關(guān)鍵字inline說(shuō)明的函數(shù)稱為【內(nèi)聯(lián)】函數(shù),具有相同函數(shù)名但具有不同實(shí)現(xiàn)的函數(shù)稱為【重載】函數(shù)。第9題面向?qū)ο蟪绦蛟O(shè)計(jì)的核心技術(shù)是【封裝】、【繼承】和多態(tài).第10題 運(yùn)行時(shí)的多態(tài)性是通過(guò)繼承和【虛函數(shù)】來(lái)實(shí)現(xiàn)的.用【virtual】聲明的函數(shù)稱為虛函數(shù).二、判斷共10題(共計(jì)10分)第1題可以在類的構(gòu)造函數(shù)中對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化.答案:N第2題預(yù)處理命令是在進(jìn)行編譯時(shí)首先執(zhí)行的,然后再進(jìn)行正常編譯。答案:Y第3題函數(shù)的調(diào)用可以嵌套,函數(shù)的定義不能嵌套。答案:Y第4題定義外部變量時(shí),不用存儲(chǔ)類說(shuō)明符extren,而說(shuō)明外部變量要用它.答案:Y第5題構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能重載.答案:N第6題switch語(yǔ)句中必須有break語(yǔ)句,否則無(wú)法退出switch語(yǔ)句.答案:N第7題返回值類型、參數(shù)個(gè)數(shù)和參數(shù)類型都相同的函數(shù)也可以重載.答案:N第8題指針可以加上或減去一個(gè)int型數(shù),也可以加上一個(gè)指針。答案:N第9題所謂繼承就是利用已有的數(shù)據(jù)類型定義出新的數(shù)據(jù)類型。答案:Y第10題用來(lái)給數(shù)組進(jìn)行初始化的初始值表內(nèi)的數(shù)據(jù)項(xiàng)的個(gè)數(shù)必須小于等于數(shù)組元素個(gè)數(shù)。答Y三、單項(xiàng)選擇共15題(共計(jì)30分)第1題在inta[2][3]={{1,0},{3,2}};中a[1][0]的值是(C)A:0B:1C:3D:2第2題若有以下語(yǔ)句,且0<=k<6,則正確表示數(shù)組元素地址的語(yǔ)句是(C)intx[]={1,9,10,7,32,4},*ptr=x,k=1;A:x++B:&ptrC:&ptr[k]D:&(x+1)第3題以下代碼運(yùn)行后,abcd的值為:(D)inta,b,c,d;a=b=c=1;d=++a||++b&&++c;A:1,1,1,1B:2,2,2,1C:2,1,1,2D:2,1,1,1第4題下面敘述不正確的是答案:AA:基類的保護(hù)成員在派生類中必然是保護(hù)成員B:基類的保護(hù)成員在公有派生類中仍然是保護(hù)成員C:基類的保護(hù)成員在私有派生類中是私有成員D:對(duì)基類成員的訪問(wèn)必須是無(wú)二義性第5題下列關(guān)于虛函數(shù)的描述正確的是答案:CA:虛函數(shù)可以是static類型的函數(shù)B:虛函數(shù)可以是非成員函數(shù)C:基類中說(shuō)明了虛函數(shù)后,派生類中對(duì)應(yīng)的函數(shù)可不必說(shuō)明為虛函數(shù)D:派生類的虛函數(shù)與基類的虛函數(shù)可具有不同的返回類型第6題(無(wú)論采用何種繼承方式,基類中的(D)在派生類中是不可訪問(wèn)的.A:公有成員B:保護(hù)成員C:靜態(tài)成員D:私有成員第7題(A)是析構(gòu)函數(shù)的特征.A:一個(gè)類中只能定義一個(gè)析構(gòu)函數(shù)B:析構(gòu)函數(shù)名與類名不同C:析構(gòu)函數(shù)的定義只能在類體內(nèi)D:析構(gòu)函數(shù)可以有一個(gè)或多個(gè)參數(shù)第8題以下正確的說(shuō)法是(D).A:用戶若需要調(diào)用標(biāo)準(zhǔn)函數(shù),調(diào)用前必須重新定義.B:用戶可以直接調(diào)用所有標(biāo)準(zhǔn)庫(kù)函數(shù).C:用戶可以定義和標(biāo)準(zhǔn)庫(kù)函數(shù)重名的函數(shù),但是在使用時(shí)調(diào)用的是系統(tǒng)庫(kù)函數(shù).D:用戶可通過(guò)文件包含命令將系統(tǒng)庫(kù)函數(shù)包含到用戶源文件中,然后調(diào)用系統(tǒng)庫(kù)函數(shù).第9題派生類的對(duì)象對(duì)它的基類成員中(A)是可以訪問(wèn)的。A:公有繼承的公有成員;B:公有繼承的私有成員;C:公有繼承的保護(hù)成員;D:私有繼承的公有成員。第10題下列有關(guān)類的說(shuō)法中,不正確的是(B)。A:類是一種用戶自定義的數(shù)據(jù)類型B:只有類中的成員函數(shù)才能存取類中的私有數(shù)據(jù)C:在類中,如果不作特別說(shuō)明,所有的數(shù)據(jù)均為私有類型D:子類可以訪問(wèn)父類的保護(hù)成員第11題派生類的構(gòu)造函數(shù)的成員初始化列中,不能包含(C)。A:基類的構(gòu)造函數(shù);B:派生類中子對(duì)象的初始化;C:基類成員的初始化;D:派生類中一般數(shù)據(jù)成員的初始化第12題下列敘述不正確的是______B___.A:純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn)B:純虛函數(shù)是一種特殊的虛函數(shù),它必須有具體的實(shí)現(xiàn)C:抽象類至少包含一個(gè)純虛函數(shù)D:抽象類不能用于創(chuàng)建對(duì)象第13題如果類A被說(shuō)明為類B的友元,則(C)A:類A的成員即類B的成員;B:類B的成員即類A的成員C:類A的成員函數(shù)可以訪問(wèn)類B的私有成員D:類B的成員函數(shù)可以訪問(wèn)類A的私有成員第14題如有inta=11;則表達(dá)式(a++*1/3)的值是【B】A:0B:3C:4D:12第15題通過(guò)(A)調(diào)用虛函數(shù)時(shí),采用動(dòng)態(tài)束定。A:對(duì)象指針B:對(duì)象名C:成員名限定D:派生類名四、程序填空共2題(共計(jì)20分)第1題//編寫一個(gè)程序,設(shè)計(jì)一個(gè)點(diǎn)類Point,求兩個(gè)點(diǎn)(2,2),(5,5)之間的距離#include<iostream.h>#include<math.h>/***********SPACE***********/【?】{private:intx,y;public:/***********SPACE***********/【?】{x=i;y=j;}voiddisp(){cout<<"("<<x<<","<<y<<")";}/***********SPACE***********/【?】doubledistance(Point&,Point&);};doubledistance(Point&p1,Point&p2)//對(duì)象引用作為參數(shù){ doubled;d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));/***********SPACE***********/【?】}voidmain(){/***********SPACE***********/【?】p1.disp();cout<<"與";p2.disp();cout<<"的距離為:"<<distance(p1,p2)<<endl;}(答案1)classPoint(答案2)Point(inti,intj)或Point(intj,inti)(答案3)friend(答案4)returnd;或return(d);(答案5)Pointp1(2,2),p2(5,5);或Pointp1(5,5),p2(2,2);或Pointp1(2,2);Pointp2(5,5);或Pointp1(5,5);Pointp2(2,2);第2題(10.0分)題號(hào):332功能:以下程序的功能是產(chǎn)生并輸出楊輝三角的前七行。11112113

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論