1[單選題] 已知函數(shù)FA調(diào)用函數(shù)FB,若要把這兩個函數(shù)定義在同一個文件中,則( )。
A.FA必須定義在FB之前
B.FB必須定義在FA之前
C.若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前
D.若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前
參考答案:D
參考解析:如果使用用戶自己定義的函數(shù),而該函數(shù)與調(diào)用它的函數(shù)(即主調(diào)用函數(shù))在同一程序單元中,且位置在主調(diào)用函數(shù)之后,則必須在調(diào)用此函數(shù)之前對被凋用的函數(shù)作聲明。
2[單選題]單個用戶使用的數(shù)據(jù)視圖的描述稱為
A.外模式 B.概念模式 C.內(nèi)模式 D.存儲模式
參考答案:A
3[單選題] 生成派生類對象時,派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是( )。
A.無需任何條件
B.基類中顯式定義了構(gòu)造函數(shù)
C.派生類中顯式定義了構(gòu)造函數(shù)
D.派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)
參考答案:D
參考解析:派生類的構(gòu)造函數(shù)必須通過調(diào)用基類的構(gòu)造函數(shù)來初始化基類子對象。所以,在定義派生類的構(gòu)造函數(shù)時除了對自己的數(shù)據(jù)成員進行初始化外,還必須負責(zé)調(diào)用基類構(gòu)造函數(shù)使基類的數(shù)據(jù)成員得以初始化。
4[單選題] 下列敘述中正確的是( )。
A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的關(guān)系
B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小
D.上述三種說法都不對
參考答案:C
參考解析:面向?qū)ο蟮某绦蛟O(shè)計是用對象模擬問題領(lǐng)域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現(xiàn)對象之間的相互聯(lián)系。
5[單選題]

A.變量a的值,即3
B.變量a的地址值
C.變量p的地址值
D.無意義
參考答案:A
參考解析:

6[單選題]閱讀以下程序:

下列錯誤的是( )。
A.對象infile只能用于文件入操作
B.對象outfile只能用于文件輸出操作
C.對象iofile在文件關(guān)閉后,不能再打開另一個文件
D.對象iofile可以打開一個文件同時進行輸入和輸出
參考答案:C
參考解析:本題看似復(fù)雜。其實掌握技巧的話可以很容易的得出正確答案為C。按照常識,一個 文件關(guān)閉后,應(yīng)該可以再打開另外一個文件。
7[填空題]軟件設(shè)計模塊化的目的是 。
答案解析:降低復(fù)雜性
8[單選題]程序中若有如下的說明和定義語句
char fun(char *);
main()
{
char *s= "one",a[5]={0},(*f1)()=fun,ch;
……
}
以下選項中對函數(shù)fun的正確調(diào)用語句是( )
A.(*f1)(a); B.*f1(*s); C.fun( &a); D.ch=*f1(s)
參考答案:A
9[填空題]診斷和改正程序中錯誤的工作通常稱為( )。
參考答案:程序調(diào)序
10[填空題]以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的值,請?zhí)羁? )
void fun(int, int, int (*)[4],int *)
main()
{
int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)
printf("M",b[i]);
printf("\n");
}
void fun(int m,int n,int ar[][4],int *br)
{
int i,j,x;
for(i=0;i
{ x=ar[i][0];
for(j=0;j
if(x (12) =x;
}
參考解析:br[i]
11[填空題]C++源程序的擴展名是( ) 。
參考解析:cpp
12[單選題] 有如下程序:
#include
usingnamespacestd;
classC1{
public:
~C1( ){cout<<1;)
};
classC2:publicC1{
public:
~C2( ){cout<<2;)
};
intmain( ){
C2cb2;
C1*cb1:
return0;
}
運行時的輸出結(jié)果是( )。
A.121B.21C.211D.12
參考答案:B
參考解析:在基類與派生類中,析構(gòu)函數(shù)在派生類先調(diào)用,而本題有兩個不同類對象,對于cb2需先調(diào)c2的析構(gòu)函數(shù),再調(diào)c1的析構(gòu)函數(shù)。而對于*cb1由于沒有指針性析構(gòu)函數(shù),它將不參加傳遞數(shù)據(jù)。
13[單選題]若有定義語句“intm[]={5,4,3,2,1),i=4;”則下列對m數(shù)組元素的引用中錯誤的是( )。
A.m[--i]B.m[2*2]C.m[m[o]]D.m[m[i]]
參考答案:C
參考解析:數(shù)組的下標是從零開始的。一維數(shù)組的一般定義方式為數(shù)型說明符數(shù)組名[常置表達式],其中“[]”中的內(nèi)容可以是整型數(shù)量,也可以是整型表達式。選項C中,m[0]=5,m[m[o]]=m[5],數(shù)組下標越界。
14[單選題]

A.

B.

C.

D.

參考答案:C
參考解析:在函數(shù)f的形參表達式中第一個形參為整型指針變量,第二個為整型引用變量,所以用實參v1的指針初始化第一個形參,用實參v2初始化第二形參。
15[單選題] 有以下程序:
classDate
{public:
Date(inty,intm,intd);
{year=Y;
month=m;
day=d;}
Date(inty=2000)
{year=y;
month=10;
day=1;}
Date(Date&d)
{year=d.year;
month=d.month;
day=d.day;}
voidprint()
{cout<
day<
private:
intyear,month,day;};
Datefun(Dated)
{Datetemp;
temp=d;
returntemp;}
intmain()
{Datedatel(2000,1,1),date2(0,0,O);
Datedate3(date1);
date2=fun(date3);
return0;}
程序執(zhí)行時,Date類的復(fù)制構(gòu)造函數(shù)被調(diào)用的次數(shù)是( )。
A.2B.3C.4D.5
參考答案:B
參考解析:本題復(fù)制構(gòu)造函數(shù)一共被調(diào)用了三次:第一次是在執(zhí)行語句Datedate3(datel);時,用已經(jīng)建立的對象datel對正在建立的對象date3進行初始化;第二次是在調(diào)用fun函數(shù)時,由于是傳值調(diào)用,因此實參對象date3要對形參對象d進行初始化;第三次是在執(zhí)行fun函數(shù)中的返回語句returntemp;時,系統(tǒng)初始化一個匿名對象時使用了復(fù)制構(gòu)造函數(shù)。
16[單選題] 對于語句“cout<
A.*********1*2B.********12C.*******1*2D.12********
參考答案:A
參考解析:C++語言中,setfill的意思是在空格的地方填上setfill函數(shù)中的參數(shù)字符,setw的意思是設(shè)置整個輸出字符串的字符個數(shù),本題中用*來代替空格。
17[單選題]如果一個模板聲明列出了多個參數(shù),則每個參數(shù)之間必須使用逗號隔開,每個參數(shù)都必須使用( )關(guān)鍵字來修飾。
A.constB.staticC.voidD.class
參考答案:D
參考解析:如果一個模板聲明列出了多個參數(shù),則每個參數(shù)之間必須使用逗號隔開,每個參數(shù)都必須使用class關(guān)鍵字來修飾。
18[單選題] 已知類MyClass的定義如下:
ClassMyClass{
public:
MyClass(intd){data=d;}
~MyClass(){}
private:
intdata;
};
下列對MyClass類對象數(shù)組的定義和初始化語句中,正確的是( )。
A.MyClassarray[2];
B.MyClassarray[2]={MyClass(5)};
C.MyClassarray[2]={MyClass(5),Myclass(6)};
D.MyClass*array=newMyClass[2];
參考答案:C
參考解析:A只是聲明,沒有初始化;B的初始化錯誤,另一個數(shù)組對象沒有指明地址;D同樣做的不是初始化的事情。
19[單選題]下列函數(shù)的功能是判斷字符串str是否對稱,對稱則返回true,否則返回false,則橫線處應(yīng)填上( )。

A.

B.

C.

D.

參考答案:A
參考解析:

