地特三等申論題
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="<
📝 此題為申論題
思路引導 VIP
本題測驗「變數作用域與生命週期」以及「for迴圈與位元左移運算(<<)」。解題關鍵在於區分一般區域變數、靜態區域變數與靜態全域變數的記憶體保留特性,並準確追蹤迴圈迭代與結束後的變數 i 數值。
🤖
AI 詳解
AI 專屬家教
【解題思路】分析位元移位運算計算出迴圈結束後的 i 值,並透過區分不同變數儲存類別(static、區域、全域)的生命週期,逐步推算每次函式呼叫的結果。
【詳解】
已知:
▼ 還有更多解析內容