統測
113年
[電機與電子群資電類] 專業科目(2)
第 50 題
📖 題組:
閱讀下文,回答第 49-50 題 小明根據老師提供的流程圖(如圖十所示),利用 C++語言程式完成在 main 函式中的程式碼片段。 ```cpp 1 const int ArrayLength = 10; //陣列長度 2 char StringIn[ArrayLength] = { 0 }; 3 int StringLength = 10; 4 5 if(StringLength <= ArrayLength) 6 { 7 std::cout << "請輸入字數: "; 8 std::cin >> StringLength; 9 } 10 while (StringLength > 0) 11 { 12 std::cout << "請輸入英數文字: "; 13 std::cin >> StringIn[StringLength--]; 14 } 15 std::cout << StringIn; ```
閱讀下文,回答第 49-50 題 小明根據老師提供的流程圖(如圖十所示),利用 C++語言程式完成在 main 函式中的程式碼片段。 ```cpp 1 const int ArrayLength = 10; //陣列長度 2 char StringIn[ArrayLength] = { 0 }; 3 int StringLength = 10; 4 5 if(StringLength <= ArrayLength) 6 { 7 std::cout << "請輸入字數: "; 8 std::cin >> StringLength; 9 } 10 while (StringLength > 0) 11 { 12 std::cout << "請輸入英數文字: "; 13 std::cin >> StringIn[StringLength--]; 14 } 15 std::cout << StringIn; ```
小明輸入 6個英數文字,希望程式執行後可以印出倒序的字串,下列敘述何者正確?
- A 行號10改為while(StringLength != 0)
- B 行號10改為while(StringLength < 0)
- C 行號13改為std::cin >> StringIn[--StringLength];
- D 行號13改為std::cin >> StringIn[StringLength++];
思路引導 VIP
請思考在 C++ 中,當我們使用 $std::cout$ 輸出字元陣列時,系統預設是從哪一個索引 (Index) 開始讀取並顯示字元?若要達成倒序效果,最後一個輸入的字元必須被放置在輸出的起點;請探究第 13 行的索引運算,應如何在變數遞減與陣列存取的「先後順序」上做調整,才能保證迴圈在終止前,能準確地將最後一筆資料填入索引 $0$ 的位置?
🤖
AI 詳解
AI 專屬家教
🌟 太棒了!你的邏輯判斷非常精準
你能準確區分 前置遞減 (--i) 與 後置遞減 (i--) 的細微差別,這代表你對 C++ 的運算子優先順序與記憶體索引有著很紮實的理解!
💡 核心觀念驗證
▼ 還有更多解析內容