基本情報技術者試験「2次元配列」の問題
3 行 3 列の 2 次元配列 m に次の値が格納されている(添字は行・列とも 1 から)。
m[1][*]=4,7,2 m[2][*]=5,1,8 m[3][*]=3,6,9
次の手続 colSum は、指定した列 c の全行の和(列和)を返す。c = 2 を与えて実行したとき、戻り値はどれか。
○整数型: colSum(整数型の二次元配列: m, 整数型: c)
整数型: s ← 0
整数型: i
for (i を 1 から 3 まで 1 ずつ増やす)
s ← s + m[i][c]
endfor
return sア13
イ列名は2列
ウ19
エ14の和
正解
エ.14の和
列番号 c=2 を固定し行 i を 1〜3 で動かすと m[1][2]=7, m[2][2]=1, m[3][2]=6 を足し 14 となるため エが正しい。
?選択肢ごとの解説
ア ×1 列目 m[*][1]=4+5+3=12 や別の組合せと混同して 13 とした、対象列を取り違えた誤りである。
イ ×和ではなく対象列の名称(2 列目)を答えた、求める値の種類を取り違えた記述である。
ウ ×3 列目 m[*][3]=2+8+9=19 を合計した、列番号 c を 3 と取り違えた誤りである。
エ ○列番号 c=2 を固定し行 i を 1〜3 で動かすと m[1][2]=7, m[2][2]=1, m[3][2]=6 を足し 14 となるため エが正しい。
✎くわしく
列和は列番号を固定し行を走査する。行和(行番号固定で列走査)と添字の固定対象が逆である点を区別する必要がある。
✓本番での押さえどころ
試験のコツ
固定される添字(ここでは列 c)と動く添字(行 i)を明示し、縦 1 列だけを足す。
覚え方
『列和は列を固定して縦に足す』と動作で覚える。
よくある誤り
行と列を取り違えて行和を計算する、または別の列を足すミスが多い。
アルゴリズムとプログラミングの他の問題
次の擬似言語で表される手続 sumOdd を、引数として要素数 5 の整数型の配列 {12, 125, 1008,…次の擬似言語は、整数型の配列 arr に対して隣接交換を行う手続の一部であり、外側ループの 1 回目(1…次の擬似言語は昇順に整列された配列 arr に対する二分探索の手続である。arr = {2, 4, 6, 8, 10,…次の擬似言語で表される再帰手続 f を、引数 n = 20 で呼び出したとき、戻り値として返される値はどれか。
```…単方向連結リストの各ノードはメンバ val(整数)と next(次ノードへの参照。なければ NULL)をもつ。先頭ノード…スタックに対する push(積む)と…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-b-algo-0056