?自考C++程序設(shè)計(jì)2012年1月試題
摘要:自考C++程序設(shè)計(jì)2012年1月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。
自考C++程序設(shè)計(jì)2012年1月試題及答案解析
自考C++程序設(shè)計(jì)2012年1月試題及答案解析,該試卷為自考C++程序設(shè)計(jì)歷年真題試卷,包含答案及詳細(xì)解析。
一、單項(xiàng)選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項(xiàng)中只有一項(xiàng)是最符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均不得分。
1.如聲明對(duì)象數(shù)組,則下列描述正確的是( )
A.對(duì)每個(gè)元素均調(diào)用一次構(gòu)造函數(shù)
B.部分元素調(diào)用構(gòu)造函數(shù),其它元素不需調(diào)用
C.均不需要調(diào)用構(gòu)造函數(shù)
D.只是首元素調(diào)用構(gòu)造函數(shù)
2.不同對(duì)象調(diào)用同一成員函數(shù)時(shí),this指針指向( )
A.不同對(duì)象
B.相同對(duì)象
C.無(wú)對(duì)象
D.不確定
3.設(shè)存在函數(shù)int max(int,int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達(dá)式正確的是( )
A.int m=max(22,max(59,70));
B.int m=max(max(22,59),max(59,70));
C.int m=max(max(22,70),59);
D.以上皆正確
4.一個(gè)類可擁有多少個(gè)構(gòu)造函數(shù)( )
A.0個(gè)
B.1個(gè)
C.1或多個(gè)
D.以上皆對(duì)
5.在編譯指令中,嵌入指令是指( )
A.#include
B.#define
C.#if
D.#else
6.設(shè)存在數(shù)組a,其長(zhǎng)度為L(zhǎng)en,下列哪項(xiàng)操作是將a中元素復(fù)制到數(shù)組b中( )
A.reverse(a+a,Len,b);
B.sort(a,a+Len,b);
C.find(a,a+Len,b);
D.copy(a,a+Len,b);
7.下列哪個(gè)要素不是面向?qū)ο蟮年P(guān)鍵要素( )
A.模塊化
B.抽象性
C.封裝性
D.繼承性
8.下列對(duì)于類的描述錯(cuò)誤的是( )
A.類要先聲明后使用
B.類是具有唯一標(biāo)識(shí)的實(shí)體
C.兩個(gè)類可以使用同一個(gè)名稱
D.組成類的不僅有數(shù)據(jù),還可以有對(duì)數(shù)據(jù)進(jìn)行操作的函數(shù)
9.使用引用調(diào)用方式將實(shí)參傳給形參,下列說(shuō)法正確的是( )
A.形參是實(shí)參的備份
B.實(shí)參是形參的備份
C.形參和實(shí)參共享同一對(duì)象
D.形參和實(shí)參無(wú)聯(lián)系
10.關(guān)于對(duì)象的性質(zhì),下列描述錯(cuò)誤的是( )
A.同一類對(duì)象之間可相互賦值
B.不能使用對(duì)象數(shù)組
C.對(duì)象可以用作函數(shù)參數(shù)
D.一個(gè)對(duì)象可以用作另一個(gè)類的成員
11.類的私有成員可在哪里被賦值( )
A.類體中
B.該類的成員函數(shù)中
C.A和B
D.以上都不是
12.設(shè)存在數(shù)組a,其長(zhǎng)度為L(zhǎng)en,則下列哪個(gè)泛型算法用于反轉(zhuǎn)a中各元素( )
A.reverse(a,a+Len);
B.sort(a,a+Len);
C.find(a,a+Len,value);
D.copy(a,a+Len,b);
13.用于標(biāo)識(shí)八進(jìn)制常量的前綴或后綴是( )
A.無(wú)
B.后綴L或l
C.前綴零
D.前綴0x
14.派生類中繼承的基類成員初始化如何進(jìn)行( )
A.由派生類構(gòu)造函數(shù)調(diào)用基類的構(gòu)造函數(shù)進(jìn)行
B.由派生類構(gòu)造函數(shù)進(jìn)行
C.由基類構(gòu)造函數(shù)進(jìn)行,無(wú)需派生類構(gòu)造函數(shù)調(diào)用
D.以上皆不正確
15.對(duì)于多重繼承,下列描述正確的是( )
A.所有基類使用相同的派生方式
B.每個(gè)基類可使用不同派生方式
C.只能是public派生
D.只能是protected派生
16.下列關(guān)于類的權(quán)限描述錯(cuò)誤的是( )
A.類本身的成員函數(shù)可以訪問(wèn)自身的任何成員
B.類的對(duì)象可以訪問(wèn)該類的所有成員
C.普通函數(shù)不能直接訪問(wèn)類的公有成員,必須通過(guò)成員函數(shù)對(duì)其訪問(wèn)
D.一個(gè)類可以將另一個(gè)類的對(duì)象作為成員
17.運(yùn)算符delete與哪個(gè)函數(shù)一起運(yùn)行( )
A.構(gòu)造函數(shù)
B.析構(gòu)函數(shù)
C.主函數(shù)
D.不與任何函數(shù)一起工作
18.一個(gè)類可以獲得另一個(gè)類的特性的機(jī)制稱為( )
A.抽象
B.封裝
C.繼承
D.多態(tài)性
19.使用下列哪個(gè)格式控制符可設(shè)置轉(zhuǎn)換十六進(jìn)制為十進(jìn)制( )
A.dec
B.oct
C.hex
D.endl
20.對(duì)引用調(diào)用描述正確的是( )
A.分配新存儲(chǔ)空間
B.修改已存儲(chǔ)空間的名稱為引用名
C.引用名與已存在存儲(chǔ)空間無(wú)任何關(guān)聯(lián)
D.將引用名標(biāo)識(shí)符與一塊已存在儲(chǔ)區(qū)域相關(guān)聯(lián),沒(méi)有分配新存儲(chǔ)空間
二、填空題(本大題共20小題,每小題1分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
11.公共派生中,基類的公有成員在派生類中是______。
12.若要使用標(biāo)準(zhǔn)輸入流機(jī)制從鍵盤輸入一個(gè)整數(shù)賦給整型變量a,相應(yīng)的C++語(yǔ)句是______。
13.UML中對(duì)象行為之間的動(dòng)態(tài)關(guān)系是通過(guò)對(duì)象行為之間的依賴關(guān)系表現(xiàn)的,稱之為_(kāi)_____。
14.C++函數(shù)中按引用調(diào)用傳遞參數(shù)時(shí)使用______作為參數(shù)。
15.在C++中除具有______語(yǔ)句和switch語(yǔ)句的函數(shù)外,其它函數(shù)都可以說(shuō)明為內(nèi)聯(lián)函數(shù)。
16.C++中規(guī)定模板以______關(guān)鍵字和一個(gè)形參表示開(kāi)頭。
17.構(gòu)造函數(shù)不能被繼承,一個(gè)派生類只能調(diào)用它的______基類的構(gòu)造函數(shù)。
18.vector類中用于獲取存放的元素個(gè)數(shù)的方法是______。
19.C++中istream類的直接基類是______。
110.要關(guān)閉一個(gè)文件輸出流對(duì)象myFile,所用的C++語(yǔ)句是______。
111.執(zhí)行下列代碼 double pi= 3.141592 cout﹤﹤setprecision(2)﹤﹤pi; 程序的輸出結(jié)果是______。
112.在私有派生中,基類的權(quán)限為private的成員,在派生類中______。
113.C++總共有3種文件流,分別是輸入文件流、輸出文件流和______。
114.C++使用流進(jìn)行輸入輸出,其中能捕獲鍵盤輸入的對(duì)象是______。
115.在vector類中刪除向量中最后一個(gè)對(duì)象的方法是______。
116.函數(shù)重載可使一個(gè)函數(shù)名具有多種功能,稱這種特性為_(kāi)_____。
117.C++語(yǔ)言對(duì)C語(yǔ)言做了很多改進(jìn),C++語(yǔ)言相對(duì)于C語(yǔ)言的最根本的變化是引進(jìn)了______概念。
118.______指令定義一個(gè)標(biāo)識(shí)符及串,在源程序中每次遇到該標(biāo)識(shí)符時(shí),編譯器均用定義的串代替之。
119.在C++標(biāo)準(zhǔn)輸出方式中,要設(shè)置輸出數(shù)據(jù)字段寬度width所使用的操控符是______。
120.設(shè)有定義int x; float y;,則10+x+y值的數(shù)據(jù)類型是______。
三、改錯(cuò)題(本大題共5小題,每小題2分,共10分)
21.#include ﹤iostream.h﹥ main( ){ int x=9,y=8,z=7; const int * p=z; cout﹤﹤ * p﹤﹤endl; }
22.#include ﹤iostream.h﹥ main( ){ int x=8,y=6; const int*const p=&x; p=&y; cout﹤﹤* p﹤﹤endl; }
23.#include ﹤iostream.h﹥ main( ){ folat p; p=new folat[5]; for(int i=0;i﹤5;i++) {cin﹥﹥ * (p+i);cout﹤﹤ * (p+i)﹤﹤endl;} delete p; }
24.template﹤class T﹥ T f(T x){ T y; y=x+T; return y; }
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;} }; main( ){ point a; a.init(20,30); cout﹤﹤a.getx( )﹤﹤endl; }
四、完成程序題(本大題共5小題,每小題4分,共20分)
31.在下面程序的下劃線處填上正確的語(yǔ)句,使其得到下面的輸出結(jié)果。 x=2,y=3 #include ﹤iostream.h﹥ class Sample { int x,y; public: Sample( ){ x=y=0; } Sample(int a,int b){ x=a; (__________) } void disp( ) { cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤endl; } }(____­_______) void main( ) { Sample s(2,3), *p=&s; p-﹥disp( ); }
32.在下劃線處填上適當(dāng)?shù)恼Z(yǔ)句,使程序的輸出結(jié)果如下: n=30 #include ﹤ iostream.h ﹥ template﹤ class T ﹥ class Sample { T n; public: Sample( ){ } Sample(T i){_________} Sample﹤T﹥&operator+(const Sample﹤T﹥&); void disp( ){cout﹤﹤"n="﹤﹤n﹤﹤endl;} }; template﹤class T﹥ Sample﹤T﹥&Sample﹤T﹥::operator+(const Sample﹤T﹥&s) { static Sample﹤T﹥temp; return temp; } void main( ) { Sample﹤int﹥s1(10),s2(20),s3; s3=s1+s2; s 3.disp( ); }
33.在下劃線處填上適當(dāng)?shù)恼Z(yǔ)句,使程序的輸出結(jié)果如下: 1 2 3 4 5 6 7 8 9 10 #include ﹤iostream.h﹥ class Sample { int A[10][10]; public: int &operator( )(int,int); }; int &Sample::operator( )(int x,int y) { return A[x][y]; } void main( ) { Sample a; int i, j; _________ for(j=0;j﹤10;j++) _________ for(i=0;i﹤10;i++) cout﹤﹤a(i, 1)﹤﹤ " "; cout﹤﹤endl; }
34.在下劃線處填上適當(dāng)?shù)木渥?,完成函?shù)的定義。 #include ﹤iostream.h﹥ class Sample { int x; public: Sample( ){ }; _________{x=a;} _________{x=a.x+++10;} void disp( ){cout﹤﹤"x="﹤﹤x﹤﹤endl;} }; void main( ) { Sample s1(2),s2(s1); s 1.disp( ); s 2.disp( ); }
35.輸入一個(gè)字符串,將其逆序后輸出。 #include ﹤iostream﹥ using namespace std; void main( ) { char a[50];memset(a,0,sizeof(a)); int i=0,j; char t; cin.getline(a,50,' '; for(i=0, j=strlen(a)-1;i﹤_________;i++, j-- ) { t=a[i]; a[j]=t; } cout﹤﹤a﹤﹤endl; }
五、程序分析題(本大題共4小題,每小題5分,共20分)
41.給出下面程序的輸出結(jié)果 #include ﹤iostream.h﹥ class example { int a; public: example(int b){a=b++;} void print( ){a=a+1;cout﹤﹤a﹤﹤" ";} void print( )const{cout﹤﹤a﹤﹤"";} }; void main( ) { example x(3); const example y(2); x.print( ); y.print( ); }
42.給出下面程序的輸出結(jié)果 #include ﹤iostream.h﹥ class Sample { int x,y; public: Sample( ){x=y=0;} Sample(int a,int b){x=a;y=b;} ~Sample( ) { if(x==y) cout﹤﹤"x=y"﹤﹤endl; else cout﹤﹤"x!=y"﹤﹤endl; } void disp( ) { cout﹤﹤"x="﹤﹤x﹤﹤",y="﹤﹤y﹤﹤endl; } }; void main( ) { Sample s1(2,3); s 1.disp( ); }
43.給出下面程序的輸出結(jié)果 #include ﹤iostream.h﹥ class Sample { int n; static int sum; public: Sample(int x){n=x;} void add( ){sum+=n;} void disp( ) { cout﹤﹤"n="﹤﹤n﹤﹤",sum="﹤﹤sum﹤﹤endl; } }; int Sample::sum=0; void main( ) { Sample a(2),b(3),c(5); a.add( ); a.disp( ); b.add( ); b.disp( ); c.add( ); c.disp( ); }
44.給出下面程序的輸出結(jié)果 #include ﹤iostream.h﹥ class A{ private: friend class B; A(int val=0):data(val),use(1){ } int use,data; }; class B{ public: A*pa; B(int val=0):pa(new A(val)){ } ~B( ){if( -- pa -﹥use==0)delete pa;} B(B&rhs){ ++ rhs -﹥use;pa=rhs.pa;} B&operator=(B&rhs); A*operator -﹥( ){return pa;} void Display( ){ cout﹤﹤"data="﹤﹤pa -﹥data﹤﹤",use="﹤﹤pa -﹥use﹤﹤endl; } }; B&B::operator=(B&rhs) { if(this ==&rhs)return*this; if( -- pa -﹥use = =0)delete pa; ++ rhs -﹥use; pa=rhs.pa; return * this; } int main( ){ B b1(1),b2(b1),b3(3); b 1.Display( ); b 2.Display( ); b 3.Display( ); b3=b1; b 1.Display( ); b 3.Display( ); return 0;
六、程序設(shè)計(jì)題(本大題共1小題,共10分)
51.已知一個(gè)student類,包括學(xué)姓名,成績(jī)和等級(jí),不含任何成員函數(shù),process為學(xué)生信息處理類。 class student{ char name[10]; int deg; char level[7]; friend class process: public: student(char na[ ],int d){strcpy(name,na);deg=d;} } ; class process{ public: void trans(student s[ ]){…} //根據(jù)學(xué)生成績(jī)計(jì)算學(xué)生等級(jí)(優(yōu)大于89分,良大于79分,中大于69分,及格大于59分,不及格小于60分) void disp(student s[ ]){…} //根據(jù)成績(jī)降序打印所有學(xué)生信息 }; 要求實(shí)現(xiàn)process類中的兩個(gè)函數(shù):
延伸閱讀
- 2025年4月自考政治經(jīng)濟(jì)學(xué)(中級(jí))全真模擬試題
- 2023年10月自考00257票據(jù)法真題
- 2023年10月自考00249國(guó)際私法真題
- 2023年10月自考00246國(guó)際經(jīng)濟(jì)法概論真題
- 2023年10月自考00245刑法學(xué)真題
- 2023年10月自考00186國(guó)際商務(wù)談判真題
自考微信公眾號(hào)
掃碼添加
自考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取