![《面向?qū)ο蟪绦蛟O(shè)計(jì)C++》期末試卷及標(biāo)準(zhǔn)答案_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e73ea897-516c-4772-9df0-846bc36ee4f0/e73ea897-516c-4772-9df0-846bc36ee4f01.gif)
![《面向?qū)ο蟪绦蛟O(shè)計(jì)C++》期末試卷及標(biāo)準(zhǔn)答案_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e73ea897-516c-4772-9df0-846bc36ee4f0/e73ea897-516c-4772-9df0-846bc36ee4f02.gif)
![《面向?qū)ο蟪绦蛟O(shè)計(jì)C++》期末試卷及標(biāo)準(zhǔn)答案_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e73ea897-516c-4772-9df0-846bc36ee4f0/e73ea897-516c-4772-9df0-846bc36ee4f03.gif)
![《面向?qū)ο蟪绦蛟O(shè)計(jì)C++》期末試卷及標(biāo)準(zhǔn)答案_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e73ea897-516c-4772-9df0-846bc36ee4f0/e73ea897-516c-4772-9df0-846bc36ee4f04.gif)
![《面向?qū)ο蟪绦蛟O(shè)計(jì)C++》期末試卷及標(biāo)準(zhǔn)答案_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/19/e73ea897-516c-4772-9df0-846bc36ee4f0/e73ea897-516c-4772-9df0-846bc36ee4f05.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)C+ 期末考試試卷(A)班級(jí):學(xué)號(hào):分?jǐn)?shù):題號(hào)一二三四總分得分試卷說(shuō)明:本套試題共四個(gè)大題,全部題目都答在答題紙上,寫(xiě)在其他地方均無(wú)效。(答題紙?jiān)诒咎自嚲淼牡?0 頁(yè)上)一、選擇題(每小題2 分,共 40 分)1 、 C+ 是( ) 。A. 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言B. 面向過(guò)程的程序設(shè)計(jì)語(yǔ)言C. 既支持面向?qū)ο蟮某绦蛟O(shè)計(jì)又支持面向過(guò)程的程序設(shè)計(jì)的混合型語(yǔ)言D. 非結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言2、面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括() 。A. 封裝性B. 多態(tài)性C. 繼承性D. 功能分解,逐步求精3、若定義:string str; 當(dāng)語(yǔ)句 cin>>str; 執(zhí)行時(shí),從鍵
2、盤(pán)輸入:Microsoft Visual Studio 6.0!所得的結(jié)果是str= () 。A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考慮下面的函數(shù)原型聲明:void testDefaulParam(int a,int b=7,char z='*');A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefau
3、lParam(0,0,'*');5、下列語(yǔ)句中,將函數(shù)int sum(int x, int y) 正確重載的是() 。A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,( )是正確的。已知: int a=1000;A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a;7、在一個(gè)函數(shù)中,要
4、求通過(guò)函數(shù)來(lái)實(shí)現(xiàn)一種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用() 。A. 聯(lián)函數(shù)B. 重載函數(shù)C. 遞歸調(diào)用D. 嵌套調(diào)用8、下列有關(guān)C+ 類(lèi)的說(shuō)法中,不正確的是() 。A. 類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型B. 只有類(lèi)中的成員函數(shù)或類(lèi)的友元函數(shù)才能存取類(lèi)中的私有成員C. 在類(lèi)中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為私有的D. 在類(lèi)中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為公用的9、已知X類(lèi),則當(dāng)程序執(zhí)行到語(yǔ)句:X array3;時(shí),調(diào)用了()次構(gòu)造函數(shù)。A. 0B. 1C. 2D. 3 10 、下面說(shuō)法中,正確的是(A. 一個(gè)類(lèi)只能定義一個(gè)構(gòu)造函數(shù),但可以定義多個(gè)析構(gòu)函數(shù)B. 一個(gè)類(lèi)只能
5、定義一個(gè)析構(gòu)函數(shù),但可以定義多個(gè)構(gòu)造函數(shù)C. 構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個(gè)求反符號(hào)()D. 構(gòu)造函數(shù)可以指定返回類(lèi)型,而析構(gòu)函數(shù)不能指定任何返回類(lèi)型,即使是 void類(lèi)型也不可以11 、已知: print( )函數(shù)是一個(gè)類(lèi)的常成員函數(shù),它無(wú)返回值,下列表示中,是正確的。A. void print( ) const;B. const void print( );C. void const print( );D. void print(const);12 、下面描述中,表達(dá)錯(cuò)誤的是()A. 公用繼承時(shí)基類(lèi)中的public 成員在派生類(lèi)中仍是public 的B. 公用繼承時(shí)基類(lèi)中的pr
6、ivate 成員在派生類(lèi)中仍是private 的C. 公用繼承時(shí)基類(lèi)中的protected 成員在派生類(lèi)中仍是protected 的D. 私有繼承時(shí)基類(lèi)中的public成員在派生類(lèi)中是private的13 、設(shè)置虛基類(lèi)的目的是() 。A. 簡(jiǎn)化程序B. 消除二義性C. 提高運(yùn)行效率D. 減少目標(biāo)代碼14 、下面()的敘述不符合賦值兼容規(guī)則。A. 派生類(lèi)的對(duì)象可以賦值給基類(lèi)的對(duì)象B. 基類(lèi)的對(duì)象可以賦值給派生類(lèi)的對(duì)象C. 派生類(lèi)的對(duì)象可以初始化基類(lèi)的對(duì)象D. 派生類(lèi)的對(duì)象的地址可以賦值給指向基類(lèi)的指針15 、關(guān)于虛函數(shù)的描述中,( )是正確的。A. 虛函數(shù)是一個(gè)static類(lèi)型的成員函數(shù)B. 虛
7、函數(shù)是一個(gè)非成員函數(shù)C. 基類(lèi)中說(shuō)明了虛函數(shù)后,派生類(lèi)中與其對(duì)應(yīng)的函數(shù)可不必說(shuō)明為虛函數(shù)D. 派生類(lèi)的虛函數(shù)與基類(lèi)的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)和類(lèi)型16 、下面關(guān)于友元的描述中,錯(cuò)誤的是() 。A. 友元函數(shù)可以訪問(wèn)該類(lèi)的私有數(shù)據(jù)成員B. 一個(gè)類(lèi)的友元類(lèi)中的成員函數(shù)都是這個(gè)類(lèi)的友元函數(shù)C. 友元可以提高程序的運(yùn)行效率D. 類(lèi)與類(lèi)之間的友元關(guān)系可以繼承17 、下列關(guān)于靜態(tài)數(shù)據(jù)成員的說(shuō)法,不正確的是() 。A. 類(lèi)中定義的公用靜態(tài)數(shù)據(jù)成員,可以通過(guò)類(lèi)的對(duì)象來(lái)訪問(wèn)B. 類(lèi)中定義的所有靜態(tài)數(shù)據(jù)成員,都必須在類(lèi)外初始化C. 靜態(tài)數(shù)據(jù)成員不是所有對(duì)象所共用的D. 普通的成員函數(shù)可以直接訪問(wèn)類(lèi)中的靜態(tài)數(shù)據(jù)成員
8、18 、如果表達(dá)式+i*k 中的“ + ”和“*”都是重載的友元運(yùn)算符,若采用運(yùn)算符函數(shù)調(diào)用格式,則表達(dá)式還可以表示為() 。A. operator*(i.operator+(),k)B. operator*(operator+(i),k)C. i.operator+().operator*(k)D. k.operator*(operator+(i)19 、下面對(duì)模板的聲明,正確的是(A. template<T>B. template<class T1, T2>C. template<class T1, class T2>D. template<cla
9、ss T1; class T2>20、下列的各類(lèi)函數(shù)中,( )不是類(lèi)的成員函數(shù)A. 構(gòu)造函數(shù)B. 析構(gòu)函數(shù)C. 友元函數(shù)D. 復(fù)制構(gòu)造函數(shù)二、填空題(前14個(gè)空,每空1 分,后 3個(gè)空,每空2分,共20分)1 、類(lèi)和對(duì)象的關(guān)系可表述為:類(lèi)是對(duì)象的,而對(duì)象則是類(lèi)的。2、靜態(tài)成員函數(shù)沒(méi)有隱含的,所以,在C+程序中,靜態(tài)成員函數(shù)主要用來(lái)訪問(wèn)靜態(tài)數(shù)據(jù)成員,而不訪問(wèn)非靜態(tài)成員。3、在圖1中,A, B, C, D, E, F均是類(lèi),其中屬于單繼承的派生類(lèi)有 ,屬于多繼承的派生類(lèi)有,類(lèi)F的基類(lèi)有,類(lèi)A的派生類(lèi)有。圖 1 類(lèi)的繼承層次圖4、如果只想保留公共基類(lèi)的一個(gè)復(fù)制,就必須使用關(guān)鍵字把這個(gè)公共基類(lèi)聲
10、明為虛基類(lèi)。5、從實(shí)現(xiàn)的角度來(lái)講,多態(tài)性可以劃分為兩類(lèi):和。6、如果一個(gè)類(lèi)包含一個(gè)或多個(gè)純虛函數(shù),則該類(lèi)稱(chēng)為 7 、 若 要 把 void fun() 定 義 為 類(lèi) A的 友 元 函 數(shù) , 則 應(yīng) 在 類(lèi) A的 定 義 中 加 入 語(yǔ)句。8、列出 C+中的兩種代碼復(fù)用方式:和。9、析構(gòu)函數(shù)的作用是。10 、假定A是一個(gè)類(lèi)名,則該類(lèi)的拷貝構(gòu)造函數(shù)的原型說(shuō)明語(yǔ)句為:。11 、 后置自增運(yùn)算符“+ ”重載為類(lèi)的成員函數(shù) (設(shè)類(lèi)名為A) 的形式為:。三、閱讀下面4個(gè)程序,寫(xiě)出程序運(yùn)行時(shí)輸出的結(jié)果。(共13分)1、#include<iostream >using namespace st
11、d;void fun(int &a, int &b) int p;p=a; a=b; b=p;void exchange(int &a, int &b, int &c) if( a<b ) fun(a, b);if( a<c ) fun(a, c);if( b<c ) fun(b, c);int main() int a=12,b=89,c=56;exchange(a, b, c);cout<<"a="<<a<<",b="<<b<<&qu
12、ot;,c="<<c<<endl;return 0;2、#include <iostream>using namespace std;class A public:A( ) cout << "A" ;class B public:B( ) cout <<"B" ;class C: public A public:C( ) cout << "C" private:B b;int main ( ) C obj;return 0;3、#include <
13、iostream>using namespace std;class Apublic:A()cout<<"A:A() called.n"virtual A()cout<<"A:A() called.n"class B: public Apublic:B(int i) cout<<"B:B() called.n"buf=new chari;virtual B() delete buf;cout<<"B:B() called.n"private:char *buf;
14、int main() A *a=new B(15);delete a;return 0;4、#include <iostream>using namespace std;class Apublic:void f()cout<<"Call A's function f()"<<endl;class Bpublic:void f() cout<<"Call B's function f()"<<endl;void g() cout<<"Call B's
15、function g()"<<endl;class C: public A, public Bpublic:void g()cout<<"Call C's function g()"<<endl;int main() C cc;cc.B:f();cc.B:g();cc.g();return 0;四、編程題(27 分)1、 ( 10分)已知復(fù)數(shù)類(lèi)Complex的聲明如下:class Complex public:Complex();/ 無(wú)參構(gòu)造函數(shù)Complex(double );/ 轉(zhuǎn)換構(gòu)造函數(shù)Complex(doubl
16、e, double);/ 有兩個(gè)形參的構(gòu)造函數(shù)friend Complex operator+(Complex&, Complex&); / 對(duì)“ +”運(yùn)算符進(jìn)行重載friend ostream& operator<<(ostream&, Complex&); / 對(duì)“ << ”運(yùn)算符進(jìn)行重 載friend istream& operator>>(istream&, Complex&); / 對(duì)“ >> ”運(yùn)算符進(jìn)行重載private:double real,imag;要求: ( 1
17、)寫(xiě)出該類(lèi)的所有構(gòu)造函數(shù)的類(lèi)外定義代碼。( 2)寫(xiě)出對(duì)運(yùn)算符“+ ”、“ << ”、“ >> ”進(jìn)行重載的運(yùn)算符重載函數(shù)的定義。2、 ( 17分)下列Shape類(lèi)是一個(gè)表示形狀的抽象類(lèi),area( )為求圖形面積的函數(shù),total( )則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。class Shapepublic:virtual double area()=0;double total(Shape *s , int n) double sum=0.0;for(int i=0; i<n; i+) sum+=si->area( );return sum;要
18、求: ( 1)從 Shape 類(lèi)派生圓類(lèi)(Circle)、正方形類(lèi)(Square) ,圓類(lèi)新增數(shù)據(jù)成員半徑( radius) ,正方形類(lèi)新增數(shù)據(jù)成員邊長(zhǎng)(a) ,圓類(lèi)和正方形類(lèi)都有構(gòu)造函數(shù),修改、顯示數(shù)據(jù)成員值的函數(shù),求面積函數(shù)。( 2)寫(xiě)出main()函數(shù),計(jì)算半徑為5.5 的圓和邊長(zhǎng)為9.9 的正方形的面積和(必須通過(guò)調(diào)用total 函數(shù)計(jì)算)。面向?qū)ο蟪绦蛟O(shè)計(jì)C+ 期末考試試卷(A)標(biāo)準(zhǔn)答案班級(jí):學(xué)號(hào):分?jǐn)?shù):題號(hào)一二三四總分得分2 分,共 40 分)1-5 C D B C C6-10 A A D D B11-15 A B B B C16-20 D C B C C二、填空題(前14 個(gè)空,
19、每空1 分,后 3 個(gè)空,每空2 分,共 20 分)1 抽象實(shí)例2this 指針3 ED、 FA、 B、 C、 D、 ED、 F4 virtual5靜態(tài)多態(tài)性動(dòng)態(tài)多態(tài)性6.抽象類(lèi)7.friend void fun(A &a)8. 繼承組合或模板9. 在對(duì)象被系統(tǒng)釋放之前做一些存清理工作10. A(const A&)11. A operator+(int)三、閱讀程序(13 分)1、 a=89,b=56,c=122、 ABC3、 A:A() called.B:B() called.B:B() called.A:A() called.4、 Call B's function
20、 f()Call B's function g()Call C's function g()四、編程題(共27 分)1 、 ( 10分)Complex:Complex()real=0;imag=0;Complex:Complex(double r)real=r;Complex:Complex(double r,double i)real=r;imag=i;Complex operator+(Complex &c1,Complex &c2) Complex c;c.real=c1.real+c2.real; c.imag=c1.imag+c2.imag;retur
21、n c;ostream& operator << (ostream& output,Complex& c) output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl;return output; istream& operator >> (istream& input,Complex& c) cout<<"input real and im
22、aginary part of complex number:"input>>c.real>>c.imag;return input;2 、 ( 17分)class Circle:public Shapepublic:Circle(double r)radius=r;void set() cout<<"Please input the value of the circle:"<<endl;cin>>radius;void show() cout<<"the radius of th
23、e circle="<<radius<<endl;double area() return 3.14159*radius*radius;private:double radius;class Square:public Shapepublic:Square(double a)this->a=a;void set() cout<<"Please input the value of a:"<<endl;cin>>a;void show() cout<<"a="<&
24、lt;a<<endl; double area()return a*a;private:double a;int main()Circle C(5.5);C.show();Square S(9.9);S.show();Shape *s=&C,&S;cout<<"total="<<total(s,2)<<endl;return 0;面向?qū)ο蟪绦蛟O(shè)計(jì)C+ 期末考試試卷(B)班級(jí):學(xué)號(hào):分?jǐn)?shù):題號(hào)一二三四總分得分試卷說(shuō)明:本套試題共四個(gè)大題,全部題目都答在答題紙上,寫(xiě)在其他地方均無(wú)效。(答題紙?jiān)诒咎自嚲淼牡?頁(yè)上)一
25、、單項(xiàng)選擇題(每小題2分,共 40分)1 、關(guān)于 C+與 C語(yǔ)言關(guān)系的描述中,( )是錯(cuò)誤的。A C語(yǔ)言是C+ 語(yǔ)言的一個(gè)子集B C語(yǔ)言與C+ 語(yǔ)言是兼容的C C+ 語(yǔ)言對(duì)C語(yǔ)言進(jìn)行了一些改進(jìn)D C+ 語(yǔ)言和C語(yǔ)言都是面向?qū)ο蟮?、已知:int m=10; 下列表示引用的方法中,( )是正確的。A int &x=m;B int &y=10;C int &z;D float &t=&m;3、考慮下面的函數(shù)原型聲明:void testDefaulParam(int a,int b=7,char z='*');下面函數(shù)調(diào)用中,不合法的是() 。
26、A testDefaulParam(5);B testDefaulParam(5,8);C testDefaulParam(5,'#');D testDefaulParam(0,0,'*');4、系統(tǒng)在調(diào)用重載函數(shù)時(shí)往往根據(jù)一些條件確定哪個(gè)重載函數(shù)被調(diào)用,在下列選項(xiàng)中,不能作為依據(jù)的是() 。A函數(shù)的返回值類(lèi)型B參數(shù)的類(lèi)型C函數(shù)名稱(chēng)D參數(shù)個(gè)數(shù)5、下列有關(guān)C+ 類(lèi)的說(shuō)法中,不正確的是() 。A類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型B只有類(lèi)中的成員函數(shù)或類(lèi)的友元函數(shù)才能存取類(lèi)中的私有成員C在類(lèi)中,如果不做特別說(shuō)明,所有成員的訪問(wèn)權(quán)限均為私有的D 在類(lèi)中,如果不做特別說(shuō)明,所有
27、成員的訪問(wèn)權(quán)限均為公用的6、已知X類(lèi),則當(dāng)程序執(zhí)行到語(yǔ)句X array3;時(shí),調(diào)用了()次構(gòu)造函數(shù)。A 0B 1C 2D 37、有關(guān)析構(gòu)函數(shù)的說(shuō)法,不正確的是() 。A析構(gòu)函數(shù)有且僅有一個(gè)B析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參C析構(gòu)函數(shù)的功能是在系統(tǒng)釋放對(duì)象之前作一些存清理工作D 析構(gòu)函數(shù)無(wú)任何函數(shù)類(lèi)型8、類(lèi)定義的容允許被其對(duì)象無(wú)限制地存取的是() 。A private 部分Bprotected 部分C public 部分D以上都不對(duì)9、關(guān)于常數(shù)據(jù)成員的說(shuō)法,不正確的是() 。A常數(shù)據(jù)成員的定義形式與一般常變量的定義形式相同,只不過(guò)常數(shù)據(jù)成員的定義必須出現(xiàn)在類(lèi)體中B常數(shù)據(jù)成員必須進(jìn)行初始化,并且不
28、能被更新C常數(shù)據(jù)成員通過(guò)構(gòu)造函數(shù)的成員初始化列表進(jìn)行初始化D 常數(shù)據(jù)成員可以在定義時(shí)直接初始化10 、運(yùn)用運(yùn)算符delete刪除一個(gè)動(dòng)態(tài)對(duì)象時(shí)() 。A系統(tǒng)首先為該動(dòng)態(tài)對(duì)象調(diào)用構(gòu)造函數(shù),再釋放其占用的存B系統(tǒng)首先釋放該動(dòng)態(tài)對(duì)象占用的存,再為其調(diào)用構(gòu)造函數(shù)C系統(tǒng)首先為該動(dòng)態(tài)對(duì)象調(diào)用析構(gòu)函數(shù),再釋放其占用的存D 系統(tǒng)首先釋放動(dòng)態(tài)對(duì)象占用的存,再為其調(diào)用析構(gòu)函數(shù)11 、可以在類(lèi)外用p.a的形式訪問(wèn)派生類(lèi)對(duì)象p的基類(lèi)成員a,其中a是() 。A私有繼承的公用成員B公用繼承的私有成員C公用繼承的保護(hù)成員D公用繼承的公用成員12 、 在公用繼承方式下,有關(guān)派生類(lèi)對(duì)象和基類(lèi)對(duì)象的關(guān)系,不正確的敘述是()A派生
29、類(lèi)的對(duì)象可以賦給基類(lèi)的對(duì)象B派生類(lèi)的對(duì)象可以初始化基類(lèi)的引用C派生類(lèi)的對(duì)象可以直接訪問(wèn)基類(lèi)中的成員D 派生類(lèi)的對(duì)象的地址可以賦給指向基類(lèi)的指針13 、設(shè)置虛基類(lèi)的目的是() 。A簡(jiǎn)化程序B消除二義性C提高運(yùn)行效率D減少目標(biāo)代碼14 、在C+ 中,用于實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性的是() 。A聯(lián)函數(shù)B重載函數(shù)C模板函數(shù)D虛函數(shù) 15 、不能說(shuō)明為虛函數(shù)的是(A析構(gòu)函數(shù)B構(gòu)造函數(shù)C類(lèi)的成員函數(shù)D以上都不對(duì)16 、如果一個(gè)類(lèi)至少有一個(gè)純虛函數(shù),那么就稱(chēng)該類(lèi)為() 。A抽象類(lèi)B派生類(lèi)C純基類(lèi)D以上都不對(duì)17 、下面關(guān)于友元的描述中,錯(cuò)誤的是() 。A友元函數(shù)可以訪問(wèn)該類(lèi)的私有數(shù)據(jù)成員B一個(gè)類(lèi)的友元類(lèi)中的成員函數(shù)都是
30、這個(gè)類(lèi)的友元函數(shù)C友元可以提高程序的運(yùn)行效率D 類(lèi)與類(lèi)之間的友元關(guān)系可以繼承18 、下列運(yùn)算符中,( )運(yùn)算符在C+ 中不能被重載。A &&B C :D new19 、模板的使用實(shí)際上是將類(lèi)模板實(shí)例化成一個(gè)() 。A函數(shù)B對(duì)象C類(lèi)D抽象類(lèi)20、假定MyClass為一個(gè)類(lèi),則該類(lèi)的拷貝構(gòu)造函數(shù)的聲明語(yǔ)句為() 。A MyClass(MyClass x)B MyClass&(MyClass x)C MyClass(MyClass &x)D MyClass(MyClass *x)二、填空題(前16 個(gè)空,每空1 分,后2個(gè)空,每空2分,共20分)1 、類(lèi)和對(duì)象的關(guān)系可
31、表述為:類(lèi)是對(duì)象的,而對(duì)象則是類(lèi)的。2 、 在 C+ 中, 三種繼承方式的說(shuō)明符號(hào)為、和,如果不加說(shuō)明,則默認(rèn)的繼承方式為。3、如果只想保留公共基類(lèi)的一個(gè)復(fù)制,就必須使用關(guān)鍵字把這個(gè)公共基類(lèi)聲明為虛基類(lèi)。4 、 若 要 把 void fun() 定 義 為 類(lèi) A的 友 元 函 數(shù) , 則 應(yīng) 在 類(lèi) A的 定 義 中 加 入 語(yǔ)句。5、類(lèi)的靜態(tài)成員分為和。6、運(yùn)算符重載要求保持其原來(lái)的操作數(shù)個(gè)數(shù)、和語(yǔ)法結(jié)構(gòu)。7、通過(guò)關(guān)鍵字可以聲明模板,通過(guò)關(guān)鍵字指定函數(shù)模板的類(lèi)型參數(shù),有幾個(gè)類(lèi)型參數(shù)就有幾個(gè)類(lèi)型關(guān)鍵字。8、列出C+中兩種用戶(hù)自定義的數(shù)據(jù)類(lèi)型:、。9、構(gòu)造函數(shù)的作用是。10 、 后置自增運(yùn)算符
32、“+ ”重載為類(lèi)的成員函數(shù) (設(shè)類(lèi)名為A) 的形式為。三、閱讀下面3個(gè)程序,寫(xiě)出程序運(yùn)行時(shí)輸出的結(jié)果:(共13分)1、 、 #include<iostream >using namespace std;void fun(int &a,int &b) int p;p=a; a=b; b=p;void exchange(int &a,int &b,int &c) if(a<b)fun(a,b);if(a<c)fun(a,c);if(b<c)fun(b,c);int main() int a=12,b=89,c=56;exchan
33、ge(a,b,c);cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;return 0;2、 #include <iostream>using namespace std;class Datepublic:Date(int,int,int);Date(int,int);Date(int);Date();void display();private:int month, day, year;Date:Date(i
34、nt m,int d,int y):month(m),day(d),year(y) Date:Date(int m,int d):month(m),day(d) year=2009;Date:Date(int m):month(m)day=1; year=2010; Date:Date() month=1; day=1; year=2010; void Date:display()cout<<month<<"/"<<day<<"/"<<year<<endl; int main() D
35、ate d1(12,31,2009);Date d2(12,31);Date d3(1);Date d4;d1.display();d2.display();d3.display();d4.display();return 0;3、 #include <iostream>using namespace std;class A public:A()cout<<"constructing A "<<endl;A()cout<<"destructing A "<<endl;class B: publi
36、c A public:B()cout<<"constructing B "<<endl;B()cout<<"destructing B "<<endl;class C : public B public:C()cout<<"constructing C "<<endl;C()cout<<"destructing C "<<endl;int main() C c1;return 0;四、編程題(共27 分)1、 ( 10分
37、)已知復(fù)數(shù)類(lèi)Complex的聲明如下:class Complexpublic:Complex();/ 無(wú)參構(gòu)造函數(shù)Complex(double );/ 轉(zhuǎn)換構(gòu)造函數(shù)Complex(double, double);/ 有兩個(gè)形參的構(gòu)造函數(shù)friend Complex operator+(Complex&, Complex&); / 對(duì)“ +”運(yùn)算符進(jìn)行重載friend ostream& operator<<(ostream&, Complex&); / 對(duì)“ << ”運(yùn)算符進(jìn)行重 載friend istream& opera
38、tor>>(istream&, Complex&); / 對(duì)“ >> ”運(yùn)算符進(jìn)行重載private:double real,imag;要求: ( 1)寫(xiě)出該類(lèi)的所有構(gòu)造函數(shù)的類(lèi)外定義代碼。( 2)寫(xiě)出對(duì)運(yùn)算符“+ ”、“ << ”、“ >> ”進(jìn)行重載的運(yùn)算符重載函數(shù)的定義。2、 ( 17分)下列Shape類(lèi)是一個(gè)表示形狀的抽象類(lèi),area( )為求圖形面積的函數(shù),total( )則是一個(gè)通用的用以求不同形狀的圖形面積總和的函數(shù)。class Shapepublic:virtual double area()=0;double t
39、otal(Shape *s , int n) double sum=0.0;for(int i=0; i<n; i+) sum+=si->area( );return sum;要求: ( 1)從 Shape 類(lèi)派生圓類(lèi)(Circle)、正方形類(lèi)(Square) ,圓類(lèi)新增數(shù)據(jù)成員半徑(radius) ,正方形類(lèi)新增數(shù)據(jù)成員邊長(zhǎng)(a) ,圓類(lèi)和正方形類(lèi)都有構(gòu)造函數(shù),修改、顯示數(shù)據(jù)成員值的函數(shù),求面積函數(shù)。( 2)寫(xiě)出main()函數(shù),計(jì)算半徑為5.5的圓和邊長(zhǎng)為9.9的正方形的面積和(必須通過(guò)調(diào)用total 函數(shù)計(jì)算)。面向?qū)ο蟪绦蛟O(shè)計(jì)C+ 期末考試試卷(B)標(biāo)準(zhǔn)答案班級(jí):學(xué)號(hào):分?jǐn)?shù)
40、:題號(hào)一二三四總分得分2 分,共 40 分)1-5 D A C A D6-10 D B C D C11-15 D C B D B16-20 A D C C C二、填空題(前16 個(gè)空,每空1 分,后 2 個(gè)空,每空2 分,共 20 分)1 抽象、實(shí)例2 public、 private 、 protected 、 private 3 virtual_4friend void fun(A &a)_5靜態(tài)數(shù)據(jù)成員、 靜態(tài)成員函數(shù)6 結(jié)合性、 優(yōu)先級(jí) 7 Template 、class(或typename)8類(lèi) 、 結(jié)構(gòu)體 _9 在創(chuàng)建對(duì)象時(shí)初始化對(duì)象的數(shù)據(jù)成員_10 A operator+(int)_三、閱讀程序(共13 分)1、 a=89,b=56,c=122、 12/31/200912/31/20091/1/20101/1/20103、 constructing Aconstructing Bconstructing Cdestructing Cdestructing Bdestructing A四、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- S-3-Keto-sphinganine-d18-0-hydrochloride-生命科學(xué)試劑-MCE-1677
- CP-LC-0729-生命科學(xué)試劑-MCE-3226
- Actinobolin-plus-Actinobolin-生命科學(xué)試劑-MCE-7644
- 3-4-Methylenedioxy-pyrovalerone-metabolite-2-hydrochloride-生命科學(xué)試劑-MCE-1172
- 2025年度國(guó)際貿(mào)易違約風(fēng)險(xiǎn)預(yù)防與處理合同
- 2025年度范文正式版合同文員崗位職責(zé)規(guī)范與職業(yè)素養(yǎng)培養(yǎng)協(xié)議
- 二零二五年度2025年競(jìng)業(yè)禁止及保密協(xié)議模板
- 2025年度風(fēng)力發(fā)電場(chǎng)租賃定金協(xié)議模板
- 2025年度籃球聯(lián)賽裁判員免責(zé)聲明及賽事執(zhí)行合同
- 二零二五年度自媒體合伙人合同版:自媒體平臺(tái)內(nèi)容創(chuàng)作與推廣合同
- 企業(yè)員工食堂管理制度框架
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 核醫(yī)學(xué)內(nèi)分泌系統(tǒng)課件
- 非常規(guī)天然氣課件
- 振動(dòng)標(biāo)線(xiàn)設(shè)計(jì)規(guī)范
- 生育保險(xiǎn)待遇申請(qǐng)表
- XX區(qū)XXX灌區(qū)水資源論證報(bào)告書(shū)
- 新教材教科版五年級(jí)下冊(cè)科學(xué)全冊(cè)課時(shí)練(課后作業(yè)設(shè)計(jì))(含答案)
- 電廠鋼結(jié)構(gòu)施工方案(53頁(yè))
- 7.5正態(tài)分布課件(共26張PPT)
- 水體國(guó)產(chǎn)載體固化微生物
評(píng)論
0/150
提交評(píng)論