版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)公司實習(xí)生協(xié)議
- 歐式酒店羅馬柱施工合同
- 照明工程人工費(fèi)施工合同
- 會計實習(xí)生聘用合同
- 企業(yè)社會責(zé)任績效
- 糖尿病的健康管理方案設(shè)計
- 工程項目合同質(zhì)量管理情況記錄
- 電子產(chǎn)品測試顧問協(xié)議
- 工程施工轉(zhuǎn)讓合同協(xié)議
- 2022年大學(xué)工程力學(xué)專業(yè)大學(xué)物理下冊期中考試試題B卷-附解析
- 2024年大學(xué)生就業(yè)創(chuàng)業(yè)知識競賽題庫及答案(共350題)
- 基于SICAS模型的區(qū)域農(nóng)產(chǎn)品品牌直播營銷策略研究
- 《算法設(shè)計與分析基礎(chǔ)》(Python語言描述) 課件 第6章分支限界法
- 病例討論英文
- 2024秋期國家開放大學(xué)專科《液壓與氣壓傳動》一平臺在線形考(形考任務(wù)+實驗報告)試題及答案
- 個人健康管理平臺使用操作教程
- 【課件】植物體的結(jié)構(gòu)層次課件-2024-2025學(xué)年人教版生物七年級上冊
- 24秋國家開放大學(xué)《0-3歲嬰幼兒的保育與教育》期末大作業(yè)參考答案
- 相對濕度計算公式
- 新版《鐵道概論》考試復(fù)習(xí)試題庫(含答案)
- 2024版腫瘤患者靜脈血栓防治指南解讀 課件
評論
0/150
提交評論