c++第一周測驗


本次得分為:14.00/14.00, 本次測試的提交時間為:2020-03-08, 如果你認為本次測試成績不理想,你可以選擇再做一次。

1
單選(1分)

下面程序片段哪個沒錯?

 

  • A.

    int n = 4;

    int & r = n * 5;

     

  • B.

    int n = 6;

    const int & r = n;

    r = 7;

     

  • C.

     

    int n = 8;

    const int & r1 = n;

    int & r2 = r1;

     

  • D.

    int n = 8;

    int & r1 = n;

    const int r2 = r1;

     

    1.00/1.00
2
單選(1分)

下面程序片段輸出結果是什么?

 

int a = 1,b = 2;

int & r = a;

r = b;

r = 7;

cout << a << endl;

 

  • A.

    1

  • B.

    2

  • C.

    7

    1.00/1.00
  • D.

    8

3
單選(1分)

下面說法哪種是對的?

  • A.

    常引用所引用的變量,其值不能被修改

  • B.

    不能通過常量指針,去修改其指向的變量

    1.00/1.00
  • C.

    常量指針一旦指向某個變量,就不能再指向其他變量

  • D.

    1+1 = 3

4
單選(1分)

表達式 “new int”的返回值類型是:

  • A.

    int

  • B.

    int *

    1.00/1.00
  • C.

    int &

  • D.

    void

5
單選(1分)

下面小段程序,哪個是正確的:

  • A.

       char * p = new char[10];       

       p[0] = 'K'; 

       delete [] p;

     

    1.00/1.00
  • B.

       int *p = new int[25]; 

       p[10] = 100; 

       delete p

     

  • C.

       char * p = new int; 

       p = 'a';  

       delete p;

     

  • D.

    int * p = new char[20]; 

6
單選(1分)

下面說法正確的是:

  • A.

    多個重載函數的參數個數必須不同。

  • B.

    兩個函數,參數表相同,返回值類型不同,它們是重載關系。

  • C.

    調用一個第二個和第三個參數都有有缺省值的函數時,可以不寫第二個實參而寫第三個實參。

  • D.

    使用內聯函數的目的是提高程序的運行速度。

    1.00/1.00
  • 填空(2分)簡單的swap 通過碼是 ( 請參考公告中的“關於編程作業的說明”完成編程作業(請注意,編程題都要求提交通過碼,在openjudge上提交了程序並且通過以后,就可以下載到通過碼。)

      總時間限制: 1000ms     內存限制: 65536kB    

           描述 :填空,使得程序    輸出結果是:5,3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <iostream>
    using  namespace  std;
    class  A
    {
         public :
         int  x;
         int  getX() {  return  x; }   
    };
    void  swap(
    // 在此處補充你的代碼
    )
    {
         int   tmp = a.x;
         a.x = b.x;
         b.x = tmp;
    }
    int  main()
    {
         A a,b;
         a.x = 3;
         b.x = 5;
         swap(a,b);
         cout << a.getX() <<  ","  << b.getX();
         return  0;
    }

      輸入無    輸出5,3

      答案:

    填空(2分) 難一點的swap

      填空,使得程序輸出結果是:5,3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <iostream>
    using  namespace  std;
     
    void  swap(
    // 在此處補充你的代碼
    )
    {
         int  * tmp = a;
         a = b;
         b = tmp;
    }
    int  main()
    {
         int  a = 3,b = 5;
         int  * pa = & a;
         int  * pb = & b;
         swap(pa,pb);
         cout << *pa <<  ","  << * pb;
         return  0;
    }

     答案:

    填空(2分) 好怪異的返回值
     填空,使得程序輸出指定結果
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <iostream>
    using  namespace  std;
    // 在此處補充你的代碼
    getElement( int  * a,  int  i)
    {
         return  a[i];
    }
    int  main()
    {
         int  a[] = {1,2,3};
         getElement(a,1) = 10;
         cout << a[1] ;
         return  0;
    }

      輸入 無  輸出  10

    答案:

    10  填空(2分) 神秘的數組初始化
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #include <iostream>
    using  namespace  std;
     
    int  main()
    {
         int  * a[] = {
    // 在此處補充你的代碼
    };
         
         *a[2] = 123;
         a[3][5] = 456;
         if (! a[0] ) {
             cout << * a[2] <<  ","  << a[3][5];
         }
         return  0;
    }

      輸入 無  輸出  123,456

    答案:

      

      


      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM