民國111年 普通考試 電子工程 計算機概要
第27題
考慮以下的資料結構定義及變數宣告:typedef struct Node {char pile[6];struct Node* left;struct Node…
題目
考慮以下的資料結構定義及變數宣告:typedef struct Node {char pile[6];struct Node* left;struct Node* right;} node;node n1, n2, *n3, *n4;下列何者設定句會造成編輯錯誤? A. strcpy(n1.pile, n2.pile); B. n1.left = (*n3).right; n1.right = n4; C. n4 = (node *)malloc(sizeof(node)); D. n2.left =&n1; n2.right = n4.left;
官方答案
- 答案:D. n2.left =&n1; n2.right = n4.left;
解析
n4 的型別是 node*,也就是指標。C 語言中「.」運算子只能用於結構或聯合型別的物件,對指標使用會出現編譯錯誤,n4.left 必須改寫成 n4->left 或 (*n4).left 才合法。其餘皆可編譯:A 以 strcpy 複製字元陣列;B 中 (*n3).right 與 n4 的型別都是 node*,指派給 left、right 沒有問題;C 把 malloc 的回傳值轉型為 node* 後指派給 n4 也正確。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。