必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 基本情報技術者
  3. 平成19年度春季問題一覧
  4. 平成19年度春季問題13-解答・解説-分析

平成19年度春季問題

問題13

文字列 A が“aababx△”,文字列 B が“ab△”であるとき,流れ図の終了時点の k は幾らか。ここで,文字列の先頭の文字を1番目と数えるものとし,A [ i ] は A の i 番目の文字を,B [ j ] は B の j 番目の文字を,“△”は終端を示す文字を表す。

0
1
2
4

文字列 A が“aababx△”,文字列 B が“ab△”であるとき,流れ図の終了時点の k は幾らか。ここで,文字列の先頭の文字を1番目と数えるものとし,A [ i ] は A の i 番目の文字を,B [ j ] は B の j 番目の文字を,“△”は終端を示す文字を表す。

0
1
2
4

解答:ウ

<解説>

  1. A[1]=“a”,B[1]=“a”なので1回目のA[i]:B[j]の比較で文字列Aと文字列Bの先頭文字aが一致
    • i+1→i=2
    • j+1→j=2
  2. A[2]=“a”,B[2]=“b”なので2回目のA[i]:B[j]の比較で文字列Aと文字列Bの2文字目が不一致
    • i-j+2→i=2
    • 1→j→j=1
  3. A[2]=“a”,B[1]=“a”なので3回目のA[i]:B[j]の比較で文字列Aの2文字目aと文字列Bの先頭文字aが一致
    • i+1→i=3,
    • j+1→j=2
  4. A[3]=“b”,B[2]=“b”なので4回目のA[i]:B[j]の比較で文字列Aの3文字目bと文字列Bの2文字目bが一致
    • i+1→i=4,
    • j+1→j=3
  5. ここでB[3]=“△”となるので,判定条件A[i]=“△”orB[j]=“△”と,次の判定条件B[j]=“△”の両者を満たし,i-jmax→kの処理に進む。ここでiは4,jmaxは初期値2のままなので,2→kになる。
    したがって 、kは文字列Bの先頭文字が一致した文字列Aにおける文字位置を表わしている