?自考C++程序設計2010年10月試題
摘要:自考C++程序設計2010年10月試題及答案解析,該試卷為自考C++程序設計歷年真題試卷,包含答案及詳細解析。
自考C++程序設計2010年10月試題及答案解析
自考C++程序設計2010年10月試題及答案解析,該試卷為自考C++程序設計歷年真題試卷,包含答案及詳細解析。
一、單項選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項中只有一項是最符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均不得分。
1.C++中注釋“//”的有效范圍是( )
A.從“//”開始到行尾
B.從“//”開始到下一個“//”
C.“//”及其后一個字符
D.從“//”開始到程序尾
2.假定MyClass為一個類,則該類的復制構(gòu)造函數(shù)的聲明語句為( )
A.MyClass&(MyClass x);
B.MyClass(MyClass x);
C.MyClass(MyClass &x);
D.MyClass(MyClass *x);
3.下列選項不是C++關鍵字的是( )
A.typedef
B.void
C.bool
D.inc
4.用于標識十進制常量的前綴或后綴是( )
A.無前后綴
B.后綴L或l
C.前綴0
D.前綴0x
5.設int x=56; int r=x;若cout﹤﹤&x;顯示0012FF7A,則cout﹤﹤&r;輸出值為( )
A.56
B.0012FF7A
C.0012FF7B
D.未知
6.使用下列哪個流格式控制符可設置轉(zhuǎn)換基數(shù)為八進制( )
A.dec
B.oct
C.hex
D.endl
7.C++中是否允許在類結(jié)構(gòu)中定義函數(shù)( )
A.不允許
B.允許
C.僅允許定義構(gòu)造函數(shù)
D.只不允許定義構(gòu)造函數(shù)
8.設函數(shù)void subone(int &)將形參減1,如有整型變量int k=10,則執(zhí)行subone(k);后,k的值為( )
A.9
B.10
C.11
D.未知
9.對函數(shù)int max(int a, int b=0, int c=0, int d=0, int e=0);下列調(diào)用方式正確的是( )
A.int m=max(10,11,12,13,14);
B.int m=max(10,,12,13,14);
C.int m=max(10,11,,13,14);
D.int m=max(10,11,12,,14);
10.類MyClass的定義如下: class MyClass { public: MyClass( ){ } MyClass(int i){value=new int(i);} int * value; }; 若要對value賦值,則下面語句正確的是( )
A.MyClass my; my.value=10;
B.MyClass my; *my.value=10;
C.MyClass my; my.*value=10;
D.MyClass my(10);
11.包含哪種語句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)( )
A.變量定義
B.if……else
C.位操作
D.switch
12.聲明函數(shù)模板的關鍵字是( )
A.inline
B.template
C.const
D.short
13.對于類中的成員,使用public修飾,表明該成員的訪問權(quán)限是( )
A.公有的
B.私有的
C.保護的
D.不可見的
14.一個類中是否可以允許一個無參數(shù)構(gòu)造函數(shù)和一個全部都是默認參數(shù)的構(gòu)造函數(shù)共存( )
A.不允許
B.允許
C.無法確定
D.視構(gòu)造函數(shù)的函數(shù),可確定
15.析構(gòu)函數(shù)的參數(shù)個數(shù)為( )
A.0個
B.1個
C.至少1個
D.多于1個
16.非靜態(tài)成員函數(shù)都會有一個隱含指針,它是( )
A.self指針
B.this指針
C.current指針
D.one指針
17.下列訪問公有靜態(tài)成員的方式,錯誤的是( )
A.類名:: 靜態(tài)成員名
B.對象名.靜態(tài)成員名
C.對象指針-﹥靜態(tài)成員名
D.對象指針.靜態(tài)成員名
18.聲明友元使用下列哪個關鍵字( )
A.class
B.const
C.friend
D.virtual
19.派生類繼承了基類的( )
A.所有成員
B.部分成員
C.數(shù)據(jù)成員
D.成員函數(shù)
20.基類private成員,通過public派生,其在派生類中為( )
A.private
B.protected
C.public
D.不可訪問
二、填空題(本大題共20小題,每小題1分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。
11.執(zhí)行下列代碼 double pi= 3.141592; cout﹤﹤setprecision(1)﹤﹤pi; 程序的輸出結(jié)果是_________。
12.要使用STL庫提供的對數(shù)組進行升冪排序算法,在源程序中需要包含的頭文件是_________。
13.C++語言中動態(tài)回收內(nèi)存的關鍵字是_________。
14.執(zhí)行下列代碼 int b=100; cout﹤﹤"Oct:"﹤﹤oct﹤﹤b; 程序的輸出結(jié)果是_________。
15.C++語言中用于定義一個類的關鍵字是_________。
16.為了使用C++語言標準程序庫提供的string類,在程序中必須使用的文件包含命令是_________。
17.在程序中執(zhí)行int *a=new int之后,若a為空指針,則表明_________。
18.C++函數(shù)中傳遞對象地址值是使用_________作為參數(shù)。
19.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對象指針,實參是對象的_________。
110.C++函數(shù)有庫函數(shù)(標準函數(shù))和_________兩類。
111.C++中通過_________對類的對象進行初始化。
112.UML中實例連接反映對象之間的靜態(tài)關系,消息連接描述對象之間的_________關系。
113.若將一個對象說明為常對象,則通過該對象只能調(diào)用它的_________成員函數(shù),不能調(diào)用其它成員函數(shù)。
114.靜態(tài)成員函數(shù)是_________的成員,不是對象的成員。
115.私有繼承時,在派生類中基類的protected權(quán)限變?yōu)開________。
116.若使用一個表達式的含義能解釋為訪問多個基類中的成員,則這種對基類成員的訪 問就是不確定的,稱這種訪問具有_________。
117.如果在類模板的定義中有一個靜態(tài)數(shù)據(jù)成員,則在程序運行中會產(chǎn)生_________靜態(tài)變量。
118.vector類中用于獲取向量可以容納最多對象的個數(shù)的方法是_________。
119.C++用于運算符重載的關鍵字是_________。
120.含有___________的類稱為抽象類,它只能作為基類來使用。
三、改錯題(本大題共5小題,每小題2分,共10分)
21.#include ﹤ iostream. h ﹥class test1 {private: int x;public: test1 ( ) { x = 2 ; }void set(int a){x =a;}void get( ) { cout ﹤﹤ x ﹤﹤ endl; }};class test2{private: int x;public: test2 ( ) { x = 3; }void set( int a) { x = a; }void get( ) { cout ﹤﹤ x ﹤﹤ endl; }};class test: public testl, public test2 {private: int x;public: void set( int a) { x=a; }void gettest( ) {cout ﹤﹤ x ﹤﹤ endl; }};void main( ) {test a; a. get( );}
22.#include ﹤ iostream. h ﹥class test {private: int x, y;public: void test1 ( int a, int b) { x = a; y = b;}int max( );};int test: max( ) { if(x﹥y) return x; else return y;}void main( ){test a;a. test1(1,3);cout ﹤﹤ a. max ( ) ﹤﹤ endl;}
23.#include ﹤ iostream. h ﹥void main( ) {int x =5;const int * const p = &x;* p =88;cout ﹤﹤ * p ﹤﹤ endl;}
24.#include ﹤ iostream. h ﹥class point{private: float x, y ;public: f( float a, float b) { x = a; y = b ; }f( ) {x=0; y=0;}void getx( ) { cout ﹤﹤ x ﹤﹤ endl; }void gety ( ) { cout ﹤﹤ y ﹤﹤ endl ; }}class pointl{private: float x, y;public: f( float a, float b) { x = a; y = b ; }f( ){x=1; y=1;}void getx( ) {cout ﹤﹤x ﹤﹤endl;}void gety( ) {cout ﹤﹤y ﹤﹤endl;}};main( ) {point a;a.f( );a. getx( );a. gety( );}
25.#include ﹤ iostream. h ﹥void main( ) {string str1 (" we are here" );cout ﹤﹤ str1 ﹤﹤ endl;}
四、完成程序題(本大題共5小題,每小題4分,共20分)
31.在下面程序的下劃線處填上正確的數(shù)據(jù)類型,保證程序具有如下輸出結(jié)果:01717,17,17源程序如下:#include ﹤ iostream ﹥using namespace std;class base {public:______________num;base ( ) { }};int base::num = 0;void main( ) {cout ﹤﹤ base::num ﹤﹤ endl;_______________* p=&base::num;*p=17;cout ﹤﹤ base::num ﹤﹤ end1;base a,b;cout ﹤﹤ *p﹤﹤"," ﹤﹤ a. num ﹤﹤ "," ﹤﹤b. num;}
32.在下面橫線處填上正確的內(nèi)容,完成類的定義。class Base{int x;static const int b;public: Base( int, int);const int &a;};______________b =15;Base::Base(int i,int j): ___________{ }
33.完成下面程序中的show函數(shù)的定義,使其運行結(jié)果如下: In base In derived 程序清單如下:#include ﹤ iostream ﹥using namespace std;class base{pubhc :virtual void print( ){cout ﹤﹤ "In base" ﹤﹤ endl;}};class derived: public base{public :void print( ) { cout ﹤﹤ "In derived" ﹤﹤ endl; }};void show(base * pb, void (base:: * pf) ( ) ){_________} void main( ){base b;derived d;show ( &b, base::print);show ( &d, base::print);}
34.在下面程序的下劃線處填上正確的語句。#include ﹤ iostream ﹥using namespace std;template ﹤ class T ﹥T f( T&a, T&b, int n){for (int i=0;i ﹤n;i ++ )a[i] =a[i] +b[i];return a ;}void main( ){int a[5] ={1,2,3,4,5};int b[5] = { 100,200,3,4,51 , * p;for(int i =0; i ﹤2; i ++) p=_________ //調(diào)用函數(shù)ffor( ; p ﹤a +5; p ++ )cout﹤﹤_________﹤﹤endl;}
35.下列程序?qū),y,z按從小到大的順序排列并將結(jié)果返回給實參,在橫線處填入正確的內(nèi)容。 template ﹤ class T ﹥void order(_________){_________;if(x ﹥y) {a =x;x =y;y =a;}if(y ﹥z) {a =y;y =z;z =a;}if(x ﹥y) {a =x;x =y;y =a;}}
五、程序分析題(本大題共2小題,每小題10分,共20分)
41.給出下面程序的輸出結(jié)果#include ﹤ iostream ﹥using namespace std;template ﹤ class T ﹥T F(T x){return x ﹥ 5;}void main( ){int a = 15;cout ﹤﹤ F(a) ﹤﹤" ";double b = - 5.8976;cout ﹤﹤ F(b) ﹤﹤" ";cout ﹤﹤ F(5) ﹤﹤" ";}
42.給出下面程序的輸出結(jié)果#include ﹤ iostream ﹥using namespace std;class A{private: int X, Y;public: A ( int myx, int myy) { X = myx; Y = myy ;}void show ( ) { cout ﹤﹤ "X =" ﹤﹤ X ﹤﹤ " Y = " ﹤﹤ Y ﹤﹤ endl;}};class B : public A{private : int H, W;public: B( int myx,int myy,int myh,int myw): A( myx, myy)[H=myh;W=myw;}void show ( ) { cout ﹤﹤ "H = " ﹤﹤ H ﹤﹤ " ; W = " ﹤﹤ W ﹤﹤ endl; }};void main( ){B d(1,2,3,4) ;d. show ( ) ;}
六、程序設計題(本大題共1小題,共10分)
51.定義隊列類模板queue(先進先出),隊列的大小由使用者確定。要求該類模板對外提供如下二種基本操作:(1)inser(入隊列)(2)front(出隊列),用數(shù)組來實現(xiàn)#include ﹤ iostream ﹥using namespace std;template ﹤ class T, int size ﹥class queue {T x [ size ] ;int current, front, rear;public:queue ( ) { current = 0; front = 0; rear = 0;}....insert(....);....front(....);};請寫出兩個函數(shù)的過程(如果需要形式參數(shù),請給出形參類型和數(shù)量,以及返回值類型)
延伸閱讀
- 2023年10月自考00257票據(jù)法真題
- 2023年10月自考00249國際私法真題
- 2023年10月自考00246國際經(jīng)濟法概論真題
- 2023年10月自考00245刑法學真題
- 2023年10月自考00186國際商務談判真題
- 2023年10月自考00185商品流通概論真題
自考微信公眾號
掃碼添加
自考備考資料免費領取
去領取