- 相關(guān)推薦
上半年全國(guó)計(jì)算機(jī)二級(jí)C++考試真題
一、選擇題
(1)下列敘述中正確的是
A)棧是“先進(jìn)先出”的線性表
B)隊(duì)列是“先進(jìn)后出”的線性表
C)循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D)有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
(2)支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是
A)棧
B)樹(shù)
C)隊(duì)列
D)二叉樹(shù)
(3)某二叉樹(shù)有5個(gè)度為z的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)是
A)10
B)8
C)6
D)4
(4)下列排序方法中,最壞情況下比較次數(shù)最少的是
A)冒泡排序
B)簡(jiǎn)單選擇排序
C)直接插入排序
D)堆排序
(5)軟件按功能可以分為: 應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是
A)編譯程序
B)操作系統(tǒng)
C)教務(wù)管理系統(tǒng)
D)匯編程序
(6)下面敘述中錯(cuò)誤的是
A)軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤
B)對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟
C)程序調(diào)試通常也稱為Debug
D)軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性
(7)耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是
A)提高耦合性降低內(nèi)聚性有利他哦高模塊的獨(dú)立性
B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C)耦合性是指一個(gè)模塊內(nèi)部各個(gè)元索間彼此結(jié)合的緊密程度
D)內(nèi)聚性是指模塊間互相連接的緊密程度
(8)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的核心問(wèn)題是
A)數(shù)據(jù)庫(kù)設(shè)計(jì)
B)數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)
C)數(shù)據(jù)庫(kù)維護(hù)
D)數(shù)據(jù)庫(kù)管理員培訓(xùn)
(9)有如下程序:
#include
using namespace std;
class ONE{
int c;
public:
ONE():c(0){cout<<1;}
ONE(int n):c (n){cout<<2;}
};
class TWO{
ONE onel;
ONE one2;
public:
TWO(int m):one2(m){cout<<3;}
};
int main()t
TWO t(4)
return 0
}
運(yùn)行時(shí)的輸出結(jié)果是
A)3
B)23
C)123
D)213
(10)將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為
A)屬性
B)鍵
C)關(guān)系
D)域
(11)對(duì)C++編譯器區(qū)分重載函數(shù)無(wú)任何意義的信息是
A)參數(shù)類型
B)參數(shù)個(gè)數(shù)
C)返回值類型
D)常成員函數(shù)關(guān)鍵字coast
(12)有如下類定義和變量定義:
class A{
publie:
A(){data=0;}
~A(){}
int GetData ( ) coast { return data;}
void SetData(int n) {data=n;}
private:
int data;
};
ccnst A a;
A b;
下列函數(shù)調(diào)用中錯(cuò)誤的是
A)a .GetData();
B)a .SetData(10);
C)b .GetData();
D)b .SetData(10);
(13)有如下類定義和變量定義:
class Parents{
public:
int publicuata;
private:
int privateData;
};
class ChildA:public Parents{/*類體略*/};
class ChildB:private Parents{/*類體略*/);
ChildA a;
ChildBb;
下列語(yǔ)句中正確的是
A)cout< B)cout< C)cout< D)cout<
(14)運(yùn)算符重載時(shí)不需要保持的性質(zhì)是
A)操作數(shù)個(gè)數(shù)
B)操作數(shù)類型
C)優(yōu)先級(jí)
D)結(jié)合性
(15)下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是
A)從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為準(zhǔn)
B)對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略
C)虛擬類型參數(shù)沒(méi)有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參
D)模板參數(shù)表不能為空
(16)要建立文件流并打開(kāi)當(dāng)前目錄下的文件file.dat用于輸入,下列語(yǔ)句中錯(cuò)誤的是
A)ifstream fin=ifstream.open(“file.dat”);
B)ifstream*fir.=new ifstream(“file.dat”);
C)ifstream fin; fin.open(“file.dat”);
D)ifstream *fin=new ifstream( );fin一>open(“file.dat”);
(17)下列描述中,不屬于面向?qū)ο笏枷胫饕卣鞯氖?/p>
A)封裝性
B)跨平臺(tái)性
C)繼承性
D)多態(tài)性
(18)有如下程序段:
Tnt i=4;int j=l;
int main(){
int i=8,j=i;
cout< }
運(yùn)行時(shí)的輸出結(jié)果是
A)44
B)41
C)88
D)81
(19)有如下程序段:
int i=5;
while(int i=0){cout《'*';i--;}
運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是
A)0
B)1
C)5
D)無(wú)窮
(20)己知有數(shù)組定義
char a[3][4];
下列表達(dá)式中錯(cuò)誤的是
A)a[2]=“WIN”
B)strcpy(a[2],“WIN”)
C)a [2][3]='W'
D)a[0][1]=a[0][1]
(21)已知函數(shù)fun的原型為
int fun(int,int,int);
下列重載函數(shù)原型中錯(cuò)誤的是
A)char fun(int,int);
B)double fun(int,int,double);
C)int fun(int,char*);
D)float fun (int, int, int);
(22)建立一個(gè)類對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用
A)析構(gòu)函數(shù)
B)構(gòu)造函數(shù)
C)靜態(tài)函數(shù)
D)友元函數(shù)
(23)通過(guò)派生類的對(duì)象可直接訪問(wèn)其
A)公有繼承基類的公有成員
B)公有繼承基類的私有成員
C)私有繼承基類的公有成員
D)私有繼承基類的私有成員
(24)己知表達(dá)式++a中的“++”是作為成員函數(shù)重載的運(yùn)算符,則與十+a等效的運(yùn)算符函數(shù)調(diào)用形式為
A)a .orerator++(1)
B)operator++(a)
C)operator++(a,l)
D)a.operator++( )
(25)在定義一個(gè)類模板時(shí),模板形參表是用一對(duì)括號(hào)括起來(lái)的,所采用的括號(hào)是
A)( )
B)[ ]
C)< >
D){ }
(26)當(dāng)使用ifstream流類定義一個(gè)流對(duì)象并打開(kāi)一個(gè)磁盤(pán)文件時(shí),文件的默認(rèn)打開(kāi)方式為
A)ios_base::in
B)ios_base::in|ios_base::out
C)ios_base::out
D)ios_base::in&ios_base::out
(27)有如下程序:
#include
#include
using namespace std;
class XCD{
char* a;
int b;
public:
XCD(char* aa, int bb){
a=new char[strlen(aa)+1];
strcpty(a,aa);
b=bb;
}
Char* Geta (){return a;)
int Getb(){ return b;}
};
int main(){
char *pl=“abcd”,*p2=“weirong”;
int dl=6, d2=8;
XCD x(pl,dl),Y(p2,d2);
cout< return 0;
}
運(yùn)行時(shí)的輸出結(jié)果是
A)12
B)16
C)14
D)11
(28)有如下程序:
#include
#include
using namespace std;
class XCF{
int a;
public:
XCF(int aa=0):a (aa){cout<<“1”;}
XCF(XCF& x){a=x .a; cout<<“2”;)
~XCF(){cout< int Geta(){return a;}
};
int main(){
XCF dl(5),d7 (dl);
XCF *pd=new XCF(8);
cout
delete pd;
return 0;
}
運(yùn)行時(shí)的輸出結(jié)果是
A)121SS88
B)12188SS
C)12185
D)128512
(29)已知類MyClass聲明如下:
class MyClass{
int n;
public;
MyClass(int k):n(k){}
int getValue()const{return n;}
};
在下列數(shù)組定義中正確的是
A)MyClass x1[2];
B)MyClass x2[2]={new MyClass(1),new MyClass(2)};
C)MyClass *x3[2];
D)MyClass *x4[2]={MyClass(1),MyClass(2)};
(30)有如下程序:
#include
using namespace std;
class AA{
lilt k;
protected:
int n;
void setK(int k){ this->k=k;}
public:
void setN(int n){ this->n=n;}
};
class BB: public }{/*類體略*/};
int main(){
BB x_ ; //1
x .n=1; //2
x.setN (2); //3
x.k=3; //4
x .setK(4);
return 0;
}
在標(biāo)注號(hào)碼的四條語(yǔ)句中正確的是
A)1
B)2
C)3
D)4
(31)有如下類定義:
class XX{
int xx;
public:
XX():xx(0){cout<<' A';}
XX(int n):xx ( n){tout<<' B';}
};
Class YY:public XX{
Int yy;
public:
YY():yy ( 0){cout+yy;}
YY(int n):XX(n+1),yy(n){cout< YY (int m, int n):XX (m),yy(n){cout< };
下列選項(xiàng)中,輸出結(jié)果為A0的語(yǔ)句是
A)YY y1(0,0);
B)YY y2(1);
C)YY y3(0);
D)YY y4;
(32)有如下程序:
#include
Using namespace std;
class A{
public:
virtual void f(){cout+1;}
void g(){cout<<2;}
};
class B:public A{
public:
virtual void f(){cout<<3;}
void g(){ecut<<4;}
};
void show(A &a){a.f();a.g( );}
int main(){
B b;
show(b);
return 0;
}
運(yùn)行時(shí)的輸出結(jié)果是
A)12
B)34
C)14
D)32
(33)有如下程序:
#include
using namespace std;
class Pair{
int m;
int n;
public:
Pair(int i,int j):m(i),n(j){}
boot operator >(pair p)const; //須在類體外給出定義
};
int main(){
Pair Al(3,4),p2(4,3);p3(4,5);
Cout<<(pl>p2)<<(p2>P1)<<(p2>p3)<<(p3>p2);
return 0;
}
運(yùn)算符函數(shù)。operator>的功能是比較兩個(gè)Pair對(duì)象的大小,當(dāng)左邊對(duì)象大時(shí),返回true,否則返回false。比較規(guī)則是首先比較兩對(duì)象的m成員,m大者為大;當(dāng)m相等時(shí)比較n,n大者為大。程序輸出0101,下列對(duì)運(yùn)算符重載函數(shù)的正確定義是
A)bool Pair::operator>(Pair p)const
{if (m!=p.m) return m>p.m; return n>p.n;}
B)bool Pair:;operator>(Pair p)
{if (m!=p.m) return m>p.m; return n>p.n;}
C)bool Pair::operator>(Pair p)const
{if (m>p.m) return true; return n>p.n;}
D)bool Pair:;operator>(Pair p)
{if (m>p.m) return true; return n>p.n;}
(34)假定下列語(yǔ)句都是程序運(yùn)行后首次執(zhí)行的輸出語(yǔ)句,其中輸出結(jié)果與另外三條語(yǔ)句不同的語(yǔ)句是
A)cout< B)cout< C)cout<<123< D)cout<
二、填空題
(1)假設(shè)用一個(gè)長(zhǎng)度為50的數(shù)組(數(shù)組元索的下標(biāo)從0到49)作為棧的存化空間,棧底指針bottom指間棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標(biāo)),則棧中具有【1】個(gè)元素。
(2)軟件測(cè)試可分為白盒測(cè)試和黑盒測(cè)試;韭窂綔y(cè)試屬于【2】測(cè)試。
(3)符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【3】。
(4)數(shù)據(jù)庫(kù)系統(tǒng)的核心是【4】。
(5)在E-K圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實(shí)體聯(lián)系的是【5】框。
(6)有如下程序段:
int x=1,Y=2,z=3;
x=x^z;
y=y^z;
z=x^y;
cout< 執(zhí)行這個(gè)程序段的輸出是【6】。
(7)有如下程序段:
fer(int i=1; i<=50;i++){
if(i%3 != 0)
continue;
else
if(i%5!=0)
continue;
tout< }
執(zhí)行這個(gè)程序段的輸出是【7】。
(8)有如下程序段:
Char c [20]=“examination”;
c[4]=0;
cout< 執(zhí)行這個(gè)程序段的輸出是【8】。
(9)下面的函數(shù)利用遞歸實(shí)現(xiàn)了求1+2+3+……+n的功能:
int sum(int n){
if(n==0)
return 0;
else
return n+sum(n-1);
}
在執(zhí)行sum(10)的過(guò)程中,遞歸調(diào)用sum函數(shù)的次數(shù)是【9】。
(10)非成員函數(shù)應(yīng)該聲明為類【10】函數(shù)才能訪問(wèn)該類的私有成員。
(11)有如下程序:
#include
using namespace std;
class Monitor{
public:
Monitor(char t):type (t){}
void print( ) const
{cout<<“The type of monitor is”< private:
char type;
};
class Computer{
public:
Computer(int i,char c): 【11】{}
void Print()const
{cout<<“The computer is”< private:
int id;
Monitor mon;
};
const Computer myComputer(101,'B‘);
myComputer .Print();
return 0;
}
請(qǐng)將程序補(bǔ)充完整,使程序在運(yùn)行時(shí)輸出:
The computer is 101
'The type of monitor i.s 8
(12)有如下程序:
#include
using namespace std
class Animal{
public:
virtual char* getType()const { return “Animal”;}
virtual char* getVoice()const { return “Voice”;}
};
Class Dog : public Animal {
public:
char* getType ( ) const {return “Dog”;}
char* getVoice ( ) const {return “Woof”}
};
void type(Animal& a) {cout< void speak(Animal a) {cout< int main( ) {
Dog d; type (d);cout<<“ speak”;speak(d);cout< return 0;
}
運(yùn)行時(shí)的輸出結(jié)果是【12】。
(13)補(bǔ)充完整下面的類定義:
const double PI=3 .14;
class Circle{ //圓形物體的抽象基類
protected:
double r; //半徑
public:
Circle(double radius=0):r(radius){}
【13】;//計(jì)算圓形物體表面積的純虛函數(shù)聲明
};
class Cylinder:public Circle { //圓柱體類
double h; //高度
public:
Cylindr(double radius=0, doubli height=0):
Circle(radius),h (height){}
Virtual double Area() { //計(jì)算圓柱體的表面積
return 2*PI*r*(r+h);
}
};
(14)補(bǔ)充完整下面的類定義:
class XCH{
char* a;
public:
XCH(char* as) { //構(gòu)造函數(shù)
a=new char[strlen(aa)+1];
strcpy(a,aa);
}
XCH& operator=(const XCH& x) //重載賦值函數(shù)
Delele []a;
A=new char[strlen(x.a)+l];
strcpy(a, x .a)
【14】;
}
~XCH() {delete []a;}
};
(15)補(bǔ)充完整下面的模板定義:
template //Type為類型參數(shù)
class Xtwo{ //由兩個(gè)Type類型的數(shù)據(jù)成員構(gòu)成的模板類
Type a;
Type b;
public:
Xtwe(Type aa=0, Type bb=0):a(aa),b(bb){}
int Ccmpare (){//比較a和b的大小
if (a>b)returm 1;
else if(a==b) return 0;
else return -1;
}
Type Snm() {return a+b;} //返回a和b之和
Type Mult(); //函數(shù)聲明,返回a和b之乘積
};
Template
【15】::Mult(){return a*b;} //Mult 函數(shù)的類外定義
【上半年全國(guó)計(jì)算機(jī)二級(jí)C++考試真題】相關(guān)文章:
全國(guó)計(jì)算機(jī)二級(jí)考試C++真題03-21
全國(guó)計(jì)算機(jī)二級(jí)考試《C語(yǔ)言》真題練習(xí)及答案09-20
全國(guó)計(jì)算機(jī)二級(jí)考試《C++》筆試樣卷06-12
2024年3月全國(guó)計(jì)算機(jī)二級(jí)考試VFP真題11-01
2022年全國(guó)計(jì)算機(jī)二級(jí)C++考試強(qiáng)化練習(xí)11-07
計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試選擇題04-23
全國(guó)計(jì)算機(jī)二級(jí)《C++》上機(jī)試題及答案03-28