サンプル問題 [科目B]問12
問12解説へ
次のプログラム中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。
関数 simRatio は,引数として与えられた要素数1以上の二つの文字型の配列 s1 と s2 を比較し,要素数が等しい場合は,配列の並びがどの程度似ているかの指標として,(要素番号が同じ要素の文字同士が一致する要素の組みの個数 ÷ s1の要素数)を実数型で返す。例えば,配列の全ての要素が一致する場合の戻り値は1,いずれの要素も一致しない場合の戻り値は0である。
なお,二つの配列の要素数が等しくない場合は,-1を返す。
関数 simRatio に与える s1,s2 及び戻り値の例を表に示す。プログラムでは,配列の領域外を参照してはならないものとする。〔プログラム〕
関数 simRatio は,引数として与えられた要素数1以上の二つの文字型の配列 s1 と s2 を比較し,要素数が等しい場合は,配列の並びがどの程度似ているかの指標として,(要素番号が同じ要素の文字同士が一致する要素の組みの個数 ÷ s1の要素数)を実数型で返す。例えば,配列の全ての要素が一致する場合の戻り値は1,いずれの要素も一致しない場合の戻り値は0である。
なお,二つの配列の要素数が等しくない場合は,-1を返す。
関数 simRatio に与える s1,s2 及び戻り値の例を表に示す。プログラムでは,配列の領域外を参照してはならないものとする。〔プログラム〕
- 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]の式が当てはまります。
if文では条件式がtrueのときに cnt をインクリメント(+1)しているので、空欄には「引数 s1 と s2 の同じ位置の文字が等しい」という意味の式を入れることになります。同じ要素番号の文字を比較したいのですから、s1[i] と比較すべきは s2[i] となります。
したがってs1[i] = s2[i]の式が当てはまります。
広告