?自考C++程序設(shè)計2014年4月試題
摘要:自考C++程序設(shè)計2014年4月試題及答案解析,該試卷為自考C++程序設(shè)計歷年真題試卷,包含答案及詳細解析。
自考C++程序設(shè)計2014年4月試題及答案解析
自考C++程序設(shè)計2014年4月試題及答案解析,該試卷為自考C++程序設(shè)計歷年真題試卷,包含答案及詳細解析。
一、單項選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項中只有一項是最符合題目要求的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均不得分。
1.下列關(guān)于類的權(quán)限描述錯誤的是( )
A.類本身的成員函數(shù)可以訪問自身的任何成員
B.類的對象只能訪問公有成員
C.普通函數(shù)可以不通過對象直接訪問類的公有成員
D.一個類可以包含另一個類的對象作為成員
2.只能在自身類和子類成員函數(shù)中被訪問,無法通過對象在類外訪問的成員屬于( )
A.private
B.protected
C.public
D.publish
3.面向?qū)ο笾械摹皩ο蟆笔侵? )
A.行為抽象
B.數(shù)據(jù)抽象
C.行為抽象和數(shù)據(jù)抽象的統(tǒng)一
D.行為抽象和數(shù)據(jù)抽象的對立
4.在類外定義成員函數(shù)時,::運算符兩側(cè)分別連接( )
A.返回值類型 函數(shù)名
B.返回值類型 類名
C.函數(shù)名 類名
D.類名 函數(shù)名
5.設(shè)函數(shù)int& index(int * a, int i)返回數(shù)組a中下標為i的元素,如存在整型數(shù)組int Array[ ]={1,2,3},在執(zhí)行index(Array, 2)++后,Array中各元素值為( )
A.{0, 1, 2}
B.{1, 1, 2}
C.{1, 2, 4}
D.{0, 2, 3}
6.類構(gòu)造函數(shù)定義的位置是( )
A.類體內(nèi)或體外
B.只是在類體內(nèi)
C.只在類體外
D.在類的成員函數(shù)中
7.設(shè)存在數(shù)組a,其長度為Len,則下列哪項泛型算法用于在a中尋找值Value的位置( )
A.reverse(a, a+Len, Value);
B.sort(a, a+Len, Value);
C.find(a, a+Len, Value);
D.copy(a, a+Len, Value);
8.關(guān)于對象的性質(zhì),下列描述錯誤的是:( )
A.同一類對象間可相互賦值
B.可以使用對象數(shù)組
C.對象不可以用作函數(shù)參數(shù)
D.一個對象可以用作另一個類的成員
9.聲明一個沒有初始化參數(shù)的對象,需調(diào)用( )
A.指定參數(shù)構(gòu)造函數(shù)
B.拷貝構(gòu)造函數(shù)
C.初始化函數(shù)
D.默認構(gòu)造函數(shù)
10.下列運算符不能重載的是( )
A.!
B.sizeof
C.new
D.delete
11.如P是一指針類型表達式,則下列表達式中不是左值表達式的是( )
A.P
B.*P
C.&P
D.P+1
12.使用下列流格式控制符能輸出一個換行符的是( )
A.dec
B.oct
C.hex
D.endl
13.下列表達式,能將P聲明為常量指針的是( )
A.const int * P;
B.int *const P;
C.const int * const P;
D.int * P;
14.C++程序文件擴展名為( )
A..cpp
B..h
C..lib
D..obj
15.對C++中主函數(shù)描述正確的是( )
A.名稱為main,可為多個
B.名稱不限,可為多個
C.名稱為main,必須有且只能有一個
D.名稱不限,必須有且只能有一個
16.假定有char * P="Hello";,要輸出這個字符串的地址值的正確寫法是( )
A.cout﹤﹤ *P
B.cout﹤﹤P
C.cout﹤﹤&P
D.cout﹤﹤(void *)P
17.下列描述錯誤的是( )
A.在沒創(chuàng)建對象前,靜態(tài)成員不存在
B.靜態(tài)成員是類的成員,不是對象成員
C.靜態(tài)成員不能是虛函數(shù)
D.靜態(tài)成員函數(shù)不能直接訪問非靜態(tài)成員
18.對于友元描述正確的是( )
A.友元是本類的成員函數(shù)
B.友元不是本類的成員函數(shù)
C.友元不是函數(shù)
D.以上皆不正確
19.一個函數(shù)功能不太復(fù)雜,但要求頻繁使用,則該函數(shù)適合作為( )
A.內(nèi)聯(lián)函數(shù)
B.重載函數(shù)
C.遞歸函數(shù)
D.嵌套函數(shù)
20.下列默認參數(shù)的聲明不正確的是( )
A.int max(int a, int b, int c, int d=0);
B.int max(int a, int b, int c=0, int d=0);
C.int max(int a=0, int b, int c=0, int d=0);
D.int max(int a, int b=0, int c=0, int d=0);
二、填空題(本大題共20小題,每小題1分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。
11.C++程序的編譯是以_________為單位進行的。
12.默認參數(shù)是在_________中說明的,默認參數(shù)可以多于一個。
13.通過C++語言中的_________機制,可以從現(xiàn)存類中構(gòu)建其子類。
14.拷貝構(gòu)造函數(shù)使用_________作為參數(shù)初始化創(chuàng)建中的對象。
15.基類的公有成員在通過公有派生得到的子類中訪問權(quán)限是_________。
16.要關(guān)閉一個輸出流對象myFile,所用的C++語句是_________。
17.執(zhí)行下列代碼:double pi= 3.1415926; cout﹤﹤setprecision(5)﹤﹤pi; 程序的輸出結(jié)果是_________。
18.對象作為函數(shù)參數(shù),就是將實參對象的_________傳遞給形參對象,這種傳遞是單向的。
19.建立一個對象時,對象的狀態(tài)是不確定的。為了使對象的狀態(tài)確定,必須對其進行正確的_________。
110.C++類中的_________函數(shù)在對象的生存期結(jié)束時被自動調(diào)用。
111.C++語言中的整數(shù)常量有四種:十進制常量、長整型常量、八進制常量和_________。
112.UML中對象之間的靜態(tài)關(guān)系是通過對象屬性之間的連接反映的,稱之為_________。
113.聲明一個常成員函數(shù)Fun,返回類型為char,第一個參數(shù)類型為int,第二個參數(shù)類型為double,則該函數(shù)的聲明原型是_________。
114.在C++語言中,利用向量類模板定義一個具有20個int類型且初值為1的向量C,實現(xiàn)此操作的語句是_________。
115.執(zhí)行下列代碼:int a=123,b=321; cout﹤﹤setw(3)﹤﹤a﹤﹤b﹤﹤endl; 程序輸出結(jié)果是:_________。
116.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對象指針,實參是對象的_________。
117.vector類中用于返回向量中第一個對象的方法是_________。
118.C++語言中動態(tài)分配內(nèi)存的關(guān)鍵字是_________。
119.C++類成員的訪問權(quán)限有_________、公有和保護三種。
120.寫出聲明一個復(fù)數(shù)對象num的語句,并使對象被初始化為單精度 2.2+ 1.3i,此聲明語句是_________。
三、改錯題(本大題共5小題,每小題2分,共10分)
21.#include ﹤iostream.h﹥ main( ){ int x=5, y=6; const int *p=&x; * p=y; cout﹤﹤*p﹤﹤endl; }
22.#include ﹤iostream.h﹥ class f { private: T x, y; public: f1(T a, T b){x=a; y=b;} T max( ){return(x﹥y)? x: y;} }; main( ) { f a; a.f1( 1.5, 3.8); cout﹤﹤a.max( )﹤﹤endl; }
23.#include ﹤iostream.h﹥ class point { private: float x,y; public: point(float a, float b){x=a; y=b; } f( ){x=0; y=0; } void getx( ){cout﹤﹤x﹤﹤endl;} void gety( ){cout﹤﹤y﹤﹤endl;} }; main( ) { point a ( 3.5); a.getx( ); }
24.#include ﹤iostream.h﹥class f{ private: float x,y; float get( ){return x+y;} public:f1(float a,float b){x=a;y=b;} }; main( ) { f a; a.f1(1, 3.8); cout﹤﹤a.get( )﹤﹤endl; }
25.#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 test1, public test 2. { private: int x; public: void set(int a){x=a;} void gettest( ){cout﹤﹤x﹤﹤endl;} }; main( ) { test a; a.get( ); }
四、完成程序題(本大題共5小題,每小題4分,共20分)
31.完成下面類中的成員函數(shù)的定義。 class point { private: int m, n; public: point(int, int); point(point&); }; point:: point(int a, int b) { m=a; _________=b; } point::point( _________ ) { m=t.m; n=t.n; }
32.#include ﹤iostream﹥ using namespace std; class base { private: int x; public: base(int a){x=a;} int get( ){return x:} void showbase( ) {cout﹤﹤"x="﹤﹤x﹤﹤endl; } }; class Derived: public base {private: int y; public: Derived(int a, int b): base(a) {y=b; } void showderived( ) {cout﹤﹤"x="﹤﹤get( )﹤﹤",y="﹤﹤y﹤﹤endl; } }; void main( ) { base b(3); Derived d(6, 7); b.showbase( ); d.showderived( ); _________; b.showbase( ); _________; b 1.showbase( ); base * pb=&b1; pb-﹥showbase( ); d.showderived( ); b.showbase( ); } 輸出結(jié)果如下: x=3 x=6,y=7 x=6 x=6 x=6 x=6,y=7 x=6
33.#include ﹤iostream﹥ #include ﹤fstream﹥ using namespace std; class complex { public: int real: int imag; complex(int r=0, int i=0) { real=r; imag=i; } }; complex operator+(_________,complex&b) { int r=a.real+b.real; int i=a.imag+b.imag; return _________; } void main( ) { complex x(1, 2), y(3, 4), z; z=x+y; cout﹤﹤z.real﹤﹤"+"﹤﹤z.imag﹤﹤"i"﹤﹤endl; }
34.下面程序的運行結(jié)果如下: This is line1 This is line2 This is line3 將下列程序補充完整,答案寫在答題紙上。源程序如下: #include ﹤iostream﹥ #include _________ using namespace std; void main( ) { fstream fin, fout; fout.open("my.txt", ios:: out); if(!fout.is_open( )) return; for(int i=0; i﹤3; i=i+1) fout﹤﹤"This is line"﹤﹤i+1﹤﹤endl; fout.close( ); fin.open("my.txt", ios:: in); if(! fin.is_open( )) return; char str[100]; while(_________) { fin.getline(str,100); cout﹤﹤str﹤﹤endl; } fin.close( ); }
35.求兩個浮點數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法。 #include ﹤iostream﹥ using namespace std; void main( ) { float a, b; _________; //函數(shù)cha的原型聲明 a= 12.5; b= 6.5; float c=_____________; //調(diào)用函數(shù)cha cout﹤﹤c﹤﹤endl; } float cha(float x,float y) { float w; w=x-y; return w; }
五、程序分析題(本大題共2小題,每小題10分,共20分)
41.#lnclude ﹤iostream.h﹥ void func( ); void main( ) { for(int i=0; i﹤6; i++) { func( ); } } void func( ) { int x=0; x++; static int y=0; y++; cout﹤﹤"x="﹤﹤x﹤﹤";y="﹤﹤y﹤﹤endl; }
42.#include ﹤iostream.h﹥ class A { public: A( ); void Show( ); ~A( ); private: static int c; }; int A:: c=O; A:: A( ) { cout﹤﹤"constructor."﹤﹤endl; c +=10; } void A:: Show( ) { cout﹤﹤"c="﹤﹤c﹤﹤endl; } A:: ~A( ) { cout﹤﹤"destrucator."﹤﹤endl; } void main( ) { A a, b; a.Show( ); b.Show( ); }
六、程序設(shè)計題(本大題共1小題,共10分)
51.在三角形類tri實現(xiàn)兩個函數(shù),功能是輸入三個頂點坐標判斷是否構(gòu)成等邊三角形 #include ﹤iostream.h﹥ #include ﹤math.h﹥ class point { point private: float x, y; public: f(float a, float b){x=a; y=b;} f( ){x=0; y=0;} Void set(float a, float b){x=a; y=b;} float getx( ){return x;} noat gety( ){return y;} }; class tri{ point x, y, z; float s1, s2, s3; public....settri(....); //用于輸入三個頂點坐標 ....test(....); //用于判斷是否構(gòu)成等邊三角形 }; 請寫出兩個函數(shù)的過程(如果需要形式參數(shù),請給出形參類型和數(shù)量,以及返回值類型)
延伸閱讀
- 2025年4月自考政治經(jīng)濟學(xué)(中級)全真模擬試題
- 2023年10月自考00257票據(jù)法真題
- 2023年10月自考00249國際私法真題
- 2023年10月自考00246國際經(jīng)濟法概論真題
- 2023年10月自考00245刑法學(xué)真題
- 2023年10月自考00186國際商務(wù)談判真題
自考微信公眾號
掃碼添加
自考備考資料免費領(lǐng)取
去領(lǐng)取