基本情報技術者試験〔科目B〕演習 2022年サンプル問題 問12(文法、一元配列)
〜2月19日 09:00
問12(文法、一元配列)
次のプログラム中の□に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。
関数simRatioは、引数として与えられた要素数1以上の二つの文字型の配列s1とs2を比較し、要素数が等しい場合は、配列の並びがどの程度似ているかの指標として、(要素番号が同じ要素の文字同士が一致する要素の組みの個数 ÷ s1 の要素数)を実数型で返す。例えば、配列のすべての要素が一致する場合の戻り値は1、いずれの要素も一致しない場合の戻り値は0である。
なお、二つの配列の要素数が等しくない場合は、-1を返す。
関数simRatioに与えるs1, s2及び戻り値の例を表に示す。プログラムでは、配列の領域外を参照してはならないものとする。
表 関数simRatio に与えるs1, s2 及び戻り値の例
(s1, s2, 戻り値)
({“a”, “p”, “p”, “l”, “e”}、{“a”, “p”. “p”, “l”, “e”}、1)
({“a”, “p”, “p”, “l”, “e”}、{“a”, “p”. “r”, “i”, “l”}、0.4)
({“a”, “p”, “p”, “l”, “e”}、{“m”, “e”, “l”, “o”, “n”}、0)
({“a”, “p”, “p”, “l”, “e”}、{“p”, “e”, “n”}、-1)
〔プログラム〕
1: 〇実数型: simRatio (文字列型の配列:s1, 文字列型の配列: s2)
2: 整数型: i, cut ← 0
3: if (s1の要素数 ≠ s2の要素数)
4: return -1
5: endif
6: for (i を s1 の要素数 まで 1 ずつ増やす)
7: if ( □ )
8: cnt ← cnt + 1
9: endif
10: endfor
11: return cnt ÷ s1 の要素数 /* 実数として計算する */
解答:s1[i] = s2[i]
解説
問題文では、関数 simRatio が配列 s1 と s2 を比較し、要素の一致率を計算することが求められている。具体的な手順としては以下の通り:
ここから先は
1月20日 09:00 〜 2月19日 09:00
この記事が参加している募集
この記事が気に入ったらチップで応援してみませんか?