問題詳情

29. 若執行以下 C 語言撰寫之程式,下列敘述何者正確?#include <stdio.h>
#include <stdlib.h>
#include <iostream>
void funcA(void);
void funcB(void);
int a, b = 2;
int main(void) {
funcA();
printf('%d, %d ', a, b);
funcB();
printf('%d, %d ', a, b);
system('PAUSE');
return 0 ;
}
void funcA() {
int a;
a = 3;
}
void funcB() {
a = 3;
b = 4;
}

(A)呼叫 funcA()之後,輸出為 3,2 並跳行

(B)呼叫 funcB()之後,輸出為 0,2 並跳行

(C)呼叫 funcA()之後,輸出為 0,2 並跳行

(D)呼叫 funcB()之後,輸出為 3,2 並跳行

參考答案

答案:C
難度:困難0.25
統計:A(23),B(14),C(20),D(9),E(0)

用户評論

【用戶】VV

【年級】高一上

【評論內容】#include <stdio.h

【用戶】【站僕】摩檸Morning

【年級】小一下

【評論內容】原本題目:29. 若執行以下 C 語言撰寫之程式,下列敘述何者正確?(A)呼叫 funcA()之後,輸出為 3,2 並跳行(B)呼叫 funcB()之後,輸出為 0,2 並跳行(C)呼叫 funcA()之後,輸出為 0,2 並跳行(D)呼叫 funcB()之後,輸出為 3,2 並跳行修改成為29. 若執行以下 C 語言撰寫之程式,下列敘述何者正確?#include <stdio.h#include <stdlib.h#include <iostreamvoid funcA(void);void funcB(void);int a, b = 2;int main(void) { funcA(); printf('%d, %d ', a, b); funcB(); printf('%d, %d ', a, b); system('PAUSE'); return 0 ;}void funcA() { int a; a = 3;}void funcB() { a = 3; b = 4;}(A)呼叫 funcA()之後,...

【用戶】HowHow Chen

【年級】幼稚園下

【評論內容】因為在funcA 有定義int a ,所以 funcA的 a=3 實際上是改變命名空間 funcA的區域,等funcA結束後,記憶體空間又被殺掉於是等於全域變數的a並沒改變,比較令人疑惑的點是,全域變數的int a 並未清空,所以是不是0要看記憶體空間配置給a的預設值是不是0