基本情報トップに戻る
B難易度: 標準2026年度

基本情報技術者 予想問題B 第69問

問題

次のプログラムで、関数countの戻り値はいくつか。 ○ 整数型: count(整数型: n) 整数型: c ← 0 while (n > 0) c ← c + 1 n ← n / 2 endwhile return c (countを呼び出す引数は16)

選択肢

  1. 1ア 3
  2. 2イ 4
  3. 3ウ 5
  4. 4エ 16

正解

3. ウ 5

詳しい解説を見る

解説

正解はウ。引数n=16でwhileループをトレースする。nを2で割り続け、0になるまでの繰返し回数cを数える処理である。1回目:n=16>0で、c=1、n=8。2回目:c=2、n=4。3回目:c=3、n=2。4回目:c=4、n=1。5回目:n=1>0で、c=5、n=1/2=0(整数除算で小数点以下切捨て)。次の判定でn=0となり終了する。よって戻り値は5である。アの3やイの4は割る回数を数え漏らした場合、エの16は引数をそのまま返すと誤読した場合の誤りである。最大の注意点は1/2が0.5ではなく整数除算で0になることで、ここを見落とすと無限ループと誤判断してしまう。2で割り続けられる回数は2進数表現の桁数(⌊log₂n⌋+1)に一致するという性質も併せて覚えておきたい。

一問一答

科目A 180問+科目B 60問

Bの関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。