- 相關推薦
3月全國計算機等級考試二級C++筆試真題
無論是身處學校還是步入社會,我們都經常看到試題的身影,借助試題可以更好地檢查參考者的學習能力和其它能力。那么你知道什么樣的試題才能有效幫助到我們嗎?下面是小編幫大家整理的3月全國計算機等級考試二級C++筆試真題,僅供參考,希望能夠幫助到大家。
3月全國計算機等級考試二級C++筆試真題 1
一、選擇題(每小題2分,共70分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項涂寫在答題卡相應位置上,答在試卷上不得分。
(1)下列敘述中正確的是 。
A)算法的效率只與問題的規模有關,而與數據的存儲結構無關.
B)算法的時間復雜度是指執行算法所需要的計算工作量
C)數據的邏輯結構與存儲結構是一一對應的
D)算法的時間復雜度與空間復雜度一定相關.
(2)在結構化程序設計中,模塊劃分的原則是 。
A) 各模塊應包括盡量多的功能
B) 各模塊的規模應盡量大
C)各模塊之間的聯系應盡量緊密
D) 模塊內具有高內聚度,模塊間具有低耦合度
(3)下列敘述中正確的是 。
A)軟件測試的主要目的是發現程序中的錯誤.
B)軟件測試的主要目的是確定程序中錯誤的位置.
C)為了提高軟件測試的效率,最好由程序編制者自己來完成軟件測試的工作
D)軟件測試是證明軟件沒有錯誤
(4) 下面選項中不屬于面向對象程序設計特征的是 。
A)繼承性
B)多態性
C)類比性
D)封裝性
(5) 下列對列的敘述正確的是 。
A) 隊列屬于非線性表
B) 隊列按”先進后出”的原則組織數據
C)隊列在隊尾刪除數據
D) 隊列按“先進先出”原則組織數據
(6)對下列二叉樹
進行前序遍歷的結果為
A)DYBEAFCZX
B)YDEBFZXCA
C)ABDYECFXZ
D)ABCDEFXYZ
(7)某二叉樹中有n個度為2的結點則該二叉樹中的葉子結點數為
A)n+1
B)n-1
C)2n
D)n/2
(8)在下列關系運算中,不改變關系表中的屬性個數但能減少元組個數的是 。
A)井
B)交
C)投影
D)笛卡兒乘積
(9)在E-R圖中,用來表示實體之間是聯系的圖形是 。
A) 矩形
B)橢圓形
C)菱形
D)平行四邊形
(10)下列敘述中錯誤的.是 。
A) 在數據庫系統中,數據的物理結構必須與邏輯結構一致.
B)數據庫技術的根本目標是要解決數據的共享問題
C)數據庫設計是指在已有數據庫管理系統的基礎上建立數據庫
D)數據庫系統需要操作系統的支持
(11)為了取代C中帶參數的宏,在C++中使用
A)重載函數
B)內聯函數
C)遞歸函數
D)友元函數
(12)下列關于類定義的說法中,正確的是
A)類定義中包括數據成員和函數成員的聲明
B)類成員的缺省訪問權限是保護的
C) 數據成員必須被聲明為私有的
D)成員函數只能在類體外進行定義
(13)下列關于派生類構造函數和析構函數的說法中,錯誤的是
A)派生類的構造函數會隱含調用基類的構造函數
B)如果基類中沒有缺省構造函數,那么派生類必須定義構造函數
C)在建立派生類對象時,先調用基類的構造函數,再調用派生類的構造函數
D)在銷毀派生類對象時,先調用基類的析構函數,再調用派生類的析構函數
(14)通過運算符重載,可以改變運算符原有的
A)操作數類型
B)操作數個數
C)優先級
D)結合性
(15)有如下函數模板:
template T souare(T x) (retumx * x ;)
基中T是
A)函數形參
B)函數實參
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的數據類型分別是
A)long、double int
B)long、float、int
C)int、double、long
D)int、float、long
(19)執行下列語句段后,輸出字符“*”的個數是
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 ; //④
基中會產生編譯錯誤的語句是
A)④
B)③
C)②
D)①
(21)有如下函數定義:
void func (int a,int&b) {a++; b++;}
若執行代碼段:
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;
}
運行時輸出的結果是
A)0
B)1
C)2
D)3
(23)下列有關繼承和派生的敘述中,正確的是
A) 派生類不能訪問基類的保護成員
B)作為虛基類的類不能被實例化
C)派生類應當向基類的構造函數傳遞參數
D)虛函數必須在派生類中重新實現
(24)下列運算符中,不能被重載的是
A)&&
B)!=
C).
D)++
(25)下列函數模板的定義中,合法的是
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++的關鍵字
B)類名
C)對象名
D)函數名
(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;
運行時輸出的結果是
A)3
B)constructor
destruclor
C)copy constructor
D)3
dstructor destruclor
(28)若有如下類聲明
class My Class {
public:
MyClass() {cout<<1;}
};
執行下列語句
MyClass a,b[2],*P[2];
以后,程序的輸出結果是
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< []ptr;
}
運行時輸出的結果是
A)3
B)4
C)6
D)7
(30)如果不使用多態機制,那么通過基類的指針雖然可以指向派生類對象,但是只能訪問從基類繼承的成員,有如下程序,沒有使用多態機制。
#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;
}
運行時輸出的結果是
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:
}
運行時輸出的結果是
A)10,2
B)12,10
C)12,2
D)2,2
(32)虛函數支持多態調用,一個基類的指針可以指向派生類的對象,而且通過這樣的指針調用虛函數時,被調用的是指針所指的實際對象的虛函數,而非虛函數不支持多態調用。有如下程序:
#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:
}
運行時輸出的結果是
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
則輸出結果是
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;
}
運行時輸出的結果是
A)120
B)16
C)154
D)34
二、填空題(每空2分,共30分)請將每一個空的正確答案寫在答題卡【1】~【15】序號的橫線上,答在試卷上不得分。
(1)在深度為7的滿二叉樹中,度為2的結點個數為 【1】 。
(2)軟件測試分為白箱(盒)測試和黑箱(盒)測試,等價類劃分法屬于 【2】 測試。
(3)在數據庫系統中,實現各種數據管理體制功能的核心軟件稱為 【3】 。
(4)軟件生命周期可分為多個階段,一般分為定義階段、開發和維護階段。編碼和測試屬于 【4】 階段。
(5)在結構化分析使用的數據流圖(DFD)中,利用 【5】 對其中的圖形元素進行確切解釋。
(6)C++中只有兩個邏輯常量:true和 【6】 。
(7)若要訪問指針變量p所指向的數據,應使用表達式 【7】 。
(8)已知一個函數的原型是:
int fn(double x);
若要以5.27為實參調用該函數,應使用表達式 【8】 。
(9)有如下定義:
class MA{
int value;
public:
MA(int n=0):valut(n){}
};
MA*ta,tb;
其中MA類的對象名標識符是 【9】 。
(10)如下類定義中包含了構造函數和拷貝數的原型聲明請在橫線處寫正確的內容,使拷貝構造函數的聲明完整。
Class my Class{
Private:
Int data:
Public:
MyClass(int value); //構造函數
MyClass(const 【10】 another Object); //拷貝構造函數
}
(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;
}
這個程序的輸出結果是 【12】 。
(13)若將一個二元運算符重載為類的成員函數,其形參個數應該是 【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];
[]p;
return0;
}
這個程序的輸出結果是 【14】 。
(15)C++語言中的多態性分為編譯時的多態性和 【15】 時的多態性。
3月全國計算機等級考試二級C++筆試真題 2
(1)算法的時間復雜度是指_______。
A)執行算法程序所需要的時間
B)算法程序的長度
C)算法執行過程中所需要的基本運算次數
D)算法程序中的指令條數
答案:C
評析:所謂算法的時間復雜度,是指執行算法所需要的計算工作量。
(2)下列敘述中正確的是________。
A)線性表是線性結構B)棧與隊列是非線性結構
C)線性鏈表是非線性結構D)二叉樹是線性結構
答案:A
評析:一般將數據結構分為兩大類型:線性結構與非線性結構。線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。
(3)下面關于完全二叉樹的敘述中,錯誤的是_________。
A)除了最后一層外,每一層上的結點數均達到最大值
B)可能缺少若干個左右葉子結點
C)完全二叉樹一般不是滿二叉樹
D)具有結點的完全二叉樹的深度為[log2n]+1
答案:B
評析:滿二叉樹指除最后一層外每一層上所有結點都有兩個子結點的'二叉樹。完全二叉樹指除最后一層外,每一層上的結點數均達到最大值,在最后一層上只缺少右邊的若干子結點(葉子結點)的二叉樹。
3月全國計算機等級考試二級C++筆試真題 3
(1)下述關于數據庫系統的敘述中正確的是________。
A)數據庫系統減少了數據冗余
B)數據庫系統避免了一切冗余
C)數據庫系統中數據的一致性是指數據類型的一致
D)數據庫系統比文件系統能管理更多的數據
答案:A
評析:由數據的共享自身又可極大地減少數據冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值。
(2)關系表中的每一橫行稱為一個________。
A)元組B)字段C)屬性D)碼
答案:A
評析:在關系數據庫中,關系模型采用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。
(3)數據庫設計包括兩個方面的設計內容,它們是________。
A)概念設計和邏輯設計B)模式設計和內模式設計
C)內模式設計和物理設計D)結構特性設計和行為特性設計
答案:A
評析:數據庫設計可分為概念設計與邏輯設計。概念設計的目的是分析數據間內在語義關聯,在此基礎上建立一個數據的抽象模型。邏輯設計的主要工作是將ER圖轉換為指定的RDBMS中的關系模型。
(4)請讀程序:
#include
main
{
int a;float b,c;
scanf(“%2d%3P%4f’,&a,&b,&C);
printf(” a=%d,b=%ec。%f ”,a,b,C);
}
若運行時從鍵盤上輸入9876543210l,則上面程序的輸出結果是________。
A)a=98,b=765,c=432 1
B)a=1 0,b=432,c=8765
C)a=98,b=765.000000,c=432 1.000000
D)a=98,b=765.0,c=432 1.0
答案:C
評析:scanf把用戶從鍵盤錄入的數字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型變量b,把第6、7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanf遺棄。這時變量a、b、c的值分別為:98、765.000000、4321.000000。
(5)一個良好的算法由下面的基本結構組成,但不包括__________。
A)順序結構B)選擇結構C)循環結構D)跳轉結構
答案:D
評析:1966年,Bohra和Jacopini提出了以下三種基本結構,用這三種基本結構作為表示一個良好算法的'基本單元:1、順序結構;2、選擇結構;3、循環結構。
(6)請選出以下程序的輸出結果________。
#include
sub(x,y,z)
int x,y,星符號z:
{星符號z變化,所以此次函數被調用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發生變化,其值為-5-7=-12,在sub(a,b,&C)后,c的值發生變化,其值為-12-(-5)=-7。
(7)下面程序在屏幕上的輸出是________。
main
{
printf(”ab c”);
}
A)ab c B)a c C)abc D)ab c
答案:B
評析:c語言中允許使用一種特殊形式的字符常量,、就是以一個“”開頭的字符序列,這樣的字符稱為“轉義字符”。常用的轉義字符有: ,換行;,水平制表;,退格;,回車。
(8)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是_______。
A)pb=&x; B)pb=x; C)星符號pb=星符號、/)還包括自增自減運算符(++、–),在c語言解析表達式時,它總是進行貪婪咀嚼,這樣,該表達式就被解析為i++ ++ +i,顯然該表達式不合c語言語法。
(10)若要用下面的程序片段使指針變量p指向一個存儲整型變量的動態存儲單元
int星符號int) D)(int星符號)
答案:D
評析:不論p是指向什么類型的指針變量,都可以通過強制類型轉換的方法使之類型一致,強制類型轉換的格式為(數據類型+)。
(11)下面程序輸出的結果是__________。
main
{
int i=5,J=9,x;
x=(I==j?i:(j=7));
printf(” %d,%d”,I,J);
}
A)5,7 B)5,5 C)語法錯誤D)7,5
答案:A
評析:條件表達式的一般形式為:表達式I?表達式2:表達式3;先求解表達式1,若為真則求解表達式2;若表達式l的值為假,則求解表達式3。本題中先判斷i==j,不等,執行j=7;然后執行x=7。故本題為A。
【3月全國計算機等級考試二級C++筆試真題】相關文章:
計算機等級考試二級C++筆試選擇題04-23
全國計算機二級考試C++真題09-20
2007年3月全國計算機等級考試二級C++筆試真題參考答案03-28
2006年9月全國計算機等級考試二級access筆試真題03-29
全國英語等級考試二級真題及答案09-20
3月全國計算機等級考試二級VFP考試真題09-26