- 相關(guān)推薦
2016年12月計(jì)算機(jī)二級(jí)C++備考試題及答案
計(jì)算機(jī)等級(jí)證書(shū)是我們找工作的敲門(mén)磚,現(xiàn)在越來(lái)越多人重視計(jì)算機(jī)等級(jí)考試。下面是百分網(wǎng)小編為大家?guī)?lái)的2016年12月計(jì)算機(jī)二級(jí)C++備考試題及答案,希望對(duì)大家的學(xué)習(xí)有幫助!
試題一
(1)關(guān)于友元的概念錯(cuò)誤的是
A)友元函數(shù)沒(méi)有this指針
B)調(diào)用友元函數(shù)時(shí)必須在它的實(shí)參中給出要訪問(wèn)的對(duì)象
C)一個(gè)類的成員函數(shù)也可以作為另一個(gè)類的友元函數(shù)
D)只能在類的公有段聲明友元
(2)關(guān)于抽象類下面說(shuō)法正確的是
A)抽象類就是其中有函數(shù)定義但沒(méi)有實(shí)現(xiàn)的類
B)抽象類是可以被實(shí)例化的
C)派生類不能成為抽象類
D)抽象類的子類必須實(shí)現(xiàn)父類中的純虛函數(shù)
(3)下面程序的結(jié)果是
#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)如果表達(dá)式--x+y中,--是作為成員函數(shù)重載的, +是作為成員函數(shù)重載的,則該表達(dá)式還可為
A)y.operator+(x.operator--(0))
B)y.operator+(x.operator--())
C)y.operator+(operator--(x,0))
D)operator+(x.operator--())
(5)下列語(yǔ)句不能夠用于打開(kāi)C根目錄下文件test.txt的語(yǔ)句是
A)ifstream fin; fin.open("C:\\test.txt");
B)ifstream fin("C:\\test.txt");
C)A)和B)
D)ifstream fin; fin("C:\\test.txt");
(6)以下哪個(gè)基類中的成員函數(shù)表示純虛函數(shù)?
A)virtual void vf (int)
B)void vf (int)=0
C)virtual void vf(=0)
D)virtual void yf(int){ }
(7)下面程序輸出的結(jié)果是
#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)以上都對(duì)
(9)下列程序的運(yùn)行結(jié)果為
#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;
r1.SetX (3);
r1.SetY (5);
r1.SetH (4);
r1.SetW (6);
r1.showxy();
r1.show();}
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;}
程序運(yùn)行后的輸出結(jié)果是
A)ABCDDEFEDBD
B)abcDDfefDbD
C)abcAAfefAbA
D)Abcddfefdb
答案解析:
(1)D
解析: C++中的友元可以在一個(gè)類中的任何位置聲明,不一定必須在公有段,友元沒(méi)有自己的this指針,調(diào)用友元函數(shù)時(shí)必須在它的實(shí)參中給出要訪問(wèn)的對(duì)象,并且一個(gè)類的成員函數(shù)是可以作為另一個(gè)類的友元函數(shù)的。
(2)D
解析: C++語(yǔ)言中的抽象類就是類中至少有一個(gè)純虛函數(shù)的類,抽象類不能被實(shí)例化,繼承抽象類的類必須實(shí)現(xiàn)抽象類中的純虛函數(shù)。
(3)A
解析: C++語(yǔ)言中析構(gòu)函數(shù)是在程序退出不用該類的對(duì)象時(shí)進(jìn)行調(diào)用。
(4)B
解析: C++語(yǔ)言中用成員函數(shù)重載--x為:x. operator--(),用成員函數(shù)重載x+y為:x. operator+(y)。
(5)D
解析: C++語(yǔ)言中打開(kāi)文件有兩種方式① ifstream fin("test.dat")② ifstream fin;fin.open("test.dat");。
(6)B
解析: C++中純虛函數(shù)的定義與虛函數(shù)的關(guān)鍵字一樣,在函數(shù)末尾要加上"=0"。
(7)A
解析: 首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[0][0]=1,當(dāng)然,如果用排除法的話,就不用考慮后面的循環(huán)了,因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為1的選項(xiàng)只有A)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則cout函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。
(8)D
解析: 派生類繼承基類的方式有3種:public,private和protected,常用的是public.
(9)A
解析: 本題是一道簡(jiǎn)單的成員函數(shù)應(yīng)用題,考生只要按著主函數(shù)中生成的類Rectangle的對(duì)象r1進(jìn)行成員函數(shù)的調(diào)用即可得到答案。
(10)B
解析: 在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),它的存儲(chǔ)形式就與整數(shù)的存儲(chǔ)形式相類似。C++語(yǔ)言使字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用。也可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,此時(shí)相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算,在本題中,s++相當(dāng)于s=s+1,即讓s指向數(shù)組中的下一個(gè)元素。
試題二
1)有以下程序
#include
void main()
{ int a=5,b=0,c=0;
if(a=b+c)cout << "***"<< ?$$$?<下列選項(xiàng)敘述正確的是<>
A)有語(yǔ)法錯(cuò)不能通過(guò)編譯
B)可以通過(guò)編譯但不能通過(guò)連接
C)輸出***
D)輸出$$$
(2)已知各變量的定義如下
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
則以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是
A)a+=a-=(b=4)*(a=3)
B)a=a*3+2
C)x%(-3)
D)y=float i
(3)以下程序中循環(huán)體總的執(zhí)行次數(shù)是
int i,j;
for(i=6;i>1;i--)
for(j=0;j{……}
A)20
B)261
C)15
D)25
(4)對(duì)于下面的程序,說(shuō)法正確的是
#include
void main()
{ int x=3,y=4,z=2;
if(x=y+z)cout << "x=y+z";
else cout << "x!=y+z";}
A)不能通過(guò)編譯
B)輸出6
C)輸出x!=y+z
D)輸出x=y+z
(5)下列程序的輸出結(jié)果是
#include
void main()
{ int a[3],i,j,k=2;
for(i=0;i<3;i++)a[i]=i;
for(i=0;ifor(j=0;ja[j]=a[i];
cout << a[2];}
A)2
B)3
C)1
D)0
參考答案:
(1)D
解析: 解答本題時(shí),先判斷if語(yǔ)句,因?yàn)閍=b+c為零,則執(zhí)行else語(yǔ)句。
(2)A
解析: 選項(xiàng)B)中a在運(yùn)算前未賦初值,在C++語(yǔ)言里變量在運(yùn)算前必須賦初值;選項(xiàng)C)中的模運(yùn)算符"%"兩側(cè)均應(yīng)為整型數(shù)據(jù);選項(xiàng)D)應(yīng)改為y=(float)i。
(3)A
解析: 本題中第1個(gè)for循環(huán)執(zhí)行5次后結(jié)束,第2個(gè)for循環(huán)執(zhí)行5次。第2個(gè)for循環(huán)中第1次執(zhí)行了6次,第2次執(zhí)行了5次,第3次執(zhí)行了4次,第4次執(zhí)行了3次,第5次執(zhí)行了2次,共20次。
(4)D
解析: 解答本題關(guān)鍵是要理解if后面的括號(hào)里的是賦值語(yǔ)句而并非關(guān)系判斷,賦完值后x不等于零,C++語(yǔ)言里非零都作真處理,所以輸出結(jié)果為"x=y+z",故答案為選項(xiàng)D),注意"="與"=="的區(qū)別。
(5)A
解析: 本題里有三個(gè)for循環(huán),但要分清楚,第一個(gè)是單獨(dú)的給三個(gè)元素賦值,賦完值后三個(gè)a[0]=0,a[1]=1,a[2]=2;后面的兩個(gè)for是嵌套循環(huán),對(duì)數(shù)組元素的賦值,但由于k=2,初值已定for里的條件是小于k,所以不管怎么處理都影響不到a[2],故答案為2。
【12月計(jì)算機(jī)二級(jí)C++備考試題及答案】相關(guān)文章:
2016年12月計(jì)算機(jī)二級(jí)C++備考習(xí)題及答案11-10
2016年12月計(jì)算機(jī)二級(jí)C++備考題及答案08-22
2016年12月計(jì)算機(jī)二級(jí)C++備考習(xí)題及答案10-07
12月計(jì)算機(jī)二級(jí)備考練習(xí)試題及答案10-24
2017年9月計(jì)算機(jī)二級(jí)C++備考試題及答案10-29
計(jì)算機(jī)二級(jí)考試C++備考練習(xí)試題及答案10-16
2017計(jì)算機(jī)二級(jí)C++備考練習(xí)試題及答案09-04