要考APCS的同學們,要先利用歷屆試題來測驗一下自己程式語言的能力,下方也有請專業老師替同學們針對試題解析

學習歷程檔案APCS大學程式設計先修檢測歷屆試題與試題解析

105年、106年APCS大學程式先修檢測程式設計觀念題

程式設計觀念題-1     程式設計觀念題-2     程式設計觀念題-3

105年、106年APCS大學程式先修檢測程式設計實作題

程式設計實作題-1     程式設計實作題-2     程式設計實作題-3

 

APCS大學程式先修檢測105年程式設計觀念題試題解析

【試題解析】

Step1:看懂題目,了解程式碼背後涵義。

printf ("%d\n", val)就是顯示十進位整數val

step2:了解算數運算子。

"/"不是除號,而是運算元取商數

Step3:帶入題目公式,算出val。

val= b/a + c/b + d/b val= 3/2 + 4/3 + 5/3 Val= 1(商)+1(商)+1(商)=3

正確答案即為(A)3

 

【試題解析】

第一步:看懂題目

只要看到「輸出」相關的題目,就是找出程式碼片段中「printf() 輸出函式」,並將裡面的數值(參數)解出來

第二步:解讀程式碼

已知題目要求「printf('%d',i);」,也就是i這個變數數值的變化,那就先找出i在那邊會做了哪些變化? 由程式碼片段中看出 i變數出現在「for(int i=0;i<20;i=i+1){}」這段程式碼中, 「for( ){ }」敘述的意思是什麼呢? 在( )內的數值為初始化與設定要執行的次數, 那在{ }為我們每次要執行的程式碼敘述, 當執行到了「}」位置則程式碼會回到()內,用「i<20」去做判斷i是否小於20再去決定是否要繼續執行{ }裡的程式

第三步:求解

計算出i在這個「for( ){ }」敘述中每次的變化,直到終止的數值, ( )內的敘述的意思是「int i=0;」,也就是宣告了一個i的變數,他是個整數的型態(數值); 「i<20」的意思是:當i小於20的時候,我就做「i=i+1」 ※注意:這邊的「i=i+1」會在{ }敘述執行完後執行「i=i+1」

第四步:推算

第1次的 數值是 「i=0+5」; → i輸出為5 輸出完後+1 第2次的 數值是 「i=6+5」; → i輸出為11 輸出完後+1 第3次的 數值是 「i=12+5」; → i輸出為17 輸出完後+1 第4次的 數值是 「i=18+5」; → i輸出為 23 因為21>20 離開for(){}敘述

答案:(B) 5 11 17 23

 

【試題解析】如果遇到題目敘述非常長的怎麼辦?

第一步:看懂題目

找出題目要什麼樣的答案?題目要的是程式碼在0~100的數值,有幾個分數的等第是錯的,那右方程式碼中一定是有問題的 再看看題目的敘述,題目要的結果是「當分數s為下方的分數區斷要輸出相對的字串」 90~100 輸出為A 80~89輸出為B 70~79輸出為C 60~69輸出為D 0~59輸出為F

第二步:解讀程式碼

if(判斷式){ 敘述區; } else if(判斷式){ } else { } 右方的程式碼架構長這樣,這是什麼意思呢? If else if else 的敘述是: 當 if ()內的判斷式結果成真,就進入到if {}敘述裡面執行敘述區的程式碼,執行完後就離開判斷結構,不會再去做else if 與else的判斷式囉!

第三步:找出錯誤

從左邊給的題目敘述我們可以推斷出 1. 「if(s>=90)」的敘述是沒問題的! 2. 「else if(s>=80)」輸出B 也是沒問題!因為當s為90 會輸出A,輸出完A後並不會執行else if的敘述 3. 「else if(s>60){}」輸出D 則會發生判斷的錯誤,下方的「else if(s>70){}」永遠不會執行到!因為70~79永遠「>60」! 4. 把判斷錯誤的數值清點出來為 11個, 70~79 共10個,另外,當s=60的輸出應為D,但是「else if(s>60){}」敘述並不包含60 ,則會出現另1個錯誤,共11個錯誤 5. 下方的「else{}」敘述為當前方的「if (){} else if (){}」條件皆不成立時,則執行「else{}」敘述,而「else {}」區間為0~60 輸出F,正確!

答案:(B)11

 

 

【更多文章】

學習歷程檔案-107年22校系學測個人申請採計APCS大學程式設計先修檢測

學習歷程檔案-帶你快速了解APCS大學程式設計先修檢測

【APCS大學程式先修檢測】五大高分技巧,專家教你獲得亮眼成績!

【107/2018特殊選才】清大拾穗計畫,你的備審口試準備好了嗎?

arrow
arrow

    甄戰戰神 發表在 痞客邦 留言(0) 人氣()