版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C + +程序設(shè)計(jì)模擬試卷(一)一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個備選項(xiàng)中只有一個 是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。1. 編寫C+程序一般需經(jīng)過的幾個步驟依次是()A.編輯、調(diào)試、編譯、連接B.編輯、編譯、連接、運(yùn)行C.編譯、調(diào)試、編輯、連接D.編譯、編輯、連接、運(yùn)行 答案:B解析:經(jīng)過編輯、編譯、連接和運(yùn)行四個步驟。編輯是將 C+源程序輸入計(jì)算機(jī)的過程,保 存文件名為cpp。編譯是使用系統(tǒng)提供的編譯器將源程序cpp生成機(jī)器語言的過程,目標(biāo)文件為obj,由于沒有得到系統(tǒng)分配的絕對地址,還不能直接運(yùn)行。連接是將目標(biāo)文
2、件obj轉(zhuǎn)換為可執(zhí)行決定C+語言中函數(shù)的返回值類型的是() return語句中的表達(dá)式類型調(diào)用該函數(shù)時系統(tǒng)隨機(jī)產(chǎn)生的類型 調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型在定義該函數(shù)時所指定的數(shù)據(jù)類型程序的過程,結(jié)果為exe。運(yùn)行是執(zhí)行exe,在屏幕上顯示結(jié)果的過程。2.A.B.C.D.答案:DA項(xiàng)的表達(dá)式的值要轉(zhuǎn)換下面敘述不正確的是()派生類一般都用公有派生對基類成員的訪問必須是無二義性的 賦值兼容規(guī)則也適用于多重繼承的組合 基類的公有成員在派生類中仍然是公有的解析:函數(shù)的返回值類型由定義函數(shù)時的指定的數(shù)據(jù)類型決定的。 成函數(shù)的定義時的返回類型。3.A.B.C.D.答案:D解析:繼承方式有三種:公有、私有和保護(hù)
3、。多繼承中,多個基類具有同名成員,在它們的子 類中訪問這些成員,就產(chǎn)生了二義性,但進(jìn)行訪問時,不能存在二義性。賦值兼容規(guī)則是指 派生類對象可 以當(dāng)作基類對象使用,只要存在繼承關(guān)系,所以單繼承或多繼承都適用?;愔械墓谐蓡T采用私有繼承時,在派生類中變成了私有成員,所以D項(xiàng)錯誤。4.所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個實(shí)體,A.類B.對象C.函數(shù)體D.數(shù)據(jù)塊答案:A這實(shí)體也就是()在公有派生類的成員函數(shù)不能直接訪問基類中繼承來的某個成員,則該成員一定是基類中的() 私有成員公有成員保護(hù)成員保護(hù)成員或私有成員解析:類即數(shù)據(jù)和操作的組合體,數(shù)據(jù)是類的靜態(tài)特征,操作是類具
4、有的動作。5.A.B.C.D.答案:A所以選擇A項(xiàng)。對基類和派生類的關(guān)系描述中,錯誤的是() 派生類是基類的具體化基類繼承了派生類的屬性 派生類是基類定義的延續(xù) 派生類是基類的特殊化解析:在派生類中基類的保護(hù)或者基類公有都可以直接訪問,基類的私有成員只能是基類的成員函數(shù)來訪 問。6.A.B.C.D.答案:B解析:派生類的成員一個是來自基類,一個來自本身,所以派生類是基類的擴(kuò)展,也是基類的具體化和特關(guān)于this指針使用說法正確的是()保證每個對象擁有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)的代碼 保證基類私有成員在子類中可以被訪問。保證基類保護(hù)成員在子類中可以被訪問。殊化,派生類是對基類擴(kuò)展。B項(xiàng)基類
5、不能繼承派生類成員,所以錯誤。7.A.B.C.D.保證基類公有成員在子類中可以被訪問。答案:Athis沒有關(guān)系。所以選擇A項(xiàng)。與繼承方式有關(guān),與所謂多態(tài)性是指()不同的對象調(diào)用不同名稱的函數(shù)不同的對象調(diào)用相同名稱的函數(shù)一個對象調(diào)用不同名稱的函數(shù)一個對象調(diào)用不同名稱的對象 答案:B解析:多態(tài)性有兩種靜態(tài)多態(tài)性和動態(tài)多態(tài)性,靜態(tài)多態(tài)性解析:this指針是隱藏的,可以使用該指針來訪問調(diào)用對象中的數(shù)據(jù)?;惖某蓡T在派生類中能否訪 問,8.A.B.C.D.是指調(diào)用同名函數(shù),由于參數(shù)的不同調(diào)用不同的同名函數(shù);動態(tài)多態(tài)性是指不同對象調(diào)用同名函數(shù)時,由 于對象不同調(diào)用不同的同名函數(shù)。多態(tài)性肯定具有相同的函數(shù)名
6、,所以選擇B()一個函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,則應(yīng)把它定義為 內(nèi)聯(lián)函數(shù)重載函數(shù)遞歸函數(shù)嵌套函數(shù)項(xiàng)。9.A.B.C.D.下面函數(shù)模板定義中不正確的是()ABCD答案:A解析:A項(xiàng)中F是一個返回Q類型的值,而return中用返回類型作為返回值錯誤。所以答案:A解析:內(nèi)聯(lián)函數(shù)特征代碼少,頻繁調(diào)用,執(zhí)行效率高。重載函數(shù)解決統(tǒng)一接口的問題;遞歸是 子程序調(diào)用,程序調(diào)用要耗費(fèi)很多空間和時間,循環(huán)/迭代都比遞歸有效率得多,遞歸只是從形式上,邏 輯比較簡潔。嵌套函數(shù)即反復(fù)調(diào)用,速度較慢。所以選擇A®010.A. .B.C.D.選擇A項(xiàng)。A.X,Y;Y.XB.X,Y;X,YC.Y,X;X,Y
7、D.Y,X;Y,X答案:造函數(shù)門.假設(shè)ClassY;publicX ,即類丫是類X的派生類,則說明一個丫類的對象時和刪除丫類對象時,調(diào) 用構(gòu)造函數(shù)和析構(gòu)函數(shù)的次序分別為()A解析:派生類構(gòu)造函數(shù)必須對這三類成員進(jìn)行初始化,其執(zhí)行順序:調(diào)用基類構(gòu)適宜采用inline定義函數(shù)情況是() 函數(shù)體含有循環(huán)語句函數(shù)體含有遞歸語句函數(shù)代碼少、頻繁調(diào)用 函數(shù)代碼多、不常調(diào)用;調(diào)用子對象的構(gòu)造函數(shù);派生類的構(gòu)造函數(shù)體。析構(gòu)函數(shù)在執(zhí)行過程中也要對基類和成員對象 進(jìn)行操 作,但它的執(zhí)行過程與構(gòu)造函數(shù)正好相反,即對派生類新增普通成員進(jìn)行清理;調(diào)用成員 對象析構(gòu)函數(shù), 對派生類新增的成員對象進(jìn)行清理;調(diào)用基類析構(gòu)函數(shù)
8、,對基類進(jìn)行清理,所以選擇A項(xiàng)。12.A.B.C.D.答案:C解析:內(nèi)聯(lián)函數(shù)具有程序代碼少、頻繁調(diào)用和執(zhí)行效率高的特征,所以選擇(項(xiàng)。13.假定一個類的構(gòu)造函數(shù)為A (int aajnt bb) a=aa-;b=a*bb;,則執(zhí)行A x (4,5);語句后3和155和44和2020和5,和的值分別為()A.B.C.D.答案:C在類中說明的成員可以使用關(guān)鍵字的是() publicexterncpu register解析:a=4,因?yàn)楹鬁p,b的值與a、bb相關(guān),b二4*5=20,而與aa沒有任何關(guān)系。14.A.B.C.D.答案:A解析:extern用于聲明外部變量的° register聲
9、明寄存器類型變量。無cpu類型。它們都不能聲明類成 以A項(xiàng)錯誤。二、填空題(本大題共20小題,每小題1分,共20分)請?jiān)诿啃☆}的空格中填上正確答案。錯填、不填 均無分。1. C+的流庫預(yù)定義了 4個流,它們是cin、coutx clog和 。答案:(P193)cerr解析cin、coutx clog和ceiT分別用于標(biāo)準(zhǔn)輸入、輸出、標(biāo)準(zhǔn)錯誤流(緩沖)和標(biāo)準(zhǔn)錯誤流(非緩 沖)。2. 每個對象都是所屬類的一個O答案:實(shí)例解析類是對象的抽象,對象是類的一個實(shí)例。3. 在已經(jīng)定義了整型指針ip后,為了得到一個包括10個整數(shù)的數(shù)組并由ip所指向,應(yīng)使用語句O 答案:int *ip=new int 10;
10、解析new用來動態(tài)開辟空間。常用來產(chǎn)生動態(tài)數(shù)組及對象構(gòu)造函數(shù)。4. 函數(shù)模板中緊隨template之后尖括號內(nèi)的類型參數(shù)都要冠以保留字。答案:class解析類模板的使用。template <class T>,也可以引入多參數(shù)的如:template <classT1, class T2,., class Tn>花)造函數(shù)對其進(jìn)行初始化。5. 定義類的動態(tài)對象數(shù)組時,系統(tǒng)只能夠自動調(diào)用該類的答案:無參解析使用new創(chuàng)建對象數(shù)組,調(diào)用無參構(gòu)造函數(shù)。6. 表達(dá)式cout«end1還可表示為 。答案:' n*解析0向1與字符常量' rf等價。7. 在C+
11、中,訪問一個指針?biāo)赶虻膶ο蟮某蓡T所用的指向運(yùn)算符是一。答案:->解析指針使用成員有兩種方法:"指向運(yùn)算符和“.”成員訪問運(yùn)算符。8. 假如一個類的名稱為MyClass,使用這個類的一個對象初始化該類的另一個對象時,可以調(diào)用 構(gòu)造函數(shù)來完成此功能。答案:復(fù)制或拷貝復(fù)制或拷貝構(gòu)造函數(shù)就是用對象初始化新的對象。9. 對賦值運(yùn)算符進(jìn)行重載時,應(yīng)聲明為 函數(shù)。答案:(P183)類成員解析運(yùn)算符重載的方法有友元或者成員函數(shù)兩種途徑,但是賦值運(yùn)算符只能使 用成員函數(shù)的方法來實(shí)現(xiàn)。10. 如果要把A類成員函數(shù)f ()且返回值為void聲明為類B的友元函數(shù),則應(yīng)在類B勺定義中加 入的語句a答案
12、:(P109)friend void A:f();解析成員函數(shù)作為另一個類的友元函數(shù),格式為:friend返回類型 類名::函數(shù)(形參)。11. 下列程序段的輸出結(jié)果是 O for(i=0,j=10,k=0;i<=j;i+,j-=3,k=i+j);cout«k;答案:4解析for循環(huán)結(jié)構(gòu),三個表達(dá)式的作用,初始化、循環(huán)判斷條件和循環(huán)變量變化。循環(huán)執(zhí)行了三次, k的作用是計(jì)算i、j的和。12. String類的方法返回查找到的字符串在主串的位置。答案:(P40)find解析string類對象方法的find,查不到字符串,則返回-1 «13. intn=0;while (
13、 n=1) n+;while循環(huán)執(zhí)行次數(shù)是O答案:無限次解析二是賦值運(yùn)算符,不是關(guān)系運(yùn)算符,且不等0,所以死循環(huán)。14. 控制格式輸入輸出的操作中,函數(shù)是用來設(shè)置填充字符。要求給岀函數(shù)名和參數(shù)類型答案:setfill(char)解析格式控制方法的使用,如setw, setfill等等。15. C+語言支持的兩種多態(tài)性分別是編譯時的多態(tài)性和一的多態(tài)性。答案:運(yùn)行時解析多態(tài)性包括靜態(tài)的(編譯時)多態(tài)性和動態(tài)的(運(yùn)行時)多態(tài)性。16. 設(shè)函數(shù)sum是由函數(shù)模板實(shí)現(xiàn)的,并且sum(3,6)和sum,8)都是正確的函數(shù)調(diào)用,則函 數(shù)模板具有_個類型參數(shù)。答案:217. 執(zhí)行下列代碼 string str
14、("HelloC+");cout«(5 ,3);程序的輸出結(jié)果是。答案:C+解析substr取子字符串,第1個參數(shù)表示要截取子串在字符串中的位置,第2個表示取多少個字符。18. 在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,將一組對象的共同特性抽象岀來形成O答案:類解析類是相似特征的對象的抽象,對象是類的一個實(shí)例。來進(jìn)行初始化。19. 定義類動態(tài)對象數(shù)組時,元素只能靠自動調(diào)用該類的答案:無參構(gòu)造函數(shù)解析使用new創(chuàng)建動態(tài)對象數(shù)組,不能有參數(shù),所以只能調(diào)用無參的構(gòu)造函數(shù),初始化對象20. 已知有20個元素int類型向量Vh若用V1初始化為V2向量,語句是一 答案:ector <in
15、t>V2(V1);解析采用向量初始化另一個向量的形式:vector <type> name1 (name);三、改錯題(本大題共5小題,每小題2分,共10分)下面的類定義中有一處錯誤,請用下橫線標(biāo)出錯 誤所在行并給岀修改意見。1.#inelude <> class Test private:int x,y=20;public:Test(int i,int j)x=i,y=j;int getx()return x;int gety()return y; void main() Test mt(10,20); cout«()«endl; cout&
16、#171;()«e ndl;答案:int x,y=20;在類內(nèi)部不能對數(shù)據(jù)成員直接賦值。修改int x,y;2.#inelude <> class Testint x,y;public:fun(int i,int j)x=i;y=j;show()cout«"x="«x;if(y)cout«'y="«y«e ndl;cout vven dl; void main() Test a;(1);0;(2,4);0;答案:intijntj調(diào)用時,既有一個參數(shù),也有兩個參數(shù),且沒有重載,所以參數(shù)需
17、要帶默認(rèn) 值。所以int ijnlj錯誤。修改int i,int j = O#include <>class Ainti;public:virtual void fun()=O;A(int a)i=a; class B:public Aintj;public:void fun()cout<v"B:funO 、n“;B(int m,int n=O):A(m),j(n) void main() A *pa;B b(7); pa=&b;答案:B(intm,int n=O):A(m)j(n)因?yàn)榛愂浅橄箢?,不能被?shí)例化,所以在派生類中不能調(diào)用初始化基類對象。所以B
18、(intm,int n=O):A(m),j(n)錯誤,刪去A(m)o修改B(int m,int n=O):j(n)4. #include v>class Xpublic:int X;public:X(int X)coulvvthis->x=xvve ndl;X(X&t)x=;coutvvvve ndl;void fun(X);void fun(X I)coutvvvve ndl;void main()fun(X(1O);答案:coutvvthis->x=xvvendl;要輸出lhis->x=x表達(dá)式的值要加括號。 修改coutvv (this->x=x )
19、 vvendl;5. #include v>#inelude v>class Baspublic:Bas(char *s="' 0")strcpy(name,s);void show();p rotected:char name 20;Bas b;void show()cout V v”n ame:"««e ndl; void main()Bas d2("hello");show();答案:void showO;是普通函數(shù)不是成員函數(shù),但是要訪問類成員,需要定義為友元函數(shù)。 修改friend void s
20、how();四、完成程序題(本大題共5小題,每小題4分,共20分)1.在下面程序橫線處填上適當(dāng)字句,以使該程序執(zhí)行結(jié)果為:50 4 34 21 100#include <>template <class T>void f () for (int i=0;ivn/2;i+)t=ai, a i =an-1-i , a n-1-i =t;void main ()int a 5 =10,21,34,4,50; double d 6f(a,5);f(d,6);for (int i=0;i<5;i+) cout «a i « cout «endl
21、;for (i=0;i<6;i+) cout « d i « cout« endl;答案 J T a ,int nJ t=0;解析不同的數(shù)據(jù)類型的調(diào)用,使用了模板。f函數(shù)增加t變量,因?yàn)閷?shí)參類型不同,所以t的類型應(yīng) 該是T類型的。40o2. 在下面程序的底畫線處填上適當(dāng)?shù)淖志?,使該程序?zhí)行結(jié)果為#inelude <>class Testpublic:Test (int i=0) x=i+x; int GetnumQ return Tesl:x+7;void main()Test test; cout«()«endl;答案:st
22、atic int x;,inl Test:x=30;解析從成員函數(shù)訪問方式類名:成員可知是靜態(tài)成員所以static int X;從結(jié)果要對初始 化為30,且在 類外進(jìn)行初始化,int Test:x=30;0,2,10o3. 在下列程序的空格處填上適當(dāng)?shù)淖志洌馆攲鐬椋?inelude <>#inelude <>class Magicdouble X;public:Magic(double d=:x(fabs(d)Magic operator+() return Magasqx"%!*");operator«(ostream & st
23、ream,Magic & c) stream«return stream;void main()Magic ma;cout«ma«' "'«Magic(2)«' "'«ma+Magic(-6)+ Magic(-8)«endl;答案:operator+(Magic&c),friend ostream&operator解析對加法進(jìn)行重載,operator+(Magic & c),是對插入符進(jìn)行重載,要訪問成員所以定義為友元 函數(shù), friend
24、ostream & operator F面是一個輸入半徑,輸岀其面積和周長的C+程4.序,在下劃線處填上正確的語句。#include <iostream> void main()double rad;cout«"rad="cin> >rad;double Upi*rad;double s=pi*rad*rad;coutvv" n The long is : "vvivvendl;cout«"The area is : "«s«endl;答案:using names
25、pace std,#define pi解析進(jìn)行輸入或輸岀要引入ioslream,所以using namespace std;A標(biāo)點(diǎn)看沒有分號,所以 使用宏定義,#define pi。4. 程序?qū)崿F(xiàn)大寫字母轉(zhuǎn)換成小寫字母。#include v>void main()(char a: cin>>a;if()a=a+i; coutvvavve ndl;答案:int i=32;,3>=A && 3V=Z解析大寫字母變小寫字母相差 32,需要對i聲明并初始化。大寫字母變小寫字母。要判斷字 符是大寫字母。五、程序分析題(本大題共4小題,每小題5分,共20分)1.給出
26、下面程序輸出結(jié)果。# includev>class apublic:virtual void print()coulvv "a prog”vv endl;class b:public a;class c:public bpublic:void print()cout«"c prog"vvendl; void show(a *p)(P.printO; void main() a a;bb;cc; show (&a); show(&b); show (&cj;答案:a proga prog c prog 解析考查多態(tài)性的。a類對
27、象調(diào)用本身的虛函數(shù),b類因?yàn)闆]有覆寫print,所以仍然調(diào)用基類的虛函數(shù)。而C類重新定義print虛函數(shù),所以調(diào)用C類的printo2.給出下面程序輸出結(jié)果。#include <>#include <>#inelude <>bool fun(long n);void main()long a=10,b=30J=0;if(a%2=0) a+;for(long m=a;m<=b;m+=2)if(fun(m)if(l+%10=0)cout vvendl;cout «setw(5) «m;booi fun(long n)int sqrtm=(int)sqrt(n);for(int i=2;i<=sqrtm;i+) if(n%i=O)return false;return true;答案 J 11 13 17 19 23 29解析循環(huán)體用來判斷n是否是質(zhì)數(shù)的函數(shù),在main函數(shù)判斷10-30之間質(zhì)數(shù)。3.給出下面程序輸出結(jié)果。#include <>class Testint X, y;public:Test(int i,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年食品加工設(shè)備租賃合同
- 2024年精裝修住宅租賃節(jié)能減排合同
- 二零二五年度地下空間開發(fā)工程勘察設(shè)計(jì)合同3篇
- 2024年特許經(jīng)營合同:連鎖加盟
- 二零二五年度資產(chǎn)保全第三方擔(dān)保借款資產(chǎn)保全合同模板3篇
- 二零二五年度歷史文化保護(hù)項(xiàng)目合同文物保護(hù)與修復(fù)工程協(xié)議3篇
- 古詩詞誦讀《燕歌行 并序》說課稿 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊001
- 二零二五年度辦公室裝修工程環(huán)保材料認(rèn)證合同6篇
- 二零二五年度工廠廢棄物綜合利用合同3篇
- 2024年華師大新版選擇性必修2語文下冊月考試卷
- 安全教育年度計(jì)劃養(yǎng)老院
- 挖掘機(jī)、裝載機(jī)崗位風(fēng)險告知卡
- 支座更換綜合項(xiàng)目施工專項(xiàng)方案
- 江蘇省建筑與裝飾工程計(jì)價定額(2014)電子表格版
- 裝飾裝修工程質(zhì)量保證措施和創(chuàng)優(yōu)計(jì)劃
- 內(nèi)鏡室院感知識培訓(xùn)
- JGJT280-2012 中小學(xué)校體育設(shè)施技術(shù)規(guī)程
- 吃動平衡知識講座
- 基于MATLAB光伏儲能并網(wǎng)的直流微電網(wǎng)系統(tǒng)的研究與設(shè)計(jì)
- 漏工序改善控制方案
- 數(shù)據(jù)維護(hù)方案
評論
0/150
提交評論