3月計算機等級考試二級C++筆試試題
一、選擇題
(1)下列關于(yu)棧(zhan)敘述正確的是
A)棧頂元素(su)最(zui)先(xian)能被(bei)刪除
B)棧(zhan)頂元(yuan)素最后才能被刪除
C)棧底元素永遠不能(neng)被刪除
D)以上三種說法都不對
(2)下列敘述中正確的是
A)有一個以上(shang)根結(jie)點的數據結(jie)構(gou)不一定是非線性結(jie)構(gou)
B)只有(you)一(yi)個(ge)根結(jie)點(dian)的數據結(jie)構不(bu)一(yi)定是線性(xing)結(jie)構
C)循環(huan)鏈表是非線性結構
D)雙向鏈表是非線性(xing)結(jie)構
(3)某二叉樹(shu)共有(you)7個結點(dian),其(qi)中葉子結點(dian)只有(you)1個,則該二叉樹(shu)的深度為(假設(she)根結點(dian)在(zai)第1層(ceng))
A)3
B)4
C)6
D)7
(4)在軟(ruan)件開發中,需求(qiu)分析階段產生的主要(yao)文檔是
A)軟件集成測(ce)試計劃
B)軟件詳(xiang)細設計說明(ming)書
C)用戶手(shou)冊
D)軟件需(xu)求規格說明書
(5)結(jie)構化程序所(suo)要求的基本結(jie)構不包括
A)順序(xu)結(jie)構
B)GOTO跳轉
C)選擇(分支)結構(gou)
D)重復(循環)結(jie)構(gou)
(6)下面描述中錯(cuo)誤(wu)的是
A)系(xi)統總體(ti)結構圖支持軟件(jian)系(xi)統的詳(xiang)細設(she)計
B)軟件(jian)設(she)計是將軟件(jian)需求轉換為軟件(jian)表示的過程
C)數據結構(gou)與數據庫(ku)設計(ji)是(shi)軟件設計(ji)的任務(wu)之一
D)PAD圖是軟(ruan)件詳細設計的表示工(gong)具
(7)負責數據庫中(zhong)查詢操作的數據庫語言是
A)數據定義語言(yan)
B)數(shu)據管理語(yu)言(yan)
C)數(shu)據操縱(zong)語言(yan)
D)數據控(kong)制語言
(8)一(yi)個教師可(ke)講(jiang)授(shou)(shou)多門課(ke)程,一(yi)門課(ke)程可(ke)由多個教師講(jiang)授(shou)(shou)。則(ze)實體教師和課(ke)程間的聯系是
A)1:1聯系
B)1:m聯系
C)m:1聯系(xi)
D)m:n聯系
(9)有三個(ge)關系R、S和T如下:

則由(you)關系(xi)R和S得(de)到關系(xi)T的操作是
A)自然連接
B)交
C)除
D)并
(10)定義(yi)無符號整數類(lei)為(wei)(wei)UInt,下面可以作為(wei)(wei)類(lei)UInt實(shi)例化值的是
A)-369
B)369
C)0.369
D)整(zheng)數集(ji)合{1,2,3,4,5}
(11)為了提高函數(shu)調用的實際(ji)運行(xing)速度,可(ke)以將(jiang)較簡單的函數(shu)定義為
A)內聯(lian)函數
B)重載函數
C)遞歸函數
D)函數模板
(12)若AA為(wei)(wei)一(yi)個類(lei),a為(wei)(wei)該(gai)類(lei)的(de)(de)非靜態數據成(cheng)員,在該(gai)類(lei)的(de)(de)一(yi)個成(cheng)員函數定義中(zhong)訪問a時,其(qi)書寫格式為(wei)(wei)
A)a
B)AA.a
C)a()
D)AA::a()
(13)當(dang)派(pai)生類(lei)(lei)從一(yi)個基(ji)類(lei)(lei)保護繼承時,基(ji)類(lei)(lei)中的一(yi)些(xie)成(cheng)員(yuan)在派(pai)生類(lei)(lei)中成(cheng)為保護成(cheng)員(yuan),這(zhe)些(xie)成(cheng)員(yuan)在基(ji)類(lei)(lei)中原有的訪問屬性是
A)任何(he)
B)公有或(huo)保護
C)保護或私(si)有(you)
D)私有
(14)若要對Data類中重載(zai)的加法運算符成員(yuan)函數(shu)進(jin)行(xing)聲(sheng)明,下(xia)列選項中正確的是
A)Data+(Data);
B)Data operator+(Data);
C)Data+operator(Data);
D)operator+(Data,Data);
(15)下列關于函數模(mo)板的描述中(zhong),正確的是
A)函數模板是一(yi)個(ge)實例函數
B)使用函(han)(han)數模板定義的(de)函(han)(han)數沒有返回類型
C)函數(shu)模板的(de)類(lei)型參數(shu)與函數(shu)的(de)參數(shu)相(xiang)同
D)通過使用不同(tong)的(de)類型參數(shu),可以從函(han)數(shu)模板(ban)得到不同(tong)的(de)實例函(han)數(shu)
(16) C++系統預定義了4個用于標準數據流的對(dui)象,下列選(xuan)項中(zhong)不屬于此類對(dui)象的是
A)cout
B)cin
C)cerr
D)cset
(17)Windows環境下,由C++源程序文件(jian)編譯(yi)而成的目標文件(jian)的擴展名(ming)是
A)cpp
B)exe
C)obj
D)lik
(18)字符串“a+b=12nt”的長度為
A)12
B)10
C)8
D)6
(19)有(you)如下程序:
#include
using namespace std;
int main(){
int f,f1=0,f2=1;
for(int i=3;i<=6;i++){
f=f1+f2;
f1=f2;f2=f;
}
cout<
}
運行時(shi)的(de)輸出(chu)結果是
A)2
B)3
C)5
D)8
(20)有如下程序:
#include
using namespace std;
int main(){
int a[6]={23,15,64,33,40,58};
int s1,s2;
s1=s2=a[0];
for(int* p=a+1;p if(s1>*p) s1=*p;
if(s2<*p) s2=*p;
}
cout<
}
運(yun)行時(shi)的輸出結(jie)果是
A)23
B)58
C)64
D)79
(21)有如下程序:
#include
using namespace std;
void f1(int& x,int& y) {int z=x; x=y; y=z;}
void f2(int x;int y) {int z=x; x=y; y=z;}
int main(){
int x=10,y=26;
f1(x,y);
f2(x,y);
cout<
}
運行時(shi)的輸(shu)出(chu)結果是(shi)
A)10
B)16
C)26
D)36
(22)有(you)如下程序:
#include
using namespace std;
class XA{
int a;
public:
static int b;
XA(int aa):a(aa) {b++;}
~XA(){}
int get(){return a;}
};
int XA::b=0;
int main(){
XA d1(2),d2(3);
cout<<:b+endl;> return 0;
}
運行時的(de)輸出結果是(shi)
A)5
B)6
C)7
D)8
(23)有(you)如下程序:
#include
using namespace std;
class Point{
int x,y;
public:
Point(int x1=0,int y1=0):x(x1),y(y1){}
int get(){return x+y;}
};
class Circle{
Point center;
int radius;
public:
Circle(int cx,int cy,int r):center(cx,cy),raaius(r){}
int get(){return center.get()+radius;}
};
int main(){
Circle c(3,4,5);
cout<
}
運行時的輸出結果是
A)5
B)7
C)9
D)12
(24)若(ruo)要對類(lei)BigNumber中(zhong)重載(zai)的類(lei)型轉換運(yun)算符long進行聲明,下(xia)列(lie)選(xuan)項中(zhong)正確的是
A)operator long() const;
B)operator long(BigNumber);
C)long operator long() const;
D)long operator long(BigNumber);
(25)有如下函數(shu)模板定義:
template
T1 FUN(T2 n){return n*5.0;}
若要求以(yi)int型數據9作為函數實(shi)參調(diao)用該模(mo)板,并(bing)返回一個double型數據,則該調(diao)用應(ying)表示(shi)為
A)FUN(9)
B)FUN<9>
C)FUN
D)FUN<9>(double)
(26)下列語(yu)(yu)(yu)句(ju)(ju)都是程序運行(xing)時(shi)的第1條輸(shu)出語(yu)(yu)(yu)句(ju)(ju),其中一條語(yu)(yu)(yu)句(ju)(ju)的輸(shu)出效果與其他三(san)條語(yu)(yu)(yu)句(ju)(ju)不同(tong),該語(yu)(yu)(yu)句(ju)(ju)是
A)cout<
A)析構(gou)函數(shu)可以重載
B)析構函(han)數由系(xi)統(tong)自動(dong)調用
C)每個對象(xiang)的析構函數只被調用一(yi)次
D)每個(ge)類都(dou)有析構函(han)數
(28)下列關于構造函數的描述(shu)中,錯誤(wu)的是
A)構造函(han)數名(ming)與類名(ming)相(xiang)同
B)構造(zao)函(han)數(shu)可以(yi)有返(fan)回值(zhi)
C)構造(zao)函數(shu)可以重載
D)每個類都(dou)有構造函數
(29)若PAT是一(yi)個(ge)類(lei),則程(cheng)序運行時,語句(ju)“PAT(*ad)[3];”調用PAT的(de)(de)構造函(han)數的(de)(de)次數是
A)0
B)1
C)2
D)3
(30)下列描述中,錯誤的是(shi)
A)公有繼承時基類(lei)中的公有成員(yuan)在派生類(lei)中仍是公有成員(yuan)
B)公有繼承(cheng)時基類(lei)中的保護成員在派生類(lei)中仍是保護成員
C)保護繼承時基類(lei)(lei)中(zhong)的(de)公有成員在派生類(lei)(lei)中(zhong)仍是公有成員
D)保護(hu)繼承時基類(lei)中(zhong)的保護(hu)成員在派(pai)生類(lei)中(zhong)仍是(shi)保護(hu)成員
(31)生成派生類對象(xiang)時,派生類構造函數(shu)調用(yong)基類構造函數(shu)的條(tiao)件是(shi)
A)無需(xu)任何(he)條件
B)基類中顯式(shi)定義了構(gou)造函數
C)派生(sheng)類中顯式(shi)定義了構造函數
D)派生類構造函數明確調用(yong)了(le)基類構造函數
(32)下列關于派生類(lei)(lei)和(he)基類(lei)(lei)的描述中,正確的是(shi)
A)派生類(lei)成員函數只能訪問基(ji)類(lei)的公(gong)有成員
B)派生類成員函數只能訪問基(ji)類的公有和保護成員
C)派生類(lei)成員函數可(ke)以訪問(wen)基類(lei)的所有成員
D)派生類(lei)對基類(lei)的默認繼承(cheng)方式是公有(you)繼承(cheng)
(33)有如下類(lei)模(mo)板定義:
template
class BigNumber{
long n;
public:
BigNumber(T i):n(i){}
BigNumber operator+(BigNumber b){
return BigNumber(n+b.n);
}
};
己知b1、b2是(shi)BigNumber的(de)兩個對象,則下列表達式中(zhong)錯誤的(de)是(shi)
A)bl+b2
B)b1+3
C)3+b1
D)3+3
(34)下列關于文件流的描述(shu)中,正確的是
A)文件流只能完成針(zhen)對磁(ci)盤文件的輸(shu)入輸(shu)出
B)建立一(yi)(yi)個文(wen)件流對象(xiang)時,必須(xu)同時打開一(yi)(yi)個文(wen)件
C)若輸(shu)入(ru)流要打開的(de)文(wen)件(jian)不存在,將(jiang)建(jian)立一個新文(wen)件(jian)
D)若輸出流要打開的文件(jian)不存在,將建立一個新文件(jian)
(35)有如下程序:
#include
using namespace std;
class Pair{
int m,n;
public:
Pair(int j,int k):m(j),n(k){}
int get() {return m;}
int get() const {return m+n;}
};
int main(){
Pair a(3,5);
const Pair b(3,5);
cout+a.get()<
}
運行時的輸出結(jie)果是
A)33
B)38
C)83
D)88
二、填空題
(1)有(you)序線(xian)性表(biao)能進行二(er)分(fen)查找的(de)前提(ti)是(shi)該線(xian)性表(biao)必須是(shi) 【1】 存儲的(de)。
(2)一(yi)棵二叉樹的中序(xu)遍(bian)歷(li)結果(guo)(guo)為DBEAFC,前序(xu)遍(bian)歷(li)結果(guo)(guo)為ABDECF。則(ze)后(hou)序(xu)遍(bian)歷(li)結果(guo)(guo)為 【2】 。
(3)對軟件設計的(de)最(zui)小(xiao)單位(wei)(模塊或程序單元)進行(xing)的(de)測試(shi)通(tong)常稱為 【3】 測試(shi)。
(4)實體完整性約(yue)束要求關系數據庫中(zhong)元組(zu)的 【4】 屬性值不能(neng)為空。
(5)在關(guan)系A(S,SN,D)和關(guan)系B(D,CN,NM)中,A的(de)主(zhu)關(guan)鍵字是S,B的(de)主(zhu)關(guan)鍵字是D,則稱 【5】 是關(guan)系A的(de)外碼。
(6)若有定義語(yu)句(ju)“int x=10,y=20,z=20;”,則表(biao)達式x>z&&y==z的值(zhi)為 【6】 。
(7)有(you)如下語句序列:
int x=-10;while(++x){ }
運(yun)行時while循(xun)環體的執行次(ci)數為 【7】 。
(8)有如下語句序列:
int arr[2][2]={{9,8},{7,6}};
int *p=arr[0]+1; cout<<*p<
(9)函數(shu)fun的功能是將一(yi)個數(shu)字字符串轉換為一(yi)個整(zheng)數(shu),請將函數(shu)補充完整(zheng)。
int fun(char *str){
int num=0;
while(*str){
num*=10;
num+= 【9】 ;
str++;
}
return num;
}
(10)若要將函(han)數(shu)“void FriFun();”聲明為類MyClass的友(you)元函(han)數(shu),則應在類MyClass的定義中加入語句 【10】 。
(11)下列程序的輸(shu)出結果(guo)為012,請根據注釋(shi)將橫線(xian)處(chu)的缺失部(bu)分(fen)補充完整。
#include
using namespace std;
class Test{
public:
Test(int a) {data=a;}
~Test() {}
void print(){cout< private:
int data;
};
int main(){
Test t[3]={ 【11】 };//對有(you)3個元素的Test類對象數組t初(chu)始化t[i].print();
for(int i=0;i<3;i++)
return 0;
}
(12)請在橫(heng)線(xian)處填寫(xie)派生類Derived的繼承(cheng)方式,使得(de)程序的輸(shu)出結果(guo)為Base。
#include
using namespace std;
class Base{
public:
void print(){cout<<"Base";}
};
class Derived: 【12】 Base{};
int main(){
Derived d;
d.print();
return 0;
}
(13)下列程序的(de)輸出(chu)結果為(wei)1 2.3 2 4.6,請將(jiang)橫線處的(de)缺(que)失部分補充完整。
#include
using namespace std;
class Base{
public:
Base(int a):idata(a){}
void print(){cout<
int idata;
};
class Derived:public Base{
public:
Derived(int a;double b): 【13】 ,ddata(b){}
void print(){Base::print();cout<
double ddata;
};
int main(){
Derived dl(1,2.3),d2(2,4.6);
d1.print();
d2.print();
return 0;
}
(14)下列程(cheng)序的(de)輸出結(jie)果為-5/8 -3/4,請將(jiang)橫線(xian)處的(de)缺失(shi)部分補充完整。
#include
using namespace std;
class Fraction{ //“分數”類
public:
Fraction(double a,double b):num(a),den(b){}
~Fraction(){}
//重載取負運(yun)算符“-”,返(fan)回(hui)一個分數對(dui)象,其(qi)分子是原來(lai)分子的相反數。
Fraction operator-(){
【14】
return f;
}
void print(){ cout<
double num; //分子
double den; //分母
};
int main(){
Fraction f1(5;8),f2(3,4);
(-f1).print();(-f2).print();
return 0;
}
(15)函數Min的功能是返回具(ju)有n個(ge)元素的數組array中的最小值(zhi)。請將橫線處的缺(que)失(shi)部分(fen)補(bu)充完整,使得程(cheng)序的輸出結果為(wei)1.24。
#include
using namespace std;
template
T Min(T* array,int n){
T min=array[0];
for(int i=1;i
}
int main(){
double arr[8]={5.2,48.45,41.01,42,51.2,1.24,14.12,42};
cout<< 【15】 ;
return 0;
}
相關文章
| 3月計算機等級考試二級C語言筆試試題 (2011-04-03 15:05:22) |
| 3月計算機等級考試二級VF筆試試題 (2011-04-03 14:43:06) |
| 3月計算機等級考試二級Access試試題 (2011-04-03 14:37:12) |
| 3月計算機等級考試二級C++筆試試題 (2011-04-03 14:31:35) |
| 3月計算機等級考試二級Java筆試試題 (2011-04-03 14:24:23) |
| 12月大學英語四級(CET-4)真題 (2011-03-09 10:28:30) |
| 報關員考試真題 (2011-03-05 11:04:29) |
| 導游資格考試卷真題精選 (2011-02-28 16:30:46) |
| 考研數學真題各學科分數詳細分布比例 (2011-01-17 10:25:51) |
| 江蘇省3月計算機等級考試成績查詢 (2010-06-23 15:46:41) |

您現在的位置: