




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 升降機安裝施工方案
- 隔音地面漆施工方案
- 保潔開荒的施工方案
- 門吊安全施工方案
- 從江假山園林施工方案
- 定制酒委托協(xié)議
- 聯(lián)合國發(fā)言稿
- 泰安二層輕鋼房施工方案
- 武隆寫字樓鋁單板施工方案
- 家委會議發(fā)言稿
- 《反家庭暴力》課件
- 二零二五年度房地產(chǎn)預(yù)售合同協(xié)議4篇
- 建(構(gòu))筑物消防員初級技能培訓(xùn)課件
- 2025-2030年中國天線行業(yè)市場需求狀況規(guī)劃研究報告
- 2024年南京旅游職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 如何提升自我管理能力
- 2025年潛江市城市建設(shè)發(fā)展集團招聘工作人員【52人】高頻重點提升(共500題)附帶答案詳解
- 人教版(新)九年級下冊化學(xué)全冊教案教學(xué)設(shè)計及教學(xué)反思
- DB50T 441-2012 渝菜 毛血旺烹飪技術(shù)規(guī)范
- 2024年05月富德生命人壽保險股份有限公司招考筆試歷年參考題庫附帶答案詳解
- 醫(yī)防融合培訓(xùn)
評論
0/150
提交評論