![]()
平成23年 春期 基本情報技術者 午後 問09
問09 C言語次のCプログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラム1の説明〕 U 劇場の座席予約システムにおいて,希望する座席種別と座席数を指定すると, 連続した空き(未予約)座席があるかどうかを調べるプログラムである。 (1) U 劇場の座席配置は図1に示すとおりである。 ![]() 図1 U 劇場の座席配置 @ U 劇場には,ステージ側から列名が A 〜 Z の 26 列の座席があり,各列の座席数は異なる。 A 各列の座席は,ステージに向かって一番左から順に 1,2,… と数え,列名の A 〜 Z と, この数(以下,番という)を組み合わせた座席番号で識別される。例えば,“ L 列 6 番”の座席とは, 12 列目( L 列)のステージに向かって一番左から 6 番目の座席を示す。 B 各座席には,料金の違いを示す種別(以下,座席種別という)が割り振られている。 座席種別は,料金が高いものから順に S,A,B,C の四つがある。図1中の座席の文字は座席種別を表している。
(3) 関数 check_seats の引数は次のとおりである。ここで,引数の値に誤りはないものとする。 class 希望の座席種別 num 希望の座席数 hall 座席表 pos 確認結果( POSITION 型の構造体へのポインタ)
A 連続した空き座席が見つからなかった場合,pos が指す構造体の座席の列名にナル文字を格納する。 (4) 構造体 SEAT の構造は次のとおりである。
typedef struct { char seat_class; /* 座席種別 */ int reserved; /* 予約状態 */ } SEAT; (5) 構造体 POSITION の構造は次のとおりである。
typedef struct { char seat_row; /* 座席の列名 */ int seat_no; /* 座席の番 */ } POSITION; (6) 座席表 hall の要素 hall[i][j] は SEAT 型の構造体であり,各座席の座席種別と 予約状態が次のとおり格納されている。ここで,添字 i の 0 〜 25 が列名 A 〜 Z に, 添字 j の 0 〜 Ni-1 が番 1 〜 Ni(Ni は,添字 i に対応する列の座席数)に対応している。 hall[i][j].seat_class:座席種別を表す “S”,“A”,“B”,“C”のいずれかの文字が 格納されている。 hall[i][j].reserved:予約状態が格納されている。0は空きを,1は予約済を表す。 各列のステージに向かって一番右の座席の次の要素の座席種別 hall[i][Ni].seat_class には, ナル文字が格納されている。 〔プログラム1〕 #define ROWNUM 26 /* 座席の列数 */
設問1 プログラム1中の a,b に関する解答群
エ found = 0 オ found = 1 c,d に関する解答群
エ no - num + 2 オ row カ row + 1 キ row_s[row] ク row_s[row + 1]
設問2 関数 check_seats を使って,希望する座席種別の連続した空き座席があるかどうかを 調べ,その結果を出力する。希望する座席種別の連続した空き座席がない場合には, ほかの座席種別で希望する座席数の連続した空き座席があるかどうかを調べ,その結果を出力 するプログラムを作成した。作成したプログラムに関する説明文中の ![]() (1) 関数 check_service の引数は次のとおりである。ここで,引数の値に誤りはないものとする。 class 希望の座席種別 num 希望の座席数 hall 座席表 opt 結果の出力順 (2) 関数 check_service で使用している関数 print_seats の仕様は次のとおりである。 void print_seats(char class, int num, POSITION *pos) 機能:指定の座席種別の連続した空き座席があるかどうかの確認結果を出力する。 引数:class 座席種別 num 座席数 pos 確認結果(POSITION 型の構造体へのポインタ) 〔プログラム2〕 #define ROWNUM 26 /* 座席の列数 */ #define CLSNUM 4 /* 座席種別数 */ 〔プログラム2の説明〕 (1) 希望する座席種別の連続した空き座席があるかどうかを調べ,その結果を出力する。
(2) 希望する座席種別の連続した空き座席がない場合には,
希望する座席種別 e に関する解答群
イ よりも料金の安いすべての座席種別 ウ よりも一つ料金の高い座席種別 エ よりも一つ料金の安い座席種別 オ を除くすべての座席種別 f に関する解答群
g に関する解答群
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|