糯米文學吧

位置:首頁 > 計算機 > 計算機二級

2014年3月全國計算機二級考試C++真題

 一、選擇題

2014年3月全國計算機二級考試C++真題

1.軟體生命周期中的活動不包括( )。

A.市場調研

B.需求分析

C.軟體測試

D.軟體維護

2.下列敘述中正確的是( )。

A.一個邏輯資料結構只能有一種儲存結構

B.邏輯結構屬於線性結構,儲存結構屬於非線性結構

C.一個邏輯資料結構可以有多種儲存結構,且各種儲存結構不影響資料處理的效率

D.一個邏輯資料結構可以有多種儲存結構,且各種儲存結構影響資料處理的效率

3.下列敘述中正確的是( )。

A.一個演算法的空間複雜度大,則其時間複雜度必定大

B.一個演算法的空間複雜度大,則其時間複雜度必定小

C.一個演算法的時間複雜度大,則其空間複雜度必定小

3、下列關於線性連結串列的敘述中,正確的是( )。

A.各資料結點的儲存空間可以不連續,但它們的儲存順序與邏輯順序必須一致

B.各資料結點的儲存順序與邏輯順序可以不一致,但它們的儲存空間必須連續

C.進行插入與刪除時,不需要移動表中的元素

D.以上說法均不正確

4、對於一個類定義,下列敘述中錯誤的是( )。

A.如果沒有定義拷貝建構函式,編譯器將生成一個拷貝建構函式

B.如果沒有定義預設的建構函式,編譯器一定將生成一個預設的建構函式

C.如果沒有定義建構函式,編譯器將生成一個預設的建構函式和一個拷貝建構函式

D.如果已經定義了建構函式和拷貝建構函式,編譯器不會生成任何建構函式

9,在物件方法中,一個物件請求另一個物件為其服務的方式是通過傳送( )來實現。 A.呼叫語句 B.命令 C.中令 D.訊息

4.下列敘述中錯誤的是( )。

A.一種資料的邏輯結構可以有多種儲存結構

B.資料的儲存結構與資料的處理效率無關

C.資料的.儲存結構與資料的處理效率密切相關

D.資料的儲存結構在計算機中所佔的空間不一定是連續的

5.下列敘述中正確的是( )。

A.在模組化程式設計中,一個模組應該儘量多地包括與其他模組聯絡的資訊

B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的第一個細節

C.在模組化程式設計中,一個模組內部的控制結構也要符合結構化原則

D.在程式設計過程中,不能同時採用結構化程式設計方法與模組化程式設計方法

 二、基本操作題(18分)

41、請使用VC6或使用【答題】選單開啟考生資料夾projl下的工程projl,此工程中含有一個源程礙檔案 。其中位於每個註釋“//ERROR ****found****”之後的一行語句存在錯誤。請改正這些錯誤,使程式的輸出結果為:

ConstruCtor Called. The value is 10

Copy ConstruCtor Called. The value is 10

DestruCtor Called. DestruCtor Called. 注意:只修改註釋“//ERROR ****found****”的下一行語句,不要改動程式中的其他內容。

//

#inClude ’using namespaCe std; Class MyClass{

publiC:

//ERROR**********found**********

MyClass(int i)

{value=i;Cout<<”ConstruCtor Called.” < //ERROR**********found********** MyClass(eonst MyClass P)

{

value = e;

eout<<”Copy ConstruCtor Called.”< }

void Print()

{Cout<<”The value is” < //ERROR**********found********* void-MyClass()

{Cout<<”DestruCtor Called.”< private:

int value;

}; int main()

{ MyChas objl

t();

MyClmss obj2(owl); t();

retum 0;

三、簡單應用題(24分)

42、請使用VC6或使用【答題】選單開啟考生資料夾pr092下的工程pros2。此工程中包含一個程式檔案,其中有“部門”類 Department和“職工”類Staff的定義,還有主函式main的定義。在主函式中定義了兩個“職工”物件,他們屬於同一部門。程式展示,當該部門改換辦公室後,這兩個人的辦公室也同時得到改變。請在程式中的橫線處填寫適當的程式碼並刪除橫線,以實現上述類定義。此程式的正確輸出結果應為:

改換辦公室前:

職工號:0789姓名:張三部門:人事處辦公室:521

職工號:0513姓名:李四部門:人事處辦公室:521

改換辦公室後:

職工號:0789姓名:張三部門:人事處辦公室:311

職工號:0513姓名:李四部門:人事處辦公室:311

注意:只在橫線處填寫適當的程式碼,不要改動程式中的其他內容,也不要刪除或移動“//****found****”。

#include

using namespace std;

class Department{ //“部門”類

public:

Department(const char*name,const char*office){

strcpy(this一>name,nanle);

//**********found**********

}

const char*getName()const{return name;}//返回部門名稱

//**********found**********

const char*getOffice()const{________} //返回辦公室房號

void changeOfficeTo(const char*office){ //改換為指定房號的另一個辦公室

strcpy(this一>office,office);

}

private:

char name[20];//部門名稱

char office[20];//部門所在辦公室房號

};

class staff{//“職工”類

public:

//**********found**********

Staff(const char*my—id,const char木my_name,Department&my_dept):——{

strcpy(this一>staff id,my_id);

strcpy(this一>name,my_name);

}

const char*getlD()const{return staff_id;}

const char*getName()consl{return name;}

Department getDepartment()const{return dept;} char staff=id[10];//職工號

char name[20];//姓名

Department&dept;//所在部門

}; void showStaff(Staff&staff){

cout<<”職工號:”< cout<<”姓名:”< cout<<”部門:”< cout<<”辦公室:”< int main(){

Department dept(”人事處”,”521”);

Staff Zhang(”0789”,”張三”,dept),Li(”0513”,”李四”,dept);

cout<<”改換辦公室前:”< showStaff(Zhang); showStaff(Li);

//人事處辦公室由521搬到311 //**********found********** ———————————————————————一

cout<<”改換辦公室後:”< showStaff(Zhang); showStaff(Li);

return 0; }

34、 有如下程式:

#inClude using namespaCe std; Class Sample{

friend long fun(Sample S); publiC:

Sample(10ng A.{x=a;} private:

long X;

}; long fun(Sample S){

if(S.x<2)return l;

return S.X*fun(Sample(s.x-1)); }

int main(  ) {

int sum=0;

for(int i=0;i<6;i++) {sum+=fun(Sample(i));}

Cout< }

執行這個程式的輸出結果是(  )。

A.120

B.16

C.154

D.34

 四、綜合應用題(18分)

43、請使用VC6或使用【答題】選單開啟考生資料夾proj3下的工程proj3,其中宣告的DataList類,是一個用於表示資料表的類。s0rt成員函式的功能是將當前資料表中的元素升序排列。請編寫這個sort函式。程式的正確輸出應為: .

排序前:7,1,3,11,6,9,12,10,8,4,5,2 排序後:l,2,3,4,5,6,7,8,9,10,11,12

要求:

補充編制的內容寫在“//********33********”與“//********666********”兩行之問。不得修

改程式的其他部分。

注意:程式最後將結果輸出到檔案。中。輸出函式writeToFile已經編譯為。obj檔案,並且在本程式

呼叫。

//DataList.h

#inClude using namespaCe std; Class DataList{//資料表類

int len;

double*d: publiC:

DataList(int len,double data[]=NULL);。DataList(){delete[]d;}

int length(Constt retum len;}//資料表長度(即資料元素的個數) double getElement(int i)Const{return d[i];}

void sort();//資料表排序

void show()Const;//顯示資料表}.

void writeToFile(Char*,Const DataList&).//

#inClude”DataList.h”

DataList::DataList(int len,double data[]):len(1en){ d=new double[1en];

for(int i_0;i d[i]=(data==NULL?0.0:data[i]);

}

void DataList::sort(){//資料表排序//********333********

//********666********}

void DataList::show()Const{//顯示資料表

for(int i=0;i }

int main(){

double S[]={7,1,3,11,6,9,12,10,8,4,5,2}; DataList list(12,S);

Cout<<”排序前:”; ();

();

Cout< writeToFile(””,list); return 0;