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

平成18年 春期 基本情報技術者 午後 問04
問04   ファイルの領域を確保するプログラム

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

〔プログラム1 の説明〕

関数 CreateFile は,ディスクにファイルの領域を確保するプログラムである。

(1) ディスク上のファイルは,ファイル管理テーブル(以下,FCT という)と ファイル割当テーブル(以下,FAT という)で管理される。

なお,ファイル名は一意である。

(2) ディスクは,クラスタと呼ばれる一定の大きさの領域に区切られる。 クラスタには,1 から始まる番号が順に付けられている。 ファイルは,1 個以上のクラスタを使用する。 複数のクラスタを使用するファイルは,クラスタを連結リストとして。

使うので,必ずしも連続するクラスタを使用するとは限らない。

なお,クラスタの大きさは 1,024 バイトである。

(3) FCT は構造体の配列であり,構造体のメンバとその意味は次のとおりである。


   構造体型: FCT[1000] {
    文字型: Name,          /* ファイル名 */
    日時型: Cdate,         /* 作成日時 */
    整数型: Size,          /* ファイルの大きさ */
    整数型: ClstS          /* 先頭クラスタの番号 */
   }

例えば,第 10 要素のメンバ Name の参照は,FCT[10].Name と表記する。

(4) FAT は,クラスタの使用状況を示す整数型の配列であり, クラスタの状態に応じて,次に示す値が格納されている。

i 番目のクラスタの状態 FAT[i]の値
未使用 0
使用中 ファイルの末尾以外 次のクラスタの番号
ファイルの末尾 −1

(5) FCT と FAT は,ともに大域変数であり,配列の要素番号は 1 から始まる。

(6) FCT と FAT の使用例を,次に示す。 ここで,Name の内容が空文字列の場合は,その配列要素が未使用であることを示す。

(7) 関数 CreateFile がファイルの領域を確保する手順は,次のとおりである。

@ FAT 内を先頭から順番に調べて, 引数で指定されたファイルが格納できる必要最小限の個数のクラスタを確保する。

A FCT 内を先頭から順番に調べて,未使用要素(メンバ Name の内容が空文字列)に情報を記録する。

B FAT 内で必要なクラスタが確保できない場合や,FCT 内に未使用要素がない場合はエラーとする。

(8) 関数 CreateFile の引数と返却値の仕様を次に示す。

引数名/返却値 データ型 入力/出力 意味
FileName 文字型 入力 作成するファイル名
FileSize 整数型 入力 作成するファイルの大きさ(バイト数)
FileSize > 0
返却値 整数型 出力 1 以上のとき先頭クラスタの番号
−1 のときエラー

〔プログラム1〕


 

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

a に関する解答群

ア FileSize ÷ CSIZE

イ FileSize ÷ CSIZE + 1

ウ FileSize ÷ CSIZE − 1

エ (FileSize + CSIZE + 1) ÷ CSIZE

オ (FileSize + CSIZE − 1) ÷ CSIZE

b 〜 d に関する解答群

ア FAT[Idx] ← Idx        イ FAT[Idx] ← Wk

ウ FAT[Idx] ← −1        エ FAT[Wk] ← Idx

オ FAT[Wk] ← Wk         カ FAT[Wk] ← −1

キ Idx ← FAT[Idx]        ク Idx ← FAT[Wk]

ケ Idx ← Wk

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

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

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

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

基本情報技術者試験


設問2 関数 DeleteFile は,ファイルを削除するプログラムである。 次のプログラム2 中の に入れる正しい答えを,解答群の中から選べ。 ただし, には設問1 の正しい答えが入っているものとする。
 関数 DeleteFile の引数と返却値の仕様を次に示す。

引数名/返却値 データ型 入力/出力 意味
FileName 文字型 入力 削除するファイル名
返却値 整数型 出力 0 のとき正常終了
−1 のときエラー

〔プログラム2〕

解答群

ア Idx ≦ CMAX

イ Idx > CMAX

ウ Idx ≦ CMAX and FCT[Idx].Name ≠ FileName

エ Idx ≦ CMAX or FCT[Idx].Name ≠ FileName

オ Idx > CMAX and FCT[Idx].Name ≠ FileName

カ Idx > CMAX or FCT[Idx].Name ≠ FileName

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

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


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]