基本情報技術者過去問平成17年 午後 問10最終更新日 2005/12/25
|
Tomのネットワーク勉強ノート |
![]() |
![]() |
![]() |
問10 次のCプログラムの説明及びプログラムを読んで,設間1〜 3に答えよ。
〔プログラムの説明〕
ある大学における成績出力用プログラムである。
(1)この大学では,学期終了時に学生の履修科目成績一覧を図1に示すレコード様式
でファイルに出力する。学生数は15,000,科目数は2,000であり,得点は0〜100の整数値である。
_ |
|
図1 履修科目成績一覧のレコード様式
(2)出力に必要なデータは,図2に示す3種類のファイルに記述されている。
図2 読込みファイル群の例
(3) プログラムは,はじめに関数initを呼ぶことで,図2に示した3種類のファイ
ルから図3に示すようなリスト構造をメモリ上に構成する。科目キーcourseKey
の科目名は,char型の配列courseName [courseKey]に格納される。また,学
生キーstudentKeyの学生情報はSTUDENT型の構造体student[studentKey]
で表現され,メンバstudentNameには学生氏名が,メンバrFirstcourseには
その学生の成績情報を表すリストの先頭へのポインタが格納される。学生の各履修
科目についての成績情報はRECORD型の構造体で表現し,メンバscoreには得点,
メンバcourseNameには科目名へのポインタ,メンバrNextCourseには他の履
修科目の成績情報へのポインタが格納される。
図3 データ構造例
設問1 プログラム中の【 】に入れる正しい答えを,解答群の中から選べ。
aに関する解答群
ア &p イ &p++ ウ NULL エ p オ p++
bに関する解答群
ア &courseName イ *courseName[courseKey]
ウ courseName エ courseName[courseKey]
オ p->rNextCourse->courseName
cに関する解答群
ア &p->courseName, &p->score イ &p->courseName, p->score
ウ *p->courseName, *p->score エ *p->courseName, p->score
オ p->courseName, &p->score カ p->courseName,
* p->score
キ p->courseName, p->score
設問2 図1に例示した履修科目成績一覧において,科目名の出力順として正しい答え
を,解答群の中から選べ。
解答群
ア 科目キーの値が小さい科目ほど先に出力される。
イ 科目キーの値が小さい科目ほど後に出力される。
ウ 先に関数registで登録した科目ほど先に出力される。
エ 先に関数registで登録した科目ほど後に出力される。
オ 履修者数の少ない科目ほど先に出力される。
カ 履修者数の少ない科目ほど後に出力される。
設問3 次の記述中の【 】に入れる正しい答えを,解答群の中から選べ。
図1に例示した履修科目成績一覧において,得点の降順に出力されるように,関数
registのα, βを次のとおりに変更した。
なお,【 a 】には正しい答えが既に入っているものとする。
解答群
ア q != NULL && q->score < s
イ q != NULL && q_>score > s
ウ q == NULL || q->score < s
エ q == NULL || q->score > s
オ q->rNextCourse != NULL && q-> rNextCourse
-> score < s
カ q->rNextCourse != NULL && q-> rNextCourse
-> score > s
キ q->rNextCourse == NULL || q-> rNextCourse
-> score < s
ク q->rNextCourse == NULL || q-> rNextCourse
-> score > s
Tomのネットワーク勉強ノート |
![]() |
![]() |
![]() |