![]()
平成20年 春期 基本情報技術者 午後 問04
問04 リストの要素の並べ替え次のプログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 (1) リストを作成するのに用いる副プログラム MakeList と,作成したリストを 逐次探索する関数 OrganizingSearch である。OrganizingSearch は, 見つかった要素がリストの先頭にくるように要素を並べ替える。 (2) リストは構造体の配列で表現する。構造体の定義は,次のとおりである。 構造体型: List[100] { 整数型: Next = -1, /* 次の要素の添字,初期値は−1 */ 文字列型: Value /* 要素の値,可変長文字列 */ } (3) 副プログラム MakeList は,1回の呼出しで,引数の文字列を値とする要素を作成し, リストの最後に追加する。MakeList は探索対象のリストが完成するまで 続けて呼び出される。整数型の大域変数 Listsize には,作成したリストの要素数を 格納する。リストの要素は,List[0] から,List[Listsize-1] に格納する。 リストに登録する要素の個数は,配列の大きさ以下とする。また, リストの先頭の要素が格納されている配列 List の添字は, 整数型の大域変数 First に格納する。First の初期値は−1とする。 リストが空の状態から,MakeList の引数として,'cpu','ram','dos','vpn','dvd' を 順に与えて作成したリストの例を図1に示す。 ![]() 図1 リストの例
(5) 関数 OrganizingSearch は,リストの先頭から引数で与えられた文字列を探索し, 文字列が見つかれば,見つかった要素がリストの先頭になるようにリストの要素を並べ替え, 見つかった要素が格納されている配列 List の添字を返却する。 見つからなければ−1を返却する。図1のリストの例で,文字列 'dos' を見つけた 直後のリストの状態を図2に示す。この例では,OrganizingSearch の返却値は2となる。 ![]() 図2 'dos' を見つけた直後のリストの状態
〔プログラム〕
設問1 プログラム中の a に関する解答群 エ Listsize オ Listsize+1 カ Listsize−1
ウ List[Current].Next エ List[First].Next オ List[Temp].Next カ Temp
設問2 図3に示すリストに対して,文字列 'cgi','cpu','dos' の順に探索した 場合,プログラム中の α の部分が実行された直後の List[Temp].value の値を 順に並べたものとして正しい答えを,解答群の中から選べ。 ![]() 図3 リスト
イ usb,cgi,cpu ウ usb,cgi,usb,cgi,cpu,usb,cgi,cpu,dos エ usb,cgi,usb,cpu,cgi オ usb,cgi,usb,cpu,cgi,usb カ usb,usb,cgi,usb,cgi,cpu [←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||