Examly題庫立即開始練習
國中教甄|資訊科技資訊科技107 年第 16 題單選題
📖 閱讀測驗 · 共用前文
依據下列 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 行

如果把上述程式第 13 行換成下列指令,完成編譯,並將所得可執行檔案仍然命名為 prob.exe。下列何者是正確的敘述? printf("%s %s\n", argv[1], argv[2]);

A執行 “prob.exe 1+3 3+1”,則會看到 “prob.exe 1+3”(實際所看的資料沒有引號)
B執行 “prob.exe 1+3 3+1”,則會看到 “1+3 3+1”(實際所看的資料沒有引號)正確答案
C執行 “prob.exe 1+3 3+1”,則會看到 “prob.exe 4”(實際所看的資料沒有引號)
D執行 “prob.exe 1+3 3+1”,則會看到 “4 4”(實際所看的資料沒有引號)
答案與詳解
B
正確答案
命令列參數都是字串,不會被計算。執行「prob.exe 1+3 3+1」時 argv[1] 是 "1+3"、argv[2] 是 "3+1",printf("%s %s\n", argv[1], argv[2]) 原樣印出「1+3 3+1」,選 B。

為什麼答案是 B

argv[1]="1+3"、argv[2]="3+1",以 "%s %s\n" 輸出,中間一個空白,螢幕顯示 1+3 3+1。

載入中…

資訊科技 相關題目

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

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

黑皮