関数calcXと関数calcYは,引数inDataを用いて計算を行い,その結果を戻り値とする。関数calcXをcalcX(1)として呼び出すと,関数calcXの変数numの値が,1→3→7→13と変化し,戻り値は13となった。関数calcYをcalcY(1)として呼び出すと,関数calcYの変数numの値が,1→5→13→25と変化し,戻り値は25となった。プログラム中のa,bに入れる字句の適切な組合せはどれか。 〔プログラム1〕 ○整数型: calcX(整数型: inData) 整数型: num, i num ← inData for (iを1から3まで1ずつ増やす) num ← [a] endfor return num 〔プログラム2〕 ○整数型: calcY(整数型: inData) 整数型: num, i num ← inData for ([b]) num ← [a] endfor return num
変数の変化から増分を逆算して式とループ条件を決める
選択肢
- アa=2×num+i, b=iを1から7まで3ずつ増やす
- イa=2×num+i, b=iを2から6まで2ずつ増やす
- ウa=num+2×i, b=iを1から7まで3ずつ増やす
- エa=num+2×i, b=iを2から6まで2ずつ増やす
正解と解説
正解:エ a=num+2×i, b=iを2から6まで2ずつ増やす
calcXは1→3→7→13と毎回2ずつ増え幅が広がっており、iが1,2,3と進むことからaはnumに2×iを足す式だと分かります。calcYは1→5→13→25で増分が4,8,12なので、iは2,4,6と進む必要があり、2から6まで2ずつ増やすループになります。
選択肢ごとの解説
- アaの式が合わず、2回目以降の値が一致しない。
- イaの式が合わない。
- ウaは正しいが、この刻み方では増分が4,8,12にならない。
- エ正しい。a=num+2×i、iは2から6まで2ずつ増やす。
同じ分野の他の問題
- 関数isPrimeは、引数として与えられた正の整数が、素数であればtrueを、素数でなければfalseを戻り値とする。例…2026年度 秋期 問85
- 関数calculateAmountOfPrizeは、業務改善の効果における改善額と短縮期間を、それぞれimproveme…2025年度 秋期 問99
- 手続calcMod3を呼び出したときの出力はどれか。 〔プログラム〕 ○calcMod3() 整数型: totalVal…2025年度 秋期 問78
- 関数binaryToIntegerは、1桁以上の符号なし2進数を文字列で表した値を引数binaryStrで受け取り、その…2024年度 秋期 問85
- 関数convertは、整数型の配列を一定のルールで文字列に変換するプログラムである。関数convertをconvert(…2024年度 秋期 問62
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。