面向?qū)ο蟪绦蛟O計題庫(C++)
《面向?qū)ο蟪绦蛟O計題庫(C++)》由會員分享,可在線閱讀,更多相關《面向?qū)ο蟪绦蛟O計題庫(C++)(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、一、單項選擇題 1. 在C++語言中,對函數(shù)參數(shù)默認值描述正確的是:( D ) A) 函數(shù)參數(shù)的默認值只能設定一個 B) 一個函數(shù)的參數(shù)若有多個,則參數(shù)默認值的設定可以不連續(xù) C) 函數(shù)參數(shù)必須設定默認值 D) 在設定了參數(shù)的默認值后,該參數(shù)后面定義的所有參數(shù)都必須設定默認值 2. 假定 AB 為一個類,則執(zhí)行 AB x ;語句時將自動調(diào)用該類的( B ) 。 A) 有參構(gòu)造函數(shù) B) 無參構(gòu)造函數(shù) C) 拷貝構(gòu)造函數(shù) D) 賦值構(gòu)造函數(shù) 3. 下述關于開關語句的描述中,( )是正確的。 A) 開關語句中default子句可以
2、沒有,也可以有一個; B) 開關語句中每個語句序列中必須有break語句; C) 開關語句中default子句只能放在最后; D) 開關語句中case子句后面的表達式可以是整形表達式。 4. 關于對象概念的描述中,( ) 是錯誤的。 A) 對象就是C語言中的結(jié)構(gòu)變量; B) 對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體; C) 對象是一個狀態(tài)和操作(或方法)的封裝體; D) 對象之間的信息傳遞是通過消息進行的; 5. 下列給字符數(shù)組進行初始化中,( )是正確的。 A) char s1[ ]="12345abcd"; B) char s2[3]
3、="xyz"; C) char s3[][3]={ a, x, y}; D) char s4[2[3]={"xyz","mnp"}; 6. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是 ( ) 。 A) 3 B) 2 C) 6 D) 4 7. 聲明類test的拷貝構(gòu)造函數(shù)的正確形式是 ( D ) 。 A) int test B) void test C) test(void) D) test(test&) 8. 關于new運算符的下列描述中,( ) 是
4、錯的。
A) 它可以用來動態(tài)創(chuàng)建對象和對象數(shù)組;
B) 使用它創(chuàng)建的對象或?qū)ο髷?shù)組可以使用運算符delete刪除;
C) 使用它創(chuàng)建對象時要調(diào)用構(gòu)造函數(shù);
D) 使用它創(chuàng)建對象數(shù)組時必須指定初始值。
9. 在 C++ 中有以下 4 條語句: static int hot=200;int &rad=hot;
hot=hot+100;cout< 5、 B ) 。
A) 構(gòu)造函數(shù)可以設置默認參數(shù);
B) 構(gòu)造函數(shù)在聲明對象時自動執(zhí)行;
C) 構(gòu)造函數(shù)可以對靜態(tài)數(shù)據(jù)成員進行初始化;
D) 構(gòu)造函數(shù)可以重載;
11. 下面關于重載函數(shù)的說明中正確的是( )。
A) 重載函數(shù)必須具有不同的返回類型。
B) 重載函數(shù)形參的個數(shù)必須不同
C) 重載函數(shù)必須具有不同的形式參數(shù)表
D) 重載函數(shù)名可以不同
12. 下列關于C++函數(shù)的說明中,正確的是( )。
A) 內(nèi)聯(lián)函數(shù)就是定義在另一個函數(shù)體內(nèi)部的函數(shù)
B) 函數(shù)體的最后一條語句必須是 return 語句
C) 6、C++要求在調(diào)用一個函數(shù)前必須先聲明其原型
D) 編譯器會根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式
13. 已知函數(shù)原型為:
void foo(int*, long &b);
實參定義為:
int i;
long f;
則正確的調(diào)用語句是( ).
A) foo(i, &f); B) foo(i, f); C) foo(&i, f); D) foo(&i, &f);
14. C++中對于結(jié)構(gòu)中定義的成員,其默認的訪問權(quán)限為( )。
A) public B 7、) protected C) private D) static
15. 下列關于類與對象的說法中,不正確的是( )。
A) 對象是類的一個實例
B) 任何對象只能屬于一個具體的類
C) 一個類只能有一個對象
D) 類與對象的關系和數(shù)據(jù)類型與變量的關系相似
16. 下列關于構(gòu)造函數(shù)的描述中錯誤的是( )
A) 構(gòu)造函數(shù)可以設置默認參數(shù) B) 構(gòu)造函數(shù)在定義類對象時自動執(zhí)行
C) 構(gòu)造函數(shù)可以對靜態(tài)數(shù)據(jù)成員進行初始化 D) 構(gòu)造函數(shù)不可以重載
17. 類的析構(gòu)函數(shù)的作用是( )。
8、
A) 作為類的一般成員函數(shù) B) 類的初始化 C) 對象的初始化 D) 對象的刪除
18. 以下關于靜態(tài)數(shù)據(jù)成員的描述正確的是( )。
A) 靜態(tài)數(shù)據(jù)成員可以在類體中進行初始化 B) 靜態(tài)數(shù)據(jù)成員不可以被類的實例調(diào)用
C) 靜態(tài)數(shù)據(jù)成員不能受protected控制符的作用 D) 靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用
19. 下面關于友元函數(shù)的描述中正確的是( )。
A) 友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義 B) 友元函數(shù)是類的成員函數(shù)
C) 友元函數(shù)破壞了類的封裝性和隱藏性 C) 友元函數(shù)不能訪問 9、類的私有成員
20. 下面關于友元函數(shù)的描述中錯誤的是( )。
A) 如果類A是類B的友元,那么類B也是類A的友元
B) 如果函數(shù)fun()被說明為類A的友元,那么在fun()中可以訪問類A的私有成員
C) 友元關系不能被繼承
D) 如果類A是類B的友元,那么類A的所有成員函數(shù)都是類B的友元函數(shù)
21. 下列屬于C++語句的是 。
A) ; B) a=17 C) a+5 D) cout<<’\n’
22. 執(zhí)行語句k=30;j=k++;后k和j的值分別為 10、 。
A) k=30,j=30 B) k=30,j=31
C) k=31,j=30 D) k=31,j=31
23. 若X是一個bool型變量,則X && 5<3的值 。
A) 為true B) 為false
C) 與X的值相同 D) 與X的值相反
24. 如果a=1,b=2,c=3,d=4,則條件表達式“a>b?a:c 11、;
cout< 12、能用作數(shù)組元素 D) 一個對象能用作另一個對象的成員
28. 在 C++ 中實現(xiàn)封裝是借助于 。
A) 枚舉 B) 類
C) 數(shù)組 D) 函數(shù)
29. 下列不是描述類的成員函數(shù)的是 。
A) 構(gòu)造函數(shù) B) 析構(gòu)函數(shù)
C) 友元函數(shù) D) 拷貝構(gòu)造函數(shù)
30. 不能作為函數(shù)重載判斷依據(jù)的是 。
A) 參數(shù)個數(shù) B) 參數(shù)類型
C) 函數(shù)名稱 D)返回值類型
31. 假 13、定一個類的構(gòu)造函數(shù)為 A(int aa,int bb){a=aa++;b=a*bb++;} ,則執(zhí)行
A X(4,5); 語句后, X.a 和 X.b 的值分別為 。
A) 4 和 5 B) 5 和 30
C) 4 和 20 D) 20 和 5
32. 對于double (*p)[10];的描述, 是正確的。
A) p是一個指向數(shù)組的指針,所指向的數(shù)組是10個double型元素;
B) p是一個指向某個數(shù)組中第10個元素的指針,該元素是double型變量;
C) p[5]表示某個數(shù)組的第10個 14、元素的值;
D) p是一個具有10個元素的指針數(shù)組,每個元素是一個double型指針;
33. 下面的函數(shù)聲明中, 哪一個是” void BC(int a, int b);”的重載函數(shù)?
A) int BC(int a, int b) B) void BC(int a, char b)
C) float BC(int a, int b, int c = 0) D) void BC(int a, int b=0)
34. 已知 char c; char * const pc="asdf", 是正確的。
A) pc="dfgh 15、" B) *pc=‘b’
C) *pc++=‘y’ D) pc=&c
35. 下列關于構(gòu)造函數(shù)的敘述,錯誤的是 。
A) 構(gòu)造函數(shù)可以設置默認參數(shù);
B) 構(gòu)造函數(shù)在說明類變量時自動調(diào)用;
C) 構(gòu)造函數(shù)可以對靜態(tài)數(shù)據(jù)成員進行初始化;
D) 構(gòu)造函數(shù)可以重載;
36. 下列關于構(gòu)造函數(shù)的描述中錯誤的是( )
A) 構(gòu)造函數(shù)可以設置默認參數(shù) B) 構(gòu)造函數(shù)在定義類對象時自動執(zhí)行
C) 構(gòu)造函數(shù)可以對靜態(tài)數(shù)據(jù)成員進行初始化 D) 構(gòu)造函數(shù)不可以重載
37. 類的析 16、構(gòu)函數(shù)的作用是( )。
A) 作為類的一般成員函數(shù) B) 類的初始化 C) 對象的初始化 D) 對象的刪除
38. 以下關于靜態(tài)數(shù)據(jù)成員的描述正確的是( )。
A) 靜態(tài)數(shù)據(jù)成員可以在類體中進行初始化 B) 靜態(tài)數(shù)據(jù)成員不可以被類的實例調(diào)用
C) 靜態(tài)數(shù)據(jù)成員不能受protected控制符的作用 D) 靜態(tài)數(shù)據(jù)成員可以直接用類名調(diào)用
39. 下面關于友元函數(shù)的描述中正確的是( )。
A) 友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義 B) 友元函數(shù)是類的成員函數(shù)
C) 友元函數(shù)破壞了類的封裝性和隱藏性 17、 C) 友元函數(shù)不能訪問類的私有成員
40. 下面關于友元函數(shù)的描述中錯誤的是( )。
A) 如果類A是類B的友元,那么類B也是類A的友元
B) 如果函數(shù)fun()被說明為類A的友元,那么在fun()中可以訪問類A的私有成員
C) 友元關系不能被繼承
D) 如果類A是類B的友元,那么類A的所有成員函數(shù)都是類B的友元函數(shù)
41. 重載函數(shù)在調(diào)用時選擇的依據(jù)中,錯誤的是 ( )
A. 函數(shù)的參數(shù) B. 參數(shù)的類型 C. 函數(shù)的名字 D. 函數(shù)的類型
42. 一個函數(shù)功能不太復雜,但要求被 18、頻繁調(diào)用,選用 ( . )
A. 內(nèi)聯(lián)函數(shù) B. 重載函數(shù) C. 遞歸函數(shù) D. 嵌套函數(shù)
43. 下列不是描述類的成員函數(shù)的是 ( )
A. 構(gòu)造函數(shù) B. 析構(gòu)函數(shù) C. 友元函數(shù) D. 拷貝構(gòu)造函數(shù)
44. 構(gòu)造函數(shù)不具備的特征的是 ( )
A. 構(gòu)造函數(shù)的函數(shù)名與類名相同 B. 構(gòu)造函數(shù)可以重載
C. 構(gòu)造函數(shù)可以設置默認參數(shù) D. 構(gòu)造函數(shù)可以指定返回類型
45. 通常,拷貝構(gòu)造函數(shù)的參數(shù)是 ( 19、 )
A. 某個對象名 B. 某個對象的成員名
C. 某個對象的引用名 D. 某個對象的指針名
46. 繼承機制的作用是 ( )
A. 信息隱藏 B. 數(shù)據(jù)封裝 C. 代碼重用 D. 數(shù)據(jù)抽象
47. 類的析構(gòu)函數(shù)的作用是 ( )
A.一般成員函數(shù) B.類的初始化 C.對象的初始化 D.刪除對象創(chuàng)建的所有對象
48. 類的析構(gòu)函數(shù)是在 ( ) 調(diào)用的。
A. 類創(chuàng)建時 B. 創(chuàng)建對象時 C. 刪除對象時 D. 不自動調(diào)用
49. 已知print () 20、函數(shù)是一個類無返回值的常成員函數(shù),下列表示中正確的是( )。
A.void print()const B.const void print()
C.void const print ; D.void print (const );
50. 如果類 A 被說明成類 B 的友元,則 ( )
A. 類 A 的成員即類 B 的成員 B. 類 B 的成員即類 A 的成員
C. 類 A 的成員函數(shù)不得訪問類 B 的成員 D. 類 B 不一定是類 A 的友元
51. 通過一個對象調(diào)用虛函數(shù)時,C++系統(tǒng)對該調(diào)用采用( )。
A.動態(tài)聯(lián)編 21、 B.靜態(tài)聯(lián)編 C.不確定是哪種聯(lián)編 D.函數(shù)重載
52. 在公有繼承的情況下,基類成員在派生類中的訪問權(quán)限 ( )
A. 受限制 B. 保持不變 C. 受保護 D. 不受保護
53. 在C++中,當一個對象被創(chuàng)建后,它的每一個成員函數(shù)都含有一個系統(tǒng)自動生成的隱含的指針,稱之為( )指針。
A.對象 B.派生 C基類 D.this
54. 假定 AB 為一個類,則執(zhí)行 AB x ;語句時將自動調(diào)用該類的 ( )
A. 有參構(gòu)造函數(shù) B. 無參構(gòu)造函數(shù) 22、
C. 拷貝構(gòu)造函數(shù) D. 賦值構(gòu)造函數(shù)
55. C++ 語言建立類族是通過 ( )
A. 類的嵌套 B. 類的繼承 C. 虛函數(shù) D. 抽象類
二、判斷題
1、C++中,數(shù)組下標從1開始。( 錯 )
2、C++允許對字符串進行整體操作。( )
3、break語句也可以用于if體內(nèi),它可退出if語句。( ?。?
4、在說明語句 char a(‘A’),&b=a,*pa=&a;中,b的值與*pa的值相等。( )
5、對象數(shù)組的元素可以是不同類的對象。( )
6、私有繼承中,基類中所有成員對派生類的對象都是不可見的。( ?。?
7、類中所提 23、供的成員函數(shù)可以直接訪問私有成員。( )
8、按照標識符的要求,下劃線是不能組成正確標識符的。( )
9、函數(shù)的默認參數(shù)沒有順序要求,可以隨意定義。( )
10、在 C++ 語言中,”A”占兩個字節(jié),而 ’A’占一個字節(jié)。( )
11、C++語言支持封裝性和繼承性,不支持多態(tài)性。[ 錯 ]
12、關系運算符可以用來比較兩個字符的大小,也可用來比較兩個字符串的大小。)[ ]
13、字符串"sdfgh"的長度是5。[ ]
14、引用和指針都可作函數(shù)參數(shù)。[ ]
15、友元函數(shù)說明在類體內(nèi),它是一種成員函數(shù)。[ ]
16、友元類必須被說明為公有成員。 24、[ ]
17、純虛函數(shù)是在基類中說明的虛函數(shù),它在該基類中沒有定義具體的操作內(nèi)容。[ ]
18、析構(gòu)函數(shù)不能被繼承。[ ]
19、運算符重載以后,其優(yōu)先級和結(jié)合性都不能改變。[ ]
20、在C++中,函數(shù)名實際上是一個指針,它指向函數(shù)的入口。[ ]
21、構(gòu)造函數(shù)可以被繼承。( )
22、析構(gòu)函數(shù)不能被繼承。( )
23、多繼承情況下,派生類的構(gòu)造函數(shù)的執(zhí)行順序取決于定義派生時所指定的各基類的順序。( )
24、解決多繼承情況下出現(xiàn)的二義性的方法之一是使用成員名限定法。( )
25、函數(shù)的參數(shù)個 25、數(shù)和類型都相同,只是返回值不同,這不是重載函數(shù)。( )
26、多數(shù)運算符可以重載,個別運算符不能重載,運算符重載是通過函數(shù)定義實現(xiàn)的。( )
27、對每個可重載的運算符來講,它既可以重載為友元函數(shù),又可以重載為成員函數(shù),還可以重載為非成員函數(shù)。( )
28、對單目運算符重載為友元函數(shù)時,說明一個形參;重載為成員函數(shù)時,不能顯式說明形參。( )
29、重載運算符保持原運算符的優(yōu)先級和結(jié)合性不變。( )
30、構(gòu)造函數(shù)說明為純虛函數(shù)是沒有意義的。( )
三、簡答題
1. 簡述C++的 26、異常處理機制?
2.C++的預定義的流對象有哪些?
3. 試以客觀世界為例,說明抽象、封裝、繼承性和多態(tài)性等概念。
4. 多繼承的情況下為什么會產(chǎn)生二義性?如何消除二義性?
5. 試說明 void F(const T &t); 和 inf f() const; 中關鍵字 const 作用。
6.有如下程序
#include 27、 }
A(const A &a){
cout<<"in A(const A &a)< 28、 B &b){
cout<<"In ff(B &b)"< 29、();
};
template 30、 x3(4,5,3), x4(7,8,9),
x5(8,7,9);
cout< 31、ate:
char *string;
public:
sample(const char *s){
string = new char[strlen(s)+1];
strcpy(string s);
}
~sample(){
delete string;
};
};
sample f(char *arg){
sample tmp(arg);
return tmp;
}
int main()
{
sample local=f("abcd");
return 0;
}
9.有如下程序
#i 32、nclude 33、ublic P
{
char *major;
float s;
public:
T(){
cout<<"T";
}
~T(){
cout<<"!T";
}
};
int main()
{
S s;
T t;
system("pause");
return 0;
}
程序運行的結(jié)果是_________________________
10.有如下程序
#include 34、ut << "B::B( )" << endl; num++;
}
virtual void f( ) = 0;
virtual void g( ) = 0;
void k( ){
f( );
cout << "B::k( )" << endl; g( );
}
virtual ~B( ){
cout << "B::~B( )" << endl;
num--;
}
static int getNum( ){
return num;
}
private:
static int num;
};
class 35、D1: public B {
public:
D1( ) {
cout << "D1::D1( )" << endl;
}
void f( ) {
cout << "D1::f( )" << endl;
}
void g( ){
cout << "D1::g( )" << endl;
}
~D1( ) {
cout << "D1::~D1( )" << endl;
}
};
class D2: public B {
public:
D2( ) {
cout << "D2::D2( )" << endl;
36、
}
void f( ){
cout << "D2::f( )" << endl;
}
void g( ){
cout << "D2::g( )" << endl;
}
~D2( ){
cout << "D2::~D2( )" << endl;
}
};
int B::num = 0;
int main( )
{
B* buf[3];
buf[0] = new D1;
buf[1] = new D2;
buf[2] = new D1;
int i;
cout << B::getNum( ) 37、 << endl;
for ( i = 0; i<3; i++)
buf[i]->k( );
for (i = 0; i<3; i++)
delete buf[i];
cout << B::getNum( ) << endl;
system("pause");
return 0;
}
程序運行的結(jié)果是_________________________
11.有如下程序
#include 38、(r1), R2(r2){};
void print();
void print() const;
private:
int R1, R2;
};
void R::print(){
cout< 39、________________________
12.有如下程序
#include 40、tor++;
}
};
int demo::constructor=0;
int demo::copy_constructor=0;
demo usercode(demo b){
demo c(b);
return c;
}
int main()
{
demo a, d;
cout<<"calling usercode"< 41、;
}
程序運行的結(jié)果是_________________________
13.有如下程序
#include 42、w();
a2.Show();
}
程序運行的結(jié)果是_________________________
14.有如下程序
#include 43、(){
cout<<"S";
}
~S(){
cout<<"!S";
}
};
class T: public P
{
char *major;
float s;
public:
T(){
cout<<"T";
}
~T(){
cout<<"!T";
}
};
int main()
{
S s;
T t;
system("pause");
return 0;
}
程序運行的結(jié)果是:
15. 為什么要定義虛析構(gòu)函數(shù)?
16.有如下程序
#include 44、tream>
using namespace std;
class B {
public:
B( ) {
cout << "B::B( )" << endl; num++;
}
virtual void f( ) = 0;
virtual void g( ) = 0;
void k( ){
f( );
cout << "B::k( )" << endl; g( );
}
virtual ~B( ){
cout << "B::~B( )" << endl;
num--;
}
static int getNum 45、( ){
return num;
}
private:
static int num;
};
class D1: public B {
public:
D1( ) {
cout << "D1::D1( )" << endl;
}
void f( ) {
cout << "D1::f( )" << endl;
}
void g( ){
cout << "D1::g( )" << endl;
}
~D1( ) {
cout << "D1::~D1( )" << endl;
}
};
class D2: 46、 public B {
public:
D2( ) {
cout << "D2::D2( )" << endl;
}
void f( ){
cout << "D2::f( )" << endl;
}
void g( ){
cout << "D2::g( )" << endl;
}
~D2( ){
cout << "D2::~D2( )" << endl;
}
};
int B::num = 0;
int main( )
{
B* buf[3];
buf[0] = new D1;
buf 47、[1] = new D2;
buf[2] = new D1;
int i;
cout << B::getNum( ) << endl;
for ( i = 0; i<3; i++)
buf[i]->k( );
for (i = 0; i<3; i++)
delete buf[i];
cout << B::getNum( ) << endl;
system("pause");
return 0;
}
程序運行的結(jié)果是_________________________
17.有如下程序
#include 48、ing namespace std;
class R
{
public:
R(int r1, int r2): R1(r1), R2(r2){};
void print();
void print() const;
private:
int R1, R2;
};
void R::print(){
cout< 49、20,52);
b.print();
system("pause");
return 1;
}
程序運行的結(jié)果是:
18.有如下程序
#include 50、 }
};
class B: public A{
public:
B(){
cout<<"In B()"< 51、
19.有如下程序
#include 52、
int demo::constructor=0;
int demo::copy_constructor=0;
demo usercode(demo b){
demo c(b);
return c;
}
int main()
{
demo a, d;
cout<<"calling usercode"< 53、
20. 請分析下面的程序并給出該程序的執(zhí)行結(jié)果。
#include
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術比武題庫含解析
- 1 礦山應急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案