民國113年 初等考試 統計 資料處理大意

第11題

下列C 語言敘述片段執行結果為何?struct iptr{int *p1;int *p2;};int main (int argc, char *argv[])…

題目

下列C 語言敘述片段執行結果為何?struct iptr{int *p1;int *p2;};int main (int argc, char *argv[]){struct iptr newptr;int a=1,b;newptr.p1=&a;newptr.p2=&b;*newptr.p2=2;printf("%d,%d,%d,%d",a,b,*newptr.p1,*newptr.p2);return 0; } A. 1,2,0,0 B. 1,0,0,2 C. 1,2,1,2 D. 語法錯誤

官方答案

  • 答案:C. 1,2,1,2

解析

newptr.p1 指向 a、newptr.p2 指向 b;*newptr.p2 = 2 表示透過指標把數值 2 寫入 b 這塊記憶體,所以 b 由未初始化的值變成 2,而 a 始終維持 1。printf 依序輸出 a、b、*newptr.p1(即 a)、*newptr.p2(即 b),四者為 1,2,1,2。A、B 誤以為透過指標賦值不會改變原變數,或誤把位址當成輸出值;本片段語法與型別皆正確,故非 D。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料

答案以考選部公告之測驗式試題標準答案 PDF 為準。