3月計算機等級考試二級C++筆試試題
一、選擇題(每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列敘述中正確的是
A)對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B)對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為(n/2)
C)對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為(log2n)
D)對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為(n log2n)
(2)算法的時間復(fù)雜度是指
A)算法的執(zhí)行時間
B)算法所處理的數(shù)據(jù)量
C)算法程序中的語句或指令條數(shù)
D)算法在執(zhí)行過程中所需要的基本運算次數(shù)
(3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是
A)編輯軟件
B)操作系統(tǒng)
C)教務(wù)管理系統(tǒng)
D)瀏覽器
(4)軟件(程序)調(diào)試的任務(wù)是
A)診斷和改正程序中的錯誤
B)盡可能多地發(fā)現(xiàn)程序中的錯誤
C)發(fā)現(xiàn)并改正程序中的所有錯誤
D)確定程序中錯誤的性質(zhì)
(5)數(shù)據(jù)流程圖(DFD圖)是
A)軟件概要設(shè)計的工具
B)軟件詳細(xì)設(shè)計的工具
C)結(jié)構(gòu)化方法的需求分析工具
D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?/p>
(6)軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計屬于
A)定義階段
B)開發(fā)階段
C)維護(hù)階段
D)上述三個階段
(7)數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是
A)數(shù)據(jù)定義語言
B)數(shù)據(jù)管理語言
C)數(shù)據(jù)操縱語言
D)數(shù)據(jù)控制語言
(8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個學(xué)生信息的數(shù)據(jù)單位是
A)文件
B)數(shù)據(jù)庫
C)字段
D)記錄
(9)數(shù)據(jù)庫設(shè)計中,用E-R圖來描述信息結(jié)構(gòu)但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設(shè)計的
A)需求分析階段
B)邏輯設(shè)計階段
C)概念設(shè)計階段
D)物理設(shè)計階段
(10)有兩個關(guān)系R和T如下:
則由關(guān)系R得到關(guān)系T的操作是
A)選擇
B)投影
C)交
D)并
(11)下列關(guān)于函數(shù)的描述中,錯誤的是
A)函數(shù)可以沒有返回值
B)函數(shù)可以沒有參數(shù)
C)函數(shù)可以是一個類的成員
D)函數(shù)不能被定義為模板
(12)若MyClass是一個類名,且有如下語句序列
MyClass c1,*c2;
MyClass *c3=new MyClass;
MyClass &c4=c1;
上面的語句序列所定義的類對象的個數(shù)是
A)1
B)2
C)3
D)4
(13)下列關(guān)于繼承方式的描述中,錯誤的是
A)如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)
B)采用公有繼承方式時,基類中的公有成員在派生類中仍然是公有成員
C)采用保護(hù)繼承方式時,基類中的保護(hù)成員在派生類中仍然是保護(hù)成員
D)采用私有繼承方式時,基類中的私有成員在派生類中仍然是私有成員
(14)將前綴運算符“--”重載為非成員函數(shù),下列原型中,能正確用于類中說明的是
A)Decr& operator --(int);
B)Decr operator --( Decr&,int);
C)friend Decr& operator --(Decr&);
D)frlend Decr operator --(Decr&,int);
(15)若MyTemp是一個只有一個虛擬類型參數(shù)的類模板,且有如下語句序列
MyTemp
MyTemp
編譯系統(tǒng)在處理上面的語句序列時,所生成的模板MyTemp的實例的個數(shù)是
A)1
B)2
C)3
D)0
(16)在C++中,cin是個
A)類
B)對象
C)模板
D)函數(shù)
(17)在下列字符中,不允許作為C++標(biāo)識符的是
A)b
B)B
C)_
D)2
(18)下列敘述中,錯誤的是
A)false是一個邏輯型常量
B)"b"是一個字符型常量
C)365是一個int常量
D)3.1415926是一個double常量
(19)若x和y是程序中的兩個整型變量,則下列if語句中正確的是
A)if(x==0) y=1; else y=2;
B)if(x==0) then y=1 else y=2;
C)if(x==0) y=1 else y=2;
D)if x==0 y=1; else y=2;
(20)要定義整型數(shù)組x,使之包括初值為O的三個元素,下列語句中錯誤的是
A)int x[3]={0,0,0};
B)int x[]={0};
C)static int x[3]={0};
D)int x[]={0,0,0};
(21)關(guān)于函數(shù)中的<返回類型>,下列表述中錯誤的是
A)<返回類型>中有可能包含關(guān)鍵字int
B)<返回類型>中有可能包含自定義標(biāo)識符
C)<返回類型>中有可能包含字符*
D)<返回類型>中可能包含[]
(22)要定義一個引用變量p,使之引用類MyClass的一個對象,正確的定義語句是
A)MyClass p=MyClass;
B)MyClass p=new MyClass;
C)MyClass &p=new MyClass;
D) MyClass a,&p=a;
(23)有如下兩個類定義
class XX{
private:
double x1;
protected:
double x2;
public:
double x3;
};
class YY:protected XX{
private:
double y1;
protected:
double y2;
public:
double y3;
};
在類YY中保護(hù)成員變量的個數(shù)是
A)1
B)2
C)3
D)4
(24)下列關(guān)于運算符重載的描述中,錯誤的是
A)可以通過運算符重載在C++中創(chuàng)建新的運算符
B)賦值運算符只能重載為成員函數(shù)
C)運算符函數(shù)重載為類的成員函數(shù)時,第一操作數(shù)是該類對象
D)重載類型轉(zhuǎn)換運算符時不需要聲明返回類型
(25)下列關(guān)于類模板的描述中,錯誤的是
A)類模板的成員函數(shù)都是模板函數(shù)
B)可以為類模板參數(shù)設(shè)置默認(rèn)值
C)類模板描述了一組類
D)類模板中只允許有一個類型參數(shù)
(26)下列控制格式輸入輸出的操作符中,能夠設(shè)置浮點數(shù)精度的是
A)setprecision
B)setw
C)setfill
D)showpoint
(27)下列程序段中包含4個函數(shù),其中具有隱含this指針的是
int fun1();
class Test{
public:
int fun2();
friend int fun3();
static int fun4();
};
A)fun1
B)fun2
C)fun3
D)fun4
(28)有如下程序
#include
using namespace std;
class Test{
public:
Test(){ }
Test(const Test &t) {cout<<1;}
};
Test fun(Test &u) {Test t=u; return t;}
int main(){Test x,y; x=fun(y); return 0;}
運行這個程序的輸出結(jié)果是
A)無輸出
B)1
C)11
D)111
(29)有如下程序
#include
using namespace std;
class A{
public:
A(int i=0):r1(i) { }
void print() {cout<<'E’<
void print() const {cout<<'C'<
void print(int x) {cout <<'P'<
private:
int r1;
};
int main() {
A a1;
const A a2(4);
a1.print(2);
a1.print();
return 0;
}
運行時的輸出結(jié)果是
A)P8-E4
B)P8-C16-
C)P0-E4-
D)P0-C16-
(30)下列代碼聲明了3個類
class Person{};
class Student:public Person{};
class Undergraduate:Student{};
下列關(guān)于這些類之間關(guān)系的描述中,錯誤的是
A)類Person是類Undergraduate的基類
B)類Undergraduate從類Student公有繼承
C)類Student是類Person的派生類
D)類Undergraduate是類Person的派生類
(31)有如下程序
#include
using namespace std;
Class Base{
public:
Base(int x=0):valB(x) {cout<
~Base() {cout<
private:
int valB;
};
class Derived:public Base{
public:
Derived(int x=0,int y=0):Base(x),valD(y){cout<
~Derived() {cout<
private:
int valD;
};
int main(){
Derived obj12(2,3);
retuen 0;
}
運行時的輸出結(jié)果是
A)2332
B)2323
C)3232
D)3223
(32)下面是類Shape的定義:
class Shape{
public:
virtual void Draw()=0;
};
下列關(guān)于Shape類的描述中,正確的是
A)類Shape是虛基類
B)類Shape是抽象類
C)類Shape中的Draw函數(shù)聲明有誤
D)語句“Shape s;”能夠建立Shape的一個對象s
(33)將運算符“+”重載為非成員函數(shù),下列原型聲明中,錯誤的是
A)MyClock operator + (MyClock,long);
B)MyClock operator + (MyClock,MyClock);
C)MyClock operator + (long,long);
D)MyClock operator + (long,MyClock);
(34)打開文件時可單獨或組合使用下列文件打開模式
①ios_base::app ②ios_base::binary
③ios_base::in ④ios_base::out
若要以二進(jìn)制讀方式打開一個文件,需使用的文件打開模式為
A)①③
B)①④
C)②③
D)②④
(35)有如下程序:
#include
using namespace std;
Class B{
public:
B(int xx):x(xx) {++cout; x+=10;}
virtual void show() const
{cout<
protected:
static int count;
private:
int x;
};
class D:public B{
public:
D(int xx,int yy):B(xx),y(yy) {++count; y+=100;}
virtual void show() const
{cout<
private:
int y;
};
int B::count=0;
int main(){
B *ptr=new D(10,20);
ptr->show();
delete ptr;
return 0;
}
運行時的輸出結(jié)果是
A)1_120
B)2_120
C)1_20
D)2_20
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【l】~【15】序號的橫線上,答在試卷上不得分。
(1)一個隊列的初始狀態(tài)為空。現(xiàn)將元素A,B,C,D,E,F,5,4,3,2,1依次入隊,然后再依次退隊,則元素退隊的順序為 【1】 。
(2)設(shè)某循環(huán)隊列的容量為50,如果頭指針front=45(指向隊頭元素的前一位置),尾指針rear=10(指向隊尾元素),則該循環(huán)隊列中共有 【2】 個元素。
(3)設(shè)二叉樹如下:
對該二叉樹進(jìn)行后序遍歷的結(jié)果為 【3】 。
(4)軟件是 【4】 、數(shù)據(jù)和文檔的集合。
(5)有一個學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號,姓名,班級,年齡),課程的關(guān)系模式為:課程(課號,課程名,學(xué)時),其中兩個關(guān)系模式的鍵分別是學(xué)號和課號,則關(guān)系模式選課可定義為:選課(學(xué)號, 【5】 ,成績)。
(6)若x和y是兩個整形變量,在執(zhí)行了語句序列
x=5; y=6; y+=x--;
后,x+y的值為 【6】 。
(7)在執(zhí)行語句序列
int i=0; do i++; while(i*i<10);
時,do后面的循環(huán)體語句i++被執(zhí)行的次數(shù)為 【7】 。
(8)有如下的函數(shù)定義:
int Xfun(int *a, int n){
int x=*a;
if(*pa>x) x=*pa;
return x;
}
若執(zhí)行了語句
int x[5]={23,46,78,55,16};
后,通過表達(dá)式Xfun(x,5)調(diào)用該函數(shù),則得到的返回值為 【8】 。
(9)有如下的函數(shù)定義:
int Xfun(int x){
int y=x;
{int x=10; y+=x;}
return x+y;
}
通過表達(dá)式Xfun(5)調(diào)用該函數(shù),則得到的返回值為 【9】 。
(10)假定Xcs是一個類,該類中一個成員函數(shù)的原型為“Xcs *abc();”,則在類外定義時對應(yīng)的函數(shù)頭為 【10】 。
(11)請將下面的類Date的定義補充完整,使得由語句
Date FirstDay;
定義的對象FirstDay的值為2010年1月1日。
class Date{
public:
Date( 【11】 ):year(y),month(m),day(d){ }
private:
int year,month,day; //依次表示年、月、日
};
(12)請將下面的程序補充完整,使得程序輸出“飄是張娜的書”。
#include
using namespace std;
class Book{
public:
Book(char *str) {strcpy(title,str);}
【12】 void PrintInfo() {cout<
protected:
char title[50];
};
class MyBook:public Book{
public:
MyBook(char *s1,char *s2="張娜"):
【13】 {strcpy(owner,s2);}
virtual void PrintInfo() {cout<
private:
char owner[10];
};
int main(){
Book *prt=new MyBook("飄");
prt->PrintInfo();
return 0;
}
(13)在有理數(shù)類Rational中重載插入運算符<<,以便按a/q形式輸出。請將<<運算符函數(shù)的定義補充完整。
class Rational{
public:
Rational(int aa, int qq):a(aa),q(qq){ }
friend 【14】 operator<<(ostream &out, Rational &x)
{
return (out<
}
private:
int a,q;
};
(14)下面的函數(shù)定義是某函數(shù)模板能夠生成的函數(shù)實例
int square(int n) {return n*n;}
double square(double n) {return n*n;}
由此可知,該函數(shù)模板的定義是 【15】 。
相關(guān)文章
3月計算機等級考試二級Java筆試試題 (2011-04-03 14:24:23) |
12月大學(xué)英語四級(CET-4)真題 (2011-03-09 10:28:30) |
報關(guān)員考試真題 (2011-03-05 11:04:29) |
導(dǎo)游資格考試卷真題精選 (2011-02-28 16:30:46) |
考研數(shù)學(xué)真題各學(xué)科分?jǐn)?shù)詳細(xì)分布比例 (2011-01-17 10:25:51) |
江蘇省3月計算機等級考試成績查詢 (2010-06-23 15:46:41) |
歷史學(xué)考研真題新特點及備考方略 (2010-06-07 11:57:00) |
中醫(yī)執(zhí)業(yè)醫(yī)師考試中醫(yī)內(nèi)科學(xué)真題(9) (2010-05-14 11:25:00) |
中醫(yī)執(zhí)業(yè)醫(yī)師考試中醫(yī)內(nèi)科學(xué)真題(7) (2010-05-14 11:24:00) |
中醫(yī)執(zhí)業(yè)醫(yī)師考試中醫(yī)內(nèi)科學(xué)真題(8) (2010-05-14 11:24:00) |