1. 程式人生 > >C++PTA判斷/選擇題總結

C++PTA判斷/選擇題總結

1-1 使用提取符(<<)可以輸出各種基本資料型別的變數的值,也可以輸出指標值。 (2分) T
1-2 預定義的插入符從鍵盤上接收資料是不帶緩衝區的。 (2分) F
1-3 The cin stream normally is connected to the display screen. (2分) F
【cout 物件通常連線到標準輸出裝置,一般是顯示屏】

2-1名稱空間應用於: (2分)

在類外定義類的成員函式
√避免各個不同函式、變數等的名稱衝突
提高程式碼的執行速度
以上答案都正確

2-2cout 是由I/O 流庫預定義的( )。 (2分)

類
√物件
包含檔案
常量

2-1 過載函式在呼叫時選擇的依據中,錯誤的是()。 (2分)

函式的引數
引數的型別
函式的名字
√函式的型別

2-2 對定義過載函式的下列要求中,( )是錯誤的。 (2分)

要求引數的個數不同
要求引數中至少有一個型別不同
√要求函式的返回值不同
要求引數個數相同時,引數型別不同

1-1 函式的引數個數和型別都相同,只是返回值不同,這不是過載函式。 (1分) T
1-3The types of arguments in a function call must match the types of the corresponding parameters in the function prototype’s parameter list.。 (2分) T
1-4 在C++語言中引入行內函數(inline function)的主要目的是降低空間複雜度,即縮短目的碼長度。 (2分) F

2-1

關於new運算子的下列描述中,()是錯誤的。 (2分)

它可以用來動態建立物件和物件陣列;
使用它建立的物件或物件陣列可以使用運算子delete刪除;
使用它建立物件時要呼叫建構函式;
√使用它建立物件陣列時必須指定初始值;

2-2關於delete運算子的下列描述中,()是錯誤的。 (2分)

它必須用於new返回的指標;
使用它刪除物件時要呼叫解構函式;
√對一個指標可以使用多次該運算子;
指標名前只有一對方括號符號,不管所刪除陣列的維數。

2-3 以下程式中,new語句幹了什麼。 (2分)
int** num;
num = new int* [20];

分配了長度為20的整數陣列空間,並將首元素的指標返回。
分配了一個整數變數的空間,並將其初始化為20。
√分配了長度為20的整數指標陣列空間,並將num[0]的指標返回。
存在錯誤,編譯不能通過。

2-4 以下程式存在的問題是: (2分)

void fun()
{
int *num1, *num2;
num1 = new int[10];
num2 = new int[20];
num1[0] = 100;
num2[0] = 300;
num1 = num2;
delete [] num1;
}

num2不能給num1賦值
num2最初指向的空間沒有釋放
√num1最初指向的空間沒有釋放
程式沒有問題

2-5 設void f1(int * m,long & n);int a;long b;則以下呼叫合法的是()。 (2分)

f1(a,b);
√f1(&a,b);
f1(a,&b);
f1(&a,&b);

2-7 一個函式功能不太複雜,但要求被頻繁呼叫,選用( )。 (2分)

√行內函數
過載函式
遞迴函式
巢狀函式

2-8 過載函式在呼叫時選擇的依據中,錯誤的是()。 (2分)

函式的引數
引數的型別
函式的名字
√函式的型別

2-9 在( )情況下適宜採用inline定義行內函數。 (2分)

函式體含有迴圈語句
函式體含有遞迴語句
√函式程式碼少、頻繁呼叫
函式程式碼多、不常呼叫

2-11 下面說法正確的是()。 (2分)

行內函數在執行時是將該函式的目的碼插入每個呼叫該函式的地方
√行內函數在編譯時是將該函式的目的碼插入每個呼叫該函式的地方
類的行內函數必須在類體內定義
類的行內函數必須在類體外通過加關鍵字inline定義

2-12 對定義過載函式的下列要求中,( )是錯誤的。 (2分)

要求引數的個數不同
要求引數中至少有一個型別不同
√要求函式的返回值不同
要求引數個數相同時,引數型別不同

1-1過載函式可以帶有預設值引數,但是要注意二義性。 (1分) T
2-1 名稱空間應用於: (2分)

在類外定義類的成員函式
√避免各個不同函式、變數等的名稱衝突
提高程式碼的執行速度
以上答案都正確

2-2如果在函式中定義的區域性變數與名稱空間中的變數同名時,()被隱藏。 (2分)

函式中的變數
√名稱空間中的變數
兩個變數都
兩個變數都不

2-3如果程式中使用了using命令同時引用了多個名稱空間,並且名稱空間中存在相同的函式,將出現: (2分)

√編譯錯誤
語法錯誤
邏輯錯誤
無法判定錯誤型別

2-4要說明識別符號是屬於哪個名稱空間時,需要在識別符號和名稱空間名字之間加上: (2分)

√::
->
.
( )

2-5如果預設引數的函式宣告為“ void fun(int a,int b=1,char c=’a’,float d=3.2);”, 則下面呼叫寫法正確的是( )。 (2分)

fun();
√fun(2,3);
fun(2, ,'c',3.14)
fun(int a=1);

2-1 給定以下類宣告,哪個成員函式可能改變成員變數data? (2分)

class A {

public:

void f1 (int d);
void f2 (const int &d);
void f3 (int d) const;

private:

int data;

};

f1
f2
f3
√f1和f2

對於常成員函式,無論是宣告還是定義,都需要加const限定,常成員函式可以訪問const資料成員,也可以訪問非const資料成員,注意是隻是訪問,但不可以修改。反過來,const資料成員可以被const成員函式訪問,也可以被非const的成員函式訪問。
參考const詳細解釋

2-5

在面向物件的軟體系統中,不同類物件之間的通訊的一種構造稱為_。 (2分)

屬性
封裝
類
√訊息

2-3 設A為自定義類,現有普通函式int fun(A& x)。則在該函式被呼叫]時: (2分)

將執行復制建構函式來初始化形參x
僅在實參為常量時,才會執行復制建構函式以初始化形參x
√無需初始化形參x
僅在該函式為A類的友元函式時,無需初始化形參x

2-4 所有類都應該有: (2分)

建構函式
解構函式
√建構函式和解構函式
以上答案都不對

1-1 在protected保護繼承中,對於垂直訪問等同於公有繼承,對於水平訪問等同於私有繼承。 (1分)T
【protected除了自己可以訪問,允許派生類的訪問】

2-4 建立派生類物件時, 3種建構函式分別是a(基類的建構函式)、b(成員物件的建構函式)、c(派生類的建構函式),這3種建構函式的呼叫順序為 (2分)

√abc
acb
cab
cba

2-1 下列有關繼承和派生的敘述中,正確的是: (2分)

派生類不能訪問通過私有繼承的基類的保護成員
多繼承的虛基類不能夠例項化
√如果基類沒有預設建構函式,派生類就應當定義帶形參的建構函式
類的的解構函式和虛擬函式都不能夠被繼承,需要在派生類中重新實現

關於函式模板,描述錯誤的是。 (2分)

√函式模板必須由程式設計師例項化為可執行的函式模板
函式模板的例項化由編譯器實現
一個類定義中,只要有一個函式模板,則這個類是類模板
類模板的成員函式都是函式模板,類模板例項化後,成員函式也隨之例項化

1-1 可以通過下標隨機訪問向量vector中的元素。 (1分) T
1-2 當向量物件的記憶體用完之後,就會產生越界錯誤。 (1分) F
1-4 In C++, only existing operators can be overloaded. (1分) T
1-1 虛擬函式是用virtual 關鍵字說明的成員函式。 (1分) T
1-2 動態繫結是在執行時選定呼叫的成員函式的。 (1分)T
1-3 建構函式可以宣告為虛擬函式。 (1分) F
1-4 建構函式可以宣告為純虛擬函式。 (1分) F
1-5 虛擬函式不能是類的靜態成員。 (1分)T
1-6 重定義虛擬函式的派生類必須是公有繼承的。 (1分)T
1-7作為虛擬函式隱含引數的this指標,決定了虛擬函式呼叫時執行的程式碼。 (1分)T
2-4 虛解構函式的作用是。 (2分)

虛基類必須定義虛解構函式
類物件作用域結束時釋放資源
√delete動態物件時釋放資源
無意義

1-1 記錄流的當前格式化狀態標誌字中的每一位用於記錄一種格式,這種格式是不能被設定或清除的。 (5分)F
1-2設定和清除格式標誌字的成員函式需要通過物件來引用它們,輸出顯示格式的物件通常是cout。 (5分)T
1-3 操縱符本身是一個物件,它可以直接被提取符或插入符操作。 (5分)T
1-4get()函式不能從流中提取終止字元,終止字元仍留在流中。getline()函式可以從流中提取終止字元,但終止字元被丟棄。(5分)T
1-5使用開啟檔案函式open()之前,需要定義一個流類物件,使用open()函式來操作該物件. (5分)T
1-6 開啟ASCⅡ碼流檔案和二進位制流檔案時,開啟方式是相同的。 (5分)F
1-7 read()和write()函式可以讀寫文字檔案,也可以讀寫二進位制檔案。 (5分)T
1-8 seekg()函式和seekp()函式分別用來定位讀指標和寫指標的。如果使用seek()函式可以同時定義讀寫指標。 (5分) F
2-1

下面是關於ios 類的敘述,正確的是( )。 (2分)

√它是istream 類和ostream 類的虛基類
它只是istream 類的虛基類
它只是ostream 類的虛基類
它是iostrearm 類的虛基類

2-2

關於read()函式的下列描述中,正確的是( )。 (2分)

該函式只能用來從鍵盤輸入中獲取字串
該函式所獲取的字元多少是不受限制的
該函式只能用於文字檔案的操作中
√該函式只能按規定讀取所指定的字元數

2-3

當使用ifstream 流類定義一個流物件並開啟一個磁碟檔案時,檔案的隱含開啟方式為( )。 (2分)

√ios::in
ios::out
ios::in|ios::out
ios::binary

2-4

下列函式中,( )是對檔案進行寫操作的。 (2分)

get
read
seekg
√put

2-5 在C++中,開啟一個檔案,就是將整個檔案與一個( )建立關聯,關閉一個檔案,就是取消這種關聯。 (2分)

類
√流
物件
結構

2-6 下列開啟檔案的表示式中,錯誤的是: (2分)

ofstream ofile; ofile.open(“C:\vc\abc.txt”,ios::binary);
fstream iofile;iofile.open(“abc.txt”,ios::ate);
ifstream ifile (“C:\vc\abc.txt”);
√cout.open(“C:\vc\abc.txt”,ios::binary);

2-7 以下關於檔案操作的敘述中,不正確的是: (2分)

開啟檔案的目的是使檔案物件與磁碟檔案建立聯絡
√檔案讀寫過程中,程式將直接與磁碟檔案進行資料交換
關閉檔案的目的之一是保證將輸出的資料寫入硬碟檔案
關閉檔案的目的之一是釋放記憶體中的檔案物件

2-2 What is wrong in the following code?

vector v; v[0] = 2.5; (2分)

The program has a compile error because there are no elements in the vector.
The program has a compile error because you cannot assign a double value to v[0].
√The program has a runtime error because there are no elements in the vector.
The program has a runtime error because you cannot assign a double value to v[0].

1-1 將建構函式說明為純虛擬函式是沒有意義的。 T

1-1 抽象類是指一些沒有說明物件的類。 (1分)F
1-2 在C++語言中引入行內函數(inline function)的主要目的是降低空間複雜度,即縮短目的碼長度。 (1分) F
1-3 過載函式可以帶有預設值引數,但是要注意二義性。 (1分) T
1-4 使用開啟檔案函式open()之前,需要定義一個流類物件,使用open()函式來操作該物件 (1分)T
1-5 因為靜態成員函式不能是虛擬函式,所以它們不能實現多型。 (1分)T
1-6 對單目運算子過載為友元函式時,可以說明一個形參。而過載為成員函式時,不能顯式說明形參。 (1分)T
1-7 以app 方式開啟檔案時,當前的讀指標和寫指標都定位於檔案尾。 (1分)T
1-8 過載operator+時,返回值的型別應當與形參型別一致。 比如以下程式中,operator+的返回值型別有錯:

class A {

int x;

public:

A(int t=0):x(t){ }

int operator+(const A& a1){ return x+a1.x;  }

}; (1分) F
1-9 流的狀態包含流的內容、長度和下一次提取或插入操作的當前位置。 (1分)T
1-10 使用提取符(<<)可以輸出各種基本資料型別的變數的值,也可以輸出指標值。 (1分)T
2-7 對於常資料成員,下面描述正確的是: (2分)

常資料成員可以不初始化,並且不能更新
√常資料成員必須被初始化,並且不能更新
常資料成員可以不初始化,並且可以被更新
常資料成員必須被初始化,並且可以更新

2-9 A function that is associated with an individual object is called __. (2分)

a static function
a class function
√an instance function
an object function