違法信息舉報(bào) 客服熱線:400-118-7898
廣告
?
專接本欄目測(cè)試廣告

?自考C++程序設(shè)計(jì)2016年10月試題

自考 責(zé)任編輯:彭雅倩 2019-06-24

摘要:自考C++程序設(shè)計(jì)2016年10月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。

自考C++程序設(shè)計(jì)2016年10月試題及答案解析

自考C++程序設(shè)計(jì)2016年10月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。

一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項(xiàng)中只有一項(xiàng)是最符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均不得分。

1.一個(gè)函數(shù)的功能不太復(fù)雜,但要求被頻繁調(diào)用,選用最適合的是(  )

A.內(nèi)聯(lián)函數(shù)
B.重載函數(shù)
C.遞歸函數(shù)
D.嵌套函數(shù)

2.假定有類AB,有相應(yīng)的構(gòu)造函數(shù)定義,能正確執(zhí)行“AB a(4), b(5), c[3], *p[2]={&a, &b};”語句,請(qǐng)問執(zhí)行完此語句后共調(diào)用該類析構(gòu)函數(shù)的次數(shù)為(  )

A.14
B.5
C.3
D.1

3.在下面有關(guān)析構(gòu)函數(shù)特征的描述中,正確的是(  )

A.一個(gè)類中可以定義多個(gè)析構(gòu)函數(shù)
B.析構(gòu)函數(shù)名與類名完全相同
C.析構(gòu)函數(shù)不能指定返回類型
D.析構(gòu)函數(shù)可以有一個(gè)或多個(gè)參數(shù)

4.派生類的對(duì)象對(duì)它的哪一類基類成員是可以訪問的(  )

A.公有繼承的基類的公有成員
B.公有繼承的基類的保護(hù)成員
C.公有繼承的基類的私有成員
D.保護(hù)繼承的基類的公有成員

5.如果A是抽象類,則下面正確的是(  )

A.A中沒有純虛函數(shù)
B.A a;
C.A a[3];
D.A *pa;

6.下列關(guān)于純虛函數(shù)與抽象類的描述中,錯(cuò)誤的是(  )

A.純虛函數(shù)是一種特殊的函數(shù),它允許沒有具體的實(shí)現(xiàn)
B.抽象類是指具有純虛函數(shù)的類
C.一個(gè)基類的說明中有純虛函數(shù),該基類的派生類一定不再是抽象類
D.抽象類只能作為基類來使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出

7.cout是C++的(  )

A.關(guān)鍵字
B.對(duì)象
C.類
D.運(yùn)算符

8.下列哪個(gè)函數(shù)不是類的成員函數(shù)(  )

A.構(gòu)造函數(shù)
B.析構(gòu)函數(shù)
C.友元函數(shù)
D.拷貝構(gòu)造函數(shù)

9.下列有關(guān)重載函數(shù)的說法中錯(cuò)誤的是(  )

A.重載函數(shù)必須具有不同的返回值類型
B.重載函數(shù)名必須相同
C.重載丞數(shù)參數(shù)個(gè)數(shù)可以不同
D.重載函數(shù)必須有不同的形參列表

10.下面說法正確的是(  )

A.生成對(duì)象時(shí)調(diào)用析構(gòu)函數(shù)
B.定義類時(shí)必須寫出該類的構(gòu)造函數(shù)
C.調(diào)用構(gòu)造函數(shù)時(shí)必須在主函數(shù)中明確寫出調(diào)用格式
D.析構(gòu)函數(shù)不可以重載

11.在編譯指令中,宏定義使用指令(  )

A.#define
B.#include
C.#typedef
D.#friend

12.假設(shè)聲明了以下的函數(shù)模板,錯(cuò)誤的調(diào)用語句是(  ) template ﹤class T﹥ T max(T x, T y) { return (x﹥y)?x:y; } 并定義了int i; char c;

A.max(i,i)
B.max(c,c)
C.max((int)c,i)
D.max(i,c)

13.若有說明:int n=2, *P=&n, *q=p;,則以下非法的賦值語句是(  )

A.n=*q
B.p=n
C.p=q
D.*q=*p

14.進(jìn)行文件操作時(shí)需要包含頭文件(  )

A.iostream
B.fstream
C.stdio
D.stdlib

15.類模板template ﹤class T﹥classX{…};,其中友元函數(shù)f對(duì)特定類型T(如int),使函數(shù)f(X ﹤int﹥&)成為X﹤int﹥模板類的友元,則其說明應(yīng)為(  )

A.friend void f( );
B.friend void f(X﹤T﹥&);
C.friend void A::f( );
D.friend void C(T);

16.動(dòng)態(tài)編聯(lián)所支持的多態(tài)性稱為運(yùn)行時(shí)的多態(tài)性,支持的函數(shù)是(  )

A.構(gòu)造函數(shù)
B.友元函數(shù)
C.繼承
D.虛函數(shù)

17.用運(yùn)算符delete刪除—個(gè)動(dòng)態(tài)對(duì)象時(shí)(  )

A.首先為該動(dòng)態(tài)對(duì)象調(diào)用構(gòu)造函數(shù),再釋放其占用的內(nèi)存
B.首先釋放該動(dòng)態(tài)對(duì)象占用的內(nèi)存,再為其調(diào)用構(gòu)造函數(shù)
C.首先為該動(dòng)態(tài)對(duì)象調(diào)用析構(gòu)函數(shù),薦釋放其占用的內(nèi)存
D.首先釋放該動(dòng)態(tài)對(duì)象占用的內(nèi)存,再為其調(diào)用析構(gòu)函數(shù)

18.下列字符常量的寫法中,錯(cuò)誤的是(  )

A." "
B."b"
C."*"
D."a"

19.C++類體系中,不能被派生類繼承的有(  )

A.靜態(tài)數(shù)據(jù)成員
B.構(gòu)造函數(shù)
C.虛函數(shù)
D.靜態(tài)成員函數(shù)

20.下列對(duì)派生類的描述中,錯(cuò)誤的是(  )

A.派生類至少應(yīng)有一個(gè)基類
B.派生類的成員除了自己定義的成員外,還包含了它的基類成員
C.基類中成員訪問權(quán)限繼承到派生類中都保持不變
D.一個(gè)派生類可以作為另一個(gè)派生類的基類

二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。

11.C++注釋方式“//”的有效范圍從“//”至________結(jié)束。

12.C++程序有且只能有一個(gè)名為________的主函數(shù)。

13.語句“________;”用來向屏幕輸出顯示信息“Hello!”。

14.所謂“________”就是將一個(gè)新標(biāo)識(shí)符和一塊已經(jīng)存在的存儲(chǔ)區(qū)域相關(guān)聯(lián)。

15.動(dòng)態(tài)分配內(nèi)存使用關(guān)鍵字________,釋放內(nèi)存使用關(guān)鍵字delete。

16.表達(dá)式“20/3*sqrt( 4.0)/5”值的數(shù)據(jù)類型是________。

17.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法是以________代表求解問題的中心環(huán)節(jié)。

18.對(duì)象的________只能由這個(gè)對(duì)象的操作來存取。

19.使用關(guān)鍵字inline說明的函數(shù)稱為________函數(shù)。

110.類對(duì)象一般都包括數(shù)據(jù)成員和________。

111.將對(duì)象作為函數(shù)參數(shù),是將實(shí)參對(duì)象的值傳遞給________。

112.C++函數(shù)的返回值類型可以是除________和函數(shù)以外的任何類型。

113. 函數(shù)重載可使一個(gè)函數(shù)名具有多種功能,稱這種特性為________。

114.________是類的實(shí)例。

115.關(guān)鍵字private、public和________以后的成員分別叫做私有成員、公有成員和保護(hù)成員。

116. 使用關(guān)鍵字const修飾的數(shù)據(jù)成員稱為________數(shù)據(jù)成員。

117.對(duì)MyFirst類定義析構(gòu)函數(shù)是_________。

118.insert(iterator it, const T&)是向it所指向量位置前_______一個(gè)對(duì)象。

119.說明純虛函數(shù)的一般形式為“class類名{ ________函數(shù)類型函數(shù)名(參數(shù)列表)=0; };”。

120.運(yùn)算符重載需要使用關(guān)鍵字“________”。

三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)

21.#include ﹤iostream﹥using namespace std;template ﹤T﹥T max(T x, T y){if(x﹥=y) return x;else retum y;}void main( ){cout﹤﹤ max( 6.07, 9.08)﹤﹤ endl; cout﹤﹤ max(20, 50) ﹤﹤ endl;}

22.#include ﹤iostream﹥using namespace std;class Test {public:static int x;};int x=70;void main( ){cout﹤﹤Test:: x;}

23.#include ﹤iostream. h﹥void swap( int &a, int &b){a=a+b;b=a-b;a=a-b;}void main( ){int a =5,b=3;cout﹤﹤"a="﹤﹤a﹤﹤",b="﹤﹤b﹤﹤endl;swap(&a, &b);cout﹤﹤"a="﹤﹤a﹤﹤"b="﹤﹤b﹤﹤ endl;}

24.#include ﹤iostream﹥#include ﹤string﹥using namespace std;int change( string s){s=s+"dog!";cout﹤﹤ s﹤﹤ endl;}void main( ){string str("it is a ");change(str);}

25.#include ﹤iostream. h﹥template ﹤typename AT﹥AT max(AT x, AT y){retum(x﹥y)? x:y; void main( ){int i1=10, i2=56;double d1= 50.344, d2= 56.346;char c1='k', c2='n';cout﹤﹤"較大的整數(shù)是:"﹤﹤max(i1, i2)﹤﹤endl; cout﹤﹤"較大的雙精度型數(shù)是:"﹤﹤max(d1, a);cout﹤﹤ endl;cout﹤﹤"較大的字符是:"﹤﹤max(c1, c2)﹤﹤endl;}

四、完成程序題(本大題共5小題,每小題4分,共20分)

31.完成程序空白處,可參考以下運(yùn)行結(jié)果:4!=24n=-2!不能計(jì)算n!程序執(zhí)行結(jié)束#include ﹤iostream. h﹥int f(int n){if(n﹤=0) throw n;int s=1;for( ________ )s *=i; //計(jì)算1*2*3…*n的值 retum s;}void main( ){try{cout﹤﹤________﹤﹤endl;cout﹤﹤"-2!="﹤﹤f(-2)﹤﹤endl;}catch(int n) {cout﹤﹤"n="﹤﹤n﹤﹤"不能計(jì)算n!"﹤﹤endl;catch(...) { cout﹤﹤"出現(xiàn)異常!"﹤﹤endl;}cout﹤﹤"程序執(zhí)行結(jié)束"﹤﹤endl;}

32.#include ﹤iostream﹥using namespace std;________ PI= 3.1415;double length( float r) //圓的周長(zhǎng){return 2*PI*r;}________ //矩形的周長(zhǎng) { return 2*(x+y);}void main( ){float a =2, b=3, r=4;cout﹤﹤"圓周長(zhǎng)"﹤﹤ length(r)﹤﹤endl;cout﹤﹤"矩形周長(zhǎng)"﹤﹤ length(a,b)﹤﹤endl;}

33.程序用于在屏幕上顯示指定的文本文件的內(nèi)容。#include ﹤iostream﹥#include ﹤fstream﹥using namespace std;int main( ){ifstream ifile;char fn[ 20], ch;cout﹤﹤"輸入文件名"; cin﹥﹥fn;________; //打開指定的文件if(! ifile){cout﹤﹤fn﹤﹤"文件不能打開"﹤﹤endl;retum 0;}while((ch = ifile. get())!=EOF) ________; //輸出字符cout﹤﹤ endl;ifile. close(); //關(guān)閉文件return 1;}

34.類book,含有2個(gè)數(shù)據(jù)成員num編號(hào)和price價(jià)格,有成員函數(shù)set和display分別輸入和顯示書的編號(hào)和價(jià)格,在main中調(diào)用所有成員函數(shù)。#include ﹤ iostream﹥using namespace std;class book{private: char num[8];public:void set( ){ cin﹥﹥mum﹥﹥price;}void display( ){ cout﹤﹤ num﹤﹤" "﹤﹤ price﹤﹤ endl; }};void main( ){book b; ________;b. display( );}

35.一個(gè)通訊錄contacts有姓名name和電話tel兩個(gè)屬性,有三個(gè)成員函數(shù)searehN、insertN和deleteN分別完成查找、插入和刪除功能,請(qǐng)完成contacts的類圖。

五、程序分析題(本大題共2小題,每小題10分,共20分)

41.給出下面程序的輸出結(jié)果#include ﹤iostream﹥using namespace std;class Clock {public:Clock( ) {cout﹤﹤"clock的構(gòu)造函數(shù)"﹤﹤endl;}~Clock( ) {cout﹤﹤" clock的析構(gòu)函數(shù)﹤﹤endl; }};class Date{public:Date( ){cout﹤﹤"Date的構(gòu)造函數(shù)"﹤﹤endl;}~Date( ){cout﹤﹤"Date的析構(gòu)函數(shù)"﹤﹤endl;}};void main( ){Clock c;Date d;}

42.給出下面程序的輸出結(jié)果#include ﹤iostream﹥using namespace std;void main( ){void sort( int s[ ]);int score[5];int i;for(i=0;i﹤5;i++)score[i]=i;sort( score);cout﹤﹤"運(yùn)行結(jié)果是:";for(i=0;i﹤5;i++)cout﹤﹤score[i]﹤﹤" ";}void sort int s[ ]){int t;for(int i=0; i﹤4; i++)for (int j=i+1; j﹤5; j++)if(s[i]﹤s[j]){t=s[i]; s[i]=s[j]; s[j]=t;}}

六、程序設(shè)計(jì)題(本大題共1小題,共10分)

51.有一個(gè)Person類,私有數(shù)據(jù)成員name、age和sex分別表示人的姓名、年齡和性別。雇員類Employee是Person的派生類,新增數(shù)據(jù)成員部門department和薪水salary。請(qǐng)用C++代碼描述這兩個(gè)類,并用Employee類的成員函數(shù)Display實(shí)現(xiàn)雇員的姓名、年齡、性別、部門和薪水的輸出。(要求編寫派生類的構(gòu)造函數(shù))

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

自考備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

資料下載
  • 00152《組織行為學(xué)》【知識(shí)集錦】

    下載
  • 00158《資產(chǎn)評(píng)估》【知識(shí)集錦】

    下載
  • 00148《國(guó)際企業(yè)管理》【知識(shí)集錦】

    下載
  • 00160《審計(jì)學(xué)》【知識(shí)集錦】

    下載