HOME»サンプル問題»[科目B]問12

サンプル問題 [科目B]問12

問12

 次のプログラム中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。

 関数 simRatio は,引数として与えられた要素数1以上の二つの文字型の配列 s1 と s2 を比較し,要素数が等しい場合は,配列の並びがどの程度似ているかの指標として,(要素番号が同じ要素の文字同士が一致する要素の組みの個数 ÷ s1の要素数)を実数型で返す。例えば,配列の全ての要素が一致する場合の戻り値は1,いずれの要素も一致しない場合の戻り値は0である。
 なお,二つの配列の要素数が等しくない場合は,-1を返す。
 関数 simRatio に与える s1,s2 及び戻り値の例を表に示す。プログラムでは,配列の領域外を参照してはならないものとする。
b12_1.gif/image-size:450×149
〔プログラム〕
b12_2.gif/image-size:385×221
  • s1[i] ≠ s2[cnt]
  • s1[i] ≠ s2[i]
  • s1[i] = s2[cnt]
  • s1[i] = s2[i]

分類

アルゴリズムとプログラミング » プログラミングの諸分野への適用

正解

解説

問題文において、このプログラムの戻り値は「要素番号が同じ要素の文字同士が一致する要素の組みの個数 ÷ s1の要素数」と説明されています。プログラムの最後でcnt ÷ s1の要素数を戻り値としていることから、cnt は問題文でいう「要素番号が同じ要素の文字同士が一致する要素の組みの個数」を格納する変数であることがわかります。

if文では条件式がtrueのときに cnt をインクリメント(+1)しているので、空欄には「引数 s1 と s2 の同じ位置の文字が等しい」という意味の式を入れることになります。同じ要素番号の文字を比較したいのですから、s1[i] と比較すべきは s2[i] となります。

したがってs1[i] = s2[i]の式が当てはまります。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop