![]()
平成18年 秋期 基本情報技術者 午後 問04
問04 タブ文字を展開するプログラム次のプログラムの説明及びプログラムを読んで,設問1,2に答えよ。
〔プログラム1の説明〕 副プログラム TabSpc1 は,タブ文字を展開するプログラムである。 (1) TabSpc1 は,文字型配列 Src を先頭から調べ,Src 中のすべてのタブ文字を それぞれ一つ以上の間隔文字(スペース)に置換して,文字型配列 Dst に格納する 。 タブ文字以外の文字は,そのままDstに格納する。 (2) 文字型配列の各要素には,文字を1文字ずつ順に格納し, 最後の文字の次の要素にはシステム定数である EOS を格納する。 なお,配列の添字は1から始まり,添字の値を文字位置と呼ぶ。 (3) Src 中にタブ文字が出現した場合,次の文字が最も近い右のタブ位置に格納されるように, タブ文字を一つ以上の間隔文字に置換して,Dst に格納する。 ここで,タブ位置とは,引数で渡されるタブ間隔(≧ 2 )を用いた次の式で計算される文字位置である。 タブ位置 = タブ間隔 × n + 1 ( n = 1,2,… ) (4) タブ間隔が4のときの実行例を図1に示す。 “j”を Dst のタブ位置である文字位置 13(= 4 × 3 + 1 )に格納したのでは, タブ文字が間隔文字に置き換わらないので,最も近い右のタブ位置で ある文字位置 17(= 4 × 4 + 1 )に格納する。
注 TABはタブ文字を,▼はタブ位置を,△は間隔文字を表す。 図1 タブ間隔が4のときの TabSpc1 の実行例 (5) Dst は十分に大きいものとする。 (6) 副プログラム TabSpc1 の引数の仕様を表1に示す。
〔プログラム1〕
設問1 プログラム1中の
a に関する解答群 ア Didx + 1 イ Didx − 1 ウ Didx + TabGap + 1 エ Didx + TabGap − 1 b,c に関する解答群 ア Didx ← Didx + 1 イ Dst[Didx] ← Src[Sidx] ウ Dst[Didx + 1] ← Src[Sidx] エ Dst[Didx] ← Src[Sidx + 1]
設問2 プログラム1を改造して,タブ位置を任意の文字位置に指定できるような プログラム2を作成した。 ただし,タブ位置は2以上の値で,隣り合うタブ位置の間隔も2以上とする。 タブ位置は引数で渡される整数型配列 TabSet に昇順に格納され,最後のタブ位置が 格納された次の配列要素には −1が格納されている。 なお,最後のタブ位置以降にタブ文字が出現した場合は,一つの間隔文字に置換する。 図1と同じ動作をさせる場合の TabSet の内容を図2に, プログラム2に示す副プログラム TabSpc2 の引数の仕様を表2に示す。
プログラム2中の
表2 TabSpc2 の引数の仕様
〔プログラム2〕
d,e に関する解答群 ア TabPos ← TabSet[Tidx] イ TabPos ← TabSet[Tidx] + Didx ウ TabPos ← TabSet[Tidx] − Didx エ Tidx ← Didx + 1 オ Tidx ← TabPos + 1 カ Tidx ← Tidx + 1
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||||||||||||||||||||||||||||