修了試験 2013-01-27実施分 基本情報技術者試験 問2
関数eq(X,Y)は,引数XとYの値が等しければ1を返し,異なれば0を返す。 整数A,B,Cについて,eq(eq(A,B),eq(B,C))を呼び出したとき,1が返ってくるための必要十分条件はどれか。
正答1
解説
正解は1です。 外側のeqは、内側の2つの結果eq(A,B)とeq(B,C)が等しいときに1を返します。 内側の結果はそれぞれ0か1なので、「両方とも1」か「両方とも0」のときに1が返ります。 両方1はA=BかつB=C、両方0はA≠BかつB≠Cです。 【選択肢別解説】 1:○ 「両方1」と「両方0」の2つの場合をそのまま又はで結んだ条件です。 この条件が成り立つときに限って1が返るので、必要十分条件になっています。 2:× 後半の(A≠B又はB≠C)は、前半が成り立たないときには必ず成り立ちます。 つまり常に真となり、A=BでB≠Cのように0が返る場合まで含んでしまいます。 3:× A=1,B=2,C=3のときは両方0なので1が返ります。 しかしこの例ではA=Cでもないので条件を満たさず、必要条件になっていません。 4:× A=B=1,C=2のときは、eq(A,B)が1、eq(B,C)が0で、結果は0です。 しかしこの例はA=Bを満たすので、十分条件になっていません。 【ポイント】 eq(eq(A,B),eq(B,C))は、2つの比較結果が一致するかどうかを調べる式です。 論理式の問題は、具体的な数値を当てはめて反例を探すと、誤りの肢を素早く消せます。まとめて解く
修了試験 2013-01-27実施分を通しで解く(80問)→