FE SUBJECT B
基本情報技術者 科目Bの問題解説
問題
次の無向グラフを隣接行列に入れるプログラムを実行したとき,戻り値はどれか。
整数型の二次元配列: m[1..5, 1..5] ← すべて0
辺の配列: e ← {{1,2}, {1,4}, {2,3}, {4,5}}
整数型: i, u, v
for (i を 1 から eの要素数 まで 1ずつ増やす)
u ← e[i][1]
v ← e[i][2]
m[u][v] ← 1
m[v][u] ← 1
endfor
return m[1][1] + m[1][2] + m[1][3] + m[1][4] + m[1][5]- ア 1
- イ 2
- ウ 4
- エ 5
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:2
正解:2
見る場所:return式は頂点1の行を合計している。つまり頂点1に隣接する頂点数を数える。
| 辺 | 行列更新 | 頂点1への影響 |
|---|---|---|
| {1,2} | m[1][2]=1, m[2][1]=1 | 頂点1に隣接 |
| {1,4} | m[1][4]=1, m[4][1]=1 | 頂点1に隣接 |
| {2,3} | m[1]は変化なし | 対象外 |
| {4,5} | m[1]は変化なし | 対象外 |
処理の追い方:頂点1に接続する辺は{1,2}と{1,4}の2本である。m[1][2]とm[1][4]だけが1なので合計は2。
間違えやすい点:無向グラフなのでm[u][v]とm[v][u]の両方に1を入れるが,returnでは頂点1の行だけを見る。全辺数4を答えない。
選択肢の見分け方:4は辺の総数,1は片方の辺だけを数えた誤り。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。