2023年自考類計算機類(工學(xué)類)C++程序設(shè)計歷年高頻考點試題附答案難題帶詳解_第1頁
2023年自考類計算機類(工學(xué)類)C++程序設(shè)計歷年高頻考點試題附答案難題帶詳解_第2頁
2023年自考類計算機類(工學(xué)類)C++程序設(shè)計歷年高頻考點試題附答案難題帶詳解_第3頁
2023年自考類計算機類(工學(xué)類)C++程序設(shè)計歷年高頻考點試題附答案難題帶詳解_第4頁
2023年自考類計算機類(工學(xué)類)C++程序設(shè)計歷年高頻考點試題附答案難題帶詳解_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023年自考類計算機類(工學(xué)類)C++程序設(shè)計歷年高頻考點試題附答案難題帶詳解卷I一.歷年考點試題黑鉆版(共50題)1.析構(gòu)函數(shù)被調(diào)用的時間點是

A.對象被創(chuàng)建時B.對象被銷毀時C.不會被調(diào)用D.主函數(shù)被調(diào)用時2.C++函數(shù)有庫函數(shù)(標(biāo)準(zhǔn)函數(shù))和______兩類。3.C++的合法注釋是______A./*ThisisaCprogram/*B.//ThisisaCprogramC."ThisisaCprogram"D.//ThisisaCprogram//4.下面程序?qū)崿F(xiàn)數(shù)值、字符串的交換。

#include<iostream>

#include<string>

usingnamespacestd;

template<classT>

voidSwap(T&a,T&b)

{Ttemp;

temp=a;a=b;b=temp;

}

voidmain()

{inta=5,b=9;

chars1[]="Hello",s2[]="hi";

Swap(a,b);

Swap(s1,s2);

cout<<"a="<<a<<",b="<<b<<endl;

cout<<"s1="<<s1<<",s2="<<s2<<endl;

}5.給出下面程序的輸出結(jié)果。

#include<iostream>

usingnamespacestd;

classbase

{

private:

intx;

public:

voidsetx(inta){x=a;}

intgetx(){returnx;}

};

voidmain()

{

basea,b;

a.setx(89);

b=a;

cout<<a.getx()<<endl;

cout<<b.getx()<<endl;

}6.設(shè)有函數(shù)模板

template<classQ>

QSum(Qx,Qy)

{return(x)+(y);}

則下列語句中對該函數(shù)模板的使用錯誤的是

A.Sum(10,2);B.Sum(5.0,6.7);C.Sum(15.2f,16.0f);D.Sum("AB","CD");7.#include<iostream.h>

template<classT>

classf{

private:

Tx,y;

public:

voidf1(Ta,Tb){x=a;y=b;}

Tmax(){return(x>y)?x:y;}

};

voidmain(){

f<int>a;

a.f1(3.5,3.8);

cout<<a.max()<<endl;

}8.#include<iostream>

usingnamespacestd;

intadd(intx,inty){returnx+y;}

voidadd(intx,inty){returnx+y}

voidmain(){

inta=add(1,2);

add(2,3);

}9.在C++程序設(shè)計中,建立繼承關(guān)系倒掛的樹應(yīng)使用______繼承。10.虛函數(shù)必須是類的______A.成員函數(shù)B.友元函數(shù)C.構(gòu)造函數(shù)D.析構(gòu)函數(shù)11.預(yù)處理命令以______符號開頭。12.對classBase,如使用Base*pt=newBase[2];創(chuàng)建對象數(shù)組,則刪除此數(shù)組使用的語句是

A.deletept[2];B.deletept[];C.delete[]pt;D.delete[2]pt;13.一個類中是否可以允許一個無參數(shù)構(gòu)造函數(shù)和一個全部都是默認參數(shù)的構(gòu)造函數(shù)共存

A.不允許B.允許C.無法確定D.視構(gòu)造函數(shù)的函數(shù),可確定14.給出下面程序輸出結(jié)果。

#include<iostream.h>

classBase

{private:

intY;

public:

Base(inty=0){Y=y;cout<<"Base("<<y<<")\n";}

~Base(){cout<<"~Base()\n";}

voidprint(){cout<<Y<<"";}

};

classDerived:publicBase

{private:

intZ;

public:

Derived(inty,intz):Base(y)

{Z=z;

cout<<"Derived("<<y<<","<<z<<")\n";

}

~Derived(){cout<<"~Derived()\n";}

voidprint()

{Base::print();

cout<<Z<<endl;

}

};

voidmain()

{Derivedd(10,20);

d.print();

}15.在C++中,注釋“/*”的有效范圍是______A.從“/*”開始到行尾B.從“/*”開始到“*/”結(jié)束C.從“/*”開始到程序結(jié)束D.“/*”及其后一個字符16.虛函數(shù)未定義,留給派生類去定義的虛函數(shù)稱為______。17.返回向量中的第1個對象的成員函數(shù)是______。18.一個通訊錄contacts有姓名name和電話tel兩個屬性,有三個成員函數(shù)searchN、insertN和deleteN分別完成查找、插入和刪除功能,請完成contacts的類圖。

19.在下面程序橫線處填上適當(dāng)內(nèi)容,使程序執(zhí)行結(jié)果為:Y=1,Y=3,Z=5。

#include<iostream.h>

classB

{private:

intY;

public:

B(inty=0){Y=y;}

voidprint(){cout<<"Y="<<Y<<",";}

};

classD:publicB

{private:

Bb;

intZ;

public:

D(intx,inty,intz):B(X),b(y){Z=z;}

voidprint()

{______;//打印基類B中的成員Y

______;//打印類成員b中的Y值

cout<<"Z="<<Z<<endl;

}

};

voidmain()

{Dd(1,3,5);

d.print();

}20.假設(shè)類X的對象X是類Y的成員對象,則“YObj'’語句執(zhí)行時,先調(diào)用類______的構(gòu)造函數(shù)。21.類的構(gòu)造函數(shù)被自動調(diào)用執(zhí)行的情況是在定義該類的

A.成員函數(shù)時B.數(shù)據(jù)成員時C.對象時D.友元函數(shù)時22.有以下程序段:

int*p,a[7]={-5,0,4,2,7,1};p=a+5;

執(zhí)行該程序段后,*p的值為______A.4B.2C.7D.123.程序的輸出結(jié)果如下:

m=4.3,n=3

m=6,n=9

請根據(jù)輸出數(shù)據(jù)在下面程序的橫線處填寫正確的語句。

#include<iostream.h>

______

classTest

private:

T1m,n;

public:

Test(T1i,T1j){m=i;n=j;}

voidshow(){cout<<"m="<<m<<",n="<<n<<endl;}

};

voidmain()

{Test<double>a(4.3,3);

a.show();

______b(6,9.6);

b.show();}24.下述靜態(tài)成員的特性中,正確的是______A.靜態(tài)成員函數(shù)可以利用this指針B.靜態(tài)數(shù)據(jù)成員要在類體內(nèi)進行初始化C.引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符D.靜態(tài)數(shù)據(jù)成員不是所有對象所共有的25.下述靜態(tài)數(shù)據(jù)成員的特征中,錯誤的是______A.說明靜態(tài)數(shù)據(jù)成員時前邊要加修飾符staticB.靜態(tài)數(shù)據(jù)成員要在類體外進行初始化C.引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運算符D.靜態(tài)數(shù)據(jù)成員不是所有對象所共用的26.下面說法正確的是______A.類的內(nèi)聯(lián)函數(shù)必須在類體內(nèi)定義B.類的內(nèi)聯(lián)函數(shù)必須在類體外通過加關(guān)鍵字inine定義C.內(nèi)聯(lián)函數(shù)在運行時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方D.內(nèi)聯(lián)函數(shù)在編譯時是將該函數(shù)的目標(biāo)代碼插入每個調(diào)用該函數(shù)的地方27.對于友元描述正確的是

A.友元是本類的成員函數(shù)B.友元不是本類的成員函數(shù)C.友元不是函數(shù)D.友元不能訪問本類的私有成員28.修改程序中的錯誤,使其輸出為10,20。

#include<iostream>

usingnamespacestd;

voidswap(inta,intb)

{inttemp;

temp=a;a=b;b=temp;}

voidmain()

{intx=20,y=10;

swap(x,y);

cout<<x<<"

"<<y<<endl;

}29.C++程序設(shè)計語言中的______機制,可以從現(xiàn)存類中構(gòu)建其子類。30.______通常使用對象的引用來初始化創(chuàng)建中的對象。31.在派生中,訪問控制方式?jīng)]有下列哪種

A.publishB.publicC.protectedD.private32.運算符::叫做

A.下標(biāo)運算符B.自增運算符C.成員訪問運算符D.作用域運算符33.C++中定義標(biāo)準(zhǔn)輸入/輸出的庫為______A.stdioB.mathC.iostreamD.stdlib34.已知基類若要保證一個公共的基類在派生類中只產(chǎn)生一個基類子對象,則必須都以______的方式直接繼承它。35.C++語言支持______,實際上就是變量的別名。36.結(jié)構(gòu)體中,沒有使用private定義的成員函數(shù),默認為______。37.在C++中,編寫一個內(nèi)聯(lián)函數(shù)Fun,使用int類型的參數(shù),求其平方并返回,返回值也為int類型,下列定義正確的是______A.intFun(intx){returnx*x;}B.intinlineFun(intx){returnx*x;}C.inlineintFun(intx){returnx*x;}D.intFun(intx){inlinereturnx*x;}38.下列合法的常量中,屬于八進制的常量的是______A.32767B.123LC.0461D.0x83239.#include<iostream.h>

classBase{

public:

virtualvoidfun()=0;

};

classTest:publicBase{

public:

virtualvoidfun(){cout<<"Test.fun="<<endl;}

};

voidmain(){

Basea;

Test*p;p=&a;

}40.以下敘述中正確的是______A.類成員的定義必須放在類體內(nèi)部B.在類中,不作特別說明的數(shù)據(jù)成員均為私有類型C.在類中,不作特別說明的數(shù)據(jù)成員均為公有類型D.類成員的定義必須是成員變量在前,成員函數(shù)在后41.為了避免因為類的數(shù)據(jù)類型不同而產(chǎn)生重復(fù)性設(shè)計,而引入類型T,稱之為______,它是對類的一種描述。42.關(guān)于new運算符的描述中,錯誤的是______A.它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組B.使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運算符delete刪除C.使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù)D.使用它創(chuàng)建對象數(shù)組時必須指定初始值43.程序的輸出結(jié)果如下:

30

9

請根據(jù)輸出數(shù)據(jù)在下面程序中的下橫線處填寫正確的語句。

#include<iostream.h>

classTest

{private:

intm;

public:

Test(inti=0)

{m=i;}

voidshow()

{cout<<m<<endl;}

voidset(inti)

{m=i;}

};

voidmain()

{Test*p1=newTest[2],*p2;

p2=p1;

p1->set(30);

p1->show();

Testa[2]={1,9};

______

p1->show();

p1=p2;

______//釋放空間

}44.設(shè)在程序中使用如下語句申請一個對象數(shù)組:

base*p=newbase[2]

則在需要釋放p指向的數(shù)組對象時,使用的語句是______。45.#include<iostream>

usingnamespacestd;

voidmain()

{

intx1(3),x2(8);

int*constp=&x1;

cout*pendl;

p=&x2;

cout*pendl;

}46.C++程序的執(zhí)行總是從______開始的。A.main函數(shù)B.第一行C.頭文件D.函數(shù)注釋47.#include<iostream.h>

classtest{

private:

intx,y;

public:

voidtest1(inta,intb){x=a;y=b;}

intmax();

};

inttest:max()

{if(x>y)returnx;

elsereturny;}

voidmain(){

testa;

a.test1(1,3);

cout<<a.max()<<endl;

}48.使用C++標(biāo)準(zhǔn)類庫時,用于指定相應(yīng)命名空間的語句是______。49.靜態(tài)成員函數(shù)是______的成員,不是對象的成員。50.使用指針時,用戶給它分配地址后,不再使用時,釋放空間需要使用的關(guān)鍵字是______A.newB.deleteC.externD.auto卷I參考答案一.歷年考點試題黑鉆版1.參考答案:B[解析]析構(gòu)函數(shù)在對象的生存期結(jié)束時被自動調(diào)用。2.參考答案:自定義函數(shù)3.參考答案:B[考點]本題主要考查的知識點為C++的注釋方式。[解析]C++有兩種注釋方式:一種是從“/*”開始,直到“*/”結(jié)束;另一種是“//”,注釋的有效范圍從“//”至本行結(jié)束。4.參考答案:chars1[]="Hello",s2[]="hi";使用Swap(s1,s2)調(diào)用交換的是地址。字符指針作實參,形參值發(fā)生改變,實參也就發(fā)生變化。應(yīng)改為char*s1="Hello",*s2="hi";。5.參考答案:8989[考點]類和對象[解析]b=a,使對象b的數(shù)據(jù)成員取a的數(shù)據(jù)成員的值,所以對象a、b數(shù)據(jù)成員x的值都為89。6.參考答案:D[解析]本題主要考查的知識點為函數(shù)模板。[要點透析]由QSum(Qx,Qy)可知形參和函數(shù)返回值都是同一種數(shù)據(jù)類型。A、B、C三項都正確。而D項用字符串作為實參,字符串的操作與數(shù)值類型不同,要用特殊方法進行字符串的連接和運算。7.參考答案:a.f1(3.5,3.8);或f<int>a;模板類型不一致8.參考答案:voidadd(intx,inty){returnx+y}[考點]函數(shù)重載[解析]重載函數(shù)的形參必須不同,即或者個數(shù)不同或者類型不同,題中,編譯器不以返回值來區(qū)分函數(shù)。9.參考答案:單一10.參考答案:A11.參考答案:#12.參考答案:C[解析]主要考查的知識點為使用delete釋放動態(tài)內(nèi)存空間。[要點透析]使用delete對動態(tài)分配的數(shù)組進行釋放的語法格式為:delete[]指針。13.參考答案:A14.參考答案:Base(10)

Derived(10,20)

1020

~Derived()

~Base()15.參考答案:B[考點]C++的注釋方式[解析]C++沿用C語言的從“/*”開始,直到“*/”結(jié)束的注釋方式。16.參考答案:純虛函數(shù)[考點]純虛函數(shù)與抽象類[解析]在許多情況下,不能在基類中為虛函數(shù)給出一個有意義的定義,這時可以將它說明為純虛函數(shù),將其定義留給派生類去做。17.參考答案:front()18.參考答案:contacts,insertN(){}19.參考答案:B::print()

b.print()20.參考答案:X21.參考答案:C[解析]本題主要考查的知識點為構(gòu)造函數(shù)的調(diào)用。[要點透析]創(chuàng)建對象時,系統(tǒng)自動調(diào)用構(gòu)造函數(shù)初始化對象。而成員函數(shù)、友元函數(shù)需要用戶直接調(diào)用。本題選C。22.參考答案:D[考點]數(shù)組與指針[解析]定義int型指針,p=a+6,使其指向數(shù)組a的第六個元素,即1。23.參考答案:template<classT1>

Test<int>24.參考答案:C[考點]靜態(tài)成員[解析]靜態(tài)成員函數(shù)屬于整個類,是類的所有對象共享的成員函數(shù),它與一般成員函數(shù)不同,沒有指向調(diào)用該成員函數(shù)的對象的this指針,A項錯誤;靜態(tài)數(shù)據(jù)成員的初始化應(yīng)在類體外進行,B項錯誤;靜態(tài)數(shù)據(jù)成員是屬于整個類的,因此可以不通過對象名,而直接使用類名和作用域運算符表明其所屬的類即可,C項正確;靜態(tài)數(shù)據(jù)成員被類的所有對象所共享,D項錯誤。25.參考答案:D[考點]本題主要考查的知識點為靜態(tài)數(shù)據(jù)成員的特征。

靜態(tài)數(shù)據(jù)成員被類的所有對象所共享,它不屬于類的任何一個對象,其作用域是類范圍,故D項錯誤;A、B、C項說法正確。26.參考答案:D[考點]內(nèi)聯(lián)函數(shù)[解析]內(nèi)聯(lián)函數(shù)不產(chǎn)生函數(shù)調(diào)用,只在編譯時用內(nèi)聯(lián)函數(shù)體替換調(diào)用語句,節(jié)省了調(diào)用開銷,但相應(yīng)增加了目標(biāo)代碼量。27.參考答案:B[解析]主要考查的知識點為友元。[要點透析]友元不是該類的成員,只是提供了訪問該類的一種捷徑或方法,A項錯誤;友元可以是函數(shù),也可以是類,C項錯誤;友元可以訪問該類的所有成員,D項錯誤。28.參考答案:voidswap(inta,intb)語句有誤[考點]引用作為函數(shù)參數(shù)[解析]可以使用引用作為函數(shù)參數(shù),實參對象名傳給形參對象名,實參對象和形參對象代表同一個對象,所以改變形參對象的值就是改變實參對象的值。29.參考答案:繼承[考點]繼承[解析]繼承使得程序員可以在一個一般的類的基礎(chǔ)上很快建立一個新類,而不必從零開始設(shè)計每個類。30.參考答案:拷貝構(gòu)造函數(shù)31.參考答案:A[解析]所謂“訪問控制”是指如何控制基類成員在派生類中的訪問屬性,它是3個關(guān)鍵字public、protected和private中的一個。32.參考答案:D33.參考答案:C[考點]使用輸出和輸入對象[解析]C++中標(biāo)

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論