免費開始練習
地特三等申論題 106年 [資訊處理] 程式語言

第 一 題

一、試問下列 C++程式碼執行後,其值為多少?(25 分)
#include
using std::cout;
using std::endl;
int a(int i)
{
static int v=1;
int t=v;
v+=i;
return t;
}
int b(int i)
{
int v=1;
int t=v;
v+=i;
return t;
}
static int v;
int c(int i) {
int t=v;
v+=i;
return t;
}
int main()
{
int i;
for (i=1; i<=10; i<<=1)
{
a(i); b(i); c(i);
}
cout<<"a="< cout<<"b="< cout<<"c="< return 0;
}
📝 此題為申論題

思路引導 VIP

本題測驗「變數作用域與生命週期」以及「for迴圈與位元左移運算(<<)」。解題關鍵在於區分一般區域變數、靜態區域變數與靜態全域變數的記憶體保留特性,並準確追蹤迴圈迭代與結束後的變數 i 數值。

🤖
AI 詳解 AI 專屬家教

【解題思路】分析位元移位運算計算出迴圈結束後的 i 值,並透過區分不同變數儲存類別(static、區域、全域)的生命週期,逐步推算每次函式呼叫的結果。 【詳解】 已知:

▼ 還有更多解析內容

🏷️ 相關主題

程式設計概念、語法與演算法分析
查看更多「[資訊處理] 程式語言」的主題分類考古題

📝 同份考卷的其他題目

查看 106年[資訊處理] 程式語言 全題