- 相關(guān)推薦
2006年9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試真題
一、選擇題(每小題2 分,共70 分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是______。
A)、源程序要文檔化
B)、數(shù)據(jù)說(shuō)明的次序要規(guī)范化
C)、避免濫用goto 語(yǔ)句
D)、模塊設(shè)計(jì)要保證高耦合,高內(nèi)聚
(2)從工程管理角度,軟件設(shè)計(jì)一般分為兩步完成,它們是______。
A)、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)
B)、數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)
C)、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)
D)、過(guò)程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)
(3)下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是______。
A)、軟件測(cè)試
B)、概要設(shè)計(jì)
C)、軟件維護(hù)
D)、詳細(xì)設(shè)計(jì)
(4)在數(shù)據(jù)庫(kù)系統(tǒng)中,用戶所見的數(shù)據(jù)模式為______。
A)、概念模式
B)、外模式
C)、內(nèi)模式
D)、物理模式
(5)數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。
A)、編碼設(shè)計(jì)
B)、測(cè)試階段
C)、運(yùn)行階段
D)、物理設(shè)計(jì)
(6)設(shè)有如下三個(gè)關(guān)系表下列操作中正確的是
A)、T=R∩S
B)、T=R∪S
C)、T=R×S
D)、T=R/S
(7)下列敘述中正確的是
A)、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大
B)、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小
C)、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小
D)、上述三種說(shuō)法都不對(duì)
(8)在長(zhǎng)為64 的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為______。
A)、63
B)、64
C)、6
D)、7
(9)數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的______。
A)、存儲(chǔ)問(wèn)題
B)、共享問(wèn)題
C)、安全問(wèn)題
D)、保護(hù)問(wèn)題
(10)對(duì)下列二叉樹: 進(jìn)行中序遍歷的結(jié)果是______。
A)、ACBDFEG
B)、ACBDFGE
C)、ABDCGEF
D)、FCADBEG
(11)下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是______。
A)、內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移
B)、內(nèi)聯(lián)函數(shù)必須通過(guò)關(guān)鍵字inline 來(lái)定義
C)、內(nèi)聯(lián)函數(shù)是通過(guò)編譯器來(lái)實(shí)現(xiàn)的
D)、內(nèi)聯(lián)函數(shù)體的最后一條語(yǔ)句必須是rennin 語(yǔ)句
(12)下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是______。
A)、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)
B)、將類的一個(gè)對(duì)象賦予該類的另一個(gè)對(duì)象時(shí)
C)、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)
D)、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)
(13)下列有關(guān)繼承和派生的敘述中,正確的是______。
A)、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問(wèn)基類的保護(hù)成員
B)、派生類的成員函數(shù)可以訪問(wèn)基類的所有成員
C)、基類對(duì)象可以賦值給派生類對(duì)象
D)、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類
(14)下列運(yùn)算不能重載為友元函數(shù)的是______。
A)、= ( ) [] ->
B)、+ - ++ --
C)、> < >= <=
D)、+= -= *= /=
(15)關(guān)于在調(diào)用模板函數(shù)時(shí)模板實(shí)參的使用,下列表述正確的是______。
A)、對(duì)于虛類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果能從模板函數(shù)的實(shí)參中獲得相同的信息,則都可以省略
B)、對(duì)于虛擬類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果它們是參數(shù)表中的最后的若干個(gè)參數(shù),F(xiàn)C EA DBG則都可以省略
C)、對(duì)于虛擬型參數(shù)所對(duì)應(yīng)的模板實(shí)參,若能夠省略則必須省略
D)、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略
(16)下列關(guān)于輸入流類成員函數(shù)getline( )的描述中,錯(cuò)誤的是______。
A)、該函數(shù)是用來(lái)讀取鍵盤輸入的字符串的
B)、該函數(shù)讀取的字符串長(zhǎng)度是受限制的
C)、該函數(shù)讀取字符串時(shí),遇到終止符便停止
D)、該函數(shù)讀取字符串時(shí),可以包含空格
(17)下列符號(hào)中,正確的C++標(biāo)識(shí)符是______。
A)、enum
B)、2b
C)、foo-9
D)_32
(18)下列語(yǔ)句中,錯(cuò)誤的是______。
A)、const int buffer=256;
B)、const double*point;
C)、int const buffer=256;
D)、double*const point;
(19)if 語(yǔ)句的語(yǔ)法格式可描述為
格式1:if(<條件>)<語(yǔ)句>
或
格式2:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>
關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是
A)、<條件>部分可以是一個(gè)if 語(yǔ)句,例如if(if(a =0)?)?
B)、<條件>部分可以是一個(gè)if 語(yǔ)句,例如if(?)if(?)?
C)、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語(yǔ)句1>和<語(yǔ)句2>的位置,語(yǔ)句功能不變
D)、<語(yǔ)句>部分可以是一個(gè)循環(huán)語(yǔ)句,例如if(?)while(?)?
(20)有如下說(shuō)明
int a [10]={1,2,3,4,5,,6,7,8,9,10},*p=a;
則數(shù)值為9 的表達(dá)式是______。
A)、*p+9`
B)、*(p+8)
C)、*p+=9
D)、p+7
(21)或下面的函數(shù)調(diào)用
fun(a+b,3,max(n-1)b)
則fun 的實(shí)參個(gè)數(shù)是______。
A)、3
B)、4
C)、5
D)、6
(22)以下關(guān)鍵字不能用來(lái)聲明類的訪問(wèn)權(quán)限的是______。
A)、public
B)、static
C)、protected
D)、private
(23)在公有繼承的情況下,允許派生類直接訪問(wèn)的基類成員包括______。
A)、公有成員
B)、公有成員和保護(hù)成員
C)、公有成員、保護(hù)成員和私有成員
D)、保護(hù)成員
(24)關(guān)于運(yùn)算符重載,下列表述中正確的是______。
A)、C++已有的任何運(yùn)算符都可以重載
B)、運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型
C)、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型
D)、可以通過(guò)運(yùn)算符重載來(lái)創(chuàng)建C++中原來(lái)沒有的運(yùn)算符
(25)關(guān)于關(guān)鍵字class 和typename,下列表述中正確的是______。
A)、程序中的typename 都可以替換為class
B)、程序中的class 都可以替換為typename
C)、在模板形參表中只能用typename 來(lái)聲明參數(shù)的類型
D)、在模板形參表中只能用class 或typename 來(lái)聲明參數(shù)的類型
(26)有如下程序
#include
#include
using namespace std;
int main(){
count return 0;
}
若程序的輸出是:
**12.345**34.567
則程序中下劃線處遺漏的操作符是______。
A)、setprecision(3)
B)、fixed
C)、setfill(*)
D)、stew(8)
(27)有如下程序
#include
#include
using namespace std;
class MyClass{
public:
MyClass(){cout<<’A”;}
MyClass(char c {cout<~MyClass(){sout<<’B”;}
};
Int main(){
MyClassp1,*p2
p2=new MyClass(‘X’);
delete p2;
return 0;
}
執(zhí)行這個(gè)程序幕上將顯示輸出______。
A)、ABX
B)、ABXB
C)、AXB
D)、AXBB
(28)有如下程序
#include
using namespace std;
int i=1;
class Fun{
public;
static int i;
int value(){return i-1}
int value ()const{return i+1;}
};
int Fun;;i=2;
int main(){
int i=3;
Fun Fun1
const Fun fun2;
return 0;
}
若程序的輸出結(jié)果是:
123
則程序中下劃線處遺漏的語(yǔ)句是______。
A)、cout<
B)、cout<
C)、cout<
D)、cout<
(29)有如下程序
#include
using namespace std;
class Obj{
static int i;
public:
Obj(){i++;}
~Obj(){i--;}
static int getVal(){teturn i;}
};
int Obj::i=0;
void f (){Obj ob2;cout Obj obl;
F();
Obj*ob3=new Obj;cout Delete ob3;cout }
程序的輸出結(jié)果是______。
A)、232
B)、231
C)、222
D)、221
(30)有如下程序
#include
using namespace std;
class Base{
protected;
Base(){cout<<’A’;}
Base(char c){cout<};
class Derived; public Base{
public:
Derived(char c ){cout <};
int main(){
Derived d1(‘B’);
return 0;
}
執(zhí)行這個(gè)程序屏幕上將顯示輸出______。
A)、B
B)、BA
C)、AB
D)、BB
(31)有如下類定義:
class MyBase{
int k;
public;
MyBase(int n=0):k(n){}
int value()const{return k;}
};
class MyDerived; MyBase{
int j;
public;
MyDerived(int i): j(i){}
int getK()const {return k;}
int gutj()const{return j;}
};
編譯時(shí)發(fā)現(xiàn)有一處語(yǔ)法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最佳準(zhǔn)確的描述是
A)、函數(shù)getK 試圖訪問(wèn)基類的私有成員變量K
B)、在類MyDerived 的定義中,基類名MyBase 前缺少關(guān)鍵字public、protected 或private
C)、類MyDerived 缺少一個(gè)無(wú)參的構(gòu)造函數(shù)
D)、類MyDerived 的構(gòu)造的數(shù)沒有對(duì)基數(shù)數(shù)據(jù)成員K 進(jìn)行初始化
(32)在一個(gè)派生類對(duì)象結(jié)束其生命周期時(shí)
A)、先調(diào)用派生類的析構(gòu)函數(shù)后調(diào)用基類的析構(gòu)函數(shù)
B)、先調(diào)用基類的析構(gòu)函數(shù)后調(diào)用派生類的析構(gòu)函數(shù)
C)、如果基數(shù)沒有定義析構(gòu)函數(shù),則只調(diào)用派生類的析構(gòu)函數(shù)
D)、如果派生類沒有定義析構(gòu)函數(shù),則只調(diào)用基類的析構(gòu)函數(shù)
(33)有如下的運(yùn)算重載函數(shù)定義:
Double operator+(int i, int k){return double(i+k);}
但定義有錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤的最準(zhǔn)確的描述是______。
A)、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的
B)、兩個(gè)int 型參數(shù)的和應(yīng)該是int 型,而這里將+的返回類型聲明為double
C)、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元
D)、C++已經(jīng)提供了求兩個(gè)int 型數(shù)據(jù)之和運(yùn)算符+,不能再定義同樣的運(yùn)算符
(34)語(yǔ)句ofstreamf(“SALARY.DAT”,ios_base::app)的功能是建立流對(duì)象f,并試圖打開文件SALARY.DAT 與f 關(guān)聯(lián),而且______。
A)、若文件存在,將其置為空文件;若文件不存在,打開失敗
B)、若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個(gè)新文件
C)、若文件存在,將文件指針定位于文件首;若文件不存在,打開失敗
D)、若文件存在,打開失敗;若文件不存在,建立一個(gè)新文件
(35)有如下程序
#include
using namespace std;
class A{
public:
virtual Void funcl(){cout<< “A1”;}
void fune2(){cout<< “A2”;}
};
class B: public A{
public:
void func1(){cout<< “B1”;}
void func2(){cout<< “B2”;}
};
Int main(){
A*p=new B;
p->funcl();
p->func2();
retum0;
}
運(yùn)行程序,屏幕上將顯示輸出______。
A)、B1B2
B)、A1A2
C)、B1A2
D)、A1B2
二、填空題(每空2 分,共30 分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]~[15]序號(hào)的橫線上,答在試卷上不得分。
(1)下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為 [1] 。
(2) [2] 的任務(wù)是診斷和改正程序中的錯(cuò)誤。
(3)一個(gè)關(guān)系表的行為 [3] 。
(4)按“行進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是 [4] 。
(5)數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于 [5] 。
(6)若有定義語(yǔ)句:int*a,b;,則變量b 的數(shù)據(jù)類型是 [6] 。
(7)已知數(shù)組a 中的元素個(gè)數(shù)為n,下列語(yǔ)句的作用是將下標(biāo)為i 的元素移動(dòng)到下標(biāo)為i-1 的單元,其中1≤i
For(int i=0;i(8)已知遞歸函數(shù)f 的定義如下:
int f (int n)
{
If(n<=1)return 1;//遞歸結(jié)束情況
else return n*f(n-2);//遞歸}則函數(shù)調(diào)用語(yǔ)句f(5)的返回值是 [8] 。
(9)創(chuàng)建對(duì)象數(shù)組時(shí),對(duì)數(shù)組的每一個(gè)元素都將調(diào)用一次構(gòu)造函數(shù),如果沒有顯式給出數(shù)組元素的初值,則調(diào)用缺省構(gòu)造函數(shù),下列程序涉及到對(duì)象數(shù)組的創(chuàng)建和單個(gè)對(duì)象的創(chuàng)建,其輸出結(jié)果是 [9] 。
#include
using namespace std;
class Foo{
public:
Foo(int X){cout <<’A”}
Foo(){}
};
int main()
Foo f[3],g(3);
return 0;
}
(10)習(xí)慣性在下列程序的輸出結(jié)果是42,請(qǐng)將畫線處缺失的部分補(bǔ)充完整。
#include
Using namespace atd;
Class Foo{
int value;
public:
Foo():value(0){}
Void setvalue(int value)
{ [10] =value; //給Foo 的數(shù)據(jù)成員value 賦值}void print(){cout<};
Int main()
{
Foo f;
f.setvalue(42);
f.print();
retum0;
}
(11)如果不能使用多態(tài)機(jī)制,那么通過(guò)基類的指針雖然可以指向派生類對(duì)象,但是只能訪問(wèn)從基數(shù)繼承的成員,下列程序沒有使用多態(tài)機(jī)制,其輸出結(jié)果是 [11] 。
#include
using namespace std;
class Base{
public:
Void print(){cout<< ‘B’;}};
class Derived: public Base{
public
void print(){cout<< ‘D’;}}
int main()
{
Derived*pd=new Dreived);
Base*pb=pd;
pb->print();
pd->print();
delete pd;
return 0;
}
(12)在聲明派生類時(shí),如果不顯式地給出繼承方式,缺省的類繼承方式是私有繼承
private。已知有如下類定義:
class Base{
protected:
void fun(){}
};
Class Derived: Base{};
則Base 類中的成員函數(shù)fun(),在Derived 類中的訪問(wèn)權(quán)限是 [12] (注意:要求填寫private、protected 或public 中的一項(xiàng))。
(13)在MyClass 類的定義中,對(duì)賦值運(yùn)算符=進(jìn)行重載。請(qǐng)將畫線處缺失的部分補(bǔ)充完整。
[13] MyClass::operator=(const MyClass rhs)
{
if(this=&rhs)return*this;
value=rhs. value;
return*this;
}
(14)插入排序算法的主要思想是:每次從未排序序列中取出一個(gè)數(shù)據(jù),插入到已排序序列中的正確位置,InsertSort 類的成員函數(shù)sort()實(shí)現(xiàn)了插入排序算法,請(qǐng)將畫線處缺失的部分補(bǔ)充完整。
class InsertSort{
public:
InsertSort(int*a0,int n0):a(a0),n(n0){}//參數(shù)組首地址,n 是數(shù)組元素個(gè)數(shù)
void sort()
{//此函數(shù)假設(shè)已排離序列初始化狀態(tài)只包含a[0],未排序序列初始為a[1]?a[n-1]
for (int i=1;iint j;
for( [14] j>0;--j){
if(t>a[j-1])break;
a[j]=a[j-1];}
a[j]=t;}}
protected:
int*a,n;//指針a 用于存放數(shù)組首地址,n 用于存放數(shù)組元素個(gè)數(shù)
};
(15)下列程序的輸出結(jié)果是 [15]
#include
using namespace std;
class A{
int a
public:
A():a(9){}
virtual void print() const {cout<};
class B:public A{
char b;
public:
B(){b= ‘S’;}
void print()const{cout<};
void show(Aa&X){X,print()}
int main()
{ Ad1;*p;
Bd2;
p=&d2;
d1,print();
d2,print();
p->print();
show(d1);
show(d2);
return 0;}
【9月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試真題】相關(guān)文章:
3月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試真題12-03
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試真題10-11
計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言筆試選擇真題10-06
計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言真題09-26
3月全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試真題10-11
計(jì)算機(jī)二級(jí)考試C語(yǔ)言筆試填空真題09-10
計(jì)算機(jī)二級(jí)C語(yǔ)言筆試真題10-12