?自考C++程序設計2011年1月試題
摘要:自考C++程序設計2011年1月試題及答案解析,該試卷為自考C++程序設計歷年真題試卷,包含答案及詳細解析。
自考C++程序設計2011年1月試題及答案解析
自考C++程序設計2011年1月試題及答案解析,該試卷為自考C++程序設計歷年真題試卷,包含答案及詳細解析。
一、單項選擇題(本大題共20小題,每小題1分,共20分。)在每小題列出的備選項中只有一項是最符合題目要求的,請將其代碼填寫在題后的括號內。錯選、多選或未選均不得分。
1.在哪種派生方式中,派生類可以訪問基類中的protected成員( )
A.public和private
B.public和protected
C.protected和private
D.僅protected
2.對C++語言和C語言的兼容性,描述正確的是( )
A.C++兼容C
B.C++部分兼容C
C.C++不兼容C
D.C兼容C++
3.在C++中使用流進行輸入輸出,其中用于屏幕輸出的對象是( )
A.cerr
B.cin
C.cout
D.cfile
4.對使用關鍵字new所開辟的動態(tài)存儲空間,釋放時必須使用( )
A.free
B.create
C.delete
D.realse
5.如沒有使用private關鍵字定義類的數(shù)據成員,則默認為( )
A.private
B.public
C.protected
D.friend
6.使用值傳遞方式將實參傳給形參,下列說法正確的是( )
A.形參是實參的備份
B.實參是形參的備份
C.形參和實參是同一對象
D.形參和實參無聯(lián)系
7.在函數(shù)調用時,如某一默認參數(shù)要指明一個特定值,則有( )
A.其之前所有參數(shù)都必須賦值
B.其之后所有參數(shù)都必須賦值
C.其前、后所有參數(shù)都必須賦值
D.其前、后所有參數(shù)都不必賦值
8.設存在函數(shù)int max(int, int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達式不正確的是( )
A.int m=max(22,max(59,70));
B.int m=max(max(22,59),70);
C.int m=max(22,59,70);
D.int m=max(59,max(22,70));
9.下列哪個類型函數(shù)不適合聲明為內聯(lián)函數(shù)( )
A.函數(shù)體語句較多
B.函數(shù)體語句較少
C.函數(shù)執(zhí)行時間較短
D.函數(shù)執(zhí)行時間過長
10.int Func(int,int);不可與下列哪個函數(shù)構成重載( )
A.int Func(int,int,int);
B.double Func(int,int);
C.double Func(double,double);
D.double Func(int,double);
11.對類中聲明的變量,下列描述中正確的是( )
A.屬于全局變量
B.只屬于該類
C.屬于該類,某些情況下也可被該類不同實例所共享
D.任何情況下都可被該類所有實例共享
12.類的私有成員可在何處訪問( )
A.通過子類的對象訪問
B.本類及子類的成員函數(shù)中
C.通過該類對象訪問
D.本類的成員函數(shù)中
13.如果沒有為一個類定義任何構造函數(shù)的情況下,下列描述正確的是( )
A.編譯器總是自動創(chuàng)建一個不帶參數(shù)的構造函數(shù)
B.這個類沒有構造函數(shù)
C.這個類不需要構造函數(shù)
D.該類不能通過編譯
14.一個類可包含析構函數(shù)的個數(shù)是( )
A.0個
B.1個
C.至少一個
D.0個或多個
15.this指針存在的目的是( )
A.保證基類公有成員在子類中可以被訪問
B.保證每個對象擁有自己的數(shù)據成員,但共享處理這些數(shù)據成員的代碼
C.保證基類保護成員在子類中可以被訪問
D.保證基類私有成員在子類中可以被訪問
16.下列關于類的權限的描述錯誤的是( )
A.類本身的成員函數(shù)只能訪問自身的私有成員
B.類的對象只能訪問該類的公有成員
C.普通函數(shù)不能直接訪問類的公有成員,必須通過對象訪問
D.一個類可以將另一個類的對象作為成員
17.在編譯指令中,宏定義使用哪個指令( )
A.#include
B.#define
C.#if
D.#else
18.設類A將其它類對象作為成員,則建立A類對象時,下列描述正確的是( )
A.A類構造函數(shù)先執(zhí)行
B.成員構造函數(shù)先執(zhí)行
C.兩者并行執(zhí)行
D.不能確定
19.下列描述錯誤的是( )
A.在創(chuàng)建對象前,靜態(tài)成員不存在
B.靜態(tài)成員是類的成員
C.靜態(tài)成員不能是虛函數(shù)
D.靜態(tài)成員函數(shù)不能直接訪問非靜態(tài)成員
20.對于友元描述正確的是( )
A.友元是本類的成員函數(shù)
B.友元不是本類的成員函數(shù)
C.友元不是函數(shù)
D.友元不能訪問本類私有成員
二、填空題(本大題共20小題,每小題1分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。
11.設要把一個文件輸出流對象myFile與文件“f:myText.txt”相關聯(lián),所用的C++語句是:_________。
12.C++中ostream類的直接基類是_________。
13.運算符[ ]只能用_________運算符來重載,不能用友元運算符來重載。
14.定義虛函數(shù)所用的關鍵字是_________。
15.vector類中用于返回向量中第1個對象的方法是_________。
16.在C++中,利用向量類模板定義一個具有20個char的向量E,其元素均被置為字符 "t",實現(xiàn)此操作的語句是_________。
17.類的繼承是指子類繼承基類的_________和成員函數(shù)。
18.不同對象可以調用相同名稱的函數(shù),但可導致完全不同的行為的現(xiàn)象稱為_________。
19._________指令指示編譯器將一個源文件嵌入到帶該指令的源文件之中。
110.設類A有成員函數(shù) void Fun(void); 要定義一個指向類成員函數(shù)的指針變量pafn來指向Fun,該指針變量的聲明語句是_________。
111.設在程序中使用如下語句申請了一個對象數(shù)組: Point*ptr=new Point[2]; 則在需要釋放ptr指向的動態(tài)數(shù)組對象時,所使用的語句是_________。
112.在保護派生中,基類權限為Private的成員在派生類中_________。
113.類A有如下成員函數(shù) int A:: fun(double x){return(int)x/2;} int A:: fun(int x){return x*2;} 設a為類A的對象,在主函數(shù)中有int s=a.fun( 6.0)+a.fun(2),則執(zhí)行該語句后,s值為_________。
114.對象傳送的消息一般由3部分組成:接收對象名、調用操作名和_________。
115.將指向對象的指針作為函數(shù)參數(shù),形參是對象指針,實參是對象的_________。
116.在使用string類的find成員函數(shù)來檢索主串中是否含有指定的子串時,若在主串中不 含指定的子串,find函數(shù)的返回值是_________。
117.在C++中,聲明布爾類型變量所用的關鍵字是_________。
118.執(zhí)行下列代碼 int a=29,b=100; cout﹤﹤setw(3)﹤﹤a﹤﹤b﹤﹤endl; 程序的輸出結果是:_________。
119.執(zhí)行下列代碼 cout﹤﹤"Hex:"﹤﹤hex﹤﹤255; 程序的輸出結果為_________。
120.C++語言中可以實現(xiàn)輸出一個換行符并刷新流功能的操控符是_________。
三、改錯題(本大題共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: int x,y;public: f1( ){x=0;y=0;}print( ){cout﹤﹤x﹤﹤', '﹤﹤y﹤﹤endl;}}main( ){f a;a.f1(1,1);a.print( );}
23.#include﹤iostream.h﹥class f{private: int x=0,y=0;public: void f1(int a, int b){x=a;y=b;}void get( ){cout﹤﹤x﹤﹤','﹤﹤y﹤﹤endl;}};main( ){f a;a.f1(1,3);a.get( );}
24.#include﹤iostream.h﹥class point{private:float x;public:void f(float a){x=a;}void f( ){x=0;}friend float max(point& a,point& b);};float max(point& a, point& b){return(a.x﹥b.x)?a.x: b.x;}main( ){point a,b;a.f( 2.2);b.f( 3.3);cout﹤﹤a.max(a,b);}
25.#include ﹤iostream.h﹥template ﹤class T﹥class f{private: T x,y;public:void fl(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.x﹤﹤a.y﹤﹤a.max( )﹤﹤endl;}
四、完成程序題(本大題共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.下面是一個輸入半徑,輸出其面積和周長的C++程序,在下劃線處填上正確的語句。#include ﹤iostream﹥using namespace std;_________pi= 3.14159;void main( ){double r;cout﹤﹤"r="; _________;double l= 2.0*pi*r;double s=pi*r*r;cout﹤﹤" The long is:"﹤﹤l﹤﹤endl;cout﹤﹤"The area is:"﹤﹤s﹤﹤endl;}
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.程序的輸出結果如下:1、950、30請根據輸出數(shù)據在下面程序中的下劃線處填寫正確的語句。源程序如下:#include ﹤iostream﹥using namespace std;class base {private:int m;public:base( ){ };base(int a):m(a){ }int get( ){return m;}void set(int a){m=a;}};void main( ){base*ptr=new base[2]; ptr-﹥set(30);ptr= _________;ptr-﹥set(50);base a[2]={1,9};cout﹤﹤a[0].get( )﹤﹤","﹤﹤a[1].get( )﹤﹤endl;cout﹤﹤ptr-﹥get( )﹤﹤","; ptr=ptr-1;cout﹤﹤_________﹤﹤endl; delete[ ]ptr;}
35.在下面橫線處填上求兩個浮點數(shù)之差的cha函數(shù)的原型聲明、調用方法。#include﹤iostream﹥using namespace std;void main( ) {float a,b;________ //函數(shù)cha的原型聲明a= 12.5;b= 6.5;float c=__________________; //調用函數(shù)cha cout﹤﹤c﹤﹤endl;}float cha(float x, float y){float w;w=x-y;return w;}
五、程序分析題(本大題共4小題,每小題5分,共20分)
41.給出下面程序的輸出結果。#include ﹤iostream.h﹥template﹤class T﹥class Sample{T n;public:Sample(T i){n=i;}int operator==(Sample&);};template﹤class T﹥int Sample﹤T﹥::operator==(Sample&s){if(n==s.n) return 1; else return 0;}void main( ) {Sample﹤int﹥s1(2),s2(3);cout﹤﹤"s1與s2的數(shù)據成員"﹤﹤(s1==s2?"相等":"不相等")﹤﹤endl;Sample﹤double﹥s3( 2.5),s4( 2.5);cout﹤﹤"s3與s4的數(shù)據成員"﹤﹤(s3==s4?"相等":"不相等")﹤﹤endl;}
42.給出下面程序的輸出結果。#include﹤iostream﹥using namespace std;template﹤class T﹥T max(T m1,T m2){return(ml﹥m2)?m1:m2;}void main( ) {cout﹤﹤max(1,7)﹤﹤" "﹤﹤max( 2.0, 5.0)﹤﹤endl;cout﹤﹤max('y','b')﹤﹤" "﹤﹤max("A","a")﹤﹤endl;}
43.給出下面程序的輸出結果#include﹤iostream﹥using namespace std;class A {public:int x;A( ){ }A(int a){x=a;}int get(int a){return x+a;}};void main( ) {A a(8);int(A:: *p)(int);p=A:: get;cout﹤﹤(a.*p)(5)﹤﹤endl;A*pi=&a;cout﹤﹤(pi-﹥*p)(7)﹤﹤endl;}
44.給出下面程序的輸出結果。#include ﹤iostream﹥#include ﹤string﹥using namespace std;class Book {char*title; char*author;int numsold;public:Book( ){ }Book(const char*str1, const char*str2, const int num) {int len=strlen(str1);title=new char[1en+1];strcpy(title, strl);len=strlen(str2);author=new char[1en+1];strcpy(author, str2);numsold=num; }void sethook(const char * strl, const char * str2, const int num) {int len=strlen(strl);title=new char[1en+1];strcpy(title, strl);len=strlen(str2);author=new char[1en+1];strcpy(author, str2);numsold=num;}~Book( ) {delete title;delete author;}void print(ostream& output) {output﹤﹤"書名:"﹤﹤title﹤﹤endl;output﹤﹤"作者:"﹤﹤author﹤﹤endl;output﹤﹤"月銷售量:"﹤﹤numsold﹤﹤endl; }};void main( ) {Book obj1("數(shù)據結構","嚴蔚敏",200),obj2;obj 1.print(cout);obj 2.setbook("C++語言程序設計","李春葆",210);obj 2.print(cout);}
六、程序設計題(本大題共1小題,共10分)
51.在三角形類TRI實現(xiàn)兩個函數(shù),功能是輸入三個頂點坐標判斷是否構成三角形 #include ﹤iostream.h﹥#include ﹤math.h﹥class point{private:float x,y;public: point(float a,float b){x=a;y=b;}point( ){x=0; y=0;}void set(float a,float b){x=a;y=b;}float getx( ){return x;}float gety( ){return y;}};class tri { point x, y, z; float s1, s2, s3;public: ....settri(....); //用于輸入三個頂點坐標....test(....); //用于判斷是否構成三角形};請寫出兩個函數(shù)的過程(如果需要形式參數(shù),請給出形參類型和數(shù)量,以及返回值類型)
延伸閱讀
- 2023年10月自考00257票據法真題
- 2023年10月自考00249國際私法真題
- 2023年10月自考00246國際經濟法概論真題
- 2023年10月自考00245刑法學真題
- 2023年10月自考00186國際商務談判真題
- 2023年10月自考00185商品流通概論真題
自考微信公眾號
掃碼添加
自考備考資料免費領取
去領取