次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数simRatioは、引数として与えられた要素数1以上の二つの文字型の配列s1とs2を比較し、要素数が等しい場合は、配列の並びがどの程度似ているかの指標として、(要素番号が同じ要素の文字同士が一致する要素の組みの個数 ÷ s1の要素数)を実数型で返す。例えば、配列の全ての要素が一致する場合の戻り値は1、いずれの要素も一致しない場合の戻り値は0である。 なお、二つの配列の要素数が等しくない場合は、-1を返す。 関数simRatioに与えるs1, s2及び戻り値の例を表に示す。プログラムでは、配列の領域外を参照してはならないものとする。 〔プログラム〕 ○実数型: simRatio(文字型の配列: s1, 文字型の配列: s2) 整数型: i, cnt ← 0 if (s1の要素数 ≠ s2の要素数) return -1 endif for (i を 1 から s1の要素数 まで 1 ずつ増やす) if ( ) cnt ← cnt + 1 endif endfor return cnt ÷ s1の要素数 /* 実数として計算する */
一致率は同じ添字どうしの等号で数える
表 関数simRatioに与えるs1, s2及び戻り値の例
〔プログラム〕
○実数型: simRatio(文字型の配列: s1, 文字型の配列: s2)
整数型: i, cnt ← 0
if (s1の要素数 ≠ s2の要素数)
return -1
endif
for (i を 1 から s1の要素数 まで 1 ずつ増やす)
if ( )
cnt ← cnt + 1
endif
endfor
return cnt ÷ s1の要素数 /* 実数として計算する */
| 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 |
選択肢
- アs1[i] ≠ s2[cnt]
- イs1[i] ≠ s2[i]
- ウs1[i] = s2[cnt]
- エs1[i] = s2[i]
正解と解説
正解:エ s1[i] = s2[i]
この関数は、同じ要素番号どうしの文字が一致した組の個数を数え、要素数で割って一致率を返します。したがって数え上げる条件は、同じ添字iで両配列の要素が等しいこと、すなわち s1[i] = s2[i] です。カウンタcntを添字に使うと比較位置がずれ、不一致条件にすると値が反転してしまいます。
選択肢ごとの解説
- ア不一致を数えるうえ、添字にカウンタを使っており位置がずれる。
- イ不一致の個数を数えることになり、戻り値が反転する。
- ウ比較位置がcntに依存し、対応する要素同士を比べられない。
- エ正解。同じ要素番号どうしが一致した場合に数える。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問5
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 関数func1に与…2026年度 公開問題 科目B 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数complementは、引数として渡された8ビット型…2026年度 公開問題 科目B 問2
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 次のプログラムは、…2026年度 公開問題 科目B 問1
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。 関数changeは、10より大きい整数を引数nで受け取り…2025年度 公開問題 科目B 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。