?自考C++程序設(shè)計(jì)2011年10月試題
摘要:自考C++程序設(shè)計(jì)2011年10月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。
自考C++程序設(shè)計(jì)2011年10月試題及答案解析
自考C++程序設(shè)計(jì)2011年10月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項(xiàng)中只有一項(xiàng)是最符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯(cuò)選、多選或未選均不得分。
1.C++中注釋“/*”的有效范圍是( )
A.從“/*”開始到行尾
B.從“/*”開始后不終止
C.從“/*”開始到“//”為止
D.從“/*”開始到“*/”為止
2.如想使用std命名空間,正確的程序語句是( )
A.using std;
B.namespace std;
C.using namespace;
D.using namespace std;
3.下列選項(xiàng)中不是C++關(guān)鍵字的是( )
A.bool
B.int
C.float
D.vat
4.用于標(biāo)識長整型常量的前綴或后綴是( )
A.無前后綴
B.后綴L或l
C.前綴零
D.前綴0x
5.對于new類型名[size]描述正確的是( )
A.申請可以存儲size個(gè)字節(jié)的空間
B.申請可以存儲1個(gè)該數(shù)據(jù)類型的空間
C.申請可以存儲size個(gè)該數(shù)據(jù)類型對象的空間
D.申請可以存儲1個(gè)字節(jié)的空間
6.使用下列哪個(gè)流格式控制符可以設(shè)置轉(zhuǎn)換基數(shù)為十六進(jìn)制( )
A.dec
B.oct
C.hex
D.endl
7.構(gòu)造函數(shù)用于( )
A.定義對象
B.初始化對象
C.清除對象
D.普通計(jì)算
8.設(shè)函數(shù)void swap(int,int)將交換兩形參數(shù)值,如有兩整型變量int a=10; int b=15,則執(zhí)行swap(a,b); 之后,a,b值分別為( )
A.15,10
B.15,15
C.10,15
D.10,10
9.設(shè)函數(shù)void subone(int)將形參值減1,如有整型變量int b=10;則執(zhí)行subone(b)后,b的值為( )
A.9
B.10
C.11
D.未知
10.C++中函數(shù)返回值類型不可以是( )
A.引用
B.指
C.結(jié)構(gòu)
D.數(shù)組
11.聲明函數(shù)int Func(int a =0,int b=3,int c=4)相當(dāng)于聲明了幾個(gè)函數(shù)形式( )
A.1
B.2
C.3
D.4
12.c++中專門定義一個(gè)僅在模板中使用的參數(shù)類型的關(guān)鍵字是( )
A.const
B.inline
C.short
D.typename
13.對于類中的成員,使用private修飾,表明該成員的訪問權(quán)限是( )
A.公有的
B.私有的
C.保護(hù)的
D.不可見的
14.使用new創(chuàng)建的對象,對其生命周期描述正確的是( )
A.由系統(tǒng)決定
B.由用戶控制
C.全局生命周期
D.永久存在
15.析構(gòu)函數(shù)被調(diào)用的時(shí)間點(diǎn)是( )
A.對象被創(chuàng)建時(shí)
B.對象被銷毀時(shí)
C.不會被調(diào)用
D.主函數(shù)被調(diào)用時(shí)
16.對象的構(gòu)造函數(shù)調(diào)用順序取決于( )
A.對象成員在初始化列表中給出的順序
B.對象成員在類中聲明的順序
C.對象成員與在初始化列表中順序和類中聲明順序均有關(guān)
D.隨機(jī)順序
17.下列對靜態(tài)成員函數(shù)描述正確的是( )
A.靜態(tài)成員函數(shù)中可使用1個(gè)this指針
B.靜態(tài)成員函數(shù)中不能使用this指針
C.靜態(tài)成員函數(shù)中可使用多個(gè)this指針
D.靜態(tài)成員函數(shù)中只可使用1個(gè)that指針
18.友元的聲明可出現(xiàn)在( )
A.類的私有部分
B.類的公有部分
C.類的保護(hù)部分
D.類的任何部分
19.在下列派生中,子類和父類間是isa關(guān)系的是( )
A.private
B.protected
C.public
D.publish
20.面向?qū)ο蟛粌H進(jìn)行功能抽象,還要進(jìn)行( )
A.動態(tài)抽象
B.消息抽象
C.數(shù)據(jù)抽象
D.算法抽象
二、填空題(本大題共20小題,每小題1分,共20分)請?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
11.在調(diào)用函數(shù)f1( )的過程中,又調(diào)用了函數(shù)f1( ),這種調(diào)用稱為_________調(diào)用。
12.C++中重載“+”運(yùn)算符的函數(shù)名是_________。
13.設(shè)為類A添加一個(gè)純虛函數(shù)Fun,其第一個(gè)參數(shù)類型為整型,第二個(gè)參數(shù)類型為字符型,函數(shù)返回值類型為整型。實(shí)現(xiàn)此操作的語句是_________。
14.C++程序的頭文件和源程序文件擴(kuò)展名分別為_________和.cpp。
15.在C++中,利用向量類模板定義一個(gè)具有20個(gè)int類型的向量B,實(shí)現(xiàn)此操作的語句是:_________。
16.通過私有派生,基類的私有和不可訪問成員在派生類中是不可訪問的,而公有和保護(hù)成員這時(shí)就成了派生類的_________。
17.字符串類型的變量一般用_________和字符數(shù)組類型的變量表示。
18.在一個(gè)C++程序中,每個(gè)變量都必須遵循_________的原則。
19.在常成員函數(shù)里不能更新對象的數(shù)據(jù)成員,也不能調(diào)用該類中沒用_________關(guān)鍵字修飾的成員函數(shù)。
110.UML是一種可視化建模語言,主要用于面向?qū)ο蟮腳________和建模。
111.復(fù)制構(gòu)造函數(shù)采用拷貝方式使用已有對象來建立新對象,又稱為_________函數(shù)。
112.對于c++類中的成員,若未使用訪問權(quán)限關(guān)鍵字進(jìn)行說明,默認(rèn)的權(quán)限是_________。
113.對象的行為是定義在對象屬性上的一組_________的集合。
114.設(shè)int max(int,int)表示計(jì)算兩個(gè)整數(shù)中的最大值,則執(zhí)行語句“cout﹤﹤max(max(2,3),max(7,8));”的輸出結(jié)果是_________。
115.函數(shù)fun的返回值是字符指針類型,該函數(shù)有兩個(gè)參數(shù),其中一個(gè)參數(shù)是字符類型,另一個(gè)參數(shù)是int類型引用,聲明函數(shù)fun的原型的語句為_________。
116.string類中用于交換兩個(gè)字符串對象的值的成員函數(shù)為_________。
117.無論變量x和y是整型還是浮點(diǎn)類型,x*y都表示這兩個(gè)變量的積,這是典型的_________的例子。
118.執(zhí)行下列代碼 int a=29, b=1001; cout﹤﹤a﹤﹤setw(6)﹤﹤b﹤﹤endl;} 程序輸出結(jié)果是:_________。
119.在C++中,賦值表達(dá)式y(tǒng)=x++的含義是_________。
120.設(shè)有如下定義:int x; 若要將整型變量y定義為變量x的引用,則應(yīng)使用的語句是_________。
三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)
21.#include ﹤ iostream. h ﹥void main( ){float * p; p = new float[ 5 ] ;for( i =0;i ﹤5 ;i++ ) { cin ﹥﹥ * (p+i) ;cout ﹤﹤ * (p+i) ﹤﹤ endl;}delete [ ] p;}
22.#include ﹤ iostream.h ﹥template ﹤ class T ﹥class f{private: T x, y;public: void f1(T a,T b){x=a;y=b;}T max( ){retum(x﹥y)? x:y;}};void main( ){f ﹤int﹥a; a. f1( 3.5, 3.8) ;cout ﹤﹤ a. max( ) ﹤﹤ endl;}
23.#include ﹤ iostream. h ﹥class test{private: static int x; int y;public: void test1( int a, int b) { x = a; y = b; }};void main( ) {test a;a. testl (2,3) ;}
24.#include ﹤ iostream. h ﹥class f{private: float x, y;public: void f1 ( float a, float b) { x = a; y = b; }f( ) {x=0;y=0;}void move(float a,float b){x =x +a; y =y-b;}void get ( ) { cout ﹤﹤ x ﹤﹤' '﹤﹤ y ﹤﹤ endl; }};void main( ){f *p,a;a. f1( 1.6, 3.8) ;p=&a; p. get( ) ;}
25.#include ﹤ iostream. h ﹥class point{int x; public: void init ( int a) { x = a; }int getx( ){ return x;}void setx ( int a) { x = a; }};void main( ){ point a;a. init (20,30) ;cout ﹤﹤ a. getx( ) ﹤﹤ endl;}
四、完成程序題(本大題共5小題,每小題4分,共20分)
31.完成下面類中成員函數(shù)的定義。class test{private:int n1;float f1;public:test(int,float f);test(test&);};test::test( _________ ){n1=n; f1=f;}test:: test(test&t){n1=t.n1;f1=_________; }
32.在下面程序中的下劃線處填上適當(dāng)?shù)恼Z句,使程序的輸出結(jié)果如下: 11,77 11,77 源程序如下:#include ﹤ iostream﹥using namespace std;class base {private:int x,y;public:void initxy(int a,int b){x=a;y=b;}void show( ){ _________ }} ;void main( ){base a,b;_________a.show( );b=a; b.show( );}
33.在下面程序中的下劃線處填上適當(dāng)?shù)某绦?,使程序的輸出結(jié)果如下: x=1,y=2 x=30,y=40 源程序如下:#include ﹤ iostream﹥class Sample {int x,y;public:Sample( ){x=y=0;}Sample(int i,int j){x=i;y=j;}void copy(Sample & s);void setxy(int i,int j){x=i;y=j;}void print( ){cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤endl;};void Sample::copy ( _________ ){x=s.x; y=s.y;}void func( _________ ){s 1.setxy(10,20);s 2.setxy(30,40);}void main( ){Sample p(1,2),q;q.copy(p);func(p,q);p.print( );q.print( );}Sample&s}
34.在下面程序的下劃線處填上正確的語句,使其得到下面的輸出結(jié)果。 20 21 22 a[0]=20 a[1]=21 a[2]=22 程序清單如下:#include ﹤ iostream ﹥using namespace std;class base {private:int x; public:void setx(int a){x=a;}int getx( ){return x;}} ;void main( ){base a[3],*p; a[0].setx(20);a[1].setx(21);a[2].setx(22);for(p=a; p﹤a+3; p++)_________for(int i=0;i﹤=2;i++)_________}
35.在下面程序中的下劃線處填上適當(dāng)?shù)某绦?,使程序的輸出結(jié)果如下: x=2,y=3 源程序如下:#include ﹤ iostream.h ﹥class Sample {int x,y;public:Sample( ){x=y=0;}Sample( _________ ){x=a; y=b;}void disp( ){cout﹤﹤"x="﹤﹤",y="﹤﹤y﹤﹤endl;}} ;void main( ){Sample s(2,3), _________p-﹥disp( );}
五、程序分析題(本大題共2小題,每小題10分,共20分)
41.請給出下面程序的輸出結(jié)果#include ﹤ iostream﹥using namespace std;void fun( ){static int n=25;n--;cout﹤﹤"n="﹤﹤n﹤﹤endl;}void main( ){for(int i=0;i﹤=2;i++) fun( );}
42.請給出下面程序的輸出結(jié)果#include ﹤ iostream﹥using namespace std;class point {int num;public:point(int n){cout﹤﹤"Initializing"﹤﹤n﹤﹤endl; num=n; }} ;void main( ){point A(88);cout﹤﹤"Entering main"﹤﹤endl;}
六、程序設(shè)計(jì)題(本大題共1小題,共10分)
51.給定兩個(gè)字符串對象S,P(P的長度小于S),實(shí)現(xiàn)一判斷函數(shù)find,檢測S是否完全包含P(串P是S的子串),若包含則返回P第一個(gè)字符在串S中的起始地址,否則返回-1。#include ﹤ iostream.h ﹥#include ﹤string﹥class str{string s,p;public:str(string&a,string&b){s=a;p=b;}...find(...);};請寫出函數(shù)的過程(如果需要形式參數(shù),請給出形參類型和數(shù)量,以及返回值類型)
延伸閱讀
- 2023年10月自考00257票據(jù)法真題
- 2023年10月自考00249國際私法真題
- 2023年10月自考00246國際經(jīng)濟(jì)法概論真題
- 2023年10月自考00245刑法學(xué)真題
- 2023年10月自考00186國際商務(wù)談判真題
- 2023年10月自考00185商品流通概論真題
自考微信公眾號
掃碼添加
自考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取