博客 / 詳情

返回

C++測試

1.如果在一個函數中的複合語句中定義了一個變量,則該變量( )。

A 只在該複合語句中有效

B 在本程序範圍內有效

C 在該函數中有效

D 為非法變量


2.當函數的參數是普通變量時,關於函數的形參和形參,以下説法正確的是( )。\

A 實參和與其對應的形參共佔用一個存儲單元

B 只有當實參和與其對應的形參同名時才共佔用相同的存儲單元

C 實參和與其對應的形參各佔用獨立的存儲單元

D 形參是虛擬的,不佔用存儲單元


3.在以下各組標識符中,合法的標識符是( )。

A B01 table_1 0_t k%

B sj snt _xy w_y23

C xy_ longdouble *p CHAR

DFast void pbl <book>


4.觀察以下代碼,關於對象成員訪問的描述正確的是( )。


class Point {

public:

    int x, y;

    void print() { cout << x << "," << y; }

};

int main() {

    Point p1;

    Point p2;

    p1.x = 10;

    p1.y = 20;

    p2 = p1;

    p2.x = 30;

    p1.print();

   p2.print();

}

A p1.print()和p2.print()調用的是同一個函數代碼

B p1.x的值現在為30

C p2 = p1調用了複製構造函數

D p1和p2指向同一個內存地址


5.以下數組聲明中正確的是( )。

A int y[5]={0,1,3,5,7,9} ;

B double x[5]={2.0,4.0,6.0,8.0,10.0};

C double [3] []={1,2,3,4,5,6};

D char s[5]=”abcde”;


6.已有定義int k=2,ptr1,ptr2;且ptr1和ptr2均已指向變量k,下面不能正確執行的賦值語句是( )。

A k=*ptr1*(*ptr2)

B ptr1=ptr2

C ptr2=k

D k=*ptr1+*ptr2


7.能正確表示“當x的取值在[1,10][200,210]範圍內為真,否則為假”的表達式是( ) 。

A (x>=1) && (x<=10) | | (x>=200) && (x<=210)

B (x>=1) && (x<=10) && (x>=200) && (x<=210)

C (x>=1) | | (x<=10) && (x>=200) | | (x<=210)

D (x>=1) | | (x<=10) | | (x>=200) | | (x<=210)


8.若有定義:`int a[10],則對數組a元素的正確引用是( )。

A a(5)

B a[10]

C a{3}

D a[10-10]


9.下列關於類和對象的描述中,正確的是( )。

A 類的私有數據成員只能被類的成員函數訪問

B 類是對一組具有相同屬性和行為的對象的抽象

C 對象是類的模板,類通過對象來創建

D 一個類的不同對象擁有不同的成員函數實現


10.關於構造函數,以下説法錯誤的是( )。

A 構造函數名與類名相同

B 構造函數在創建對象時自動調用

C 構造函數可以重載

D 構造函數可以有返回值


11.該程序的功能是輸出100-1000之間的所有素數以及素數的個數,請補全程序。


 #include<iostream>

using namespace std;

int main()

{int i,s=0,j;

for(i=100;i<=1000;i++)

{ for(j=2;__4__;j++)

if(i%j==0)

___5____

if(__6____)

{cout<<i<<" ";

s++;}

}

cout<<endl;

cout<<s;

return 0;

}

12.子函數factors(int x,int k)的功能是返回整數x中包含因子k的個數,如果沒有該因子,則返回0,請補全程序。


#include<iostream>

using namespace std;

int factors(int x,int k)

{  int i=0;

if(_1_) return 0;

while(_2__)

{

i++;

___3____ }

return i;

}

int main()

{

int x,k;

cin>>x>>k;

cout <<factors(x,k);

return 0;

}

13.聲明一個時間類(Time),用於記錄警務活動的時間,包含私有數據成員:小時(hour)、分鐘(minute)。設計以下函數:

(1)用於將數據成員初始化的成員函數;

(2)用於輸出時間的成員函數;

(3)重載加法運算符“+”,實現兩個時間對象的相加(例如,1小時20分鐘+2小時30分鐘=3小時50分鐘)。注意分鐘超過60要進位。

編寫主函數測試以上函數。


14.已知分數序列:1/2,2/3,3/5,5/8,8/13,…,編寫程序完成:
(1)該序列的累加和首次大於7.0時停止計算;
(2)以逗號分隔輸出從首項到該滿足條件項的所有項;
(3)輸出該滿足條件項的位置序號和該項的數值;
(4)輸出上述所有項的累加和


15.某市某區公安分局下轄6個派出所,每個派出所每季度處理治安案件數量不同,編寫程序輸入該分局每個派出所各季度的案件數量(4個季度),並計算每個派出所全年案件總量,將案件總量添加到二維數組的最後一列,輸出完整的二維數組。


16.在一次警務技能比武中,有12名選手參加了射擊比賽,成績即射擊環數(比如10.2環,9.8環),編寫函數將成績按降序排序,主函數用户輸入環數,調用函數,輸出排序後的成績。要求自己實現排序算法,不能直接調用系統函數。


17.某市公安局為表彰先進,需要從各警種中找出累計立功次數最多的警員。每個警員有姓名、警號、年齡、從警年限、所屬警種(刑偵、治安、交警等)和立功次數等信息。

要求:

(1)設計PoliceOfficer類,包含上述私有數據成員;

(2)實現帶參數構造函數、複製構造函數、析構函數(輸出“信息已銷燬”);

(3)實現顯示警員完整信息的成員函數;

(4)編寫普通函數:int findMostMeritorious(PoliceOfficer arr[],int n),參數n為數組元素個數,查找立功次數最多的警員並返回該對象的序號(需要訪問對象的私有成員,可使用友元函數);

(5)主函數中創建5個警員對象數組,調用函數找出立功最多者並輸出其信息,並測試以上所有函數。

輸入示例:

張偉,1001,35,10,刑偵,5

李娜,1002,28,5,治安,3

王剛,1003,42,18,交警,7

劉靜,1004,38,12,經偵,7

陳明,1005,45,20,刑偵,9


18.編寫程序對字符串完成以下操作:

(1)編寫子函數,統計a字符串中字母字符的個數。

函數原型:int mystrlen(const char a[]);

如a字符串"aB56cd8_7",則函數返回值為4。

(2)編寫子函數,將a字符串中的數字字符拷貝到字符串b中。

函數原型:void extract_digits(const char a[], char b)

如a字符串"aB56cd8_7",則b串為:“5687”。

(3)編寫子函數,將a字符串加密,存到字符串c中,加密規則為:如果是字母字符,則大小寫轉換,如果是數字字符,將數字乘以2,超出9則只保留個位,其他字符不變。

函數原型: void myEncipher(const char a[], char c[]);

如a字符串為: "aB56cd8_7",加密後的結果為:"Ab02CD6_4"。

編寫主函數測試以上函數。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.