メインコンテンツへスキップ
基本情報技術者2014年度 春期午前8

2014年度 春期 基本情報技術者 午前8

難度標準

長さm,nの文字列をそれぞれ格納した配列X、Yがある。図は、配列Xに格納した文字列の後ろに、配列Yに格納した文字列を連結したものを、配列Zに格納するアルゴリズムを表す流れ図である。図中のa, bに入れる処理として、適切なものはどれか。ここで、1文字が一つの配列要素に格納されるものとする。

選択肢

a X(k) → Z(k), b Y(k) → Z(m+k)
a X(k) → Z(k), b Y(k) → Z(n+k)
a Y(k) → Z(k), b X(k) → Z(m+k)
a Y(k) → Z(k), b X(k) → Z(n+k)

解説

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

展開
結論Layer 1

この問題は、二つの文字列配列XとYを連結して新たな文字列配列Zを作成するアルゴリズムに関するものです。問題文より、配列Xの長さはm、配列Yの長さはnであり、1文字が1つの配列要素に格納されます。アルゴリズムは、まず配列Xの要素を配列Zの先頭から順にコピーし、次に配列Yの要素を配列ZのXの要素が格納された後から順にコピーする処理を行います。

詳細Layer 2

正解であるアは、「a X(k) → Z(k)」で配列Xのk番目の要素を配列Zのk番目にコピーし、「b Y(k) → Z(m+k)」で配列Yのk番目の要素を配列Zのm+k番目にコピーすることを示しています。これは、配列Xのm個の要素がZの0からm-1番目に格納された後、配列Yの要素がZのm番目から順に格納されるという文字列連結の定義に合致しています。

補足Layer 3

他の選択肢について見ていきましょう。イは「b Y(k) → Z(n+k)」としていますが、配列Yの要素を格納する開始位置は配列Xの長さmに依存するため、n+kは適切ではありません。ウは「a Y(k) → Z(k)」としており、配列Yの要素をZの先頭にコピーしようとしていますが、これはXとYの連結ではなく、YとXの連結の誤りです。エも同様に、「a Y(k) → Z(k)」であるため、文字列連結の順序が誤っています。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

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

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

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

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

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

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

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

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

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