応用情報23年 秋 午後 問2 設問1
【問題を解く前に】
分類は・・・基礎理論ですかね?ハッシュの・・・
段落や図表の構造はこんな感じ
[データ構造]
表1 構造体INFOのメンバ
[データ管理プログラム]
図1 データ格納関数Set()
図2 データ取得関数Get()
図3 データ削除関数Delete()
[画面プログラム]
図4 画面プログラムの一部
段落間の関係は薄そうなので、まず、ア〜エを埋めてしまいます
【解き方】
設問1
アについて:
プログラムを書いている場合、
whileなどでまわして、その直後にif文があるばあい、
・なにかを探していることが多いです。
今回はそのケース。その場合、
・if文の条件が、while文の条件に関係する
ことになります。
今回は、if文の条件、「countはNより小さい」に関係したものが
アにはいると考えられます。
countはNより大きかったら、オーバーフローになるはずなので、
ループできません。ということは、「countはNより小さい」そのものが
アにはいるはずです。
イについて:
配列の最後は?ときいています。Nのはず。
イのIF文の前でidxを足しているので、最後(N)より、大きくなっている
ウについて:
まずは、Hash(key)で値の格納場所をとってくるのでした
(と表1の下に書いてある)
エについて:
アのループと同じ感じで、if文の条件、
「array[idx].keyはkeyと等しい」に関係することが入ってくるはずです。
もし、エが、「array[idx].keyはkeyと等しい」だったら、等しくないとき
ループしないはずですが、ここの処理は、等しくない間ループさせ、
等しくなったら抜けて、値をセットしたいはずです。
ということは。。。
「array[idx].keyはkeyと等しくない」
にしないと、話がつながりません。
【答え】
設問1
ア countはNより小さい
イ idxはNより大きい
ウ Hash(key)
エ array[idx].keyはkeyと等しくない
★(PR) まぐまぐでメルマガ始めました。以下のとおりです。よかったら、登録してくださいね!
●メルマガID:0001289711
【メルマガタイトル】 試験と実務の関連を説明する−実践!情報処理試験講座 メール版
【個別ページ】 http://www.mag2.com/m/0001289711.html
★ 電子書籍版「情報処理試験の基礎知識」に考え方のまとめを載せてます(無料)
http://p.booklog.jp/book/41469