旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。
2026年度 科目B 公開問題の概要
配列要素の巡回シフト処理
データ構造とアルゴリズム · 配列操作 / 要素のシフト / ループ制御
要素番号が 1 から始まる要素数 9 の整数型配列 data に対し、末尾の要素の値を先頭に移動し、それ以外の各要素の値を一つずつ後ろへずらすプログラムがある。末尾の値をあらかじめ変数 top に退避した後、各要素を後方にシフトするための繰返し処理の制御記述として、空欄に入る正しいものを選べ。 〔プログラム〕 整数型の配列: data ← {1, 2, 3, 4, 5, 6, 7, 8, 9} 整数型: top, i 整数型: len ← dataの要素数 top ← data[len] for (i を [ ] ) data[i] ← data[i - 1] endfor data[1] ← top
解答・解説を表示
解答
エ
解説
まず要点:配列の中身を後ろに1つずつずらすときは、後ろの要素から順に書き換える。前から書き換えると、まだ移動していない後ろの値を上書きして消してしまう。だから、書き込み先があいている末尾側から処理するのがコツだ。
解き方
- 末尾のdata[len]は変数topに退避(いったん別の場所に保存)してあるので、上書きしても平気。
- data[len]にdata[len-1]を、次にdata[len-1]にdata[len-2]を入れるので、iはlenから2へ1つずつ減らす。
- 選択肢 ア不正解
- 番号を増やしながら進むと値を次々と上書きして消してしまい、しかも最後の要素に入れる処理もない。
- 選択肢 イ不正解
- 2から増やしながら入れると、data[1]の値が後ろの要素へどんどんコピーされて元の値が消えてしまう。
- 選択肢 ウ不正解
- 始まりがlen-1だと、配列の最後であるdata[len]に値が入らず、末尾の要素を更新できない。
- 選択肢 エ正解
- lenから2へ1つずつ減らせば、値を消さずに全部の要素を1つ後ろへ正しく移せる。
覚えるポイント
- 配列要素を後ろへずらすときは「後ろから」、前へ詰める時は「前から」処理するのが基本です。
間違えやすいところ
- ループの終わりでdata[1]←data[0]としないよう、番号の下限が2である点を見落とさない。
出題の前提:擬似言語の仕様および配列の要素番号が 1 から始まる出題条件に基づく。
出典:IPA『2026年度 科目B 公開問題』
公式問題冊子 p.4 ↗(www.ipa.go.jp)
ビット演算による2の補数の算出
基礎理論 · 2の補数 / 排他的論理和 / ビット演算
関数 complement は、引数として渡された 8 ビット型の値 x について、x に加算すると 00000000 になる値(符号なし 2 進数の加算において桁あふれを無視したときの値)を返す。プログラム中の空欄に入れる式として正しいものを解答群の中から選べ。 〔プログラム〕 ○8ビット型: complement(8ビット型: x) 8ビット型: y y ← [ ] y ← y + 00000001 return y
解答・解説を表示
解答
カ
解説
まず要点:ある数に足すと桁あふれを無視して0になる値が2の補数だ。作り方は、各ビットを反転(0は1、1は0に変える)してから1を足す。この反転は、1との排他的論理和(XOR/どちらか片方だけ1のとき1)でできる。
解き方
- 足して00000000になる値は2の補数。2行目で+00000001をしているので、空欄ではビット反転(1の補数)を求めると分かる。
- ビットを反転するのは、全部1のマスクとの排他的論理和なので「x ▽ 11111111」となる。
- 選択肢 ア不正解
- 上のビットを0にする論理積(AND)なので、ビットを反転する処理にはならない。
- 選択肢 イ不正解
- 全部1との論理積は元の値xをそのまま返すだけで、反転にはならない。
- 選択肢 ウ不正解
- 下位7ビットを無理やり1にする論理和(OR)であり、反転とは動きが違う。
- 選択肢 エ不正解
- 全部1との論理和はいつも11111111になり、反転の処理にはならない。
- 選択肢 オ不正解
- 上のビットが反転されず元のまま残るので、正しい反転にならない。
- 選択肢 カ正解
- 全部1との排他的論理和をとると、各ビットが0なら1、1なら0へと反転する。

関連する分野を学ぶ
覚えるポイント
- 1 との排他的論理和(XOR)はビット反転、0 との排他的論理和は値の保持となります。
間違えやすいところ
- 論理和(OR)・論理積(AND)・排他的論理和(XOR)の記号と動きを混同しない。
出題の前提:問題文に明記されたビット演算子(∧: 論理積、∨: 論理和、▽: 排他的論理和)および2の補数の定義に基づく。
出典:IPA『2026年度 科目B 公開問題』
公式問題冊子 p.5 ↗(www.ipa.go.jp)
再帰関数とループ処理による漸化式の計算
データ構造とアルゴリズム · 漸化式 / 動的計画法 / 配列の更新
同じ引数 n に対して常に同一の値を返す2つの関数 func1 および func2 がある。func2 の空欄に入れる正しい式を解答群の中から選べ。配列の要素番号は 1 から始まる。 〔プログラム〕 ○整数型: func1(整数型: n) if (nが2以下) return 1 endif return 2 × func1(n - 2) + func1(n - 1) ○整数型: func2(整数型: n) 整数型の配列: data ← {1, 1, 1} 整数型: i /* nが3より小さいときは繰返し処理を実行しない */ for (iを3からnまで1ずつ増やす) data[1] ← data[2] data[2] ← data[3] data[3] ← [ ] endfor return data[3]
解答・解説を表示
解答
ア
解説
まず要点:漸化式f(n)=2×f(n-2)+f(n-1)は、直近2つの結果を使って計算する。要素数3の配列を1つずつずらして(スライドさせて)使うので、ずらした後にどの位置がどの項になるかを確かめるのが大切だ。
解き方
- 始める前のdataは{1,1,1}。i=3の代入の直前には、直前2つの結果がdata[2]=f(1)=1、data[3]=f(2)=1に入っている。
- data[1]←data[2]でdata[1]はf(i-2)に、data[2]←data[3]でdata[2]はf(i-1)になる。
- なので、新しくdata[3]に入れるf(i)は2×data[1]+data[2]になる。
- 選択肢 ア正解
- ずらした後はdata[1]がf(i-2)、data[2]がf(i-1)を表すので、漸化式とぴったり合う。
- 選択肢 イ不正解
- 係数が逆になっており、f(i-2)+2×f(i-1)を計算してしまうため誤り。
- 選択肢 ウ不正解
- 配列dataは大きさ3しかないので、iが4以上だと外の場所を参照してしまう。
- 選択肢 エ不正解
- ウと同じく大きさ3しかないため、iが4以上で配列の外を参照してしまう。
- 選択肢 オ不正解
- 直前に求めたdata[3]を余計に足しており、漸化式の定義と違う。
- 選択肢 カ不正解
- data[3]を足しているうえ、係数の付け方も漸化式と違っている。
- 選択肢 キ不正解
- 配列の外を参照してしまううえ、漸化式の定義とも合わない。
- 選択肢 ク不正解
- 配列の外を参照してしまううえ、漸化式の定義とも合わない。
覚えるポイント
- 固定長配列を用いたスライディングウィンドウでは、代入順序と各要素が表す世代(過去の項)の関係を整理します。
間違えやすいところ
- dataが要素数3であることを忘れ、添字にループ変数iを使う選択肢を選んでしまう誤りがある。
出題の前提:問題文中の漸化式定義および擬似言語記述形式に基づく。
出典:IPA『2026年度 科目B 公開問題』
公式問題冊子 p.6 ↗(www.ipa.go.jp)
配列による単方向リストの走査
データ構造とアルゴリズム · 単方向リスト / ポインタ配列 / リスト走査
単方向リストを、要素の値を格納する配列 dataList と、次の要素の要素番号を格納する配列 pointerList の2つの配列で表現する。リストの先頭から順に値をたどって配列 linearList を作成して返す関数 orderList のプログラム中の空欄 a, b に入れる正しい組合せを選べ。配列の要素番号は 1 から始まる。 〔プログラム〕 ○整数型の配列: orderList() 整数型: i, p ← 1 整数型の配列: linearList ← {} // 要素数0の配列 for (i を 1 から dataListの要素数 まで 1 ずつ増やす) linearListの末尾 に dataList[p]の値 を追加する if ( [ a ] が 未定義) 繰返し処理を終了する endif p ← [ b ] endfor return linearList
解答・解説を表示
解答
エ
解説
まず要点:配列で単方向リストを表すときは、値を入れる配列dataListと、次の要素番号(ポインタ)を入れる配列pointerListを組にして使う。たどるときは今の位置のポインタを見て次の位置へ移り、ポインタが未定義(null)になったら終わりにする。
解き方
- 今見ている要素番号pのデータdataList[p]を結果に加えたら、次があるかどうかを確かめる。
- 問題文より、リストの最後ではpointerListの値が未定義なので、条件aにはpointerList[p]が入る。
- 最後でなければ、次の要素番号pointerList[p]をpに入れて進むので、bにはpointerList[p]が入る。
- 選択肢 ア不正解
- dataList[p]はたった今追加した値なので未定義ではなく、bにiを入れるとリストのつながり順を無視してしまう。
- 選択肢 イ不正解
- 終わりかどうかは次の要素へのポインタpointerList[p]が未定義かで判断するので、aが誤り。
- 選択肢 ウ不正解
- bにループ変数iを入れると、ポインタのつながりではなく配列の並び順で参照してしまう。
- 選択肢 エ正解
- aもbもpointerList[p]にすると、次の要素の有無の判定と次への移動が正しくできる。
答えの内訳
- a:pointerList[p]
- 問題文に「単方向リストの末尾に対応する pointerList の要素は未定義である」と明記されているため、現在処理中の要素の次を指すポインタ pointerList[p] が未定義かどうかで末尾到達を判定します。
- b:pointerList[p]
- 次のループ処理でたどる要素の要素番号は、現在の要素の次の要素番号を保持している pointerList[p] の値を変数 p に代入することで更新します。
関連する分野を学ぶ
覚えるポイント
- 連結リストの配列表現では、配列のインデックス番号そのものをポインタとして扱います。
間違えやすいところ
- リストのつながりをたどる処理で、番号の更新をループカウンタiの代入と取り違えない。
出題の前提:問題文中の単方向リストの配列表現規則および擬似言語記述形式に基づく。
出典:IPA『2026年度 科目B 公開問題』
公式問題冊子 p.8 ↗(www.ipa.go.jp) / 公式問題冊子 p.9 ↗(www.ipa.go.jp)
One-Hot表現へのエンコーディングアルゴリズム
データ構造とアルゴリズム · One-Hot表現 / 配列走査 / 重複排除
関数 oneHotEncoding は、色の名前が格納されている配列 colors を引数として受け取り、出現する色の種類に基づいて各要素を One-Hot 表現の配列に変換して返す。プログラム中の空欄 a, b に入れる正しい組合せを選べ。配列の要素番号は 1 から始まる。 〔プログラム〕 /* 名前一覧の作成 */ for (i を 1 から colorsの要素数 まで 1 ずつ増やす) if (colorVector の要素のいずれにも colors[i]の値 が格納されていない) colorVectorの末尾 に [ a ] を追加する endif endfor /* One-Hot表現への変換 */ for (j を 1 から colorsの要素数 まで 1 ずつ増やす) tempVector ← {} // 要素数0の配列 for (k を 1 から colorVectorの要素数 まで 1 ずつ増やす) if ( [ b ] ) tempVectorの末尾 に 1 を追加する else tempVectorの末尾 に 0 を追加する endif endfor oneHotVectorの末尾 に tempVector を追加する endfor return oneHotVector
解答・解説を表示
解答
イ
解説
まず要点:One-Hot表現とは、カテゴリの一覧のうち当てはまる位置だけを1、残りをすべて0にしたベクトル(数値の並び)だ。まず入力から重複を除いた色の一覧を作り、次に各要素を一覧と照らして、一致する位置に1、それ以外に0を入れる。
解き方
- 最初のループでは色の一覧colorVectorを作る。まだ入っていない色colors[i]の値を末尾に足すので、aは「colors[i]の値」となる。
- 次の二重ループでは、入力の各要素colors[j]をOne-Hotベクトルに直す。色一覧のk番目colorVector[k]と一致するとき1を足すので、bは「colors[j]がcolorVector[k]と等しい」となる。
- 選択肢 ア不正解
- bの条件がどのkでも成り立ってしまい、全部の要素が1のベクトルになってしまう。
- 選択肢 イ正解
- aで色の一覧を正しく作り、bで各要素の色と一致する位置だけに1を置くので正しい。
- 選択肢 ウ不正解
- aに未定義の値を入れると色の一覧が作れず、One-Hot表現を作ることができない。
- 選択肢 エ不正解
- aに未定義の値を入れるとcolorVectorが空や不正な値になり、正しく変換できない。
答えの内訳
- a:colors[i]の値
- 名前一覧の作成処理において、colorVector にまだ登録されていない新しい色名を追加するため、追加する値 a は colors[i]の値 です。
- b:colors[j] が colorVector[k] と等しい
- One-Hot 表現への変換処理では、j 番目の要素の色名 colors[j] が、色名一覧の k 番目の要素 colorVector[k] と一致する場合にのみ 1 を設定するため、条件式 b は「colors[j] が colorVector[k] と等しい」です。
覚えるポイント
- One-Hot表現の各桁は、あらかじめ定義されたカテゴリ一覧の各インデックスに対応します。
間違えやすいところ
- 二重ループの外側j(入力の要素)と内側k(色一覧の要素)の役割を混同しない。
出題の前提:問題文中に示された One-Hot 表現の定義および変換アルゴリズムの仕様に基づく。
出典:IPA『2026年度 科目B 公開問題』
公式問題冊子 p.10 ↗(www.ipa.go.jp) / 公式問題冊子 p.11 ↗(www.ipa.go.jp)
クラウドサービスにおけるログ管理ルールの適合性評価
情報セキュリティ · ログ管理 / アクセス制御 / 職務の分掌 / クラウドセキュリティ
A 社の営業部で利用しているクラウドサービス(Z サービス)の運用状況について、図 1 に定める「3. ログのアクセス管理」のルールに違反している項番の組合せとして、正しいものを表 1 から選べ。 〔図 1 の抜粋:3. ログのアクセス管理〕 ・運用担当者だけがログにアクセスできるようにすること ・クラウドサービスからログをエクスポートして保管する場合は、社内ネットワークに設置した自部署のファイルサーバにログを保管し、運用担当者だけがアクセスできるようにすること ・運用担当者は複数名にすること ・クラウドサービスへの運用担当者のログインには、2 要素認証を必要とすること 〔表 1:現在の運用〕 (一) Z サービスのログは、空き容量が一定値以下になった場合、古いログから上書きされる。 (二) Z サービスの運用は、営業部の C 主任と D 主任の 2 名で担当していたが、D 主任が先月退職したので、現在は C 主任だけである。 (三) Z サービスのログの日時は、UTC で記録されている。 (四) Z サービスのログは、毎月末に全てエクスポートし、Y サーバに保管している。(※営業部の各従業員には Y サーバの一般利用者アカウントが割り当てられ、Y サーバ上の全てのファイルが編集可能である)
解答・解説を表示
解答
ケ
解説
まず要点:ログ管理では、担当者を複数名にすることと、保存先でも担当者だけが触れるようにすることが大切だ。担当者が1人だと不正を1人でできてしまい、保存先を誰でも編集できるとログを書き換えられてしまう。この2点がルール違反にあたる。
解き方
- 図1の「3.ログのアクセス管理」の条件(見られる人を限る、保存先でも制限する、担当者は複数名、2要素認証)を確かめる。
- 表1の各運用のうち、(二)は担当者が1人で複数名の条件に反し、(四)は保存先が全従業員に編集可能でアクセス制限の条件に反する。
- 選択肢 ア不正解
- (一)は保存期間や改ざん・消去対策のルールに反する事柄であり、ルール3の違反ではない。
- 選択肢 イ不正解
- (一)は保存期間・改ざん対策の違反、(三)は日本標準時で日時を記録するルールの違反。
- 選択肢 ウ不正解
- (一)はルール3の違反には当たらない。
- 選択肢 エ不正解
- (一)も(三)もルール3の違反ではなく、当てはまらない。
- 選択肢 オ不正解
- (一)も(三)もルール3の違反には含まれない。
- 選択肢 カ不正解
- (一)はルール3ではなく、保存期間や消去防止のルールに関する違反。
- 選択肢 キ不正解
- (三)はログの項目に関するルールの違反である。
- 選択肢 ク不正解
- (三)はログの項目のルールの違反で、ルール3だけを挙げた組合せになっていない。
- 選択肢 ケ正解
- (二)の担当者が1人という不備と、(四)の保存先サーバのアクセス制御の不備が、どちらもルール3に違反している。
- 選択肢 コ不正解
- (三)はログの項目に関するルールの違反である。
覚えるポイント
- 設問で問われている特定のルール区分(本問では「ルール3」)に限定して該当項目を判断します。
間違えやすいところ
- すべての違反を答えるのではなく、「ルール3に反するものだけ」に正しく絞り込む。
出題の前提:問題文に提示されたログ管理ルール(図1)および現行の運用状況(表1)に基づく。
出典:IPA『2026年度 科目B 公開問題』
公式問題冊子 p.12 ↗(www.ipa.go.jp) / 公式問題冊子 p.13 ↗(www.ipa.go.jp)
2026年度 科目B 公開問題
参照した公式資料
IPAが公開した2026年度 科目B 公開問題の問題・解答資料です。

