Examly題庫立即開始練習
國中教甄|資訊科技資訊科技107 年第 15 題單選題
📖 閱讀測驗 · 共用前文
依據下列 C 語言程式,回答第 14 到 16 題。 假設我們編譯這一程式,並將所得之可執行檔案命名為 prob.exe。 #include <stdio.h> // 這是第 1 行 #include <stdlib.h> // 這是第 2 行 typedef int (*funp)(int); // 這是第 3 行 int fun1(int a) {return a+1;}; // 這是第 4 行 int fun2(int a) {return a+2;}; // 這是第 5 行 funp funp2 (int s) { // 這是第 6 行 if(s%2==1) return &fun1; // 這是第 7 行 else return &fun2; // 這是第 8 行 }; // 這是第 9 行 void main(int argc, char **argv) { // 這是第 10 行 int (*prob) (int); // 這是第 11 行 prob = funp2(atoi(argv[1])); // 這是第 12 行 printf(“%d\n”,prob(2)); // 這是第 13 行 } // 這是第 14 行

關於上述程式,下列敘述何者不正確?

Afun1 實質上是一個指標 (pointer)
Bfunp 是一種自訂的型態
C呼叫 prob.exe 的時候,prob.exe 會處理參數列所給的每一個參數(arguments)正確答案
Dfunp2 是一個 function name,funp2 所回傳的資料其功效等同於 function name
答案與詳解
C
正確答案
main 只用了 argv[1](prob = funp2(atoi(argv[1]))),其餘參數完全沒處理;例如「prob.exe 1+3 3+2」中的 "3+2" 就被忽略。所以「會處理參數列所給的每一個參數」不正確,選 C。

為什麼答案是 C

敘述不正確,是本題答案。程式只在第12行讀取 argv[1],沒有用 argc 判斷參數個數,也沒有走訪其他 argv 元素;argv[2] 以後的參數都不會被處理。

載入中…

資訊科技 相關題目

想練更多資訊科技考古題?

Examly 收錄 38 萬+ 道歷屆題目,每題都有像這樣的精選詳解。免費下載,立即開練。

黑皮