第 1 頁:選擇題 |
第 3 頁:基本操作題 |
第 4 頁:簡單應用題 |
第 5 頁:綜合應用題 |
21有如下類定義:
class Point
{
int xx.yy;
public:
Point():xx(0),yy(0){}
Point(int x,int Y=0):xx(X),YY(Y){}
};
若執(zhí)行語句
Point a(2),b[3],幸c[4];
則Point類的構造函數(shù)被調用的次數(shù)是( )。
A.2次B.3次C.4次D.5次
參考答案:C
參考解析:本題考查默認構造函數(shù)和帶參數(shù)的構造函數(shù),題目中定義一個對象a(2)以及對象數(shù)組b[3],共執(zhí)行4次構造函數(shù),對象指針不調用構造函數(shù)。所以本題答案為c。
22有如下程序:
#include
using namespace std;
class Basel
{
public:
BaseI(int D.{cout<
一Basel(){}
};
class Base2
{
public:
Base2(int D.{tout<
~Base2(){}
};
class Derived:public Basel,Base2
{
public:
Derived(int a,int b,int c,int D.:Basel(B.,Base2(A.,bl(D.,b2(C.{}
private:
int bl:
int b2:
};
int main()
{
Derived d(1,2,3,4);
return 0;
}
執(zhí)行這個程序的輸出結果是( )。
A.1234B.2134C.12D.21
參考答案:D
參考解析:本題考查派生類的構造函數(shù)和析構函數(shù),在定義一個派生類的對象時,先調用基類的構造函數(shù),然后再執(zhí)行派生類的構造函數(shù),對象釋放時,先執(zhí)行派生類的析構函數(shù),再執(zhí)行基類的析構函數(shù)。本題中定義一個派生類對象時,分別調用基類的構造函數(shù),所以分別輸出21。
23以下敘述正確的是( )。
A.函數(shù)可以嵌套定義但不能嵌套調用
B.函數(shù)既可以嵌套調用也可以嵌套定義
C.函數(shù)既不可以嵌套定義也不可以嵌套調用
D.函數(shù)可以嵌套調用但不可以嵌套定義
參考答案:D
參考解析:在c++語言中,所有的函數(shù)都是平行的,即在定義函數(shù)時是互相獨立的,一個函數(shù)并不從屬于另一個函數(shù),即函數(shù)不能嵌套定義,但可以互相調用。但是不能調用main()函數(shù)。
24必須用一對大括號括起來的程序段是( )。
A.switCh語句中的Case標號語句
B.if語句的分支
C.循環(huán)語句的循環(huán)體
D.函數(shù)的函數(shù)體
參考答案:D
參考解析:本題考查c++基本控制結構,A、B、C三個選項中的大括號不是必須的,而D選項中的函數(shù)體必須使用大括號。
25軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是( )。
A.學生成績管理系統(tǒng)
B.C語言編譯程序
C.UNIX操作系統(tǒng)
D.數(shù)據(jù)庫管理系統(tǒng)
參考答案:A
參考解析:軟件按功能可以分為:應用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡軟件、數(shù)據(jù)庫管理系統(tǒng)都屬于系統(tǒng)軟件。所以B、C、D都是系統(tǒng)軟件,只有A是應用軟件。
26下面程序的運行結果為( )。
#include
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{
a++:
}
cout<
}
A.10B.1lC.12D.0
參考答案:C
參考解析:在進入最后一次循環(huán)時a=10,在循環(huán)體內執(zhí)行“a++;”后a=11,執(zhí)行完該次循環(huán)體計算for循環(huán)的增量部分后a=12小于l0,循環(huán)結束。
27有如下程序:
#include
using namespace std;
int i=1;
class Fun{
public:
static int i;
int value(){return i—l;}
int value()const{return i+1;}
};
int Fun::i=2;
int main(){
int i=3;
Fun funl;
const Fun fun2:
__________________
return 0;
}
若程序的輸出結果是:
123
則程序中下畫線處遺漏的語句是( )。
A.cout<
參考答案:A
參考解析:本題考查構造函數(shù)、常成員函數(shù)和靜態(tài)數(shù)據(jù)成員。外部同名的變量賦值,不能改變類的靜態(tài)變量值,所以Fun對象里的i值為2,所以本題答案為A。
28下列有關模板的敘述中,正確的是( )。
A.函數(shù)模板不能含有常規(guī)形參
B.函數(shù)模板的一個實例就是一個函數(shù)定義
C.類模板的成員函數(shù)不能是模板函數(shù)
D.用類模板定義對象時,絕對不能省略模板實參
參考答案:B
參考解析:本題考查函數(shù)模板和類模板的基礎知識,所以本題答案為B。
29運算符重載時不需要保持的性質是( )。
A.操作數(shù)個數(shù)B.操作數(shù)類型C.優(yōu)先級D.結合性
參考答案:B
參考解析:重載運算符的規(guī)則如下:①c++不允許用戶自己定義新的運算符,只能對已有的c++運算符進行重裁;②c++不能重載的運算符只有5個;③重載不能改變運算符運算對象的個數(shù);④重載不能改變運算符的優(yōu)先級和結合性;⑤重載運算符的函數(shù)不能有默認的參數(shù);⑥重載的運算符必須和用戶定義的自定義類型的對象一起使用,至少應有一個是類對象,即不允許參數(shù)全部是c++的標準類型。所以答案為B。
30下列程序的輸出結果為( )。
#include
{
if(n<1)return l;
else return n+time(n一1); return 0;
}
void main() {
cout<
}
A.0B.10C.15D.16
參考答案:D
參考解析:本題考查的是遞歸函數(shù)的使用,題中遞歸函數(shù)的結束條件為n
31有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(int i=0){cout<<1;}
MyClass(const MyClass&x){cout<<2;}
MyClass&operator=(const MyClass&x){cout<<3;retum$this;}
~MyClass()}cout<<4;}
};
int main()
{
MyClass objl(1),obj2(2),obj3(objl);
retum 0;
{
執(zhí)行這個程序的輸出結果是( )。
A.112444B.11114444C.121444D.11314444
參考答案:A
參考解析:本題:考查構造函數(shù)和復制構造函數(shù)以及重載運算符。本題中先后定義了兩個對象obj1,obj2,依次輸出口,然后定義了對象obj3,凋用復制構造函數(shù),輸出2,最后執(zhí)行三次析構函數(shù),輸出444。
32在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結構與物理存取方法的是( )。
A.外模式B.內模式C.概念模式D.邏輯模式
參考答案:B
參考解析:數(shù)據(jù)庫系統(tǒng)的蘭級模式是概念模式、外模式和內模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述、、內模式又稱物理模式,它給出r數(shù)據(jù)庫物理存儲結構與物理存取方法,所以選擇8。
33有如下程序:
#inClude using namespaCe std; Class Base{
publiC:
void output(){Cout<<1;}
virtual void Print(){Cout<<'B’;} };
Class Derived:publiC Base{ publiC:
void output(){Cout<<2;} void Print(){Cout<<’D ';} };
int main() {
Base * ptr=new Derived; ptr一>output();
ptr一>Print(); delete ptr;
retum0; }
執(zhí)行這個程序的輸出結果是( )。
A.1BB.lDC.2BD.2D
參考答案:B
參考解析:在某基類中聲明為vitua1并在一個或多個派生類中被重新定義的成員函數(shù),本題中定義了一個指向派生類對象的基類指針ptr,執(zhí)行ptr一>outpnt后,會執(zhí)行基類的output函數(shù),輸出1,由于Print是虛函數(shù),所以ptr->Print()會執(zhí)行派生類的Print,即輸出D,所以本題答案為B。
34以下程序中,錯誤的行為是( )。
、#include
②class A
、踸
④public:
、 int n=2;
⑥ A(int val){cout<
、 -A(){};
⑧};
、醰oid main() ⑩{
⑪ A a(0);
⑫}
A.⑤B.⑥C.⑦D.⑪
參考答案:A
參考解析:C++語言中規(guī)定在類體中不允許對所定義的數(shù)據(jù)成員進行初始化。
35下列數(shù)據(jù)結構中,屬于非線性結構的是( )。
A.循環(huán)隊列B.帶鏈隊列C.二叉樹D.帶鏈棧
參考答案:C
參考解析:樹是簡單的非線性結構,所以二叉樹作為樹的一種也是一種非線性結構。
36有如下程序:
#inClude using namespaCe std; Class A{
publiC:
statiC int a;
void init( ){。a=1;}
A(int a=2){init( );a++;} };
int A::a:0: A obj;
int main( ) {
Cout<
}
運行時輸出的結果是( )。
A.0B.1C.2D.3
參考答案:B
參考解析:本題考查構造函數(shù),本題中對類中的a數(shù)據(jù)成員先是賦值為0,當定義了對象obj時,執(zhí)行構造函數(shù),將a的值變?yōu)榱?,所以輸出1。
37軟件詳細設計產(chǎn)生的圖如下:
該圖是( )。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
參考答案:C
參考解析:N—S圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細設計的圖形表示工具,所以B不對。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對。根據(jù)圖中所示表示方法是進行軟件詳細設計時使用的程序流程圖。
38秘序調試的任務是( )。
A.設計測試用例
B.驗證程序的正確性
C.發(fā)現(xiàn)程序中的錯誤
D.診斷和改正程序中的錯誤
參考答案:D
參考解析:程序調試的任務是診斷和改正程序中的錯誤。
39有如下程序:
#include
using namespace std;
class A{
public:
virtual void fancl(){cout<<”Al”;}
void func2(){cout<<”A2”;}
};
class B:public A{
public:
void funcI(){tout<<”Bl”;}
void func2(){tout<<”B2”;}
};
intmain()}
A*P=new B:
P—>funcl();
P—>func2();
delete p;
return 0;
}
執(zhí)行這個程序的輸出結果是( )。
A.B182B.A1A2C.B1A2D.AIB2
參考答案:C
參考解析:本題考查虛函數(shù)。虛函數(shù)指在基類中聲明為virtual并在一個或多個派生類中被重新定義的成員函數(shù)。題中定義了一個派生類對象8,并使用類A的對象指針指向B,由于基類A中的funcl為虛函數(shù),所以會執(zhí)行派生類的funcl,輸出Bl,而基類中的func2不是虛函數(shù),所以P->func2()會執(zhí)行基類的func2,輸出A2。故答案為c。
40下列字符串中。不可以用做c++標識符的是( )。
A.y_2006B._EST_HC.ReturnD.switch
參考答案:D
參考解析:本題考查C++標識符的命名規(guī)則,其規(guī)則有如下幾點:①所有標識符必須由字母、數(shù)字或下畫線組成,且必須由字母或下畫線開頭;②所有標識符不能使用C++已有的關鍵字;③大、小寫字母表示不同意義,即代表不同的標識符。選項C中雖然retum是關鍵字,但因首字母大、小寫不同,也可用于標識符,但不建議使用。故答案為D。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |