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