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