2016年12月計算機二級C++練習題及答案
全國計算機二級的文章" target="_blank" >計算機二級考試對於知識點的掌握是比較重要的,下面是本站小編為各位考生整理的2016年12月計算機二級C++練習題及答案,希望堵大家的考試有所幫助!
習題一
(1)關於友元的概念錯誤的是
A)友元函式沒有this指標
B)呼叫友元函式時必須在它的實參中給出要訪問的物件
C)一個類的成員函式也可以作為另一個類的友元函式
D)只能在類的公有段宣告友元
(2)關於抽象類下面說法正確的是
A)抽象類就是其中有函式定義但沒有實現的類
B)抽象類是可以被例項化的
C)派生類不能成為抽象類
D)抽象類的子類必須實現父類中的純虛擬函式
(3)下面程式的結果是
#include
class test { private:
int num;
public:
test();
int getint(){return num;}
~test();};
test :: test()
{ num =0;}
test::~test()
{ cout<<"Destructor is active"< P>
{ test x[3];
cout<<"Exiting main"<>
Destructor is active
Destructor is active
Destructor is active
B)Exiting main
Destructor is active
Destructor is active
C)Exiting main
Destructor is active
D)Exiting main
(4)如果表示式--x+y中,--是作為成員函式過載的, +是作為成員函式過載的,則該表示式還可為
A)ator+(ator--(0))
B)ator+(ator--())
C)ator+(operator--(x,0))
D)operator+(ator--())
(5)下列語句不能夠用於開啟C根目錄下檔案的語句是
A)ifstream fin; ("C:");
B)ifstream fin("C:");
C)A)和B)
D)ifstream fin; fin("C:");
(6)以下哪個基類中的成員函式表示純虛擬函式?
A)virtual void vf (int)
B)void vf (int)=0
C)virtual void vf(=0)
D)virtual void yf(int){ }
(7)下面程式輸出的結果是
#include
void main()
{ int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
cout << a[i][i] << " ";}
A)1 5 9
B)7 5 3
C)3 5 7
D)5 9 1
(8)派生類繼承基類的方式有
A)public
B)private
C)protected
D)以上都對
(9)下列程式的.執行結果為
#include
class Location {
protected:
int X, Y;
public:
void SetX(int myx){X=myx;}
void SetY(int myy){Y=myy;}
void showxy(){cout << "X=" << X << " " << "Y=" << Y <>
private:
int H, W;
public:
void SetH(int myh){H=myh;}
void SetW(int myw){W=myw;}
void show(){ cout << "X=" << X << " " << "Y=" << " " << Y << " " << "H=" << H << " " << "W=" << W << endl;}};
void main()
{ Rectangle r1;
(3);
(5);
(4);
(6);
xy();
();}
A)X=3 Y=5
X=3 Y=5 H=4 W=6
B)X=3 Y=5
X=3 Y=5 H=3 W=6
C)X=3 Y=5
X=3 Y=4 H=4 W=6
D)X=3 Y=5
X=3 Y=3 H=4 W=6
(10)有以下程式
#include
void ss(char *s,char t)
{ while(*s)
{ if(*s==t)*s=t-′a′+′A′;
s++;}}
void main()
{ char str1[100]="abcddfefdbd",c=′d′;
ss(str1,c); cout << str1;}
程式執行後的輸出結果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdb
習題二
1)有以下程式
#include
void main()
{ int a=5,b=0,c=0;
if(a=b+c)cout << "***"<< ?$$$?<下列選項敘述正確的是<>
A)有語法錯不能通過編譯
B)可以通過編譯但不能通過連線
C)輸出***
D)輸出$$$
(2)已知各變數的定義如下
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
則以下符合C++語言語法的表示式是
A)a+=a-=(b=4)*(a=3)