基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成20年 春期 基本情報技術者 午後 問04
問04   リストの要素の並べ替え

 次のプログラムの説明及びプログラムを読んで,設問1,2に答えよ。

〔プログラムの説明〕

(1) リストを作成するのに用いる副プログラム MakeList と,作成したリストを 逐次探索する関数 OrganizingSearch である。OrganizingSearch は, 見つかった要素がリストの先頭にくるように要素を並べ替える。

(2) リストは構造体の配列で表現する。構造体の定義は,次のとおりである。


構造体型: List[100] {
  整数型: Next = -1, /* 次の要素の添字,初期値は−1 */
 文字列型: Value        /* 要素の値,可変長文字列 */
}
 ここで,List は大域変数であり,配列の添字は0から始まる。添字が n の要素 List[n] の Next と Value は, それぞれ List[n].Next, List[n].Value で表す。

(3) 副プログラム MakeList は,1回の呼出しで,引数の文字列を値とする要素を作成し, リストの最後に追加する。MakeList は探索対象のリストが完成するまで 続けて呼び出される。整数型の大域変数 Listsize には,作成したリストの要素数を 格納する。リストの要素は,List[0] から,List[Listsize-1] に格納する。

 リストに登録する要素の個数は,配列の大きさ以下とする。また, リストの先頭の要素が格納されている配列 List の添字は, 整数型の大域変数 First に格納する。First の初期値は−1とする。 リストが空の状態から,MakeList の引数として,'cpu','ram','dos','vpn','dvd' を 順に与えて作成したリストの例を図1に示す。

図1 リストの例

(4) 副プログラム MakeList の引数の仕様を表1に示す。 表1 MakeList の引数の仕様

 引数 データ型 入力/出力     意味
 Mvalue 文字列型 入力 リストに追加する文字列

(5) 関数 OrganizingSearch は,リストの先頭から引数で与えられた文字列を探索し, 文字列が見つかれば,見つかった要素がリストの先頭になるようにリストの要素を並べ替え, 見つかった要素が格納されている配列 List の添字を返却する。 見つからなければ−1を返却する。図1のリストの例で,文字列 'dos' を見つけた 直後のリストの状態を図2に示す。この例では,OrganizingSearch の返却値は2となる。

   図2 'dos' を見つけた直後のリストの状態

(6) 関数 OrganizingSearch の引数と返却値の仕様を表2に示す。

   表2 OrganizingSearch の引数と返却値の仕様

 引数/返却値 データ型  入力/出力 意味
 Svalue 文字列型  入力 探索する文字列
 返却値 整数型  出力 Svalue と一致した文字列を Value として
もつ要素の添字
一致する要素がなければ−1

〔プログラム〕

設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。

a に関する解答群

ア First      イ First+1      ウ First−1

エ Listsize     オ Listsize+1      カ Listsize−1

b〜d に関する解答群

ア Current          イ First

ウ List[Current].Next    エ List[First].Next

オ List[Temp].Next      カ Temp

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます

基本情報技術者試験


設問2 図3に示すリストに対して,文字列 'cgi','cpu','dos' の順に探索した 場合,プログラム中の α の部分が実行された直後の List[Temp].value の値を 順に並べたものとして正しい答えを,解答群の中から選べ。

      図3 リスト

解答群

ア cgi,cpu,usb

イ 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 ]