平成19年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
W−1
次のC言語のプログラムをコンパイル・実行したときの結果として最も適切な
ものを@〜Dの中から選べ。

#include <stdio.h>

struct node {
 int data;
 struct node *refer;
};

main () {
 struct node a;
 a.data = 1;
 a.refer = &a;
 a.data = a.refer->data + 1;
 printf("%d\n", a.data);
}

 @ コンパイル時にエラーになる。
 A 実行時にエラーになる。
 B 無限に実行が続き、何も出力されない。
 C 正常に実行終了するが、結果は不定である。
 D 正常に実行終了し、2が出力される。



【正解】 D

a.data = 1; ・・・a.dataに1を格納
a.refer = &a;  ・・・ポインタreferに構造体 a のアドレスを格納。
a.data = a.refer->data + 1;  ・・・ポインタが指し示すdataの値に
 1を加えて、a.data に格納 (1+1を格納)
printf("%d\n", a.data); ・・・2を出力


EXCELのマクロのご相談なら ファーストマクロ 



目次 W−2
ファーストマクロ TOPページ