ITパスポート 令和5年度 問64
アルゴリズムとプログラミング
引数に関する問題
関数sigmaは,正の整数を引数maxで受け取り,1からmaxまでの整数の総和を戻り値とする。プログラム中のaに入れる字句として,適切なものはどれか。
〔プログラム〕
○整数型: sigma(整数型: max)
整数型: calcX ← 0
整数型: n
for (n を 1 から max まで 1 ずつ増やす)
a
endfor
return calcX- ア calcX ← calcX × n
- イ calcX ← calcX + 1
- ウ calcX ← calcX + n
- エ calcX ← n
答えと解説
✓ これが正解ウ calcX ← calcX + n
解説
合計を貯める変数に、そのつどnを足していく式が入ります。
この関数は、引数maxで受け取った値までの整数を順に足し合わせ、その合計を戻り値として返します。合計を貯めておく変数calcXは0から始まり、繰返しでは変数nが1からmaxまで1ずつ増えていきます。したがって繰返しの中では、いまのnの値をcalcXに足し込む必要があります。これを式に書くと、calcXにcalcXとnを足したものを代入する形になります。maxが3であれば、calcXは0から1、3、6と変わり、最後に6が返ります。よってaに入るのは、calcXにcalcXとnの和を代入する式です。
ほかの選択肢の解説
- ア …× n:calcXにcalcXとnの積を代入すると、calcXは最初が0なので、何度掛けても0のままです。総和を求めたいのに掛け算を使っており、そもそも足し合わせる動きになっていません。初期値が0の変数に掛け算を重ねても0のままだ、という点を手掛かりにすると、その場で外せます。
- イ …+ 1:calcXにcalcXと1の和を代入すると、繰返しの回数だけ1が足されるので、最後に残るのはmaxそのものです。1からmaxまでを足した合計にはならず、nの値が結果に反映されません。
- エ calcX ← n:calcXにnを代入すると、そのたびに前の値が上書きされてしまいます。繰返しが終わった時点で残るのは最後のnの値、つまりmaxだけであり、それまでに足したものが消えてしまいます。
関連用語
- 引数呼び出す側と呼び出される側の間で受け渡すデータです。
出典:令和5年度 ITパスポート試験 問64(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和8年度 問67:
整列に 関する 問題 (引数) - 令和8年度 問85:
素数に 関する 問題 (引数) - 令和6年度 問85:
基数に 関する 問題 (引数) - 令和6年度 問62:
配列に 関する 問題 (引数) - 令和4年度 問96:
変数に 関する 問題 (引数)
同じ分野の問題
誤りを見つけたら報告する