• 検索結果がありません。

問題1 次の情報表現に関する記述は,コンピュータの勉強を始めたばかりのB君と,かなり詳しく知っているM君の会話である

N/A
N/A
Protected

Academic year: 2021

シェア "問題1 次の情報表現に関する記述は,コンピュータの勉強を始めたばかりのB君と,かなり詳しく知っているM君の会話である"

Copied!
36
0
0

読み込み中.... (全文を見る)

全文

(1)

文部科学省後援

平成27年度前期 情報検定

<実施 平成27年9月13日(日)>

プログラミングスキル

(説明時間 10:00~10:10)

(試験時間 10:10~11:40)

・試験問題は試験開始の合図があるまで開かないでください。

・解答用紙(マークシート)への必要事項の記入は,試験開始の合図と同時 に行いますので,それまで伏せておいてください。 ・試験開始の合図の後,次のページを開いてください。<受験上の注意>が 記載されています。必ず目を通してから解答を始めてください。 ・試験問題は,すべてマークシート方式です。正解と思われるものを1つ選 び,解答欄の をHBの黒鉛筆でぬりつぶしてください。2つ以上ぬりつ ぶすと,不正解になります。 ・辞書,参考書類の使用および筆記用具の貸し借りは一切禁止です。 ・電卓の使用が認められます。ただし,下記の機種については使用が認めら れません。 <使用を認めない電卓> 1.電池式(太陽電池を含む)以外..の電卓 2.文字表示領域が複数行ある電卓(計算状態表示の一行は含まない) 3.プログラムを組み込む機能がある電卓 4.電卓が主たる機能ではないもの *パ ソ コ ン ( 電 子 メ ー ル 専 用 機 等 を 含 む ), 携 帯 電 話 ( P H S ), ス マ ー ト フ ォ ン , タ ブ レ ッ ト , 電子手帳,電子メモ,電子辞書, 翻訳機能付き電卓,音声応答のある電卓,電卓付腕時計等 5.その他試験監督者が不適切と認めるもの

一般財団法人 職業教育・キャリア教育財団

情報システム試験

(2)

<受験上の注意>

1.この試験問題は31ページあります。ページ数を確認してください。 乱丁等がある場合は,手をあげて試験監督者に合図してください。 ※問題を読みやすくするために空白ページを設けている場合があります。 2.解答用紙(マークシート)に,受験者氏名・受験番号を記入し,受験番号下欄の数字 をぬりつぶしてください。正しく記入されていない場合は,採点されませんので十分注 意してください。 3.試験問題についての質問には,一切答えられません。自分で判断して解答してくださ い。 4.試験中の筆記用具の貸し借りは一切禁止します。筆記用具が破損等により使用不能と なった場合は,手をあげて試験監督者に合図してください。 5.試験を開始してから30分以内は途中退出できません。30分経過後退出する場合は,も う一度,受験番号・マーク・氏名が記載されているか確認して退出してください。なお, 試験終了5分前の合図以降は退出できません。試験問題は各自お持ち帰りください。 6.試験後にお知らせする合否結果(合否通知),および合格者に交付する「合格証・認定 証」はすべて,Webページ(PC,モバイル)での認証によるデジタル「合否通知」, デジタル「合格証・認定証」に移行しました。 ①団体宛にはこれまでと同様に合否結果一覧ほか,試験結果資料一式を送付します。 ②合否等の結果についての電話・手紙等でのお問い合わせには,一切応じられませんの で,ご了承ください。

(3)

<問題の構成>

必須問題 全員解答

選択問題 次の問題から1問選択し解答せよ。

(選択した問題は解答用紙「選択欄」に必ずマークすること...............) ※選択欄にマークがなく,解答のみマークした場合は採点を行いません。 問 題 1 ~ 問 題 4 2 ページ~16 ページ ・C言語の問題 18ページ~22ページ ・表計算の問題 23ページ~28ページ ・アセンブラの問題 29ページ~31ページ

(4)

必須問題 問題1 次の二分木に関する記述を読み,各設問に答えよ。 二分木とは,1つの親ノードが最大2つの子ノードを持つデータ構造である。 親 子 子 図1 二分木の構造 二分木を走査する考え方に,幅優先探索と深さ優先探索がある。 幅優先探索は,ノードの深さが同じレベルを走査する。図2のような構造であった 場合,A→B→C→D→E→Fの順に走査される。 B A C D E F 走査開始 走査終了 図2 幅優先探索 深さ優先探索は,ノードを縦方向(深さ)に走査し,行き止まりになったら,後戻 りして別のノードを縦方向に走査する。操作する順序により,次の3つに分けられる。 1.先行順(前順,行きがけ順とも言う) ノード → 左部分木 → 右部分木の順に走査する。 A B C A→B→Cの順に走査 図3 先行順の走査 2.中間順(間順,通りがけ順とも言う) 左部分木 → ノード → 右部分木の順に走査する。 A B C B→A→Cの順に走査 図4 中間順の走査

(5)

3.後行順(後順,帰りがけ順とも言う) 左部分木 → 右部分木 → ノードの順に走査する。 A B C B→C→Aの順に走査 図5 後行順の走査 <設問1> 次の二分木の操作に関する記述中の (1) に入れるべき適切な字句を 解答群から選べ。 B A E C D 図6 二分木 図6の二分木をルートから走査するときの順番を考える。 幅優先探索で考える場合は,A → B → (1) の順に走査される。 深さ優先探索で考えると, 先行順:A → B → (2) 中間順:C → B → (3) 後行順:C → D → (4) の順に走査される。 (1) ~ (4) の解答群 ア.A → D → B イ.B → E → A ウ.C → D → E エ.D → A → E オ.D → B → C カ.E → C → D 必 須 問 題

(6)

<設問2> 二分木を使ったデータ表現に関する記述中の (1) に入れるべき適切 な字句を解答群から選べ。 図7は数式を二分木で表現したものである。深さ優先探索の中間順で走査すると 「A+B」と走査できる。また,深さ優先探索の後行順で走査したものは (5) と なる。 + A B 図7 数式を二分木表現 (5) の解答群 ア.+AB イ.+BA ウ.AB+ エ.BA+

(7)

問題2 次の表探索に関する記述を読み,各設問に答えよ。 [線形探索法の説明] 線形探索法は,1次元配列に対して,先頭要素から順に探索する手法である。配列 中に,探したいデータと等しい値が見つかれば探索を終了し,末尾要素まで探索して も等しい値が見つからないときは,配列中に探したいデータが存在しないことになる。 1次元配列に格納されるデータの並び順は関係ない。 [二分探索法の説明] 二分探索法は,整列済みの1次元配列に対して行われる手法である。ここでは,配 列の大きさは n に,探したいデータは X に,1次元配列は,DAT[0]~DAT[n-1]に昇順 に格納済みとする。 ① 探索範囲の先頭要素の添字を L,末尾要素の添字を H とする。なお,初期値は, L=0,H=n-1 である。 ② 探索範囲の中央要素となる DAT[i]と X を比較する。ただし,i=(L+H)÷2 とし, 小数点以下は切り捨てる。 DAT[i]<X なら,L=i+1 とし,次の探索範囲を,配列の要素位置が i より大きい方 とする。 X 30 L i H DAT 3 ……… 20 ……… 50 ← 次 の 探 索 範 囲 → 図1 比較例1 DAT[i]>X なら,H=i-1 とし,次の探索範囲を,配列の要素位置が i より小さい方 とする。 X 10 L i H DAT 3 ……… 20 ……… 50 ← 次 の 探 索 範 囲 → 図2 比較例2 DAT[i]=X なら,見つかった時の処理をする。 ③ L>H となるまで,②を繰り返す。L>H の場合は,探したいデータ X と同じ値が配 列 DAT に存在しないことになる。

(8)

<設問1> 次の表探索における比較回数に関する記述中の (1) に入るべき適切 な字句を解答群から選べ。 添字 0 1 2 3 4 5 6 7 8 9 DAT 1 3 4 7 9 12 15 18 20 23 図3 1次元配列 DAT の例 線形探索法を用いて,図3の1次元配列から,「23」を探索したときに X と1次元 配列の要素を比較する回数は, (1) 回である。 二分探索法を用いて,図3の1次元配列から,「15」を探索したときに X と1次元 配列の要素を比較する回数は, (2) 回である。 (1) ,(2) の解答群 ア.3 イ.4 ウ.6 エ.7 オ.9 カ.10 <設問2> 次の流れ図の説明を読み,流れ図中の (1) に入るべき適切な字句を 解答群から選べ。 [流れ図の説明] 要素数がn個の1次元配列 DAT[i](i=0, 1, …, n-1)から二分探索法によりデー タを探索する流れ図である。なお,見つかった場合はその位置(添字の値)を,見つか らなかった場合は-1 を,変数 P に設定するものとする。 (3) の解答群 ア.L < H イ.L ≦ H ウ.L > H エ.L ≧ H (4) ,(5) の解答群 ア.H ← i - 1 イ.H ← i + 1 ウ.L ← i - 1 エ.L ← i + 1

(9)

[流れ図] 開 始 探索データをXに 読み込む H ← n – 1 L ← 0 P ← -1 ループ P = -1 かつ の間繰り返す i ← (L + H)÷2 P ← i   ループ 終 了 (3) X : DAT[i] (4) (5) > = < …小数点以下切り捨て

(10)

問題3 次の流れ図の説明を読み,各設問に答えよ。 [流れ図の説明] あるラーメンチェーン店における1日の売上を集計する処理である。 店舗には券売機が設置されており,来店者は券売機で商品のチケットを購入して注 文する。各店舗の売上情報は券売機に蓄積されており,営業終了時間である午後 10 時過ぎに,その日の売上情報を一括で本部に伝送し,夜間バッチ処理により売上累積 に追加する。 なお,商品の単価は全店で同じであり,必ず1日分のデータのみ伝送され,その日 に売り上げが無い商品のデータは伝送されない。 また,新規店舗の開店や既存店の閉店はないものとする。 店舗売上1 店舗売上2 ・・・ 店舗売上n 併合処理1 売上ファイル 整列処理 整列済み 売上ファイル 商品マスタ 突合せ処理 エラー 作業ファイル 集計処理 売上累積 新売上累積 集計ファイル 併合処理2 図1 1日の売上集計作業の流れ

(11)

[各ファイルについて] 店舗売上 店舗から伝送される順編成ファイルで,売上日付,売上時間 の昇順に整列されている。 売上ファイル 各店舗の売上を併合した順編成ファイルである。 整列済み売上ファイル 売上ファイルを整列した順編成ファイルである。 作業ファイル 整列済み売上ファイルに売上金額を付加した順編成ファイル である。売上金額は商品の単価に数量を掛けたものである。 集計ファイル 作業ファイルを商品コード,店舗コードごとに売上金額を集 計した順編成ファイルである。 商品マスタ 商品名と単価を記録している順編成ファイルで,商品コード の昇順に整列されている。なお,同じ商品コードを持つレコー ドは存在しない。 売上累積 商品,店舗,売上日付ごとの売上金額を蓄積するもので,商 品コード,店舗コード,売上日付の昇順に整列済みである。 新売上累積 売上累積と集計ファイルを併合したもので,売上累積と同じ 並びで生成される。 [各ファイルの形式について] 店舗売上,売上ファイル,整列済み売上ファイル 店舗コード 商品コード 数量 売上日付 売上時間 t_tenpo t_code suryo t_hizuke t_jikan 作業ファイル

商品コード 店舗コード 売上日付 売上金額 w_code w_tenpo w_hizuke w_kingaku 集計ファイル

商品コード 店舗コード 売上日付 売上金額 g_code g_tenpo g_hizuke g_kingaku 商品マスタ

商品コード 商品名 単価 m_code m_name tanka 売上累積,新売上累積

商品コード 店舗コード 売上日付 売上金額

(12)

[各処理について] 併合処理 1 店舗の売上を店舗1から店舗nまで,順番に売上ファイルへ出力す る。 整列処理 突合せ処理の準備のため,売上ファイルを整列する。 突合せ処理 売上ファイルと商品マスタを突合せ,売上金額を求めて作業ファイ ルへ出力する。 集計処理 商品コード,店舗コードごとに売上金額を集計し,集計ファイルに 出力する。 併合処理2 売上累積と集計ファイルを併合し,新売上累積ファイルに出力する。 <設問1> 併合処理1の後に生成される売上ファイルのレコードの並び順を解答 群 から選べ。なお,項目名の並び順は,左から第1キー,第2キー,第3キーである。 (1) の解答群 ア.売上日付,売上時間,商品コード イ.売上日付,売上時間,店舗コード ウ.商品コード,売上日付,売上時間 エ.店舗コード,売上日付,売上時間 <設問2> 整列処理の並び替えのキーを解答群から選べ。なお,項目名が複数ある場 合は左から順に第1キー,第2キーとする。 (2) の解答群 ア.商品コード,店舗コード イ.店舗コード ウ.店舗コード,売上日付 エ.店舗コード,商品コード <設問3> 図2は突合せ処理の流れ図である。流れ図中の (1) に入れるべき適 切な字句を解答群から選べ。なお,流れ図中で使用している「最高値」は,システム で表現できる一番大きな値であり,コードとして使用しない。 (3) の解答群

ア.m_code : t_code イ.m_code : 最高値 ウ.t_code : m_code エ.t_code : 最高値 (4) の解答群

ア.w_kingaku ← tanka × suryo イ.w_kingaku ← w_kingaku + suryo ウ.w_kingaku ← w_kingaku + tanka

(13)

整列済み 売上ファイル入力 整列済み売上 ファイルを読む ファイルの終わり 出 口 商品マスタ入力 ファイルの終わり 出 口 m_code ← 最高値 Yes No w_tenpo ← t_tenpo w_code ← t_code w_hizuke ← t_hizuke t_code ← 最高値 商品マスタを読む Yes No 開 始 商品マスタ入力 整列済み売上ファイル 入力 突合せループ m_code ≠ 最高値 または t_code ≠ 最高値 の間繰り返す (3) < > = (4) 作業ファイル出力 整列済み売上ファイル 入力 商品マスタ入力 エラー出力 整列済み売上ファイル 入力 突合せループ 終 了 図2 突合せ処理の流れ図

(14)

<設問4> 図2の流れ図で,エラー出力になる場合を解答群から選べ。 (5) の解答群 ア.数量に数字以外の文字があった イ.整列済み売上ファイルのレコードを読み終えた ウ.商品マスタの商品コードが整列済み売上ファイルの中に見つからなかった エ.整列済み売上ファイルの商品コードが商品マスタの中に見つからなかった <設問5> 図2の流れ図で出力される作業ファイルに関する記述として適切なも の を解答群から選べ。 (6) の解答群 ア.売上金額が0になるデータが含まれる場合もある イ.同じ商品コードの売上金額は合算してから出力される ウ.最高値が出力される エ.作業ファイル中の商品コードは商品マスタに全て存在する <設問6> 次の図3は集計処理の流れ図である。流れ図中の (1) に入れるべき 適切な字句を解答群から選べ。 (7) ,(9) の解答群

ア.0 イ.g_kingaku ウ.gokei エ.w_kingaku

(8) の解答群

ア.gokei ← gokei + g_kingaku イ.gokei ← gokei + w_kingaku ウ.g_kingaku ← g_kingaku + gokei エ.g_kingaku ← g_kingaku + w_kingaku

(15)

作業ファイル入力 ファイルの終わり 出 口  g_tenpo ← old_tenpo  g_code ← old_code  g_hizuke ← old_hizuke  g_kingaku ← gokei w_tenpo ← 最高値 w_code ← 最高値 Yes No 作業ファイルを読む 開 始 作業ファイル入力 集計ループ1 w_tenpo ≠ 最高値 の間繰り返す  old_tenpo ← w_tenpo  old_code ← w_code  old_hizuke ← w_hizuke  gokei ← 0 集計ループ2 w_tenpo = old_tenpo かつ w_code = old_code の間繰り返す (8) 作業ファイル入力 集計ループ2 集計ファイル出力 集計ループ1 開 始 (7) (9) 図3 集計処理の流れ図 終 了

(16)

問題4 次のプログラムの説明および擬似言語の記述を読み,各設問に答えよ。 [プログラムの説明] データが記録されている1次元配列 data の先頭要素から順に目的のデータXを探 索し,見つけた位置を返す関数 senkei である。図の探索の例の場合,目的のデータ Xは 14 であり,配列 data[4]に格納されているので,4を返す。 1次元配列 data の大きさは充分に確保されており,データ数はN個とし,添字は 0から始まる。なお,要素中に存在する目的のデータは1つであり,存在しない場合 は-1 を返す。 0 1 2 3 4 5 6 … N-2 N-1 配列 data 5 12 3 8 14 21 10 … 22 7 ・・・ 先頭要素から順番に比較をし, 目的データと一致した,4を返す。 データX 14 図 探索の例 [擬似言語の記述形式の説明] 記述形式 説明 ○ 手続き,変数などの名前,型などを宣言する ・変数 ← 式 変数に式の値を代入する /* 文 */ 注釈を記述する 条件式 ・処理1 ・処理2 選択処理を示す。 条件式が真の時は処理1を実行し, 偽の時は処理2を実行する。 ■ 条件式 ・処理 ■ 前判定繰り返し処理を示す。 条件式が真の間,処理を実行する。

(17)

[プログラム1] ○senkei(整数型:N, 整数型:data[],整数型:X) ○整数型:k, m /* 配列の中から X を探索する */ k ← 0 ■ k < N ← α data[k] = X ← β ・ (1) ・break /* 繰り返し処理から抜け出す */ ・k ← k + 1 k = N ・ (2) ・return m <設問1> プログラム1中の (1) に入れるべき適切な字句を解答群から選べ。 (1) ,(2) の解答群 ア.m ← -1 イ.m ← 0 ウ.m ← k エ.m ← k + 1 オ.m ← N - 1 カ.m ← N

(18)

<設問2> 次のプログラムの改良に関する記述を読み,プログラム2中の (1) に 入れるべき適切な字句を解答群から選べ。 プログラム1では,繰り返すたびに α と β の比較を行っている。この比較回数を 減らすため,探索前に配列 data の末尾へ目的のデータXを追加して探索を行うよう にしたものがプログラム2である。 [プログラム2] ○senkei(整数型:N, 整数型:data[],整数型:X) ○整数型:k, m /* 末尾に X を追加 */ ・ (3) /* 配列の中から X を探索する */ k ← 0 ■ (4) ・k ← k + 1 k < N ・ (5) ・m ← -1 ・return m (3) ,(5) の解答群 ア.data[0] ← X イ.data[N] ← X ウ.data[N-1] ← X エ.m ← 0 オ.m ← k カ.m ← k + 1 (4) の解答群 ア.data[k] = X イ.data[k] ≠ X ウ.data[N] = X エ.data[N] ≠ X

(19)

< 選 択 問 題 >

選択問題は問題から1つ選択し解答せよ。

選択した問題は必ず,解答用紙「選択欄」にマークすること。

※選択欄にマークがなく,解答のみの場合は採点を行いません。

各構成は以下のとおり。

選択問題

・C言語の問題 18ページ~22ページ ・表計算の問題 23ページ~28ページ ・アセンブラの問題 29ページ~31ページ

(20)

選択問題 C言語の問題 次のC言語プログラムの説明を読み,各設問に答えよ。 [プログラムの説明] ボイヤー・ムーア法により文字列を探索するbm_searchである。 ボイヤー・ムーア法とは,1文字ずつ探索位置を移動しながら判断する方法に対し て,探索位置の移動量をその都度変化させることにより効率化したアルゴリズムであ る。 [ボイヤー・ムーア法について] ボイヤー・ムーア法では,文字列の探索は探索パターンの末尾の文字から1文字ず つ前方に比較する。全ての文字が一致すれば探索パターンが存在したことになるが, 一致しない文字が出現した場合,その文字が探索パターンに含まれている形態により, 次に探索を開始する位置を調整する。 図1の場合は,一致しない位置の探索対象文字列は「Z」であり,探索パターンに 含まれていない。この場合は,一致しない位置に,探索パターンの文字数である4を 加えて次の探索開始位置とする。 一致しない位置 次の探索開始位置 ↓ ↓ 探索対象文字列 X Y Z A B C A B 探索パターン A B C A 探索① A B C A 探索② A B C A 図1 探索パターンに不一致文字が含まれない場合 図2の場合は,最初に比較する探索対象文字列の「C」と探索パターンの「E」は一 致しないが,「C」は探索パターンに含まれている。この場合,「C」は探索パターン内 では末尾から2文字離れているので,一致しなかった位置に2を加えて次の探索開始 位置とする。

(21)

一致しない位置 次の探索開始位置 ↓ ↓ 探索対象文字列 A B C D E F G H 探索パターン C D E 探索① C D E 探索② C D E 図2 探索パターンに不一致文字が含まれる場合 つまり,一致しない文字が見つかった場合に次の探索を開始する位置のために移動 する量は,一致しない文字が探索パターンに含まれていれば探索パターンの末尾から 離れている数で,含まれていなければ探索パターンの文字数で決定する。なお,探索 パターンの中に同じ文字があった場合,値の小さい方を採用する。 例えば,探索パターンが「abac」であれば,移動量は図3のようになる。 文字 a b c その他 移動量 1 2 0 4 図3 移動量 なお,移動量のみを使用すると,無限ループになる場合があるので,それまで調べ た文字数と移動量を比較して大きい方の値を使用する。 図4は,一致しない場所は探索対象文字列が「A」で検索パターンが「X」である。 移動量は「A」が0になるため,0を加えても次の探索開始位置は変化せず,無限ルー プになる。このような場合,一致しない位置まで2文字を調べたので,2を加える。 一致しない位置 次の探索開始位置 ↓ ↓ 探索対象文字列 A A B B 探索パターン X A 探索① X A 探索② X A 図4 無限ループを考慮した探索 選 択 問 題 C 言 語

(22)

[ボイヤー・ムーア法の実装] 次の探索開始位置を求めるために使用する移動量は,あらかじめテーブルに用意し ておく。具体的には,探索パターンの中に出現する文字と,その文字に対する移動量 を対応付けたテーブルである。 該当する文字をテーブルから探索し,対応する移動量と調べた文字数を比較し,大 きい方の値を探索対象文字列の添え字に加えて,次の探索開始位置とする。 なお,本問において,文字と移動量が対応付けられたテーブルは既に作成されてい るものとし,その値を取り出すには関数bm_index を利用する。 [関数の説明] bm_search 関数 引 数:探索対象文字列,探索パターン 機 能:ボイヤー・ムーア法により探索対象文字列の中から探索パターンを探索す る。探索に成功した場合は,その先頭位置を0から始まる整数値で返す。 また,検索に失敗した場合は-1 を返す。 戻り値:探索結果の整数値 max 関数 引 数:整数値,整数値 機 能:2つの整数値のうち,大きい値を返す。同値の場合は2つ目の引数を返す。 戻り値:整数値 bm_index 関数 引 数:文字,整数値 機 能:文字に対応する移動量をテーブルから探索して返す。なお,テーブル中に 文字が存在しない場合は引数の整数値を返す。 戻り値:整数値 ※ bm_index は問題に掲載しない <設問1> 次のプログラム中の に入れるべき適切な字句を解答群から選べ。 [プログラム] #define NOTFOUND (-1)

int bm_search(unsigned char txt[], unsigned char ptn[]) {

0000int t_idx, p_idx, t_len, p_len, i, flg1, flg2, skip, chars;

0000t_len = strlen(txt); /* 探索対象文字列の長さ */

0000p_len = strlen(ptn); /* 探索パターンの長さ */

0000flg1 = 0; /* 探索結果のフラグ初期化 */

(23)

0000while( t_idx < t_len && flg1 == 0) {

00000000p_idx = p_len - 1; /* 探索パターンの添え字初期化 */

00000000flg2 = 0;

00000000while( p_idx >= 0 && flg2 == 0) {

000000000000if (txt[t_idx] == ptn[p_idx]) { 0000000000000000 (1) ; 000000000000} else { 0000000000000000 (2) ; 000000000000} 00000000} 00000000if ( (3) ) { 000000000000flg1 = 1; /* 探索成功 */ 00000000} else { /* 一致しない文字に応じて移動 */

000000000000skip = bm_index(txt[t_idx], p_len); /* 移動量 */

000000000000chars = p_len - p_idx; /* 調べた文字数 */

00000000000 (4) += max(skip, chars); /* 次の探索開始位置の計算 */ 00000000} 0000} 0000if (flg1 == 1) 00000000return (t_idx + 1); 0000else 00000000return NOTFOUND; }

int max(int value1, int value2) { if ( (5) ) return value1; else return value2; } (1) の解答群 ア.t_idx-- p_idx-- イ.t_idx-- p_idx++ ウ.t_idx++ p_idx-- エ.t_idx++ p_idx++ (2) の解答群 ア.flg1 = 1 イ.flg2 = 1 ウ.p_idx = 0 エ.t_idx = 0

(24)

(3) の解答群

ア.p_idx < 0 イ.p_idx > p_len ウ.t_idx < 0 エ.t_idx > t_len (4) の解答群

ア.p_idx イ.p_len ウ.t_idx エ.t_len (5) の解答群

ア.value1 == value2 イ.value1 != value2 ウ.value1 > value2 エ.value1 < value2

<設問2> 次の文字列を bm_search に与えた時,破線で囲まれた命令(次の探索開 始位置の計算)を実行する回数を解答群から選べ。なお,移動量を持つテーブルは, その都度再構築される。 (6) 検索対象文字列 A B A B C A B C D 検索パターン A B C (7) 検索対象文字列 A B C D E F G H I 検索パターン E F G (8) 検索対象文字列 A A C C A A 検索パターン C A (6) ~ (8) の解答群 ア.1 イ.2 ウ.3 エ.4

(25)

選択問題 表計算の問題 次の表計算ソフトの記述を読み,各設問に答えよ。 この問題で使用する表計算ソフトの仕様は下記のとおりである。 COUNTIF 関数 範囲のセルの中で条件に一致するセルの数を返す。 書式:COUNTIF(範囲,条件) IF 関数 条件が真の時に真の場合,偽の時に偽の場合の計算結果や値を返す。 書式:IF(条件式,真の場合,偽の場合) IFERROR 関数 式にエラーが無ければ式の値を,エラーがあればエラー処理の結果を返す。 書式:IFERROR(式,エラー処理) ROUNDUP 関数 指定した桁で値を切り上げる。桁を 0 にすると,小数点以下第 1 位で切り上げる。 書式:ROUNDUP(式または値,桁) ROUNDDOWN 関数 指定した桁で値を切り捨てる。桁を 0 にすると,小数点以下第 1 位で切り捨てる。 書式:ROUNDDOWN(式または値,桁数) SUM 関数 指定した範囲の合計値を求める。 書式:SUM(範囲) VLOOKUP 関数 検索値を左端に含む行を範囲の中から検索し,指定した列位置の値を返す。検索 の型に0を指定すると検索値と完全に一致する値を検索し,1を指定すると検索値 と一致する値がない場合に,検索値未満で一番大きい値を検索する。なお,該当 する行が検索できなかった場合は,エラーになる。 書式:VLOOKUP(検索値,検索範囲,位置,検索の型) 式 =に続けて計算式や関数などを入力する。 選 択 問 題 表 計 算

(26)

アンパサンド(&)演算子 文字列を連結して1つの文字列にする。 セル番地の参照 セル番地に$を付けることで,絶対番地(絶対参照)を表す。 他のワークシートの参照 「ワークシート名!セル番地」とすることで他のワークシートのセルを参照する ことができる。 自動車の販売を行っているJ社では,表計算ソフトを利用して簡易的な見積書を作 成している。営業担当者が必要事項を入力することにより,見積書が作成される。 A B C D E F G 1 2 XXXX年 9月16日 3 № 30201 4 郷 覚 様 5 販売会社  J社K営業所 6 下記の通り御見積申し上げます。 担当者  須藤 わたる 1503 7 8  御見積金額 9 10 11 車種 12 グレード 13 14 15 車体本体価格 2,480,000 ディーラーオプション明細 金額 16 お値引き額 200,000 ロアガーニッシュ フロント 43,200 X 17 車両店頭引渡価格 2,280,000 ロアガーニッシュ サイド 45,000 X 18 ディーラーオプション合計 220,120 ロアガーニッシュ リア 43,200 X 19 オートDナイトミラー 25,000 20 メーカーオプション明細 金額 フロアマット 18,000 X 21 カーナビ B 150,000 ドアバイザー 10,000 22 フォグランプ 80,000 23 ボディーカラー A 50,000 24 25 26 27 小計 184,400 28 点検パック 41,160 29 延長保証マモル 13,000 30 お値引き額 18,440 31 メーカーオプション合計 280,000 ディーラーオプション合計 220,120 32 V 上記お見積もりは XXXX年 9月30日まで有効です ¥2,500,120

御 見 積 書

カルア 図1 「見積書」ワークシート ・日付は,見積書作成日が自動的に表示されるように関数が設定されている。 ・№は,営業所ごとに連番が自動的に設定される。 ・車種とグレード,メーカーオプション,ディーラーオプションは,お客様が希望す るものが入力される。

(27)

・自動車に標準で装備されていない部品等はオプションとして用意されており,自動 車製造時に取り付けるメーカーオプションと,販売店で取り付けるディーラーオプ ションがある。メーカーオプションの金額は,車両本体価格に合算される。 ・セルC16 の「お値引き額」は,営業担当者によって入力される。 ・「点検パック」と「延長保証マモル」は,ディーラーオプションとして入力される。 <設問1> 「見積書」ワークシートの担当者の表示に関する次の記述中の (1) に 入れるべき適切な字句を解答群から選べ。 セル G6 に入力された社員番号を「社員表」ワークシートから検索し,氏名を表示 するため,セル F6 に次の式を入力する。なお,「社員表」ワークシートには 100 行ま でデータが入力されており,セル G6 が未入力であれば空表示にする。また,「社員表」 ワークシート中に社員番号が存在しなければ"ERROR"と表示する。 = (1) A B 1 社員番号 氏  名 2 1008 吾川 聡 3 1013 斉藤 良文 4 1019 福田 浅子 5 1025 工藤 雄三 6 1027 安西 絵美 7 1033 高橋 敬 … … … 100 1941 渡辺 美奈子 図2 「社員表」ワークシート (1) の解答群

ア.IF(G6="", "", IFERROR(VLOOKUP(G6, 社員表!A2:B100, 2, 0), "ERROR")) イ.IF(G6="", IFERROR(VLOOKUP(G6, 社員表!A2:B100, 2, 0), "ERROR"), "") ウ.IF(G6="", "ERROR", IFERROR(VLOOKUP(G6, 社員表!A2:B100, 2, 0), "")) エ.IF(G6<>"", IFERROR(VLOOKUP(G6, 社員表!A2:B100, 2, 0), ""), "ERROR")

<設問2> メーカーオプションの表示に関する次の記述中の (1) に入れるべき 適切な字句を解答群から選べ。 セル B21 以降に入力されたメーカーオプション明細の品名を「メーカーオプション」 ワークシートから検索し,金額を表示するため,セル C21 に次の式を入力し,セル C22 ~C30 まで複写した。なお,「メーカーオプション」ワークシートには 30 行までデー タが入力されており,「メーカーオプション」ワークシート中にオプション品が存在 しなければ空表示にする。 = (2)

(28)

A B 1 品名 金額 2 カーナビ A 120,000 3 カーナビ B 150,000 4 カーナビ C 220,000 5 バックカメラ 30,000 6 15インチアルミホイール4本セット 80,000 7 16インチアルミホイール4本セット 120,000 8 17インチアルミホイール4本セット 150,000 9 エアロセット 200,000 10 フォグランプ 80,000 … … … 30 シートカラー C 38,000 図3 「メーカーオプション」ワークシート また,セル C31 にメーカーオプションの合計金額を求めるため,次の式を入力した。 = SUM(C21:C30) (2) の解答群 ア.IFERROR(VLOOKUP(B21, メーカーオプション!A2:B30, 2, 0), "") イ.IFERROR(VLOOKUP(B21, メーカーオプション!A$2:B$30, 2, 0), "") ウ.IFERROR(VLOOKUP(B21, メーカーオプション!$A2:$B30, 2, 0), "") エ.IFERROR(VLOOKUP(B21, メーカーオプション!$A2:B30, 2, 1), "") <設問3> ディーラーオプションの表示に関する次の記述中の (1) に入れるべ き適切な字句を解答群から選べ。 セル E16 以降に入力されたディーラーオプションの品名を「ディーラーオプション」 ワークシートから検索し,金額を表示するため,セル F16 に次の式を入力し,セル F17 ~F26 まで複写した。なお,「ディーラーオプション」ワークシートには 50 行までデー タが入力されており,「ディーラーオプション」ワークシート中にオプション品が存 在しなければ空表示にする。 = (3) A B C 1 品名 金額 割引パック 2 ロアガーニッシュ フロント 43,200 X 3 ロアガーニッシュ リア 43,200 X 4 ロアガーニッシュ サイド 45,000 X 5 フロントグリル 51,000 X 6 テールゲートスポイラー 29,900 7 エンブレムイルミネーション 29,900 8 ゴールドエンブレム 5,250 9 ドアライニングイルミネーション 32,800 … … … … 50 ドアバイザー 10,000 図4 「ディーラーオプション」ワークシート また,ディーラーオプションには割引が適用される場合がある。「ディーラーオプ ション」ワークシートの「割引パック」に"X"が入力されているものを購入した場合,

(29)

その個数によって割引率が決まる。この商品が3または4個含まれていれば 10%,5 個以上含まれていれば 15%をディーラーオプションの合計金額から割引く。 そこで,対象となるオプション品かをセル G16~G26 に"X"で表示するため,セル G16 に金額を表示するための式と同様の式を入力し,セル G17~G26 まで複写した。なお, 付属品明細ワークシート中に付属品が存在しなければ空表示にする。 ディーラーオプションの割引が適用された場合,セル E30 に「お値引き額」と表示 し,その金額をセル F30 に表示する。割引が適用されない場合は,両方とも空表示に する。 セル E30 には次の式を入力した。 = IF( (4) , "お値引き額", "") セル F30 には次の式を入力した。なお,小数点以下が発生する場合は,「お値引き 額」が大きくなるように整数値に調整する。 = IF(COUNTIF(G16:G26, "X")>4, (5) , IF( (4) , (6) , "")) セル F31 は,値引き額を考慮したディーラーオプションの合計を求める次の式を入 力した。 = IF(E30="", (7) , (7) - F30) (3) の解答群 ア.=IFERROR(VLOOKUP(E16, ディーラーオプション!A2:C50, 2, 0), "") イ.=IFERROR(VLOOKUP(E16, ディーラーオプション!A$2:C$50, 2, 0), "") ウ.=IFERROR(VLOOKUP(E16, ディーラーオプション!$A2:$C50, 2, 0), "") エ.=IFERROR(VLOOKUP(E16, ディーラーオプション!$A2:C50, 2, 1), "") (4) の解答群 ア.COUNTIF(G16:G26, "X")>2 イ.COUNTIF(G16:G26, "X")>3 ウ.COUNTIF(G16:G26, "X")>4 エ.COUNTIF(G16:G26, "X")>5 (5) ,(6) の解答群 ア.ROUNDUP(F27*0.1, 0) イ.ROUNDUP(F27*0.15, 0) ウ.ROUNDDOWN(F27*0.1, 0) エ.ROUNDDOWN(F27*0.15, 0) (7) の解答群 ア.SUM(F28:F30) イ.SUM(F16:F29) ウ.SUM(F27:F29) エ.SUM(F27:F30)

(30)

<設問4> 車体本体価格の表示に関する次の記述中の (1) に入れるべき適切な 字句を解答群から選べ。 セル C15 に車体価格とメーカーオプションを加算した車体本体価格を求める。 車体価格は「価格表」ワークシートから車種とグレードにより検索する。なお,「価 格表の」A 列は,検索に使用するために車種とグレードを結合した文字列である。価 格表に車種とグレードが存在しなければ空表示にする。 また,「価格表」ワークシートには 50 行までデータが入力されている。 = (8) A B C D 1 検索キー 車種 グレード 車体価格 2 MOCOTTOB MOCOTTO B 1,200,000 3 MOCOTTOSパッケージ MOCOTTO Sパッケー 1,360,000 4 MOCOTTOXパッケージ MOCOTTO Xパッケー 1,400,000 5 MワゴンX Mワゴン X 1,500,000 6 MワゴンZ Mワゴン Z 1,650,000 … … … … … 50 スーパースターE スーパースター E 4,700,000 図5 「価格表」ワークシート セル C17 は,車体本体価格から値引き額を引いた値を計算するため,次の式を入力 した。 = C15-C16 セル C18 は,セル F31 の値を参照するため,次の式を入力した。 = F31 セル D8 には見積金額として,セル C17 と C18 の和を計算するため,次の式を入力 した。 = C17+C18 (8) の解答群 ア.IFERROR(VLOOKUP(D11&D12, 価格表!A2:D50, 3, 0) + C31,"") イ.IFERROR(VLOOKUP(D11&D12, 価格表!A2:D50, 3, 0) + F31,"") ウ.IFERROR(VLOOKUP(D11&D12, 価格表!A2:D50, 4, 0) + C31,"") エ.IFERROR(VLOOKUP(D11&D12, 価格表!A2:D50, 4, 0) + F31,"")

(31)

選択問題 アセンブラの問題 次のアセンブラ言語CASLⅡプログラムの説明を読み,各設問に答えよ。 [プログラムの説明] 要素数Nの1次元配列DATを,挿入法により昇順に整列するプログラムである。 配列DATは,DAT+0番地以降に連続して格納済みであり,要素数はN番地に格納済み である。ただし,要素数は,2以上100以下とする。 [挿入法の手順] 1次元配列DATが,DAT+0~DAT+i-1番地まで昇順に整列されているとき,DAT+i番地 の内容を格納すべき位置を見つけて挿入する手順は,次のようになる。なお,iの値 は1~N-1とする。 ① DAT+i番地の内容をwに退避する。 ② jをi-1とする。 ③ DAT+j番地の内容≦wであれば格納すべき位置を見つけたことになる(繰り返し を終了して④へ)。そうでなければ,DAT+j番地の内容をDAT+j+1番地へ格納してj から1を引き,③へ戻る。 ④ wをDAT+j+1番地へ格納する。 DAT+i-1番地まで整列済み DAT+i 番地まで整列する 図 1 挿入法の例(N=10) i 0 1 2 3 4 5 6 7 8 9 3 5 8 10 15 9 1 17 6 12 W 9 i 0 1 2 3 4 5 6 7 8 9 3 5 8 9 10 15 1 17 6 12 選 択 問 題 ア セ ン ブ ラ

(32)

[プログラム] 行番号 ラベル 命令 オペランド コメント 100 ISORT START 110 LD GR1,=1 ; i の設定 120 LOOP1 LD GR0,DAT,GR1 ; W へ退避 130 (1) ; j の設定 140 LOOP2 LD GR3,GR2 150 SUBA GR2,=1 160 (2) ; 整列済範囲の比較終了 170 LD GR4,DAT,GR2 180 CPA GR0,GR4 190 JPL FIND ; 挿入位置見つかる 200 JZE FIND ; 挿入位置見つかる 210 (3) 220 JUMP LOOP2 230 FIND ST GR0,DAT,GR3 240 (4) 250 CPA GR1,N ; i の終了判定 260 JMI LOOP1 270 RET 280 N DS 1 290 DAT DS 100 300 END <設問1> プログラム中の (1) に入れるべき適切な字句を解答群から選べ。 (1) の解答群 ア.LD GR2,=1 イ.LD GR2,=2 ウ.LD GR2,GR0 エ.LD GR2,GR1 (2) の解答群

ア.JMI FIND イ.JMI LOOP1 ウ.JZE FIND エ.JZE LOOP1 (3) の解答群

ア.ST GR0,DAT,GR2 イ.ST GR0,DAT,GR3 ウ.ST GR4,DAT,GR2 エ.ST GR4,DAT,GR3

(33)

(4) の解答群 ア.ADDA GR1,=1 イ.ADDA GR3,=1 ウ.SUBA GR1,=1 エ.SUBA GR3,=1 <設問2> 行番号 140 の命令は,他の命令に置き換えても結果に影響しない。置き換 え可能な命令を解答群から選べ。ただし,ラベル(LOOP2)はそのままとする。 (5) の解答群 ア.LD GR3,=1 イ.LD GR3,=2 ウ.LAD GR3,-1,GR1 エ.LAD GR3,0,GR2 <設問3> 次の実行回数に関する記述を読み,記述中の (1) に入れるべき適切 な字句を解答群から選べ。 1 次元配列 DAT の要素数が 10 の場合,行番号 180 の実行回数を考える。実行回数が 最小となるのは配列が昇順に整列済みの場合であり, (6) 回である。また,実 行回数が最大となるのは配列が降順に整列済みの場合であり, (7) 回である。 (6) ,(7) の解答群 ア.1 イ.9 ウ.10 エ.45 オ.55

(34)
(35)
(36)

参照

関連したドキュメント

うのも、それは現物を直接に示すことによってしか説明できないタイプの概念である上に、その現物というのが、

関係委員会のお力で次第に盛り上がりを見せ ているが,その時だけのお祭りで終わらせて

を高値で売り抜けたいというAの思惑に合致するものであり、B社にとって

世界的流行である以上、何をもって感染終息と判断するのか、現時点では予測がつかないと思われます。時限的、特例的措置とされても、かなりの長期間にわたり

 食品事業では、「収益認識に関する会計基準」等の適用に伴い、代理人として行われる取引について売上高を純

つの表が報告されているが︑その表題を示すと次のとおりである︒ 森秀雄 ︵北海道大学 ・当時︶によって発表されている ︒そこでは ︑五

継続企業の前提に関する注記に記載されているとおり、会社は、×年4月1日から×年3月 31

排出量取引セミナー に出展したことのある クレジットの販売・仲介を 行っている事業者の情報