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

平成28年 秋期 基本情報技術者 午後 問08
問08   必須問題

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

 

 事務計算においては,数値を見やすく表示(印字)するために,例えば3桁ごとに 区切りの“,”を挿入するなどの編集処理がよく行われる。

 関数 Edit は,指定された編集パターンに従って,数値を編集するプログラムである。 表1に,関数 Edit を用いた編集例を示す。例1では,3桁ごとに区切りの“,”を挿入している。 例2では,例1の編集に加え,上位の空いた桁を“*”で埋めている。 例3では,数値の右端から2桁目と3桁目の間に“.”を挿入している。

 

表1 関数 Edit を用いた編集例

 

 ここで,編集パターン中の文字 は, 数字と対応付けされた制御文字を表している。また,“␣”は空白文字を表している。

 

〔プログラムの説明〕

(1) 関数 Edit は,次の形式で呼び出され,二つの引数をもつ。

関数:Edit(文字型:Pattern[], 文字型:Value[])  Pattern[] には,編集パターンの文字列が格納されている。Value[] には, 編集する数値を表す文字列が格納されている。各配列の添字は,0 から始まる。 文字列 Pattern[] の i 番目の文字は Pattern[i−1] と表記する。 文字列 Value[] についても同様である。

(2) Pattern[] は,1文字以上から成る文字列であって,表示可能な図形文字及び 制御文字( )から構成される。

(3) Value[] は,数値を表す文字列であって,数字“0”〜“9”の並びの後に, 数値が正又は 0 なら“+”を,負なら“-”を付加した形式である。数字の個数は, Pattern[] 中の文字 の個数と一致するように, 必要であれば前方に“0”を付加する。 例えば,Pattern[] の内容が のとき,Value[] には, 数値が 123 なら“00123+”,0 なら“00000+”,−123 なら“00123-”を指定する。

(4) 関数 Edit は,Value[] で与えられた数値を Pattern[] に従って編集し, 編集結果で Pattern[] を置き換える。

〔編集方法〕

 Pattern[] 中の各文字について,先頭から順に1文字ずつ,次の@〜Bのいずれか一つの操作を実行していく。

 @ 関数 Edit が呼び出されたときの Pattern[] 中の先頭の文字(以下,fill 文字という)で置き換える。

 A Value[] 中の対応する桁の数字で置き換える。

 B 置き換えないで,そのまま残す。

(5) 論理型変数 signif は,on 又は off の値を取る。この変数の実行開始時の値は off であり, Value[] 中に最上位から“0”が連続した後に“0”でない数字が見つかると on になる,などの使い方をする。

(6) 関数 Edit が呼び出されるとき,各引数には正しい値が設定されているものとする。

 

〔プログラム〕

 

表2 現在の変数・配列要素の内容に応じた更新処理

 

設問1  次の記述中の に入れる正しい答えを,解答群の中から選べ。

 

 引数 Pattern[] 及び Value[] に幾つかのデータを与えて,関数 Edit を実行した結果を,表3に示す。

 

表3 関数 Edit の実行結果

 

a に関する解答群 ア “*******#”      イ “********”

ウ “******Ø#”      エ “******Ø*”

 

b,c に関する解答群 ア “*****12#”      イ “*****12*”

ウ “****.12#”      エ “****.12*”

オ “***Ø.12#”      カ “***Ø.12*”

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

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

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

基本情報技術者試験


設問2  次の記述中の に入れる正しい答えを,解答群の中から選べ。

 

 プログラム中の破線で囲んだ部分の処理(表2のケース1〜7の処理)を, 詳細なプログラムとして記述すると,次のようになる。

 

 

d,e に関する解答群 ア "1" ≦ Value[v] and Value[v] ≦ "9"      イ Value[v] = "Ø"

ウ Value[v+1」= "-"       エ Value[v+1] = "+"

オ Value[v+1] ≠ "-"       カ Value[v+1] ≠ "+"

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

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

基本情報技術者試験


設問3  次の記述中の に入れる正しい答えを,解答群の中から選べ。

 

 関数 Edit では,例えば,fill 文字を “␣”とする編集パターンを 指定することによって,数値が正なら“␣␣1,234␣”, 負なら “␣␣1,234-”と編集することができる。 表2のケース1〜7のうち,数値が正なら数値の後に続く文字を fill 文字で置き換えるために 用意されたケースは である。

 

f に関する解答群 ア 2, 4 及び 7      イ 3, 5 及び 7

ウ 4 及び 7       エ 5 及び 7

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


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