- 計算機二級《C++》上機考前沖刺題 推薦度:
- 相關(guān)推薦
2016計算機二級《C++》上機沖刺題
2016年全國計算機等級考試時間為3月26日-29日,為了幫助大家順利通過計算機二級考試,下面百分網(wǎng)小編為大家?guī)?016計算機二級《C++》上機沖刺題,供大家參考學(xué)習(xí),預(yù)祝考生備考成功!
一、選擇題(每小題1分,共40分)
1、下列排序方法中,最壞情況下比較次數(shù)最少的是( )。
A.冒泡排序
B.簡單選擇排序
C.直接插入排序
D.堆排序
2、下面程序的運行結(jié)果為( )。
#include
class A
{
public:
A(){tout<<”1”;}
~A(){tout<<”2”;}
};
class B:public A
{
public:
B(){cout<<”3”;}
~B(){cout<<”4”;}
};
void main()
{
B b;
}
A.1234
B.1324
C.1342
D.3142
3、以下程序中調(diào)用cin函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是( )。
#include
void main()
{int * P,* q,a,b;
P=&a:
eout<<”input a:”;
cin>>P:
A.* P表示的是指針變量P的地址
B.P表示的是變量a的地址,而不是變量a的值
C.*P表示的是指針變量P的值
D.*P只能用來說明P是一個指針變量
4、與語句cout
B.cout<<‘\l2’:
C.cout <<’\xA’;
D.cout<<‘\0’:
5、如果表達式x * y+z中,“*”是作為友元函數(shù)重載的,“+”是作為成員函數(shù)重載的,則該表達式還可為 ( )。
A.operator+(operator$(X,Y),z)
B.x.operator+(operator * (x,y),Z)
C.Y.operator * (operator+(x,Y),z)
D.x.operator+(operator{(X,Y))
6、在下列關(guān)鍵字中,不能用來表示繼承方式的是( )。
A.private
B.static
C.public
D.protected
7、下面的( )選項不能作為函數(shù)的返回類型。
A.void
B.int
C.new
D.long
8、有如下函數(shù)定義:
void funC(int a,int&B.{a++;b++;} 若執(zhí)行代碼段:
int x=0,Y=1: funC(X,y);
則變量X和y的值分別是( )。
A.0和1
B.1和1
C.0和2
D.1和2
9、定義無符號整數(shù)類為UInt,下面可以作.為類UInt實例化值的是( )。
A.一369
B.369
C.0.369
D.整數(shù)集合{1,2,3,4,5}
10、下列關(guān)于類定義的說法中,正確的是( )。
A.類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明
B.類成員的缺省訪問權(quán)限是保護的
C.數(shù)據(jù)成員必須被聲明為私有的
D.成員函數(shù)只能在類體外進行定義
11、 有如下程序:
#nclude
using namespace std;
int main()
{
void function(double val);
double val;
function(val);
cout< return 0;
}
void function(double val)
} val=3;}
編譯運行這個程序?qū)⒊霈F(xiàn)的情況是( )。
A.編譯出錯,無法運行
B.輸出:3
C.輸出:3.0
D.輸出一個不確定的數(shù)
12、 this指針是C++語言實現(xiàn)( )的一種機制。
A.抽象
B.封裝
C.繼承
D.重載
13、 下面關(guān)于虛函數(shù)的描述,錯誤的是( )。
A.在成員函數(shù)聲明的前面加上virtual修飾,就可把該函數(shù)聲明為虛函數(shù)
B.基類中說明了虛函數(shù)后,派生類中對應(yīng)的函數(shù)也必須說明為虛數(shù)
C.虛函數(shù)可以是另一個類的友元函數(shù),但不能是靜態(tài)成員函數(shù)
D.基類中說明的純虛函數(shù)在其任何派生類中都必須實現(xiàn)
14、 有如下程序:
#include
using namespaee std;
int main()
{
void function(double val);
double val:
function(val);
eout< return 0;
}
void function(double val)
{
val=3;
}
編譯運行這個程序?qū)⒊霈F(xiàn)的情況是( )。
A.編譯出錯,無法運行
B.輸出:3
C.輸出:3.0
D.輸出一個不確定的數(shù)
15、 面向?qū)ο蠓椒ㄖ,繼承是指( )。
A.一組對象所具有的相似性質(zhì)
B.一個對象具有另一個對象的性質(zhì)
C.各對象之間的共同性質(zhì)
D.類之間共享屬性和操作的機制
16、 下列程序的運行結(jié)果為( )。 #include
void main() {
int a=2:
int b=a+1: cout
B.0
C.0.7
D.0.66666666…
17、 有如下定義:
int a[5]={1,3,5,7,9},* P=a;
下列表達式中不能得到數(shù)值5的是( )。
A.a[2]
B.a[3]
C.*(P+2)
D.+P+4
18、 C++系統(tǒng)預(yù)定義了4個用于標(biāo)準(zhǔn)數(shù)據(jù)流的對象,下列選項中不屬于此類對象的是( )。
A.cout
B.cin
C.cerr
D.cset
19、 有如下程序:
#include
using namespace std;
class GA{
public:
virtual int f()t retum l;}
};
class GB:public GA{
public:
virtual int f(){retum 2;}
};
void show(GA g){eout<<9.f();}
void display(GA&g){cout<<9.f();}
int main()
{
GA a;show(A.;display(A.;
GB b;show(B.;display(B.;
return 0;
}
執(zhí)行這個程序的輸出結(jié)果是( )。
A.1111
B.1211
C.1112
D.1212
20、 下列敘述中正確的是( )。
A.有一個以上根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B.只有一個根結(jié)點的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C.循環(huán)鏈表是非線性結(jié)構(gòu)
D.雙向鏈表是非線性結(jié)構(gòu)
21、 下列關(guān)于虛函數(shù)的說明中,正確的是( )。
A.從虛基類繼承的函數(shù)都是虛函數(shù)
B.虛函數(shù)不得是靜態(tài)成員函數(shù)
C.只能通過指針或引用調(diào)用虛函數(shù)
D.抽象類中的成員函數(shù)都是虛函數(shù)
22、 某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點在第1層)( )。
A.3
B.4
C.6
D.7
23、 在數(shù)據(jù)庫設(shè)計中,將E~R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于( )。
A.需求分析階段
B.概念設(shè)計階段
C.邏輯設(shè)計階段
D.物理設(shè)計階段
24、 下列關(guān)于類模板的模板參數(shù)的敘述中,錯誤的是( )。
A.模板參數(shù)可以作為數(shù)據(jù)成員的類型
B.模板參數(shù)可以作為成員函數(shù)的返回類型
C.模板參數(shù)可以作為成員函數(shù)的參數(shù)類型
D.模板參數(shù)不能作為成員函數(shù)的局部變量的類型
25、 在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是( )。
A.可行性分析報告
B.軟件需求規(guī)格說明書
C.概要沒計說明書
D.集成測試計劃
26、 下面關(guān)于模板的描述,錯誤的是( )。
A.函數(shù)模板和類模板的參數(shù)可以是任意的數(shù)據(jù)類型
B.類模板不能直接使用,必須先實例化為相應(yīng)的模板類,然后定義了模板類的對象后才能使用
C.函數(shù)模板不能直接使用,需要實例化為模板函數(shù)后才能使用
D.類模板的成員函數(shù)都是模板函數(shù)
27、 數(shù)據(jù)庫系統(tǒng)的三級模式不包括( )。
A.概念模式
B.內(nèi)模式
C.外模式
D.數(shù)據(jù)模式
28、下列語句中不是死循環(huán)的是( )。
A.int i=10;
B.for(int i=1;j<10;i++)
while(1) {
{ i--; i--; }
if(i==1)break;
C.int i-0;
D.int i=1:
29、 為了取代c中帶參數(shù)的宏,在c++中使用( )。
A.重載函數(shù)
B.內(nèi)聯(lián)函數(shù)
C.遞歸函數(shù)
D.友元函數(shù)
30、 C++語言對C語言做了很多改進,C++語言相對于C語言的最根本的變化是( )。
A.增加了一些新的運算符
B.允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù)
C.規(guī)定函數(shù)說明符必須用原型
D.引進了類和對象的概念
31、 派生類的成員函數(shù)不能訪問基類的( )。
A.公有成員和保護成員
B.公有成員
C.私有成員
D.保護成員
32、下列代碼段中聲明了3個類:
Class Person{};
Class Student:publiC Person{};
Class Undergraduate:Student{};
下列關(guān)于這些類之間關(guān)系的描述中,錯誤的是( )。
A.類Person是類Undergraduate的基類
B.類Undergraduate從類Student公有繼承
C.類Student是類Person的派生類
D.類Undergraduate是類Person的派生類
33、 若有下面的函數(shù)調(diào)用:
fun(fl+b,3,max(n一1,B.)
則fun的實參個數(shù)是( )。
A.3
B.4
C.5
D.6
34、 有如下兩個類定義:
class XX{
private:
double xl;
protected:
double x2;
public:
double x3;
};
class YY:protected XX{
private:
double yl;
protected:
double y2;
public:
double y3;
在類YY中保護成員變量的個數(shù)是( )。
A.1
B.2
C.3
D.4
35、 下列關(guān)于運算符重載的描述中,正確的是( )。
A.運算符重載為成員函數(shù)時,若參數(shù)表中無參數(shù),重載的是一元運算符
B.一元運算符只能作為成員函數(shù)重載
C.二元運算符重載為非成員函數(shù)時,參數(shù)表中有一個參數(shù)
D.C++中可以重載所有的運算符
36、 建立派生類對象時,3種構(gòu)造函數(shù)分別是a(基類的構(gòu)造函數(shù))、b(成員對象的構(gòu)造函數(shù))、C(派生類)構(gòu)造函數(shù)),這3種構(gòu)造函數(shù)的調(diào)用順序為( )。
A.abC
B.aCb
C.Cab
D.Cba
37、 在下列枚舉符號中,用來表示“相對于當(dāng)前位置”文件定位方式的是( )。
A.ios_base::cur
B.ios—base::beg
C.los_base::0ut
D.ios—base::end
38、 當(dāng)使用ifstream流類定義一個流對象并打開一個磁盤文件時,文件的默認(rèn)打開方式為( )。
A.ios—base::in
B.ios—base::in l ios base::0ut
C.los base;:0ut
D.ios_base::in&ios_base::0ut
39、 下列有關(guān)運算符重載的敘述中,正確的是( )。
A.運算符重載是多態(tài)性的一種表現(xiàn)
B.C++中可以通過運算符重載創(chuàng)造新的運算符
C.C++中所有運算符都可以作為非成員函數(shù)重載
D.重載運算符時可以改變其結(jié)合性
40、 必須用一對大括號括起來的程序段是( )。
A.switCh語句中的ease標(biāo)號語句
B.if語句的分支
C.循環(huán)語句的循環(huán)體
D.函數(shù)的函數(shù)體
二、基本操作題(18分)
41、請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl,該工程含有一個源程序文件pn,jl.cpp。其中位于每個注釋“//ERROR 木}}水found}}水木”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結(jié)果為:
The value is 10
注意:只修改注釋“//ERROR **** found****”的下一行語句,不要改動程序中的其他內(nèi)容。
//pmjl.cpp
#include
using namespace std;
class MyClass{
int value;
public:
//ERROR********found*********
void MyClass(int val):value(val){}
int GetValue()const{return value;}
void SetValue(int val);
};
//ERROR********found********
inline void SetValue(int val){value=val;}
int main()
MyClass obj(O);
obj.SetValue(10);
//ERROR********found********下列語句功能是輸出obj的成員value的值
tout<<”The value is”< return 0;
}
三、簡單應(yīng)用題(24分)
42、請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,其中有矩陣基類MatrixBase、矩陣類Matrix和單位陣UnitMatrix的定義,還有main函數(shù)的定義。請在橫線處填寫適當(dāng)?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:
1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 注意:只能在橫線處填寫適當(dāng)?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//t+++found母
***”。
#nClude using namespaCe std; //矩陣基礎(chǔ)類,一個抽象類
Class MatrixBase{ int rows,Cols; publiC:
MatrixBase(int rows,int Cols):roWS(rows),Cow(Cols){} int getRows()Const{retum rows;}//矩陣行數(shù)
int getCols()Const{return Cols;}//矩陣列數(shù)
virtual double getElement(int r,int C)Const=0;//取第i個元素的值 void show()Const{//分行顯示矩陣中所有元素
for(int i=0;i for(int j=0;j } }; //矩陣類
Class Matrix:publiC MatfixBase{ double*val;
publiC: //**********found**********
Matrix(int rows,int Cols,double in[]=NULL):——{ //**********found**********
val=;
for(int i=0:i val[i]=(m==NULL?0.0:Ill[i]);
}
一Matrix(){delete[]val;} double getElement(int r,int C)Const{retum val[r*getCols()+C];}
};
//單位陣(主對角線元素都是l,其余元素都是0的方陣)類 Class UnitMatrix:publiC MatrixBase{
publiC:
UnitMatrix(int rOWS):MatrixBase(rows,rows){} //單位陣行數(shù)列數(shù)相同
double getElement(int r,int C)Const{ //**********found**********
if(_____)retum l.0; retum 0.0;
} }; int main(){
MatrixBase*m;
double d[][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}}; ITI=new Matrix(3,5,(double*)d);
m→show(); delete m;
Cout< m=new UnitMatrix(6); Ill→show();
delete m; retum0; } .
四、綜合應(yīng)用題(18分)
43、請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程proj3,其中聲明的CDeepCopy是一個用于表示矩陣的類。請編寫這個類的賦值運算符成員函數(shù)0perator=,以實現(xiàn)深層復(fù)制。
要求:
補充編制的內(nèi)容寫在“//************333************”與“//****************666*************”之間。不得修改程序的其他部分。
注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。
//CDeepCopy.h
#include
#include
using namespace std;
class CDeepCopy
{
public:
int n;//動態(tài)數(shù)組的元素個數(shù)
int *p;//動態(tài)數(shù)組首地址
CDeepCopy(int);
~CDeepCopy();
CDeepCopy&operator=(const CDeepCopy&r);//賦值運算符函數(shù)
};
void writeToFile(char});
//main.cpp
#include”CDeepCopy.h”
CDeepCopy::一CDeepCopy(){delete[]P;}
CDeepCopy::CDeepCopy(int k){n=k;p=new int[n];}//構(gòu)造函數(shù)實現(xiàn)
CDeepCopy&CDeepCopy::0perator=(const CDeepCopy&r)//賦值運算符函數(shù)實現(xiàn)
{
//***********333*********
//***********666***********
}
int main()
{
CDeepCopy a(2),d(3);
a.p[O]=1;d.p[O]=666;//對象a,d數(shù)組元素的賦值
{
CDeepCopy b(3);//調(diào)用賦值運算符函數(shù)
a.p[O]=88;b=a;
cout< }
cout< cout<<”d fade away;\n”;
cout< writeToFile(””);
return 0;
}
【計算機二級《C++》上機沖刺題】相關(guān)文章:
二級C++上機沖刺題及答案解析10-10
計算機二級《C++》上機考前沖刺試題06-25
2016計算機二級C++上機考前沖刺試題08-25
計算機二級考試C++上機試題選擇題10-29
2017計算機二級C++考前沖刺題及答案09-04
計算機二級《C++》上機試題及答案08-12