2023年C++面向?qū)ο蟪绦蛟O(shè)計模擬試_第1頁
2023年C++面向?qū)ο蟪绦蛟O(shè)計模擬試_第2頁
2023年C++面向?qū)ο蟪绦蛟O(shè)計模擬試_第3頁
2023年C++面向?qū)ο蟪绦蛟O(shè)計模擬試_第4頁
2023年C++面向?qū)ο蟪绦蛟O(shè)計模擬試_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++面向?qū)ο蟪绦蛟O(shè)計模擬試題三一、單項選擇題(本大題共10小題,每小題2分,共20分)在每小題列出的四個備選項中,只有一個是符合題目規(guī)定的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。1.下面有關(guān)重載函數(shù)的描述中,對的的是()。A)重載函數(shù)必須具有不同的返回值類型 B)重載函數(shù)形參個數(shù)必須不同C)重載函數(shù)必須具有不同的形參表 D)重載函數(shù)名可以不同2.假定MyCIass為一個類,那么下列的函數(shù)說明中,()為該類的析構(gòu)函數(shù)。A)void~MyClass(); B)~MyClass(intn); C)MyClass(); D)~MyClass();3.()是以一種完全通用的方法來設(shè)計函數(shù)或類而不必預(yù)先說明將被使用的每個對象的類型。A)模板 B)類 C)對象 D)函數(shù)4.下面關(guān)于靜態(tài)成員函數(shù)的途術(shù)中錯語的是()。A.靜態(tài)成員函數(shù)可以有返回值 B.this指針可以指向靜態(tài)成員函數(shù)C.靜態(tài)成員函數(shù)可以具有指針參數(shù) D.靜態(tài)成員函數(shù)可有具有返回值類型5.定義類模板時要使用關(guān)鍵字()。A.private B.public C.delete D.template6.下列是重載乘法運算符的函數(shù)原型聲明,其中錯誤的是()。A)MyClassoperator*(double,double); B)MyClassoperator*(double,MyClass);C)MyClassoperator*(MyClass,double); D)MyClassoperator*(MyClass,MyClass);7.以下()成員函數(shù)表達純虛函數(shù)。A)virtualintfun(int) B)voidfun(int)=0 C)virtualvoidfun()=0 D)virtualvoidfun(int){}8.關(guān)于純虛函數(shù),下列表述中對的的是()。A)純虛函數(shù)的聲明總是以"=0"結(jié)束 B)具有純虛函數(shù)的類可以定義對象C)具有純虛函數(shù)的類是抽象類 D)上面都是錯誤的9.()解決二義性問題。A.只能使用作用域分辨操作符 B.只能使用虛基類C.使用作用域分辨操作符或虛基類 D.上面都不能10.實現(xiàn)編譯時的多態(tài)性要使用()。A)重載函數(shù) B)析構(gòu)函數(shù) C)構(gòu)造函數(shù) D)虛函數(shù)二、填空題(本大題共5小題,每小題2分,共10分)不寫解答過程,將對的的答案寫在每小題的空格內(nèi)。錯填或不填均無分。1.定義一個函數(shù)名為fun,返回值為int,沒有參數(shù)的純虛函數(shù)的聲明是()。2.定義靜態(tài)成員函數(shù)應(yīng)使用關(guān)鍵字()。3.在C++中,假如類的名稱是CTest,則此類的構(gòu)造函數(shù)名稱為()。4.在類的對象被創(chuàng)建時,()函數(shù)會被自動調(diào)用。5.類中數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問級別為()。三、完畢程序填題(本大題共3個小題,每小題3分,共9分)下面程序都留有空白,請將程序補充完整,1.請完畢下面的程序#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間std//測試靜態(tài)成員類classTest{private: [1]intcount; //對象數(shù)public: Test(){count++;} //構(gòu)造函數(shù),實現(xiàn)對對象進行計數(shù) staticvoidShow(){cout<<"共有"<<count<<"個對象!"<<endl;} //顯示對象數(shù)};intTest::count=0; //初始化靜態(tài)數(shù)據(jù)成員賦初值intmain(void) //主函數(shù)main(void){ Testobj1,obj2,obj3; //定義對象 Test::Show(); //顯示對象數(shù) return0; //返回值0,返回操作系統(tǒng)}2.請完畢下面的程序#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間std//整數(shù)類classInteger{private: inta; //數(shù)據(jù)成員public: Integer(intx=0){a=x;} //構(gòu)造函數(shù) operatorint(){returna;} //類型轉(zhuǎn)換函數(shù) Integeroperator+(constInteger&i)const //重載加法運算符+ { return[2]; //返回和 }};intmain(void) //主函數(shù)main(void){ Integera(2),b(3),c; //定義整數(shù)對象 c=a+b; //求和 cout<<c<<endl; //顯示和 return0; //返回值0,返回操作系統(tǒng)}3.請完畢下面的程序#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間stdtemplate<classElemType>classA{private: ElemTypea; //數(shù)據(jù)成員public: A(ElemTypex):a(x){} //構(gòu)造函數(shù) voidShow()const {cout<<a<<endl;} //顯示a之值};intmain(void) //主函數(shù)main(void){ A<[3]>obj("Hello,world!"); //定義對象 obj.Show(); //顯示相關(guān)信息 return0; //返回值0,返回操作系統(tǒng)}四、程序分析題(本大題共4小題,每小題5分,共20分)給出下面各程序的輸出結(jié)果。1.閱讀下面程序,寫出輸出結(jié)果。#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間stdclassPoint{private: intx; //x坐標(biāo) inty; //y坐標(biāo)public: Point(inta=0,intb=0):x(a),y(b){} intGetX()const{returnx;} intGetY()const{returny;} voidSetX(inta){x=a;} voidSetY(intb){y=b;}};intmain(void){ Pointobj1; constPointobj2(9,98); cout<<obj1.GetX()<<endl; obj1.SetX(5); cout<<obj1.GetX()<<endl; obj1.SetY(18); cout<<obj1.GetY()<<endl; cout<<obj2.GetX()<<endl; cout<<obj2.GetY()<<endl; return0; //返回值0,返回操作系統(tǒng)}上面程序的輸出結(jié)果為:1.參考答案:05189982.閱讀下面程序,寫出輸出結(jié)果。#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間stdclassArray{private: int*elem; //數(shù)組元素存儲空間 intsize; //數(shù)組元素個數(shù)public: Array(inta[],intsz):elem(a),size(sz){} //構(gòu)造函數(shù) intGetSize(){returnsize;} int&operator[](intpos){returnelem[pos-1];} //重載下標(biāo)運算符[]};intmain(void) { inta[]={1,2,3,4,5}; Arrayobj(a,5); obj[1]=8; for(inti=1;i<=obj.GetSize();i++) //依次輸出數(shù)組各元素之值 cout<<obj[i]<<""; cout<<endl; return0; //返回值0,返回操作系統(tǒng)}上面程序的輸出結(jié)果為:3.閱讀下面程序,寫出輸出結(jié)果。#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間stdclassA{public: A(){cout<<"構(gòu)造A"<<endl;} //構(gòu)造函數(shù) ~A(){cout<<"析構(gòu)A"<<endl;} //析構(gòu)函數(shù)};classB:publicA{public: B(){cout<<"構(gòu)造B"<<endl;} //構(gòu)造函數(shù) ~B(){cout<<"析構(gòu)B"<<endl;} //析構(gòu)函數(shù)};intmain(void) { Bobj; A*p=newA; return0; //返回值0,返回操作系統(tǒng)}上面程序的輸出結(jié)果為:4.閱讀下面程序,寫出輸出結(jié)果。#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間stdtemplate<classElemType>ElemTypef(ElemTypex) { returnx*(ElemType)5.1;}template<classElemType>voidf(ElemTypex,ElemTypey){ x=x*1.1; y=y*1.1; cout<<x<<endl; cout<<y<<endl;}intmain(void) { cout<<f(3.0)<<endl; f(1,2); f(1.0,2.0); system("PAUSE"); //調(diào)用庫函數(shù)system(),輸出系統(tǒng)提醒信息 return0; //返回值0,返回操作系統(tǒng)}上面程序的輸出結(jié)果為:五、程序改錯題(本大題共3小題,每小題5分,共15分)指出下面程序中的錯誤,說明錯誤因素,并加以改正。1.下面程序中類的定義中有一處錯誤,請指出犯錯的行,說明錯誤因素,并加以改正。#include<iostream> //1usingnamespacestd; //2 //3classA //4{ //5public: //6 A(intx=0,inty=0):a=x,b=y{} //7 voidShow() //8 { //9 cout<<a<<""<<b<<endl; //10 } //11 //12private: //13 inta,b; //14}; //15 //16intmain(void) //17{ //18 Aobj(18); //19 obj.Show(); //20 //21 return0; //22} //232.下面程序中類的定義中有一處錯誤,請指出犯錯的行,說明錯誤因素,并加以改正。#include<iostream> //預(yù)解決命令 //1usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間std //2 //3template<classElemType> //4ElemTypeMax(ElemTypea,ElemTypeb) //5{ //6 return(a>b)?a:b; //5} //6 //7intmain(void) //8{ //9 cout<<Max(16.8,518)<<endl; //10 //11 return0; //返回值0,返回操作系統(tǒng) //12} //133.下面程序中類的定義中有一處錯誤,請指出犯錯的行,說明錯誤因素,并加以改正。#include<iostream> //1usingnamespacestd; //2 //3classInteger //4{ //5public: //6 Integer(inta=0):i(a){} //7 //8 intoperatorint() //9 { //10 returni; //11 } //12 //13private: //14 inti; //15}; //16 //17intmain(void) //18{ //19 Integerobj(168); //20 cout<<obj<<endl; //21 //22 return0; //23} //24六、編程題(本大題26分)編寫程序,定義抽象基類Shape(形狀),由它派生出2個派生類:Circle(圓形)和Rectangle(矩形),用函數(shù)Show()分別顯示各種圖形的相關(guān)信息,最后還要顯示所有圖形的總面積。

C++面向?qū)ο蟪绦蛟O(shè)計模擬試題三參考答安全一、單項選擇題(本大題共10小題,每小題2分,共20分)在每小題列出的四個備選項中,只有一個是符合題目規(guī)定的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。1.C 2.D 3.A 4.B 5.D6.A 7.C 8.C 9.C 10.A二、填空題(本大題共5小題,每小題2分,共10分)不寫解答過程,將對的的答案寫在每小題的空格內(nèi)。錯填或不填均無分。1.參考答案:intfun()=0;2.參考答案:static3.參考答案:CTest4.參考答案:構(gòu)造函數(shù)5.參考答案:private或私有三、完畢程序填題(本大題共3個小題,每小題3分,共9分)下面程序都留有空白,請將程序補充完整,1.參考答案:[1]static2.參考答案:[2]a+i.a或this->a+i.a3.參考答案:[3]char*四、程序分析題(本大題共4小題,每小題5分,共20分)給出下面各程序的輸出結(jié)果。1.參考答案:05189982.參考答案:823453.參考答案:構(gòu)造A構(gòu)造B構(gòu)造A析構(gòu)B析構(gòu)A4.參考答案:15.3121.12.2五、程序改錯題(本大題共3小題,每小題5分,共15分)指出下面程序中的錯誤,說明錯誤因素,并加以改正。1.參考答案:第7行“a=x,b=y”有錯,初始列表的格式錯,應(yīng)改為“a(x),b(y)”。2.參考答案:第10行有錯,模板函數(shù)無隱式轉(zhuǎn)換功能,函數(shù)調(diào)用Max(16.8,518)無法擬定參數(shù)類型,可第11行的“Max(16.8,518)”改為“Max(16.8,518.0)”。3.參考答案:第9行“intoperatorint()”有錯,類型轉(zhuǎn)換函數(shù)不能有返回值類型,可改為“operatorint()”。六、編程題(本大題26分)參考程序:#include<iostream> //預(yù)解決命令usingnamespacestd; //使用標(biāo)準(zhǔn)命名空間stdconstdoublePI=3.1415926; //定義常量PIclassShape{public: Shape(){} //構(gòu)造函數(shù) virtual~Shape(){} //析構(gòu)函數(shù) virtualShow()=0; //顯示面積 staticd

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論