歷年全國計算機(jī)等級考試二級C++真題及答案_第1頁
歷年全國計算機(jī)等級考試二級C++真題及答案_第2頁
歷年全國計算機(jī)等級考試二級C++真題及答案_第3頁
歷年全國計算機(jī)等級考試二級C++真題及答案_第4頁
歷年全國計算機(jī)等級考試二級C++真題及答案_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

歷年全國計算機(jī)等級考試二級C++真題及答案(最新)

目錄

2012年9月全國計算機(jī)等級考試二級C++筆試試卷2

一、選擇題(每小題2分,共70分)2

二、填空題(每空2分,共30分)7

2012年9月全國計算機(jī)等級考試二級筆試C++答案10

一、選擇題答案10

二、填空題答案11

2012年3月全國計算機(jī)等級考試二級筆試試卷11

一、選擇題(每小題2分,共70分)11

二、填空題(每空2分,共30分)19

2012年3月計算機(jī)等級考試二級C++筆試真題答案21

一、選擇題答案21

二、填空題答案21

2011年9月全國計算機(jī)等級考試二級筆試試卷22

一、選擇題((1)-(1。)、(21)-(40)每題2分,(11)-(20)每題1分,共70分)...22

二、填空題(每空2分,共30分)31

2011年9月全國計算機(jī)等級考試二級筆試C++語言程序設(shè)計答案及解析33

一、選擇題答案33

二、填空題答案40

2011年3月計算機(jī)二級考試C++筆試試題43

一、選擇題43

二、填空題50

2011年3月全國計算機(jī)二級C++筆試試題答案:53

一、選擇題答案53

二、填空題答案53

2010年9月全國計算機(jī)二級C++筆試試題:53

一、選擇題(每小題2分,共70分)53

二、填空題(每空2分,共30分)60

2010年9月計算機(jī)等級考試二級C++筆試答案63

2010年3月計算機(jī)等級考試二級C++筆試試題64

一、選擇題(每小題2分,共70分)64

二、填空題(每空2分,共30分)71

2010年3月計算機(jī)等級考試二級C++筆試答案73

2012年9月全國計算機(jī)等級考試二級C++筆試試卷

C++語言程序設(shè)計

(考試時間90分鐘,滿分100分)

一、選擇題(每小題2分,共70分)

下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將

正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。

(1)下列鏈表種,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是

A)循環(huán)鏈表B)雙向鏈表C)帶鏈的棧D)二叉鏈表

(2)設(shè)循環(huán)隊列的存儲空間為Q(l:35),初始狀態(tài)為front=rear=35,現(xiàn)經(jīng)過一系

列入隊與退隊運(yùn)算后,front=15,rear=15,則循環(huán)隊列中的元素個數(shù)為

A)16B)20C)0或35D)15

(3)下列關(guān)于棧的敘述中,正確的是

A)棧頂元素一定是最先入棧的元素B)棧操作遵循先進(jìn)后出的原則

C)棧底元素一定是最后入棧的元素D)以上三種說法都不對

(4)在關(guān)系數(shù)據(jù)庫中,用來表示實體間聯(lián)系的是

A)二維表B)樹狀結(jié)構(gòu)C)屬性D)網(wǎng)狀結(jié)構(gòu)

(5)公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可

以有多名職員,則實體部門和職員間的聯(lián)系是

A)m:l聯(lián)系B)l:m聯(lián)系C)1:1聯(lián)系D)m:n聯(lián)系

(6)有兩個關(guān)系R和S如下:

RS

ABCABC

a12c31

b21

c31

則由關(guān)系R得到關(guān)系S的操作是

A)自然連接B)選擇C)并D)投影

(7)數(shù)據(jù)字典(DD)所定義的對象都包含于

A)程序流程圖B)數(shù)據(jù)流圖(DFD圖)C)方框圖D)軟件結(jié)

構(gòu)圖

(8)軟件需求規(guī)格說明書的作用不包括

A)軟件可行性研究的依據(jù)B)用戶與開發(fā)人員對軟件要做什么的共同

理解

C)軟件驗收的依據(jù)D)軟件設(shè)計的依據(jù)

(9)下面屬于黑盒測試方法的是

A)邏輯覆蓋B)語句覆蓋C)路徑覆蓋D)邊界值分析

(10)下面不屬于軟件設(shè)計階段任務(wù)的是

A)數(shù)據(jù)庫設(shè)計B)算法設(shè)計

C)軟件總體設(shè)計D)制定軟件確認(rèn)測試計劃

(11)下列關(guān)于函數(shù)重載的敘述中,錯誤的是

A)重載函數(shù)的參數(shù)個數(shù)可以不同

B)重載函數(shù)的參數(shù)類型可以不同

C)重載函數(shù)的返回值類型必須不同

D)重載函數(shù)的參數(shù)個數(shù)或參數(shù)類型必須有所不同

(12)下列關(guān)于類成員對象構(gòu)造函數(shù)調(diào)用順序的敘述中,正確的是

A)與它們在初始化列表中順序相同

B)與它們在類中聲明的順序相同

C)與析構(gòu)函數(shù)的調(diào)用順序相同

D)順序不確定

(13)下列關(guān)于派生類的敘述中,錯誤的是

A)派生類至少要有一個基類

B)派生類中包括了從基類繼承的成員

C)一個派生類可以作為另一個派生類的基類

D)基類成員被派生類繼承以后訪問權(quán)限保持不變

(14)下列關(guān)于運(yùn)算符重載的敘述中,正確的是

A)通過運(yùn)算符重載機(jī)制可以為C++語言擴(kuò)充新的運(yùn)算符

B)運(yùn)算符重載的作用是使已有的運(yùn)算符作用于類的對象

C)重載運(yùn)算符的操作數(shù)類型可以全部為基本類型

D)所有運(yùn)算符都可以重載

(15)下列關(guān)于模板的敘述中,錯誤的是

A)調(diào)用模板函數(shù)時,有時可以省略模板實參

B)函數(shù)模板的每個實例就是一個函數(shù)定義

C)類模板的每個實例就是一個類定義

D)類模板的實例是一個類對象

(16)下列關(guān)于輸入輸出流的敘述中,正確的是

A)一個文件流可以與一個數(shù)據(jù)文件相聯(lián)系

B)cin是專門從鍵盤輸入數(shù)據(jù)的輸入流類

C)流運(yùn)算符<<用來從輸入流中讀取數(shù)據(jù)

D)寬度設(shè)置的效果永久有效

(17)下列選項中可以做C++標(biāo)識符的是

A)_256B)fat/pigC)deleteD)5char

(18)賣鍵字unsigned不能修飾的類型是

A)charB)intC)floatD)longint

(19)有如下程序:

#include<iostream>

usingnamespacestd;

intmain(){

chara;

cin?a;

if(a='*')cout?"***"?endl;

elsecout?"###"?endl;

return0;

)

A)***B)###C)***###D)無輸出

(20)下列對一維數(shù)組a的定義中,語法正確的是

A)inta(10)B)intn=7,a[n];C)intn;cin?n;inta[n];D)const

intsize=10;inta[size];

(21)假設(shè)函數(shù)fun已經(jīng)定義,其原型為"voidfun(intajntb=7,char*p二〃**〃『,下

列函數(shù)調(diào)用中錯誤的是

A)fun(5)B)fun(5,8)C)fun(6,〃##〃)D)fun(0,0.〃==〃)

(22)已經(jīng)函數(shù)print。沒有返回值,如果在類中將之聲明為常成員函數(shù),正確的

A)voidprint()const;B)constvoidprint();Ovoidconstprint();

D)voidprint(const);

(23)已知基類Employees只有一個構(gòu)造函數(shù),其定義如下:

Employee::Employee(intn):id(n){}

Manager是Employees的派生類,則下列對Manager的構(gòu)造函數(shù)的定義中,

正確的是

A)Manager::Manager(intn):id(n){}

B)Manager::Manager(intn){id=n;}

C)Manager::Manager(intn):Employee(n){}

D)Manager::Manager(intn){Employee(n);}

(24)已知將運(yùn)算符“+”和“*”作為類Complete的成員函數(shù)重載,設(shè)cl和c2

是類Complex的對象,則表達(dá)式cl+c2*cl等價于

A)cl.operator*(c2.operator+(cl))B)cl.operator+(c2.operator*(cl))

C)cl.operator*(cl.operator+(c2))D)c2.operator+(cl.operator*(cl))

(25)下列類模板的定義中語法格式錯誤的是

A)template<classT>classBuffer{/*...*/};

B)template<typenameT>classBuffer{/*...*/};

C)template<classTl,classT2>classBuffer{/*...*/};

D)template<T>classBuffer{/*...*/};

(26)在C++中既可以用于文件輸入又可以用于文件輸出的流類是

A)fstreamB)ifstreamC)ofstreamD)iostream

(27)有如下類定義:

classMyClass{

intb;chara;doublec;

public:

MyClass():c(0.0)/b(0)/a('/'){}

);

創(chuàng)建這個類的對象時,數(shù)據(jù)成員的初始化順序是

A)a,b,cB)c,b,aC)b,a,cD)c,a,b

(28)有如下類定義

classMyClass{

intx;

public:

MyClass():x(O),y(O){}

intGetX(){returnx;}

voidSetX(intxx){x==xx;}

inty;

);

已知obj是類MyClass的對象,下列語句中違反類成員訪問控制權(quán)限的是

A)obj.x;B)obj.y;C)obj.GetX();D)obj.SetX(O);

(29)有如下類定義

classTest{

chara;constcharb;

public:Test(charc){a=c;b=c;}〃第1行

voidf(chara)const{this->a=a;}〃第2行

voidg(charb){this->b=b;}〃第3行

charh()const{returna;}〃第4行

);

編譯時沒有錯誤的行是

A)第1行B)第2行C)第3行D)第4行

(30)有如下程序:

#include<iostream>

usingnamespacestd;

classA{

public:

A(){cout</A';}

~A(){cout<<C;}

);

classB:publicA{

public:

B(){cout?G;}

~B(){cout?T;}

};

intmain(){

Bobj;

return0;

}

運(yùn)行這個程序的輸出結(jié)果是

A)GATCB)AGTCC)GACTD)AGCT

(31)有如下程序:

#include<iostream>

usingnamespacestd;

classBase{

public;

voidfun(){cout<<B;}

);

classDerived:publicBase{

public;

voidfun(){cout?'D';}

);

intmain(){

Derivedd;

d.fun();

return0;

)

若程序的輸出結(jié)果是BD,則劃線處缺失的部分是

A)fun()B)Base.fun()C)Base::fun()D)Base->fun()

(32)有如下程序:

#include<iostream>

usingnamespacestd;

classB{

public;

virtualvoidf(){cout?"B";}

voidg(){cout?"B";}

)

classD;publicB{

public;

voidf(){cout?"DH;}

voidg(){coun?"D";}

)

voidh(B*p){p->f();p->g();}

intmain(){

Dobj;

h(&obj);

return0;

}

運(yùn)行這個程序的輸出結(jié)果是:

A)DDB)BBC)BDD)DB

(33)有如下程序:

#include<iostream>

#include<cstring>

usingnamespacestd;

classMyString{

public;

charstr[80];

MyString(constchar*s){strcpy(str,s);}

MyString&operator+=(MyStringa){

strcat(str,a.str);

return*this;

)

);

ostream&operator?(ostream&s,constMyString&z){returns?z.str}

intmain(){

MyStringx("abc"),y(ncde");

cout?(x+=y)?endl;

return0;

}

運(yùn)行這個程序的輸出結(jié)果是

A)abcB)cdeC)abcdeD)abccde

(34)有如F程序:

#include<iostream>

#include<iomanip>

usingnamespacestd;

intmain(){

cout?setfill(,#,)?setw(4)?"OK,,?123?endl;

return0;

}

A)##OK123B)##OK#123C)OK##123D)OK##123#

(35)有如下語句序列:

ifstreaminfile("DATA.DAT");

if(infile.good())cout?"A";

else{

cout?"B";

ofstreamoutfile("DATA.DAT");

if(outfile.fail())cout?"C";elsecout?"D";

)

若執(zhí)行這個語句序列顯示的是BD,則說明文件DATA.DAT

A)以讀方式打開成功

B)以讀方式打開失敗,但以寫方式打開成功

C)以讀方式打開失敗,以寫方式打開也失敗

D)以讀方式打開成功,以寫方式打開也成功

二、填空題(每空2分,共30分)

請將每一個空的正確答案寫在答題卡【1】?[15]序號的橫線上,答在試卷上

不得分。

注意:以命令關(guān)鍵字填空的必須拼寫完整

(1)一棵二叉樹共有47個結(jié)點(diǎn),其中有23個度為2的結(jié)點(diǎn),假設(shè)根結(jié)點(diǎn)在底

1層,則該二義樹的深度為II]O

(2)設(shè)棧的存儲空間為S(l:40),初始狀態(tài)為bottom=0,top=0,現(xiàn)經(jīng)過一系列

入棧與出棧運(yùn)算后,top=20,則當(dāng)前棧中有【2】個元素。

(3)數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性和物理獨(dú)立性。當(dāng)總體邏輯結(jié)構(gòu)改變時,其局

部邏輯結(jié)構(gòu)可以不變,從而根據(jù)局部邏輯結(jié)構(gòu)編寫的應(yīng)用程序不必修改,稱為

[3]o

(4)關(guān)系數(shù)據(jù)庫中能實現(xiàn)的專門關(guān)系運(yùn)算包括【4】、連接和投影。

(5)軟件按功能通??梢苑譃閼?yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件),

Unix操作系統(tǒng)屬于【5】軟件。

(6)若有定義語句“intx=10;”,則表達(dá)式“x<=10?20:30”的值為【6】。

(7)下列語句的作用是計算正整數(shù)n的各位數(shù)字之和,例如:n=123,sum=l+2+3,

請將下列語句補(bǔ)充完整。

do{

sum+=;

n=n/10;

}while(nl=O)

(8)有如下程序:

#include<iostream>

usingnamespacestd;

voidfun(int&x,inty){

y=y+x;

x=y/4;

x++;

}

intmain(){

intx=4,y=5;

fun(x,y);

cout?x+y;

return0;

}

運(yùn)行這個程序的輸出結(jié)果是“8】。

(9)有如下程序:

#include<iostream>

usingnamespacestd;

classA{

pubic;

A(){cout?l;}

A(constA&){cout?2;}

-A(){cout?3;}

};

intmain(){

Aobjl;

Aobj2(objl);

return0;

}

運(yùn)行這個程序的輸出結(jié)果是[9】。

(10)若下列程序的輸出結(jié)果是20,請將橫線處缺失部分補(bǔ)充完整。

#include<iostream>

usingnamespacestd;

classMyClass{

pubic;

MyClass(intx=)10:value(x){}

voidSetValue(intx){value=x;cout?x;}

private;

intvalue;

);

intmain(){

MyClass*ptr=newMyClass;

【10]〃通過對象指針ptr調(diào)用SetValue函數(shù)

deleteptr;

return0;

}

(11)有下列程序的輸出結(jié)果是2334,請將橫線處缺失部分補(bǔ)充完整。

#include<iostream>

usingnamespacestd;

classBase{

intm;

pubic;

Base(intk):m(k){}

intgetM()const{returnm;}

}

classDerived:publicBase{

intn;

public;

Derived(intk):[11]/n(k){}

intgetN()const{returnn;}

)

intmain(){

Deriveddl(3),d2(4);

cout?dl.getM()?dl.getN?d2.getM()?D2.getN();

return0;

}

(12)在C++中,編譯時的多態(tài)性是通過模板或函數(shù)[絲1實現(xiàn)的。

(13)有些運(yùn)算符既可以作為成員函數(shù)重載,也可以作為非成員函數(shù)重載。若在

一個重載的運(yùn)算符函數(shù)的定義中成功地使用了this指針,說明它是作為【13】重

載的。

(14)有如下程序:

#include<iostream>

usingnamespacestd;

template<typenameT>

TAdd(Tvl,Tv2){returnvl+v2;}

intmain(){

cout?Add(2,3)?7?Add(2,3,3.5);

return0;

}

運(yùn)行這個程序的輸出結(jié)果是【14】。

(15)有如下程序:

#include<iostream>

usingnamespacestd;

classPoint{

doublex,y;

public;

Point(doublexx=0.0,doubleyy=0.0):x(xx),y(yy){}

doublegetX()const{returnx;}

doublegetY()const{returny;}

,,<<,

voidshow()const{cout?(x?'z?¥?')';}

}

classLine{

Pointpl,p2;

public;

Line(Pointppi,Pointpp2):pl(ppl),p2(pp2){}

PointLeftMost()const{

if(pl.getX()<=P2.getX())returnpl;

returnp2;

}

}

intmain(){

Lineline(Point(3.1,5.2),Point(8.2,4.4));

line.LeftMost().show();

return0;

}

運(yùn)行這個程序的輸出結(jié)果是

2012年9月全國計算機(jī)等級考試二級筆試C++答案

一、選擇題答案

1-5)DCBAB

6-10)BBADD

11-15)CBDBC

16-20)AAABD

21-25)CACBD

26-30)ABACB

31-35)CDDAC

二、填空題答案

1、6

2、21

3、物理獨(dú)立性

4、選擇

5、系統(tǒng)

6、20

7、n%10

8、8

9、1233

10、ptr->setvalue(20);

11、base(k-l)

12、重載

13、成員函數(shù)

14、5,5.8

15、(3.1,5.2)

2012年3月全國計算機(jī)等級考試二級筆試試卷

VisualC++程序設(shè)計

(考試時間90分鐘,滿分100分)

一、選擇題(每小題2分,共70分)

下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確

選項填涂在答題卡相應(yīng)位置上,答在試卷上不得分。

(1)下列敘述中正確的是

A)循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)B)循環(huán)隊列是一種邏輯結(jié)

構(gòu)

0循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)D)循環(huán)隊列是非線性結(jié)構(gòu)

(2)下列敘述中正確的是

A)棧是一種先進(jìn)先出的線性表B)隊列是一種后進(jìn)先出的

線性表

C)棧與隊列都是非線性結(jié)構(gòu)D)以上三種說法都不對

⑶一棵二叉樹共有25個結(jié)點(diǎn),其中5個是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為

A)4B)16C)10D)6

(4)在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是

A)邏輯模式B)概念模式C)內(nèi)模式D)

外模式

(5)在滿足實體完整性約束的條件下

A)一個關(guān)系中可以沒有候選關(guān)鍵字B)一個關(guān)系中只能有一個

候選關(guān)鍵字

C)一個關(guān)系中必須有多個候選關(guān)鍵字D)一個關(guān)系中應(yīng)該有一

個或多個候選關(guān)鍵字

A)并B)差C)交D)自然連

(7)軟件生命周期的活動中不包括

A)軟件維護(hù)B)需求分析C)市場調(diào)研

D)軟件測試

(8)下面不屬于需求分析階段任務(wù)的是

A)確定軟件系統(tǒng)的性能需求B)確定軟件系統(tǒng)的功能需

C)制定軟件集成測試計劃D)需求規(guī)格說明書評審

(9)在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是

A)程序外部功能B)程序數(shù)據(jù)結(jié)構(gòu)C)程序流程圖

D)程序內(nèi)部結(jié)構(gòu)

(10)在軟件設(shè)計中不使用的工具是

A)系統(tǒng)結(jié)構(gòu)圖B)程序流程圖OPAD圖D)數(shù)據(jù)流圖(DFD

圖)

(11)若一個函數(shù)的原型為"int*Xfunl(intx,int&y,charz);",則該函數(shù)的返

回值類型為

A)int*B)int

C)int&D)char

(12)若AA為一個類,a為該類的私有整型數(shù)據(jù)成員,getA()為該類的一個非靜態(tài)

公有成員函數(shù),功能是返回a的值。如果x為該類的一個對象,要在類外訪問x

對象中a的值,正確的訪問格式為

A)AA.getA()B)x.getA()

C)x.aD)AA::a

(13)當(dāng)派生類繼承一個基類時,默認(rèn)的繼承方式為

A)publicB)protected

C)privateD)不確定

(14)若需要為XV類重載乘法運(yùn)算符,運(yùn)算結(jié)果為XV類型,在將其聲明為類的成員

函數(shù)時,下列原型聲明正確的是

A)XVoperator*(XV,XV);

B)XV*(XV);

C)operator*(XV);

D)XVoperator*(XV);

(15)在定義函數(shù)模板或類模板時,開頭的保留字是

A)typenameB)template

C)classD)typedef

(16)若需要向一個二進(jìn)制文件尾部添加數(shù)據(jù),則該文件的打開方式為

A)ios_base::app

B)ios_base::binaryIiosbase::out

C)ios_base::out

D)ios_base::binaryiosbase::app

(17)在開獎一個C++程序的整個過程中,第3個步驟為

A)鏈接B)運(yùn)行

C)編輯D)編譯

(18)若有定義"intx=4,y=5;",則表達(dá)式"y>x++?x—:y++”的值為

A)3B)4

C)5D)6

(19)有如下程序:

#include<iostream>

usingnamespacestd;

intmain(){

inti,s=0;

for(i=l;s<20;i+=2)s+=i*i;

cout<<i?endl:

return0;

)

運(yùn)行這個程序的輸出結(jié)果是

A)3B)5

C)79)9

(20)若字符指針p所指向的字符串為"abcdefg”,在執(zhí)行語句

char*ap=newchar[strlen(p)+l];

之后,ap指向的字符數(shù)組的元素個數(shù)為

A)9B)8

C)7D)6

(21)有如下程序:

#include<iostream>

usingnamespacestd;

voidfl(int&x){x++;}

voidf2(intx){++x;}

intmainO{

intx=10,y=12;

fl(x);

f2(y);

cout<<x+y<<endl:

return0;

)

運(yùn)行這個程序的輸出結(jié)果是

A)22B)23

C)24D)25

(22)有如下程序:

#include<iostream>

usingnamespacestd;

classXA{

inta;

public:

staticintb;

XA(intaa):a(an){b++;}

intgetA0{returna;}

);

intXA::b=0;

intmain(){

XAdl(4),d2(5);

cout<<dl.getA()+d2.getA()+XA::b+dl.b<<endl;

return0;

)

運(yùn)行這個程序的輸出結(jié)果是

A)9B)ll

013D)15

(23)有如下程序:

#include<iostream>

usingnamespacestd;

classXX{

intx;

public:

XX(intxx=0):x(xx){}

intgetX(){returnx;}

};

classYY:publicXX{

inty;

public:

YY(intxx,intyy):x(xx),y(yy){}

intgetV(){returngetX()+y;}

);

intmainO{

YYc(3,4);

cout<<c.getV()+c.getX()?endl;

return0;

}

運(yùn)行這個程序的輸出結(jié)果是

A)3B)4

C)7D)10

(24)在類中重載賦值運(yùn)算符時,應(yīng)將其聲明為類的

A)靜態(tài)函數(shù)B)友元函數(shù)

C)成員函數(shù)D)構(gòu)造函數(shù)

(25)若有函數(shù)模板mySwap和一些變量定義如下:

template<classT>

voidmySwap(TX,TY);

doubledl,d2;intil,i2;

下列對mySwap的調(diào)用中,錯誤的是

A)mySwap(il,i2)

B)mySwap(dl,d2)

C)mySwap(il,dl)

D)mySwap<int>(i2,d2)

(26)在C++中,打開一個文件時與該文件建立聯(lián)系的是

A)流對象B)模板

C)函數(shù)D)類

(27)已知類IMS中兩個成員函數(shù)的聲明為〃voidlisten()const;〃與"void

speak();,z,

另有兩個對象的定義為〃IMSobjl;〃與〃constIMSobj2;〃,則下列語句中,產(chǎn)生編

譯錯誤

的是

A)objl.listenO;

B)objl.speak();

C)obj2.listenO;

D)obj2.speak();

(28)有如下程序:

#include<iostream>

usingnamespacestd;

classMonkey{

public:

Monkey0{cout<<,;}

Monkey(charn){cout?n;}

^Monkey(){cout<<,;}

);

intmain(){

Monkeypl,*p2;

p2=newMonkey('X');

deletep2;

return0;

)

運(yùn)行這個程序的輸出結(jié)果是

A)MYXB)MYMY

C)MXYD)MXYY

(29)有如下程序:

#include<iostream>

usingnamespacestd;

classBoat;

classCar{

public:

Car(inti):weight(i){}

friendintTotal(constCar&c,constBoat&b);〃①

private:

intweight;

);

classBoat{

public:

Boat(inti):weight(i){}

friendintTotal(constCar&c,constBoat&b);

private:

intweight;

);

intTotal(constCar&c,constBoat&b){〃②

returnc.weight+b.weight;

}

intmain(){

Carc(10);

Boatb(8);

cout<<,,Thetotalweightis,,<<Total(c,b)?endl;〃③

return0;

)

下列關(guān)于程序的描述中,正確的是

A)程序編譯正確

B)程序編譯時語句①出錯

C)程序編譯時語句②出錯

D)程序編譯時語句③出錯

(30)有如下程序:

#include<iostream>

usingnamespacestd;

classMedia{

public:

voidName();

voidShow();

protected:

intpage;

};

classBook:privateMedia{

public:

voidPrint0{cout?page<<endl;}

voidShowO{Media::Show();}〃①

);

intmain(){

BookBible;

Bible.Name();〃②

Bible.Print();〃③

Bible.Show();〃④

return0;

)

編譯時有錯誤的是

A)語句①B)語句②

C)語句③D)語句④

(31)有如下程序:

#include<iostream>

usingnamespacestd;

classBase{

public:

virtualvoidShow。{cout<X'B';}

};

classDerived:publicBase{

public:

voidShow。{cout<<'D';}

);

intmainO{

Base*pl二newDerived;

Derived*p2=newDerived;

pl->Show();

p2->Show();

deletepl;

deletep2;

return0;

}

運(yùn)行這個程序的輸出結(jié)果是

A)BBB)BD

C)DBD)DD

(32)有如下類定義:

classAnimal{

public:

virtualvoidName()=0;

};

classKoala:publicAnimal{

public:

voidName(){/*函數(shù)體略*/}

);

關(guān)于上述類定義,下列描述中錯誤的是

A)類Koala是類Animal的派生類

B)類Koala中的Name函數(shù)是一個虛函數(shù)

C)類Animal中的Name函數(shù)是一個純虛函數(shù)

D)語句〃Animala;〃能夠建立類Animal的一個對象a

(33)已知類MyClock中未顯式定義構(gòu)造函數(shù),并重載了加法運(yùn)算符,使得下面

的語句

序列能夠正確執(zhí)行:

MyClockcl,c2;

//

c2=cl+10;

由此可知,為類MyClock重載的〃+〃運(yùn)算符函數(shù)的聲明是

A)friendMyClockoperator+(MyClock,int);

B)friendMyClockoperator+(MyClock,MyClock);

C)friendMyClockoperator+(int,MyClock);

D)MyClockoperator+(MyClock);

(34)下列控制對齊方式的操作符中,錯誤的是

A)internalB)center

C)leftD)right

(35)有如下程序:

#include<iostream>

usingnamespacestd;

classMountain{

intheight;

public:

Mountain(inth=0):height(h){}

virtualchar*GetName()const

{return〃山〃;}

intGetHeight()const{returnheight;}

};

classLushan:publicMountain{

public:

Lushan(intd):Mountain(d){}

char*GetName()const

{return〃廬山〃;}

);

intmain(){

Mountain*p=newLushan(1000);

cout<<p->GetName()<<〃海拔〃<<p->GetHeight()<<〃米〃;

return0;

)

運(yùn)行這個程序的輸出結(jié)果是

A)廬山海拔1000米

B)廬山海拔。米

C)山海拔1000米

D)山海拔0米

二、填空題(每空2分,共30分)

請將每一個空的正確答案寫在答題卡【1】-【15】序號的橫線上,答在試卷

上不

得分。

(1)在長度為n的順序存儲的線性表中刪除一個元素,最壞情況下需要移動

表中的元

素個數(shù)為_____1-

(2)設(shè)循環(huán)隊列的存儲空間為Q(l:30),初始狀態(tài)為front=rear=30o現(xiàn)經(jīng)過

一系列

入隊與退隊運(yùn)算后,front=16,rear=15,則循環(huán)隊列中有__2一個元素。

(3)數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)的增、刪、改和查詢的是

—3—o

(4)在將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體和聯(lián)系都可以表示成—4—o

(5)常見的軟件工程方法有結(jié)構(gòu)化方法和面向?qū)ο蠓椒?,類、繼承以及多態(tài)性

等概念

屬于___5___o

(6)如果a為int型變量,b為double型變量,則表達(dá)式a+b的值的類型為

—6—o

(7)break語句可用于循環(huán)語句和—7—語句中。

(8)如果P是指向一個動態(tài)數(shù)組空間的指針變量,則釋放該數(shù)組空間的語句

是___8____0

(9)如果一個函數(shù)在其函數(shù)體內(nèi)直接或間接地調(diào)用自己,則該函數(shù)稱為

__9___函數(shù)。

710)調(diào)用時不必提供參數(shù)的構(gòu)造函數(shù)稱為—10—構(gòu)造函數(shù)。

(11)有如下程序:

#include<iostream>

usingnamespacestd;

classMachine{

staticintnum;

public:

Machine(){num++;}

staticvoidshowNumO

{cout?num;}

);

intMachine::num=0;

intmainO{

Machinea[10],b;

Machine::showNum();

return0;

)

運(yùn)行這個程序的輸出結(jié)果是—【11]—O

(12)類Base、Component和Derived的定義如下,請將橫線處缺失部分補(bǔ)充完

整。

classBase{

doubledata;

public:

Base(doubled):data(d){}

);

classComponent{

intdata;

public:

Component(intd):data(d){}

};

classDerived:publicBase{

Componentcom;

charcharacter;

public:

Derived(doublea,intb,charc):

〃使用參數(shù)a初始化基類成員,使用參數(shù)b初始化成員對象com

___[12]___,character(c){}

);

(13)形狀類Shape中包含一個純虛函數(shù)draw,它無形參和返回值,則draw函

數(shù)在

Shape類中的原型聲明是—[13]—o

(14)正方形類的定義如下,請將橫線處缺失部分補(bǔ)充完整。

classSquare{

private:

doublewidth;

public:

Square(doublew):width(w){}

〃重載大于運(yùn)算符用于比較兩個正方形的大小,函數(shù)結(jié)果類型為

bool類型

___[14]___(Square&s);

);

(15)有如下程序,請將橫線處缺失部分補(bǔ)充完整。

#include<iostream>

usingnamespacestd;

template<classT>

classDataset{

T*data;

intsize;

public:

Dataset(T*arr,intlength):size(length){

data=newT[length];

for(inti=0;i<length;i++)

dataEi]=arr[i];

}

);

intmainO{

intarr[]={2,4,6,8,10);

〃利用數(shù)組arr初始化類模板Dataset的對象set

—[15]—

return0;

)

2012年3月計算機(jī)等級考試二級C++筆試真題答案

參考答案:

一、選擇題答案

ADABADADDABACDAACCDB

DBBBABBADADBCCDADCAC

二、填空題答案

n29數(shù)據(jù)操作語言關(guān)系面向?qū)ο蠓椒╝=1,b=223

k<=n074rgb572*a[i]cabtest

2011年9月全國計算機(jī)等級考試二級筆試試卷

c語言程序設(shè)計

(考試時間90分鐘,滿分100分)

一、選擇題((1)-(10)、(21)-(40)每題2分,(11)-(20)每題1分,

共70分)

下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題

卡相應(yīng)位置上答在試卷上不得分。

(1)下列敘述中正確的是()。

A)算法就是程序B)設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)

構(gòu)的設(shè)計

C)設(shè)計算法時只需要考慮結(jié)果的可靠性D)以上三種說法都不對

(2)下列關(guān)于線性鏈表的敘述中,正確的是()。

A)各數(shù)據(jù)結(jié)點(diǎn)的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致

B)各數(shù)據(jù)結(jié)點(diǎn)的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)

C)進(jìn)行插入與刪除時,不需要移動表中的元素

D)以上三種說法都不對

(3)下列關(guān)于二叉樹的敘述中,正確的是()。

A)葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個

B)葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個

c)葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍

D)度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍

(4)軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的

是()。

A)學(xué)生成績管理系統(tǒng)

B)C語言編譯程序

C)UNIX操作系統(tǒng)

D)數(shù)據(jù)庫管理系統(tǒng)

(5)某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:

該系統(tǒng)總體結(jié)構(gòu)圖的深度是()。

A)7

B)6

C)3

D)2

(6)程序調(diào)試的任務(wù)是()。

A)設(shè)計測試用例B)驗證程序的正確性

C)發(fā)現(xiàn)程序中的錯誤D)診斷和改正程序中的錯誤

(7)下列關(guān)于數(shù)據(jù)庫設(shè)計的敘述中,正確的是()。

A)在需求分析階段建立數(shù)據(jù)字典B)在概念設(shè)計階段建立數(shù)據(jù)字典

C)在邏輯設(shè)計階段建立數(shù)據(jù)字典D)在物理設(shè)計階段建立數(shù)據(jù)字

(8)數(shù)據(jù)庫系統(tǒng)的三級模式不包括()。

A)概念模式B)內(nèi)模式C)外模式D)數(shù)據(jù)模式

(9)有三個關(guān)系R、S利T如下:

RST

HABC

ratzltnsc31

LbJ□JEJ

L±JL±JL±JLD

則由關(guān)系R和s得到關(guān)系T的操作是()。

A)自然連接B)差C)交D)并

(10)下列選項中屬于面向?qū)ο笤O(shè)計方法主要特征的是()。

A)繼承B)自頂向下C)模塊化D)逐步求精

(11)以下敘述中錯誤的是()。

A)C語言編寫的函數(shù)源程序,其文件名后綴可以是.C

B)C語言編寫的函數(shù)都可以作為一個獨(dú)立的源程序文件

C)C語言編寫的每個函數(shù)都可以進(jìn)行獨(dú)立的編譯并執(zhí)行

D)一個C語言程序只能有一個主函數(shù)

(12)以下選項中關(guān)于程序模塊化的敘述錯誤的是()。

A)把程序分成若干相對獨(dú)立的模塊,可便于編碼和調(diào)試

B)把程序分成若干相對獨(dú)立、功能單一的模塊,可便于重復(fù)使用這些模塊

c)可采用自底向上、逐步細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序

D)可采用自項向下、逐步細(xì)化的設(shè)計方法把若干獨(dú)立模塊組裝成所要求的程序

(13)以下選項中關(guān)于c語言常量的敘述錯誤的是()。

A)所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量

B)常量分為整型常量、實型常量、字符常量和字符串常量

c)常量可分為數(shù)值型常量和非數(shù)值型常量

D)經(jīng)常被使用的變量可以定義成常量

(14)若有定義語句:inta=10;doubleb=3.14;,則表達(dá)式,A'+a+b值的類型是().

A)charB)intC)doubleD)float

(15)若有定義語句:intx=12,3=8,z;,在其后執(zhí)行語句z=0.9+x/y;,則Z的值為()。

A)l.9B)lC)2D)2.4

(16)若有定義:inta,b;,通過語句scanf("%d;%d”,&a,&b);,能把整數(shù)3賦給變量a,5

賦給變量b的輸入數(shù)據(jù)是()。

A)35B)3,5C)3;5D)35

(17)若有定義語句:intkl=10,k2=20;,執(zhí)行表達(dá)式(kl=kl>k2)&&(k2=k2>kl)后,kl和k2

的值分別為()。

A)0和1B)0和20C)10和1D)10和20

(18)有以下程序

#include

main()

{inta=l,b=0;

if(-a)b++;

elseif(a=0)b+=2:

elseb+=3:

printf("%d\n",b);

)

程序運(yùn)行后的輸出結(jié)果是()o

A)0B)1C)2D)3

(19)下列條件語句中,輸出結(jié)果與其他語句不同的是()o

A)if(a)printf("%d\-n",x);elseprintf(H%d\nH,y);

B)if(a―O)printf(,,%d\n",y);elseprintf(n%d\n",x);

C)if(a!=O)p由tf(”%d\n",x);elseprintf("%d\nn,y);

D)if(a=O)printf(u%d\nH,x);elseprintf("%d\n",y);

(20)有以下程序

#include

main()

{inta=7;

while(a-);

printf(',%d\nn,a);

)

程序運(yùn)行后的輸出結(jié)果是()o

A)-lB)0C)1D)7

(21)以下不能輸出字符A的語句是(注:字符A的ASCII碼值為65,字符a的ASCII碼值為

97)

A)printf(u%c\nM,才-32);B)printf(H%d\n",'A');

c)printf(H%c\n",65);D)print-f(M%c\nn,'B'-l);

(22)有以下程序(注:字符a的ASCH碼值為97)

#include

main()

{char*s={,,abeH);

do

{printf(''%d'',+s%10);++s;)

while(+s);

)

程序運(yùn)行后的輸出結(jié)果是()。

A)abcB)789Q7890D)979899

(23)若有定義語句:doublea,+p=&a;以下敘述中錯誤的是()。

A)定義語句中的*號是一個間址運(yùn)算符

B)定義語句中的*號只是一個說明符

C)定義語句中的P只能存放double類型變量的地址

D)定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P

(24)有以下程序

#include

doublef(doublex);

main()

{doublea_0;inti;

for(i=0;i<30;i+=10)a+-f((double)i);

printf("%5.Of\n",a);

)

doublef(doublex)

(returnX+x+1;)

程序運(yùn)行后的輸出結(jié)果是()。

A)503B)401C)500D)1404

(25)若有定義語句

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論