平成16年度 情報表現 試験問題
平成17年1月24日(月)
出題者: 大駒、佐藤、広瀬
持ち込み: 参考書、ノート,コピー、メモ、電卓は可、パソコンは不可。
回収: 解答用紙のみ回収する、問題用紙は持ち帰ってよい。
(1) 以下の空欄を埋めよ
┌─────┬─────┬─────┐
│ 10進数 │ 2進数 │ 16進数 │
┝━━━━━┿━━━━━┿━━━━━┥
│ 2005 │ (a) │ (b) │
├─────┼─────┼─────┤
│ (c) │ 101010 │ (d) │
├─────┼─────┼─────┤
│ (e) │ (f) │ 50 │
└─────┴─────┴─────┘
(2) 次のプログラムを実行したときの出力を示せ。
f=1
for n in 1..10 do
f=f*n
printf "%d\n", f
end
(3) 以下のプログラムは、標準入力から順次整数値を読み取り、それらの最大値
と最小値を求めて出力するものである。空欄 [[ ? ]] を埋めよ。
data=Array.new
n=0
while x=[[ A ]]
data[n] = x.to_i
n+=1
end
max = [[ B ]] = data[0]
data.each do |[[ C ]]|
if max [[ D ]] i
max = i
else min [[ E ]] i
min = i
end
end
printf "最大値=[[ F ]], 最小値=[[ G ]]\n", max, min
(4) 下記の文字列と正規表現のパターンマッチングをしたとき、マッチする部分
を示せ。マッチする部分がないときは nil とせよ。
例: "abc1234def" =~ /[0-9]+/ → 1234
(い) "12abc-def" =~ /\w+/
(ろ) "$abc-def" =~ /\w.\w/
(は) "12abc-def" =~ /\w.+\w/
(に) "12abcabcabcab-def" =~ /(abc)+/
(ほ) "12abc-def" =~ /^[0-9]+/
(へ) "12abc-def" =~ /[^0-9]+/
(5) 半径を引数として受け取り、その円の面積を求めて返すメソッドを書け。
なお、半径rの円の面積は πr2 である。円周率πは3.14とし、
半径が0以下の場合は「エラー」と表示し、-1を返すようにせよ。
(6) 文字列を引数として受け取り、その中の数字の個数を数えて返すメソッドを書け。
その最初の行は、
def digitnumber(text)
である。
例: digitnumber("EXPO 2005 will begin on March 25.") → 6
以上