メインコンテンツへスキップ
基本情報技術者令和7年度 CBT科目B問 4計算

令和7年度 CBT 基本情報技術者 科目B 問4

難度標準

次の記述中の空欄に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。

関数searchは、二つの文字型の配列を、それぞれ引数data及びkeyで受け取り、dataから、keyの要素の並びと同じ並びを全て探し、その先頭の要素番号を全て格納した配列を返す。見つからなければ、要素数0の配列を返す。

関数searchをsearch({"a", "b", "a", "b", "c", "a", "b", "c"}, {"a", "b", "c"})として呼び出すと、/* β */の行の条件式が真となる回数は[空欄]回である。

〔プログラム〕

/* keyは,要素数1以上の配列である */
○整数型の配列: search(文字型の配列: data, 文字型の配列: key)
  整数型: i, j, lenData, lenKey
  整数型の配列: result ← {}  // 要素数0の配列
  lenData ← dataの要素数
  lenKey ← keyの要素数

  /* (lenData − lenKey + 1)が0以下のときは繰返し処理を実行しない */
  for (iを1から(lenData − lenKey + 1)まで1ずつ増やす)
    for (jを1からlenKeyまで1ずつ増やす)  // α
      if (data[i + j − 1]がkey[j]と等しい)  /*** β ***/
        if (jがlenKeyと等しい)
          resultの末尾にiの値を追加する
        endif
      else
        αの行から始まる繰返し処理を終了する
      endif
    endfor
  endfor
  return result

選択肢

解説

結論 → 詳細 → 補足 の 3 層構成

展開
解説Layer 1

先頭位置iは1〜6です。各位置からkeyのa、b、cを順に比較し、不一致になった時点で内側のループを終了します。

i比較の経過βが真になる回数
1a一致、b一致、3文字目a≠c2
2先頭b≠a0
3a、b、cが全て一致3
4先頭b≠a0
5先頭c≠a0
6a、b、cが全て一致3

合計は2+0+3+0+0+3=8回なのでクです。一致する並びが見つかる回数の2回ではなく、1文字ごとの条件式βが真になる回数を数えます。

この解説は?
AI生成

解説は公式の問題文・公式解答を基に作成しています。 事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があるため、 重要な判断は必ずリンク先の公式資料でご確認ください。

最終更新:

検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

分野「アルゴリズムとプログラミング」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

関連する問題

アルゴリズムとプログラミング の他の問題

他年度の「アルゴリズムとプログラミング」問題

基本情報技術者 の同じ分野を年度をまたいで演習する

基本情報技術者 の学習ガイド