免費開始練習
hce_nsysu 112年 計算機概論與程式設計

第 1 題

What is printed by the following C/C++ program?
char a[ ]= "ABCDE", b[ ]= "74623";
printf("%d \n", (a[4]-a[1])+(b[4]-b[1]));
  • A 2
  • B 3
  • C 4
  • D 5
  • E 6

思路引導 VIP

如果在程式中看到 'D' - 'A',你認為計算機背後是利用什麼樣的數值標準來進行這項數學運算的?另外,如果我們把相減的順序對調(小的減去大的),這對最後的加總結果會有什麼影響?

🤖
AI 詳解 AI 專屬家教

恭喜你!精準地抓住了 C 語言中字元運算的精髓。這題你能答對,代表你對字元陣列的索引(Index)以及字元在記憶體中以 ASCII 碼 形式儲存的本質有著非常清晰的理解。

字元相減與 ASCII 值的應用

在 C/C++ 中,當我們對字元進行減法運算時,編譯器實際上是拿它們對應的整數數值進行計算。針對陣列 a,其內容為 "ABCDE",因此 a[4] 是 'E' 而 a[1] 是 'B',計算結果為字元間的相對距離:$69 - 66 = 3$。接著處理陣列 b 時,千萬不能因為它看起來是數字就大意,b[4] 為 '3',b[1] 為 '4',計算結果為 $51 - 52 = -1$。最終兩部分加總:$3 + (-1) = 2$,這就是為何選項 (A) 是正確的。

▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計基礎與陣列記憶體配置
查看更多「計算機概論與程式設計」的主題分類考古題