2023年C++面向對象程序設計模擬試_第1頁
2023年C++面向對象程序設計模擬試_第2頁
2023年C++面向對象程序設計模擬試_第3頁
2023年C++面向對象程序設計模擬試_第4頁
2023年C++面向對象程序設計模擬試_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C++面向對象程序設計模擬試題三一、單項選擇題(本大題共10小題,每小題2分,共20分)在每小題列出的四個備選項中,只有一個是符合題目規(guī)定的,請將其代碼填寫在題后的括號內。錯選、多選或未選均無分。1.下面有關重載函數(shù)的描述中,對的的是()。A)重載函數(shù)必須具有不同的返回值類型 B)重載函數(shù)形參個數(shù)必須不同C)重載函數(shù)必須具有不同的形參表 D)重載函數(shù)名可以不同2.假定MyCIass為一個類,那么下列的函數(shù)說明中,()為該類的析構函數(shù)。A)void~MyClass(); B)~MyClass(intn); C)MyClass(); D)~MyClass();3.()是以一種完全通用的方法來設計函數(shù)或類而不必預先說明將被使用的每個對象的類型。A)模板 B)類 C)對象 D)函數(shù)4.下面關于靜態(tài)成員函數(shù)的途術中錯語的是()。A.靜態(tài)成員函數(shù)可以有返回值 B.this指針可以指向靜態(tài)成員函數(shù)C.靜態(tài)成員函數(shù)可以具有指針參數(shù) D.靜態(tài)成員函數(shù)可有具有返回值類型5.定義類模板時要使用關鍵字()。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.關于純虛函數(shù),下列表述中對的的是()。A)純虛函數(shù)的聲明總是以"=0"結束 B)具有純虛函數(shù)的類可以定義對象C)具有純虛函數(shù)的類是抽象類 D)上面都是錯誤的9.()解決二義性問題。A.只能使用作用域分辨操作符 B.只能使用虛基類C.使用作用域分辨操作符或虛基類 D.上面都不能10.實現(xiàn)編譯時的多態(tài)性要使用()。A)重載函數(shù) B)析構函數(shù) C)構造函數(shù) D)虛函數(shù)二、填空題(本大題共5小題,每小題2分,共10分)不寫解答過程,將對的的答案寫在每小題的空格內。錯填或不填均無分。1.定義一個函數(shù)名為fun,返回值為int,沒有參數(shù)的純虛函數(shù)的聲明是()。2.定義靜態(tài)成員函數(shù)應使用關鍵字()。3.在C++中,假如類的名稱是CTest,則此類的構造函數(shù)名稱為()。4.在類的對象被創(chuàng)建時,()函數(shù)會被自動調用。5.類中數(shù)據(jù)成員和成員函數(shù)的默認訪問級別為()。三、完畢程序填題(本大題共3個小題,每小題3分,共9分)下面程序都留有空白,請將程序補充完整,1.請完畢下面的程序#include<iostream> //預解決命令usingnamespacestd; //使用標準命名空間std//測試靜態(tài)成員類classTest{private: [1]intcount; //對象數(shù)public: Test(){count++;} //構造函數(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> //預解決命令usingnamespacestd; //使用標準命名空間std//整數(shù)類classInteger{private: inta; //數(shù)據(jù)成員public: Integer(intx=0){a=x;} //構造函數(shù) operatorint(){returna;} //類型轉換函數(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> //預解決命令usingnamespacestd; //使用標準命名空間stdtemplate<classElemType>classA{private: ElemTypea; //數(shù)據(jù)成員public: A(ElemTypex):a(x){} //構造函數(shù) voidShow()const {cout<<a<<endl;} //顯示a之值};intmain(void) //主函數(shù)main(void){ A<[3]>obj("Hello,world!"); //定義對象 obj.Show(); //顯示相關信息 return0; //返回值0,返回操作系統(tǒng)}四、程序分析題(本大題共4小題,每小題5分,共20分)給出下面各程序的輸出結果。1.閱讀下面程序,寫出輸出結果。#include<iostream> //預解決命令usingnamespacestd; //使用標準命名空間stdclassPoint{private: intx; //x坐標 inty; //y坐標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)}上面程序的輸出結果為:1.參考答案:05189982.閱讀下面程序,寫出輸出結果。#include<iostream> //預解決命令usingnamespacestd; //使用標準命名空間stdclassArray{private: int*elem; //數(shù)組元素存儲空間 intsize; //數(shù)組元素個數(shù)public: Array(inta[],intsz):elem(a),size(sz){} //構造函數(shù) intGetSize(){returnsize;} int&operator[](intpos){returnelem[pos-1];} //重載下標運算符[]};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)}上面程序的輸出結果為:3.閱讀下面程序,寫出輸出結果。#include<iostream> //預解決命令usingnamespacestd; //使用標準命名空間stdclassA{public: A(){cout<<"構造A"<<endl;} //構造函數(shù) ~A(){cout<<"析構A"<<endl;} //析構函數(shù)};classB:publicA{public: B(){cout<<"構造B"<<endl;} //構造函數(shù) ~B(){cout<<"析構B"<<endl;} //析構函數(shù)};intmain(void) { Bobj; A*p=newA; return0; //返回值0,返回操作系統(tǒng)}上面程序的輸出結果為:4.閱讀下面程序,寫出輸出結果。#include<iostream> //預解決命令usingnamespacestd; //使用標準命名空間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"); //調用庫函數(shù)system(),輸出系統(tǒng)提醒信息 return0; //返回值0,返回操作系統(tǒng)}上面程序的輸出結果為:五、程序改錯題(本大題共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> //預解決命令 //1usingnamespacestd; //使用標準命名空間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()分別顯示各種圖形的相關信息,最后還要顯示所有圖形的總面積。

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論