全國計算機二級考試C++真題
無論是身處學校還是步入社會,我們需要用到試題的情況非常的多,試題是命題者按照一定的考核目的編寫出來的。你所了解的試題是什么樣的呢?以下是小編為大家收集的全國計算機二級考試C++真題,歡迎大家分享。
全國計算機二級考試C++真題1
一、選擇題
(1)下列敘述中正確的是
A)棧是“先進先出”的線性表
B)隊列是“先進后出”的線性表
C)循環(huán)隊列是非線性結(jié)構(gòu)
D)有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈式存儲結(jié)構(gòu)
(2)支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是
A)棧
B)樹
C)隊列
D)二叉樹
(3)某二叉樹有5個度為z的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是
A)10
B)8
C)6
D)4
(4)下列排序方法中,最壞情況下比較次數(shù)最少的是
A)冒泡排序
B)簡單選擇排序
C)直接插入排序
D)堆排序
(5)軟件按功能可以分為: 應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是
A)編譯程序
B)操作系統(tǒng)
C)教務(wù)管理系統(tǒng)
D)匯編程序
(6)下面敘述中錯誤的是
A)軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B)對被調(diào)試的程序進行“錯誤定位”是程序調(diào)試的必要步驟
C)程序調(diào)試通常也稱為Debug
D)軟件測試應(yīng)嚴格執(zhí)行測試計劃,排除測試的隨意性
(7)耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是
A)提高耦合性降低內(nèi)聚性有利他哦高模塊的獨立性
B)降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
C)耦合性是指一個模塊內(nèi)部各個元索間彼此結(jié)合的緊密程度
D)內(nèi)聚性是指模塊間互相連接的緊密程度
(8)數(shù)據(jù)庫應(yīng)用系統(tǒng)中的核心問題是
A)數(shù)據(jù)庫設(shè)計
B)數(shù)據(jù)庫系統(tǒng)設(shè)計
C)數(shù)據(jù)庫維護
D)數(shù)據(jù)庫管理員培訓
(9)有如下程序:
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
}
運行時的輸出結(jié)果是
A)3
B)23
C)123
D)213
(10)將E-R圖轉(zhuǎn)換為關(guān)系模式時,實體和聯(lián)系都可以表示為
A)屬性
B)鍵
C)關(guān)系
D)域
(11)對C++編譯器區(qū)分重載函數(shù)無任何意義的信息是
A)參數(shù)類型
B)參數(shù)個數(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)用中錯誤的是
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;
下列語句中正確的是
A)cout< B)cout< C)cout< D)cout<
(14)運算符重載時不需要保持的性質(zhì)是
A)操作數(shù)個數(shù)
B)操作數(shù)類型
C)優(yōu)先級
D)結(jié)合性
(15)下列關(guān)于函數(shù)模板的描述中,錯誤的是
A)從模板實參表和從模板函數(shù)實參表獲得信息矛盾時,以模板實參的信息為準
B)對于常規(guī)參數(shù)所對應(yīng)的模板實參,任何情況下都不能省略
C)虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時,不能省略模板實參
D)模板參數(shù)表不能為空
(16)要建立文件流并打開當前目錄下的文件file.dat用于輸入,下列語句中錯誤的是
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)跨平臺性
C)繼承性
D)多態(tài)性
(18)有如下程序段:
Tnt i=4;int j=l;
int main(){
int i=8,j=i;
cout< }
運行時的輸出結(jié)果是
A)44
B)41
C)88
D)81
(19)有如下程序段:
int i=5;
while(int i=0){cout《*;i--;}
運行時輸出“*”的個數(shù)是
A)0
B)1
C)5
D)無窮
(20)己知有數(shù)組定義
char a[3][4];
下列表達式中錯誤的是
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ù)原型中錯誤的是
A)char fun(int,int);
B)double fun(int,int,double);
C)int fun(int,char*);
D)float fun (int, int, int);
(22)建立一個類對象時,系統(tǒng)自動調(diào)用
A)析構(gòu)函數(shù)
B)構(gòu)造函數(shù)
C)靜態(tài)函數(shù)
D)友元函數(shù)
(23)通過派生類的對象可直接訪問其
A)公有繼承基類的公有成員
B)公有繼承基類的私有成員
C)私有繼承基類的公有成員
D)私有繼承基類的私有成員
(24)己知表達式++a中的“++”是作為成員函數(shù)重載的運算符,則與十+a等效的運算符函數(shù)調(diào)用形式為
A)a .orerator++(1)
B)operator++(a)
C)operator++(a,l)
D)a.operator++( )
(25)在定義一個類模板時,模板形參表是用一對括號括起來的,所采用的括號是
A)( )
B)[ ]
C)< >
D){ }
(26)當使用ifstream流類定義一個流對象并打開一個磁盤文件時,文件的默認打開方式為
A)ios_base::in
B)ios_base::in|ios_base::out
C)ios_base::out
D)ios_base::in&ios_base::out
(27)有如下程序:
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;
}
運行時的輸出結(jié)果是
A)12
B)16
C)14
D)11
(28)有如下程序:
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
pd;
return 0;
}
運行時的輸出結(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)有如下程序:
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;
}
在標注號碼的四條語句中正確的是
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< };
下列選項中,輸出結(jié)果為A0的語句是
A)YY y1(0,0);
B)YY y2(1);
C)YY y3(0);
D)YY y4;
(32)有如下程序:
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;
}
運行時的輸出結(jié)果是
A)12
B)34
C)14
D)32
(33)有如下程序:
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;
}
運算符函數(shù)。operator>的功能是比較兩個Pair對象的大小,當左邊對象大時,返回true,否則返回false。比較規(guī)則是首先比較兩對象的m成員,m大者為大;當m相等時比較n,n大者為大。程序輸出0101,下列對運算符重載函數(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)假定下列語句都是程序運行后首次執(zhí)行的輸出語句,其中輸出結(jié)果與另外三條語句不同的語句是
A)cout< B)cout< C)cout<<123< D)cout<
二、填空題
(1)假設(shè)用一個長度為50的數(shù)組(數(shù)組元索的下標從0到49)作為棧的存化空間,棧底指針bottom指間棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數(shù)組下標),則棧中具有【1】個元素。
(2)軟件測試可分為白盒測試和黑盒測試。基本路徑測試屬于【2】測試。
(3)符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和【3】。
(4)數(shù)據(jù)庫系統(tǒng)的核心是【4】。
(5)在E-K圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯(lián)系的是【5】框。
(6)有如下程序段:
int x=1,Y=2,z=3;
x=x^z;
y=y^z;
z=x^y;
cout< 執(zhí)行這個程序段的輸出是【6】。
(7)有如下程序段:
fer(int i=1; i<=50;i++){
if(i%3 != 0)
continue;
else
if(i%5!=0)
continue;
tout< }
執(zhí)行這個程序段的輸出是【7】。
(8)有如下程序段:
Char c [20]=“examination”;
c[4]=0;
cout< 執(zhí)行這個程序段的輸出是【8】。
(9)下面的函數(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)的過程中,遞歸調(diào)用sum函數(shù)的次數(shù)是【9】。
(10)非成員函數(shù)應(yīng)該聲明為類【10】函數(shù)才能訪問該類的私有成員。
(11)有如下程序:
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;
}
請將程序補充完整,使程序在運行時輸出:
The computer is 101
The type of monitor i.s 8
(12)有如下程序:
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;
}
運行時的輸出結(jié)果是【12】。
(13)補充完整下面的類定義:
const double PI=3 .14;
class Circle{ //圓形物體的抽象基類
protected:
double r; //半徑
public:
Circle(double radius=0):r(radius){}
【13】;//計算圓形物體表面積的純虛函數(shù)聲明
};
class Cylinder:public Circle { //圓柱體類
double h; //高度
public:
Cylindr(double radius=0, doubli height=0):
Circle(radius),h (height){}
Virtual double Area() { //計算圓柱體的表面積
return 2*PI*r*(r+h);
}
};
(14)補充完整下面的類定義:
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() { []a;}
};
(15)補充完整下面的模板定義:
template //Type為類型參數(shù)
class Xtwo{ //由兩個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ù)的類外定義
全國計算機二級考試C++真題2
一、選擇題((1)—(10)、(21)—(40)每題2分,(11)—(20)每題1分,共70分)
。1)下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是
A.循環(huán)隊列
B.帶鏈隊列
C.二叉樹
D.帶鏈棧
。2)下列數(shù)據(jù)結(jié)果中,能夠按照“先進后出”原則存取數(shù)據(jù)的是
A.循環(huán)隊列
B.棧
C.隊列
D.二叉樹
。3)對于循環(huán)隊列,下列敘述中正確的是
A.隊頭指針是固定不變的
B.隊頭指針一定大于隊尾指針
C.隊頭指針一定小于隊尾指針
D.隊頭指針可以大于隊尾指針,也可以小于隊尾指針
。4)算法的空間復(fù)雜度是指
A.算法在執(zhí)行過程中所需要的計算機存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
。5)軟件設(shè)計中劃分模塊的一個準則是
A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D. 高內(nèi)聚高耦合
。6)下列選項中不屬于結(jié)構(gòu)化程序設(shè)計原則的是
A.可封裝.
B. 自頂向下
C.模塊化
D. 逐步求精
。7)軟件詳細設(shè)計產(chǎn)生的圖如下:
該圖是
A.N-S圖
B.PAD圖
C.程序流程圖
D. E-R圖
。8)數(shù)據(jù)庫管理系統(tǒng)是
A.操作系統(tǒng)的一部分
B.在操作系統(tǒng)支持下的系統(tǒng)軟件
C.一種編譯系統(tǒng)
D. 一種操作系統(tǒng)
。9)在E-R圖中,用來表示實體聯(lián)系的圖形是
A.橢圓圖
B.矩形
C.菱形
D. 三角形
(10)有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為
A.選擇
B.投影
C.交
D.并
。11)以下敘述中正確的是
A.程序設(shè)計的任務(wù)就是編寫程序代碼并上機調(diào)試
B.程序設(shè)計的任務(wù)就是確定所用數(shù)據(jù)結(jié)構(gòu)
C.程序設(shè)計的任務(wù)就是確定所用算法
D.以上三種說法都不完整
(12)以下選項中,能用作用戶標識符的是
A.void
B.8_8
C._0_
D.unsigned
(13)閱讀以下程序
main()
{ int case; float printF;
printf(“請輸入2個數(shù):”);
scanf(“%d %f”,&case,&pjrintF);
printf(“%d %f ”,case,printF);
}
該程序編譯時產(chǎn)生錯誤,其出錯原因是
A.定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標識符
B.定義語句出錯,printF不能用作用戶自定義標識符
C.定義語句無錯,scanf不能作為輸入函數(shù)使用
D.定義語句無錯,printf不能輸出case的值
。14)表達式:(int)((double)9/2)-(9)%2的值是
A.0
B.3
C.4
D.5
。15)若有定義語句:int x=10;,則表達式x-=x+x的值為
A.-20
B.-10
C.0
D.10
。16)有以下程序
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d ”,a=2*b);
}
程序運行后的輸出結(jié)果是
A.0,0
B.1,0
C.3,2
D.1,2
(17)設(shè)有定義:int a=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是
A.if(a>B. c=a,a=b,b=c;
B.if(a>B. {c=a,a=b,b=c;}
C.if(a>B. c=a;a=b;b=c;
D.if(a>B. {c=a;a=b;b=c;}
。18)有以下程序
main()
{ int c=0,k;
for (k=1;k<3;k++)
switch (k)
{ default: c+=k
case 2: c++;break;
case 4: c+=2;break;
}
printf(“%d ”,C.;
}
程序運行后的輸出結(jié)果是
A.3
B.5
C.7
D.9
(19)以下程序段中,與語句:k=a>b?(b>c?1:0):0;功能相同的是
A.if((a>b)&&(b>C.) k=1;
else k=0;
B.if((a>b)||(b>C. k=1;
else k=0;
C.if(a<=B. k=0;
else if(b<=C.k=1;
D.if(a>B. k=1;
else if(b>C.k=1;
else k=0;
20)有以下程序
main()
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=’a’&&s[i]<=’z’) n++;
printf(“%d ”,n);
}
程序運行后的輸出結(jié)果是
A.0
B.2
C.3
D.5
。21)有以下程序
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf(“%d %d ”,k,n);
}
程序運行后的輸出結(jié)果是
A.0 2
B.1 3
C.5 7
D.1 2
(22)有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是
A.char a=’a’;
B.char a=’ ’;
C.char a=’aa’;
D.char a=’x2d’;
(23)有以下程序
main()
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d ”,c1,c2);
}
已知字母A的ASCII碼為65,程序運行后的輸出結(jié)果是
A.E,68
B.D,69
C.E,D
D.輸出無定值
。24)有以下程序
void fun(int p)
{ int d=2;
p=d++; printf(“%d”,p);}
main()
{ int a=1;
fun(a); printf(“%d ”,a);}
程序運行后的輸出結(jié)果是
A.32
B.12
C.21
D.22
。25)以下函數(shù)findmax擬實現(xiàn)在數(shù)組中查找最大值并作為函數(shù)值返回,但程序中有錯導致不能實現(xiàn)預(yù)定功能
#define MIN -2147483647
int findmax (int x[],int n)
{ int i,max;
for(i=0;i
{ max=MIN;
if(max
return max;
}
造成錯誤的原因是
A.定義語句int i,max;中max未賦初值
B.賦值語句max=MIN;中,不應(yīng)給max賦MIN值
C.語句if(max
D.賦值語句max=MIN;放錯了位置
。26)有以下程序
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d ”,m,n,*p,*q);
}
程序運行后的輸出結(jié)果是
A.1,2,1,2
B.1,2,2,1
C.2,1,2,1
D.2,1,1,2
。27)若有定義語句:int a[4][10],*p,*q[4];且0≤i<4,則錯誤的賦值是
A.p=a
B.q[i]=a[i]
C.p=a[i]
D.p=&a[2][1]
。28)有以下程序
main()
{ char str[ ][20]={“One*World”, “One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));printf(“%s ”,p);
}
程序運行后的輸出結(jié)果是
A.9,One*World
B.9,One*Dream
C.10,One*Dream
D.10,One*World
(29)有以下程序
main()
{ int a[ ]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:switch(a[i]%2)
{case 0:a[i]++;break;
case 1:a[i]--;
}break;
case 1:a[i[=0;
}
for(i=0;i<4;i++) printf(“%d”,a[i]); printf(“ ”);
}
A.3 3 4 4
B.2 0 5 0
C.3 0 4 0
D.0 3 0 4
。30)有以下程序
main()
{ char a[10]=”abcd”;
printf(“%d,%d ”,strlen(a),sizeof(a));
}
程序運行后的輸出結(jié)果是
A.7,4
B.4,10
C.8,8
D.10,10
(31)下面是有關(guān)C語言字符數(shù)組的描述,其中錯誤的是
A.不可以用賦值語句給字符數(shù)組名賦字符串
B.可以用輸入語句把字符串整體輸入給字符數(shù)組
C.字符數(shù)組中的內(nèi)容不一定是字符串
D.字符數(shù)組只能存放字符串
(32)下列函數(shù)的功能是
fun(char * a,char * b)
{ while((*b=*a)!=’’) {a++,b++;} }
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進行比較
D.檢查a和b所指字符串中是否有’’
。33)設(shè)有以下函數(shù)
void fun(int n,char * s) {……}
則下面對函數(shù)指針的定義和賦值均是正確的是
A.void (*pf)(); pf=fun;
B.viod *pf(); pf=fun;
C.void *pf(); *pf=fun;
D.void (*pf)(int,char);pf=&fun;
。34)有以下程序
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d ”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行以后的輸出結(jié)果是
A.7
B.8
C.9
D.10
(35)有以下程序
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d ’,s,t);
}
程序運行后的輸出結(jié)果是
A.10,64
B.10,10
C.64,10
D.64,64
。36)下面結(jié)構(gòu)體的定義語句中,錯誤的是
A.struct ord {int x;int y;int z;}; struct ord a;
B.struct ord {int x;int y;int z;} struct ord a;
C.struct ord {int x;int y;int z;} a;
D.struct {int x;int y;int z;} a;
。37)設(shè)有定義:char *c;,以下選項中能夠使字符型指針c正確指向一個字符串的是
A.char str[ ]=”string”;c=str;
B.scanf(“%s”,C.;
C.c=get);
D.*c=”string”;
(38)有以下程序
struct A
{ int a; char b[10]; double c;};
struct A f(struct A t);
main()
{ struct A a={1001,”ZhangDa”,1098.0};
a=f(a);jprintf(“%d,%s,%6.1f ”,a.a,a.b,a.C.;
}
struct A f(struct A t)
( t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t; )
程序運行后的輸出結(jié)果是
A.1001,ZhangDa,1098.0
B.1001,ZhangDa,1202.0
C.1001,ChangRong,1098.0
D.1001,ChangRong,1202.0
。39)若有以下程序段
int r=8;
printf(“%d ”,r>>1);
輸出結(jié)果是
A.16
B.8
C.4
D.2
。40)下列關(guān)于C語言文件的敘述中正確的是
A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件
C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件
D.文件由字符序列組成,其類型只能是文本文件
二、填空題(每空2分,共30分)
。1)某二叉樹有5個度為2的結(jié)點以及3個度為1的結(jié)點,則該二叉樹中共有【1】 個結(jié)點。
(2)程序流程圖中的菱形框表示的是 【2】 。
。3)軟件開發(fā)過程主要分為需求分析、設(shè)計、編碼與測試四個階段,其中 【3】 階段產(chǎn)生“軟件需求規(guī)格說明書。
。4)在數(shù)據(jù)庫技術(shù)中,實體集之間的聯(lián)系可以是一對一或一對多或多對多的,那么“學生”和“可選課程”的聯(lián)系為 【4】 。
。5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是 【5】 。
。6)若有定義語句:int a=5;,則表達式:a++的值是 【6】 。
。7)若有語句double x=17;int y;,當執(zhí)行y=(int)(x/5)%2;之后y的值為 【7】 。
(8)以下程序運行后的輸出結(jié)果是 【8】 。
#include
main()
{ int x=20;
printf(“%d”,0
printf(“%d ”,0
。9)以下程序運行后的輸出結(jié)果是 【9】 。
#include
main()
{ int a=1,b=7;
do {
b=b/2;a+=b;
} while (b>1);
printf(“%d ”,a);}
。10)有以下程序
#include
main()
{ int f,f1,f2,i;
f1=0;f2=1;
printf(“%d %d”,f1,f2);
for(i=3;i<=5;i++)
{ f=f1+f2; printf(“%d”,f);
f1=f2; f2=f;
}
printf(“ ”);
}
程序運行后的輸出結(jié)果是 【10】 。
。11)有以下程序
#include
int a=5;
void fun(int b)
{ int a=10;
a+=b;printf(“%d”,a);
}
main()
{ int c=20;
fun(c);a+=c;printf(“%d ”,a);
}
程序運行后的輸出結(jié)果是 【11】 。
。12)設(shè)有定義:
struct person
{ int ID;char name[12];}p;
請將scanf(“%d”, 【12】 );語句補充完整,使其能夠為結(jié)構(gòu)體變量p的成員ID正確讀入數(shù)據(jù)。
。13)有以下程序
#include
main()
{ char a[20]=”How are you?”,b[20];
scanf(“%s”,b);printf(“%s %s ”,a,b);
}
程序運行時從鍵盤輸入:How are you?<回車>
則輸出結(jié)果為 【13】 。
(14)有以下程序
#include
typedef struct
{ int num;double s}REC;
void fun1( REC x ){x.num=23;x.s=88.5;}
main()
{ REC a={16,90.0 };
fun1(a);
printf(“%d ”,a.num);
}
程序運行后的輸出結(jié)果是 【14】 。
。15)有以下程序
#include
fun(int x)
{ if(x/2>0) run(x/2);
printf(“%d ”,x);
}
main()
{ fun(6);printf(“ ”); }
程序運行后的輸出結(jié)果是 【15】 。
全國計算機二級考試C++真題3
單選題
1). 如果進棧序列為e1、e2、e3、e4,則可能的出棧序列是( )。
A.e3、e1、e4、e2
B.e2、e4、e3、el1
C.e3、e4、e1、e2
D.任意順序
正確答案:B
答案解析:根據(jù)棧先進后出的特點可知el肯定是最后出棧的,因此正確答案為選項B。
2). 對于重載的運算符>>,它是一個( )
A.用于輸入的友元函數(shù)
B.用于輸入的成員函數(shù)
C.用于輸出的友元函數(shù)
D.用于輸出的成員函數(shù)
正確答案:A
3). NULL是指
A.0
B.空格
C.未知的值或無任何值
D.空字符串
正確答案:C
答案解析:此題屬于記憶性的題目,NULL是指未知的值或無任何值。
4). 用鏈表表示線性表的優(yōu)點是( )
A.便于隨機存取
B.花費的存儲空間較順序存儲少
C.便于插入和刪除操作
D.數(shù)據(jù)元素的物理順序與邏輯順序相同
正確答案:C
5). 結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是( )
A.程序的規(guī)模
B.程序的效率
C.程序設(shè)計語言的先進性
D.程序易讀性
正確答案:D
6). 下面關(guān)于C++流的敘述中,正確的是( )。
A.cin是一個輸入流對象
B.可以用ifstream定義一個輸出流對象
C.執(zhí)行語句序列char* y=″PQMN″;cout<
D.執(zhí)行語句序列char x[80];cin.getline(x,80);時,若輸入Happy new year,則x中的字符串是″Happy″
正確答案:A
答案解析:本題考查C++流的概念和I/()的格式化。cin是istream類的對象,即輸入流對象。ifstream是輸入文件流,類不能定義個輸出流對象。getline函數(shù)的功能是允許從輸入流中讀取多個字符,并且允許指定輸入終止,在讀取完成后,從讀取的內(nèi)容中刪除該終止字符,所以D選項中的語句序列后x中字符串應(yīng)該是Happy new year。
【全國計算機二級考試C++真題】相關(guān)文章:
上半年全國計算機二級C++考試真題03-21
2007年3月全國計算機等級考試二級C++筆試真題03-28
2007年3月全國計算機等級考試二級C++筆試真題參考答案03-28
全國計算機二級考試《C++》筆試樣卷06-12