ITパスポート試験 令和7年度 公開問題 問99
関数 calculateAmountOfPrize は、業務改善の効果における改善額と短縮期間を、それぞれ improvement と period で受け取り、賞金額を戻り値とする。改善額が20万円で短縮期間が3日の業務改善と、改善額が5万円で短縮期間が14日の業務改善があった。この二つの賞金額の合計は何円か。ここで、改善額と短縮期間の値はそれぞれの以上とする。
【プログラム】 ○整数型: calculateAmountOfPrize(整数型: improvement, // 改善額(円) 整数型: period) // 短縮期間(日) 整数型: prize // 賞金額(円) if (improvement が 100000 より小さい) if (period が 7 より小さい) prize ← 500 else prize ← 1000 endif else if (period が 7 より小さい) prize ← 2000 else prize ← 5000 endif endif return prize
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ウ
2つの業務改善それぞれの賞金額を計算します。
【1つ目:改善額20万円(200,000円)、短縮期間3日】 ・improvement = 200,000 ・period = 3
判定: ・improvement(200,000)は 100,000 より小さい? → No(200,000 ≥ 100,000) ・else節に進む ・period(3)は 7 より小さい? → Yes(3 < 7) ・prize = 2,000円
【2つ目:改善額5万円(50,000円)、短縮期間14日】 ・improvement = 50,000 ・period = 14
判定: ・improvement(50,000)は 100,000 より小さい? → Yes(50,000 < 100,000) ・if節に進む ・period(14)は 7 より小さい? → No(14 ≥ 7) ・prize = 1,000円
【合計】 2,000円 + 1,000円 = 3,000円
したがって、正解は「ウ」(3,000円)です。
【ポイント】 ネストされたif文では、外側の条件から順に判定していきます。条件分岐を正しくトレースすることが重要です。
出典:令和7年度 ITパスポート試験 公開問題 問99
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の100問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる