C++進階程式能力檢定

C++進階程式能力檢定

  1. 能力說明:了解C++語言運作流程,基礎語法,能看懂C++基礎程式,並熟悉基礎運算、邏輯,理解流程控制、迴圈和陣列使用方法和情境。
    熟悉C++編譯環境,理解C++進階語法,並能使用程式解決較為複雜的問題。
  2. 分項能力:
觀念能看懂程式運作,並針對基礎、進階語法進行判讀
實作能撰寫並使用程式語法解決基礎和進階問題

測驗項目及試程

測驗項目觀念實作
測驗內容資料型態、條件判斷、運算式、迴圈、陣列、指標、參考、函式、字串處理、二維陣列、結構資料型態、條件判斷、運算式、迴圈、陣列、指標、參考、函式、字串處理、二維陣列、結構
題數254
作答時間40分鐘60分鐘
總測驗時間40分鐘60分鐘

閱卷/評分程序、通過標準

  1. 閱卷/評分程序:

採電腦系統平台閱卷

  1. 通過標準
測驗項目通過標準滿分
觀念70100
實作70100

註:觀念及實作均達70分以上方為通過,例:甲觀念分數為60,實作分數為100,即使總和達140但因觀念不足70,仍為不通過

參考例題

觀念題

1. 根據下列程式,條件判斷式的部分可以改為何者?

if (a>b)
;
else
if(b==1)
b += 1;

  1. if(a<b && b == 1) b += 1; 
  2. if(a>b && b == 1) b += 1;
  3. b += 1;
  4. if( !(a<b) && b == 1) b += 1;

2. 以下陣列的宣告方式,何者正確?

  1. char name[]{M, a, y};
  2. float num[5] = [1.0, 2, 3, 4, 5];
  3. int point[]{20, 99, 72};
  4. bool flag{};

3. 下列程式輸出結果為何?

    int num = 10;

    int * a = new int;

    int * b = & num;

    int * c = a;

    *b = 8;

    *c = 5;

    cout << * a;

  1. 10
  2. 8
  3. 5
  4. 0

實作題

例題1

問題描述

中位數,是指一組數字的中間數字;即是有一半數字的值大於中位數,而另一半數字的值小於中位數。 

例如,2、3、3、5、7 及 10 的中位數為 4。


計算有限個數的數據的中位數的方法是:把所有的同類數據按照大小的順序排列。如果數據的個數是奇數,則中間那個數據就是這群數據的中位數;如果數據的個數是偶數,則中間那2個數據的算術平均值就是這群數據的中位數。

輸入格式

共2列,

第一列為一整數n,代表數列的長度,

下一列,有n個隨機正整數。

輸出格式

共1列,代表中位數

範例一:輸入

5
1 5 7 8 9

範例一:正確輸出

7

範例二:輸入

6
3 9 5 2 2 2

範例二:正確輸出

2.5