為大家收集整理了《2007年9月全國計算機等級考試二級C++筆試試題及答案》供大家參考,希望對大家有所幫助?。?!
一、選擇題(每小題2分,共70分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列敘述中正確的是 。
A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān).
B)算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的.
D)算法的時間復雜度與空間復雜度一定相關(guān).
(2)在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是 。
A) 各模塊應(yīng)包括盡量多的功能
B) 各模塊的規(guī)模應(yīng)盡量大
C)各模塊之間的聯(lián)系應(yīng)盡量緊密
D) 模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度
(3)下列敘述中正確的是 。
A)軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤.
B)軟件測試的主要目的是確定程序中錯誤的位置.
C)為了提高軟件測試的效率,由程序編制者自己來完成軟件測試的工作
D)軟件測試是證明軟件沒有錯誤
(4) 下面選項中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是 。
A)繼承性
B)多態(tài)性
C)類比性
D)封裝性
(5) 下列對列的敘述正確的是 。
A) 隊列屬于非線性表
B) 隊列按”先進后出”的原則組織數(shù)據(jù)
C)隊列在隊尾刪除數(shù)據(jù)
D) 隊列按“先進先出”原則組織數(shù)據(jù)
(6)對下列二叉樹
進行前序遍歷的結(jié)果為
A)DYBEAFCZX
B)YDEBFZXCA
C)ABDYECFXZ
D)ABCDEFXYZ
(7)某二叉樹中有n個度為2的結(jié)點則該二叉樹中的葉子結(jié)點數(shù)為
A)n+1
B)n-1
C)2n
D)n/2
(8)在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是 。
A)井
B)交
C)投影
D)笛卡兒乘積
(9)在E-R圖中,用來表示實體之間是聯(lián)系的圖形是 。
A) 矩形
B)橢圓形
C)菱形
D)平行四邊形
(10)下列敘述中錯誤的是 。
A) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致.
B)數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)的共享問題
C)數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
(11)為了取代C中帶參數(shù)的宏,在C++中使用
A)重載函數(shù)
B)內(nèi)聯(lián)函數(shù)
C)遞歸函數(shù)
D)友元函數(shù)
(12)下列關(guān)于類定義的說法中,正確的是
A)類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明
B)類成員的缺省訪問權(quán)限是保護的
C) 數(shù)據(jù)成員必須被聲明為私有的
D)成員函數(shù)只能在類體外進行定義
(13)下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯誤的是
A)派生類的構(gòu)造函數(shù)會隱含調(diào)用基類的構(gòu)造函數(shù)
B)如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)
C)在建立派生類對象時,先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
D)在銷毀派生類對象時,先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)
(14)通過運算符重載,可以改變運算符原有的
A)操作數(shù)類型
B)操作數(shù)個數(shù)
C)優(yōu)先級
D)結(jié)合性
(15)有如下函數(shù)模板:
template T souare(T x) (retumx * x ;)
基中T是
A)函數(shù)形參
B)函數(shù)實參
C)模板形參
D)模板實參
(16)使用輸入輸出操作符setw,可以控制
A)輸出精度
B)輸出寬度
C)對齊方式
D)填充字符
(17)下列字符串中,不可以用作C++標識符的是
A)y_2006
B)____TEST__H
C)Retum
D)switch
(18)字面常量42、4.2、42L的數(shù)據(jù)類型分別是
A)long、double int
B)long、float、int
C)int、double、long
D)int、float、long
(19)執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是
for(int i =50;I>1;— i )cout<<”*”
A)48
B)49
C)50
D)51
(20)有如下程序段
int i =0, j=1;
int &r=i ; // ①
r =j; //②
int*p=&i ; //③
*p=&r ; //④
基中會產(chǎn)生編譯錯誤的語句是
A)④
B)③
C)②
D)①
(21)有如下函數(shù)定義:
void func (int a,int&b) {a++; b++;}
若執(zhí)行代碼段:
int x=0 ,y=1
func(x,y);
則變量x和y值分別是
A)0和1
B)1和1
C)0和2
D)1和2
(22)有如下程序:
#include
using namespace std;
class A{
public
static int a;
void init(){a=1;}
A(int a=2) {init();a++;}
};
int A:;a=0
A obj;
Int main()
{
cout< retum0;
}
運行時輸出的結(jié)果是
A)0
B)1
C)2
D)3
(23)下列有關(guān)繼承和派生的敘述中,正確的是
A) 派生類不能訪問基類的保護成員
B)作為虛基類的類不能被實例化
C)派生類應(yīng)當向基類的構(gòu)造函數(shù)傳遞參數(shù)
D)虛函數(shù)必須在派生類中重新實現(xiàn)
(24)下列運算符中,不能被重載的是
A)&&
B)!=
C).
D)++
(25)下列函數(shù)模板的定義中,合法的是
A) template Tabs(T x) {return x <0 – x: x;}
B)template class Tabs(Tx){retumx<0 -x;x;}
C)template Tabs(T x){retum x<0 -x;x;}
D)template T abs(T x){returm x<0 -x;x;}
(26)在語句cin>>data;中,cin是
A)C++的關(guān)鍵字
B)類名
C)對象名
D)函數(shù)名
(27)有如下程序:
#include
using namespace std;
class test {
private:
int a;
public:
test(){cout<<”constructor”< test(int a){cout< test(const test&_test)
{
a=_testa;
cout<<”copy constructor”< }
test(){cout<<”destructor”< };
int main()
}
test A(3)
return0;
運行時輸出的結(jié)果是
A)3
B)constructor
destruclor
C)copy constructor
D)3
dstructor destruclor
(28)若有如下類聲明
class My Class {
public:
MyClass() {cout<<1;}
};
執(zhí)行下列語句
MyClass a,b[2],*P[2];
以后,程序的輸出結(jié)果是
A)11
B)111
C)1111
D11111
(29)有如下程序:
#include
using namespace std;
class point {
public:
static int number;
public:
point(){number++;
~point(){number-;}
};
imt point::number=0;
void main(){
point*ptr;
printA,B;
{
point*ptr_point=new point{3};
ptr=ptr_point;
}
pointC;
cout< delete[]ptr;
}
運行時輸出的結(jié)果是
A)3
B)4
C)6
D)7
(30)如果不使用多態(tài)機制,那么通過基類的指針雖然可以指向派生類對象,但是只能訪問從基類繼承的成員,有如下程序,沒有使用多態(tài)機制。
#include
using namespace std;
class Base{
int a,b;
public:
Bace(int x ,int y) { a=x; b=y;}
Void show(){ cout< }
clsaa Derived:public Base {
int c ,d;
public:
Derived(int x,int y,int z,int m):Base(x,y){c=z; d=m;}
Void show(){ cout< };
int main()
{
Base B1(50,50),*pb;
Derived DI(10,20,30,40);
Pb=&D1;
Pb->show();
Return 0;
}
運行時輸出的結(jié)果是
A)10,20
B)30,40
C)20,30
D)50,50
(31)有如下程序:
#include
using namespace std;
class A
{
public;
A(int i ){x= i ;}
Void sispa(){cout< Private:
int x ;
};
class B;publicA
{
public;
B(int i):A(i +10) {x =i ;}
voud dispb() {dispa();cout< Private:
Int x;
};
int main()
{
B b(2);
b.dispb()
retum 0:
}
運行時輸出的結(jié)果是
A)10,2
B)12,10
C)12,2
D)2,2
(32)虛函數(shù)支持多態(tài)調(diào)用,一個基類的指針可以指向派生類的對象,而且通過這樣的指針調(diào)用虛函數(shù)時,,被調(diào)用的是指針所指的實際對象的虛函數(shù),而非虛函數(shù)不支持多態(tài)調(diào)用。有如下程序:
#include
using namespace std;
class Base
{
public:
virtual void f(){cout<<”f0+”;}
void g() {cout<<”g0+”;}
};
class Derived:public Base
{
public:
void f() {cout<<”f+”;}
void g() {cout<<”g+”;}
};
int main()
{
Derived d;
Base*p=&d;
p->f(); p->g();
return 0:
}
運行時輸出的結(jié)果是
A)f+g+
B)f0+g+
C)f+g0+
D)f0+g0+
(33)下面程序中對一維坐標點類Point進行運算符重載
#include
using namespace std;
class point {
public:
point (int vaI) {x=val;}
point& operator++(){x++;retum*this;}
print operator++(int) {point old=*this,++(*this);retum old;}
int GetX() const {retum x;}
private:
int x;
};
int main()
{
point a(10);
cout<<(++a).GetX();
cout< retum();
}
編譯和運行情況是
A)運行時輸出1011
B)運行時輸出1111
C)運行時輸出1112
D)編譯有錯
(34)有如下程序:
#include
using namespace std;
int main()
{
char str[100],*p;
cout<<”please input a string:”;
cin>>str;
p=str;
for(int i =0;*p!=”\0”;p++, i ++);
cout<< i < retum 0;
}
運行這個程序時,若輸入字符串為
abcdefg abcd
則輸出結(jié)果是
A)7
B)12
C)13
D)100
(35)有如下程序::
#include
using namespace std:
class Sample
{
friend long fun (Sample s);
public:
Sample (long a ){x=a;}
Private:
long x;
};
long fun (Sample s)
{
if(s.x<2)retum 1;
retum s.x*fun(Sample(s.x-a));
}
int main()
{
int sum=0
for(int i =0; i <6; i ++) { sum+=fun(Sample( i );) }
cout< retum 0;
}
運行時輸出的結(jié)果是
A)120
B)16
C)154
D)34
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為 【1】 。
(2)軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于 【2】 測試。
(3)在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理體制功能的核心軟件稱為 【3】 。
(4)軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)和維護階段。編碼和測試屬于 【4】 階段。
(5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用 【5】 對其中的圖形元素進行確切解釋。
(6)C++中只有兩個邏輯常量:true和 【6】 。
(7)若要訪問指針變量p所指向的數(shù)據(jù),應(yīng)使用表達式 【7】 。
(8)已知一個函數(shù)的原型是:
int fn(double x);
若要以5.27為實參調(diào)用該函數(shù),應(yīng)使用表達式 【8】 。
(9)有如下定義:
class MA{
int value;
public:
MA(int n=0):valut(n){}
};
MA*ta,tb;
其中MA類的對象名標識符是 【9】 。
(10)如下類定義中包含了構(gòu)造函數(shù)和拷貝數(shù)的原型聲明請在橫線處寫正確的內(nèi)容,使拷貝構(gòu)造函數(shù)的聲明完整。
Class my Class{
Private:
Int data:
Public:
MyClass(int value); //構(gòu)造函數(shù)
MyClass(const 【10】 another Object); //拷貝構(gòu)造函數(shù)
}
(11)用來派生新類的稱為 【11】 ,而派生出的新類稱為它的子類或派生類。
(12)有如下程序:
#include
using namespace std;
clsaa CA{
public:
CAD{cout< };
class CB ;private CA{
public;
CB(){cout< };
int main(){cout< };
int main(){
CA a;
CB b;
retum0;
}
這個程序的輸出結(jié)果是 【12】 。
(13)若將一個二元運算符重載為類的成員函數(shù),其形參個數(shù)應(yīng)該是 【13】 個。
(14)有如下程序:
#include
using namespace std;
class DA{
int k;
public:
DA(int x=1): k (x){}
~DA(){cout< };
int main(){
DA d[]={DA(3),DA(3),DA(3)};
DA* p=new DA[2];
delete[]p;
return0;
}
這個程序的輸出結(jié)果是 【14】 。
(15)C++語言中的多態(tài)性分為編譯時的多態(tài)性和 【15】 時的多態(tài)性。
選擇題:
1-5BDACD
6-10CABCA
11-15BADAC
16-20BCDBA
21-25CCCCA
26-30CDBDA
30-35CBBBC
填空:
1、63
2、黑盒
3、DBMS
4、開發(fā)
5、數(shù)據(jù)字典
6、false
7、 *P
8、fn(5.27)
9、tb
10、myclass&
11、基類
12、AAB
13、1個
14、11333
15、運行
一、選擇題(每小題2分,共70分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列敘述中正確的是 。
A)算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān).
B)算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的.
D)算法的時間復雜度與空間復雜度一定相關(guān).
(2)在結(jié)構(gòu)化程序設(shè)計中,模塊劃分的原則是 。
A) 各模塊應(yīng)包括盡量多的功能
B) 各模塊的規(guī)模應(yīng)盡量大
C)各模塊之間的聯(lián)系應(yīng)盡量緊密
D) 模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度
(3)下列敘述中正確的是 。
A)軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤.
B)軟件測試的主要目的是確定程序中錯誤的位置.
C)為了提高軟件測試的效率,由程序編制者自己來完成軟件測試的工作
D)軟件測試是證明軟件沒有錯誤
(4) 下面選項中不屬于面向?qū)ο蟪绦蛟O(shè)計特征的是 。
A)繼承性
B)多態(tài)性
C)類比性
D)封裝性
(5) 下列對列的敘述正確的是 。
A) 隊列屬于非線性表
B) 隊列按”先進后出”的原則組織數(shù)據(jù)
C)隊列在隊尾刪除數(shù)據(jù)
D) 隊列按“先進先出”原則組織數(shù)據(jù)
(6)對下列二叉樹
進行前序遍歷的結(jié)果為
A)DYBEAFCZX
B)YDEBFZXCA
C)ABDYECFXZ
D)ABCDEFXYZ
(7)某二叉樹中有n個度為2的結(jié)點則該二叉樹中的葉子結(jié)點數(shù)為
A)n+1
B)n-1
C)2n
D)n/2
(8)在下列關(guān)系運算中,不改變關(guān)系表中的屬性個數(shù)但能減少元組個數(shù)的是 。
A)井
B)交
C)投影
D)笛卡兒乘積
(9)在E-R圖中,用來表示實體之間是聯(lián)系的圖形是 。
A) 矩形
B)橢圓形
C)菱形
D)平行四邊形
(10)下列敘述中錯誤的是 。
A) 在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致.
B)數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)的共享問題
C)數(shù)據(jù)庫設(shè)計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫
D)數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持
(11)為了取代C中帶參數(shù)的宏,在C++中使用
A)重載函數(shù)
B)內(nèi)聯(lián)函數(shù)
C)遞歸函數(shù)
D)友元函數(shù)
(12)下列關(guān)于類定義的說法中,正確的是
A)類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明
B)類成員的缺省訪問權(quán)限是保護的
C) 數(shù)據(jù)成員必須被聲明為私有的
D)成員函數(shù)只能在類體外進行定義
(13)下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯誤的是
A)派生類的構(gòu)造函數(shù)會隱含調(diào)用基類的構(gòu)造函數(shù)
B)如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)
C)在建立派生類對象時,先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
D)在銷毀派生類對象時,先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)
(14)通過運算符重載,可以改變運算符原有的
A)操作數(shù)類型
B)操作數(shù)個數(shù)
C)優(yōu)先級
D)結(jié)合性
(15)有如下函數(shù)模板:
template T souare(T x) (retumx * x ;)
基中T是
A)函數(shù)形參
B)函數(shù)實參
C)模板形參
D)模板實參
(16)使用輸入輸出操作符setw,可以控制
A)輸出精度
B)輸出寬度
C)對齊方式
D)填充字符
(17)下列字符串中,不可以用作C++標識符的是
A)y_2006
B)____TEST__H
C)Retum
D)switch
(18)字面常量42、4.2、42L的數(shù)據(jù)類型分別是
A)long、double int
B)long、float、int
C)int、double、long
D)int、float、long
(19)執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是
for(int i =50;I>1;— i )cout<<”*”
A)48
B)49
C)50
D)51
(20)有如下程序段
int i =0, j=1;
int &r=i ; // ①
r =j; //②
int*p=&i ; //③
*p=&r ; //④
基中會產(chǎn)生編譯錯誤的語句是
A)④
B)③
C)②
D)①
(21)有如下函數(shù)定義:
void func (int a,int&b) {a++; b++;}
若執(zhí)行代碼段:
int x=0 ,y=1
func(x,y);
則變量x和y值分別是
A)0和1
B)1和1
C)0和2
D)1和2
(22)有如下程序:
#include
using namespace std;
class A{
public
static int a;
void init(){a=1;}
A(int a=2) {init();a++;}
};
int A:;a=0
A obj;
Int main()
{
cout< retum0;
}
運行時輸出的結(jié)果是
A)0
B)1
C)2
D)3
(23)下列有關(guān)繼承和派生的敘述中,正確的是
A) 派生類不能訪問基類的保護成員
B)作為虛基類的類不能被實例化
C)派生類應(yīng)當向基類的構(gòu)造函數(shù)傳遞參數(shù)
D)虛函數(shù)必須在派生類中重新實現(xiàn)
(24)下列運算符中,不能被重載的是
A)&&
B)!=
C).
D)++
(25)下列函數(shù)模板的定義中,合法的是
A) template Tabs(T x) {return x <0 – x: x;}
B)template class Tabs(Tx){retumx<0 -x;x;}
C)template Tabs(T x){retum x<0 -x;x;}
D)template T abs(T x){returm x<0 -x;x;}
(26)在語句cin>>data;中,cin是
A)C++的關(guān)鍵字
B)類名
C)對象名
D)函數(shù)名
(27)有如下程序:
#include
using namespace std;
class test {
private:
int a;
public:
test(){cout<<”constructor”< test(int a){cout< test(const test&_test)
{
a=_testa;
cout<<”copy constructor”< }
test(){cout<<”destructor”< };
int main()
}
test A(3)
return0;
運行時輸出的結(jié)果是
A)3
B)constructor
destruclor
C)copy constructor
D)3
dstructor destruclor
(28)若有如下類聲明
class My Class {
public:
MyClass() {cout<<1;}
};
執(zhí)行下列語句
MyClass a,b[2],*P[2];
以后,程序的輸出結(jié)果是
A)11
B)111
C)1111
D11111
(29)有如下程序:
#include
using namespace std;
class point {
public:
static int number;
public:
point(){number++;
~point(){number-;}
};
imt point::number=0;
void main(){
point*ptr;
printA,B;
{
point*ptr_point=new point{3};
ptr=ptr_point;
}
pointC;
cout< delete[]ptr;
}
運行時輸出的結(jié)果是
A)3
B)4
C)6
D)7
(30)如果不使用多態(tài)機制,那么通過基類的指針雖然可以指向派生類對象,但是只能訪問從基類繼承的成員,有如下程序,沒有使用多態(tài)機制。
#include
using namespace std;
class Base{
int a,b;
public:
Bace(int x ,int y) { a=x; b=y;}
Void show(){ cout< }
clsaa Derived:public Base {
int c ,d;
public:
Derived(int x,int y,int z,int m):Base(x,y){c=z; d=m;}
Void show(){ cout< };
int main()
{
Base B1(50,50),*pb;
Derived DI(10,20,30,40);
Pb=&D1;
Pb->show();
Return 0;
}
運行時輸出的結(jié)果是
A)10,20
B)30,40
C)20,30
D)50,50
(31)有如下程序:
#include
using namespace std;
class A
{
public;
A(int i ){x= i ;}
Void sispa(){cout< Private:
int x ;
};
class B;publicA
{
public;
B(int i):A(i +10) {x =i ;}
voud dispb() {dispa();cout< Private:
Int x;
};
int main()
{
B b(2);
b.dispb()
retum 0:
}
運行時輸出的結(jié)果是
A)10,2
B)12,10
C)12,2
D)2,2
(32)虛函數(shù)支持多態(tài)調(diào)用,一個基類的指針可以指向派生類的對象,而且通過這樣的指針調(diào)用虛函數(shù)時,,被調(diào)用的是指針所指的實際對象的虛函數(shù),而非虛函數(shù)不支持多態(tài)調(diào)用。有如下程序:
#include
using namespace std;
class Base
{
public:
virtual void f(){cout<<”f0+”;}
void g() {cout<<”g0+”;}
};
class Derived:public Base
{
public:
void f() {cout<<”f+”;}
void g() {cout<<”g+”;}
};
int main()
{
Derived d;
Base*p=&d;
p->f(); p->g();
return 0:
}
運行時輸出的結(jié)果是
A)f+g+
B)f0+g+
C)f+g0+
D)f0+g0+
(33)下面程序中對一維坐標點類Point進行運算符重載
#include
using namespace std;
class point {
public:
point (int vaI) {x=val;}
point& operator++(){x++;retum*this;}
print operator++(int) {point old=*this,++(*this);retum old;}
int GetX() const {retum x;}
private:
int x;
};
int main()
{
point a(10);
cout<<(++a).GetX();
cout< retum();
}
編譯和運行情況是
A)運行時輸出1011
B)運行時輸出1111
C)運行時輸出1112
D)編譯有錯
(34)有如下程序:
#include
using namespace std;
int main()
{
char str[100],*p;
cout<<”please input a string:”;
cin>>str;
p=str;
for(int i =0;*p!=”\0”;p++, i ++);
cout<< i < retum 0;
}
運行這個程序時,若輸入字符串為
abcdefg abcd
則輸出結(jié)果是
A)7
B)12
C)13
D)100
(35)有如下程序::
#include
using namespace std:
class Sample
{
friend long fun (Sample s);
public:
Sample (long a ){x=a;}
Private:
long x;
};
long fun (Sample s)
{
if(s.x<2)retum 1;
retum s.x*fun(Sample(s.x-a));
}
int main()
{
int sum=0
for(int i =0; i <6; i ++) { sum+=fun(Sample( i );) }
cout< retum 0;
}
運行時輸出的結(jié)果是
A)120
B)16
C)154
D)34
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)在深度為7的滿二叉樹中,度為2的結(jié)點個數(shù)為 【1】 。
(2)軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于 【2】 測試。
(3)在數(shù)據(jù)庫系統(tǒng)中,實現(xiàn)各種數(shù)據(jù)管理體制功能的核心軟件稱為 【3】 。
(4)軟件生命周期可分為多個階段,一般分為定義階段、開發(fā)和維護階段。編碼和測試屬于 【4】 階段。
(5)在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用 【5】 對其中的圖形元素進行確切解釋。
(6)C++中只有兩個邏輯常量:true和 【6】 。
(7)若要訪問指針變量p所指向的數(shù)據(jù),應(yīng)使用表達式 【7】 。
(8)已知一個函數(shù)的原型是:
int fn(double x);
若要以5.27為實參調(diào)用該函數(shù),應(yīng)使用表達式 【8】 。
(9)有如下定義:
class MA{
int value;
public:
MA(int n=0):valut(n){}
};
MA*ta,tb;
其中MA類的對象名標識符是 【9】 。
(10)如下類定義中包含了構(gòu)造函數(shù)和拷貝數(shù)的原型聲明請在橫線處寫正確的內(nèi)容,使拷貝構(gòu)造函數(shù)的聲明完整。
Class my Class{
Private:
Int data:
Public:
MyClass(int value); //構(gòu)造函數(shù)
MyClass(const 【10】 another Object); //拷貝構(gòu)造函數(shù)
}
(11)用來派生新類的稱為 【11】 ,而派生出的新類稱為它的子類或派生類。
(12)有如下程序:
#include
using namespace std;
clsaa CA{
public:
CAD{cout< };
class CB ;private CA{
public;
CB(){cout< };
int main(){cout< };
int main(){
CA a;
CB b;
retum0;
}
這個程序的輸出結(jié)果是 【12】 。
(13)若將一個二元運算符重載為類的成員函數(shù),其形參個數(shù)應(yīng)該是 【13】 個。
(14)有如下程序:
#include
using namespace std;
class DA{
int k;
public:
DA(int x=1): k (x){}
~DA(){cout< };
int main(){
DA d[]={DA(3),DA(3),DA(3)};
DA* p=new DA[2];
delete[]p;
return0;
}
這個程序的輸出結(jié)果是 【14】 。
(15)C++語言中的多態(tài)性分為編譯時的多態(tài)性和 【15】 時的多態(tài)性。
選擇題:
1-5BDACD
6-10CABCA
11-15BADAC
16-20BCDBA
21-25CCCCA
26-30CDBDA
30-35CBBBC
填空:
1、63
2、黑盒
3、DBMS
4、開發(fā)
5、數(shù)據(jù)字典
6、false
7、 *P
8、fn(5.27)
9、tb
10、myclass&
11、基類
12、AAB
13、1個
14、11333
15、運行