令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf

情報システム試験

文部科学省後援

令和４年度前期 情報検定＜実施

令和4年9月11日（日）＞プログラミングスキル（説明時間

10：00～10：10）（試験時間

10：10～11：40）

・試験問題は試験開始の合図があるまで開かないでください。
・解答用紙（マークシート）への必要事項の記入は，試験開始の合図と同時に行いますので，それまで伏せておいてください。
・試験開始の合図の後，次のページを開いてください。＜受験上の注意＞が記載されています。必ず目を通してから解答を始めてください。
・試験問題は，すべてマークシート方式です。正解と思われるものを１つ選
び，解答欄のをＨＢの黒鉛筆でぬりつぶしてください。２つ以上ぬりつ

ぶすと，不正解になります。
・辞書，参考書類の使用および筆記用具の貸し借りは一切禁止です。
・電卓の使用が認められます。ただし，下記の機種については使用が認められません。
＜使用を認めない電卓＞．．
１．電池式（太陽電池を含む）以外 の電卓
２．文字表示領域が複数行ある電卓（計算状態表示の一行は含まない）
３．プログラムを組み込む機能がある電卓
４．電卓が主たる機能ではないもの＊パ ソ コ ン （ 電 子 メ ー ル 専 用 機 等 を 含 む ）， 携 帯 電 話 （ Ｐ Ｈ Ｓ ），ス マ ー ト フ ォ ン ， タ ブ レ ッ ト ， 電子手帳，電子メモ，電子辞書，
翻訳機能付き電卓，音声応答のある電卓，電卓付き腕時計，時 計 型
ウェアラブル端末等
５．その他試験監督者が不適切と認めるもの

一般財団法人

職業教育・キャリア教育財団

1
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf＜受験上の注意＞
１．この試験問題は35ページあります。ページ数を確認してください。
乱丁等がある場合は，手をあげて試験監督者に合図してください。
※問題を読みやすくするために空白ページを設けている場合があります。
２．解答用紙（マークシート）に，受験者氏名・受験番号を記入し，受験番号下欄の数字
をぬりつぶしてください。正しく記入されていない場合は，採点されませんので十分注意してください。
３．試験問題についての質問には，一切答えられません。自分で判断して解答してください。
４．試験中の筆記用具の貸し借りは一切禁止します。筆記用具が破損等により使用不能となった場合は，手をあげて試験監督者に合図してください。
５．試験を開始してから30分以内は途中退出できません。30分経過後退出する場合は，もう一度，受験番号・マーク・氏名が記載されているか確認して退出してください。なお，
試験終了５分前の合図以降は退出できません。試験問題は各自お持ち帰りください。
６．試験後の合否結果（合否通知），および合格者への「合格証・認定証」はすべて，Ｗｅｂ認証で行います。
①情報検定（J検）Webサイト合否結果検索ページ及びモバイル合否検索サイト上で，ディジタル「合否通知」，ディジタル「合格証・認定証」が交付されます。
②団体宛には合否結果一覧ほか，試験結果資料一式を送付します。
③合否等の結果についての電話・手紙等でのお問い合わせには，一切応じられませんので，ご了承ください。

2
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf＜問題の構成＞
必須問題

全員解答

問
題
１
～
問
題
４

2 ページ～17 ページ

選択問題

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

．．．．．．．．．．．．．．．
（選択した問題は解答用紙「選択欄」に必ずマークすること ）※選択欄にマークがなく，解答のみマークした場合は採点を行いません。

・Ｃ言語の問題19 ページ～ 24 ページ

・表計算の問題25 ページ～ 32 ページ

・アセンブラの問題

33 ページ～ 35 ページ

1
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
必須問題
問題１

次のリスト構造に関する記述を読み，各設問に答えよ。

リスト構造とはデータ構造の一つであり，データとデータの格納場所を示すポインタから構成されている。ポインタを利用することでデータの追加，削除などを簡単に行えることが特徴である。
＜設問１＞

次のリスト構造のデータ探索に関する記述中の(1)に入れるべき適

切な字句を解答群から選べ。
［リスト構造］
リスト構造が図１の状態である場合，次の手順でデータ探索するプログラムを考え
る。

図1

リスト構造

Start に先頭ポインタの値として 0 が格納されている。アドレス 0 のデータを参照
すると 1 と SSD が格納されている。ここで，1 は次へのポインタの値であり，SSD はアドレス 0 に格納されているデータである。データを探索する場合は，格納されているデータと探索したいデータを照合し，一致していた場合は格納場所を返すものとする。一致していない場合は，ポインタが指し示す次のデータを参照する。これをデー
タが一致する，またはポインタの値が-1 になるまで繰り返す。
ここで HDMI を探索したいデータとした場合，返却される値は

(1)

である。

(1)

に入れるべ

(1) の解答群
ア．－1

イ．0

ウ．1

エ．2

オ．3

カ．4

＜設問２＞

次のリスト構造のデータ参照順序に関する記述中のき適切な字句を解答群から選べ。
探索対象データが見つかった場合に，リストの先頭に一致したデータを再配置する
場合を考える。例えばリストが図１の状態から HDD を探索した場合，探索したいデー
タである HDD はリスト内に存在するため，ポインタを操作することで HDD をリストの先頭に移動することができる。移動した結果が図２の状態である。

2
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf

必
須
問
題
図2

再配置後のリスト構造

再配置が完了した状態で，Start が指し示すポインタの値から順番にポインタが指し示す格納場所をたどっていくと HDD → SSD →USB →HDMI →DVI の順番にアクセスできる。
次に，図１の状態から USB を探索した場合，Start の値を
ト の USB の ポ イ ン タ の 次 の ポ イ ン タ を
ス

(4)

(3)

(2)

に変更し，リスに変更する。最後に，アドレの次のポインタを 3 に変更する必要がある。すべての変更を終え，Startが指し示すポインタの値から順番にポインタにアクセスしていくと

(5)

の順番

にアクセスできる。
また，図１の状態から HDMI を探索して並べ替え，並べ替えデータをもとに HDD を探索して並べ替えた場合を考える。すべての変更を終え，Start が指し示すポインタの値から順番にポインタをたどっていくと(6)の順番にアクセスできる。

(2) ～ (4) の解答群
ア．－1

イ．0

ウ．1

エ．2

オ．3

カ．4

(5) の解答群
ア．HDD

→

SSD

→

USB

→

HDMI

→

DVI

イ．HDMI

→

USB

→

HDD

→

SSD

→

DVI

ウ．USB

→

HDD

→

SSD

→

DVI

→

HDMI

エ．USB

→

SSD

→

HDD

→

HDMI

→

DVI

ア．HDD

→

HDMI

→

SSD

→

USB

→

DVI

イ．HDD

→

USB

→

HDMI

→

SSD

→

DVI

ウ．HDMI

→

HDD

→

SSD

→

USB

→

DVI

エ．HDMI

→

USB

→

HDD

→

SSD

→

DVI

(6) の解答群

3
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
問題２次の挿入法によるデータの整列に関する説明を読み，各設問に答えよ。
１次元配列 h[0]～h[4]までデータが格納済みである。このデータに対して挿入法により降順に整列する流れ図である。次に示す「挿入法の手順」を m が 1～4 まで繰り返すことにより整列が完了する。
［挿入法の手順］
h[0]～h[m－1]まで降順に整列されているとき，h[m]を格納すべき位置を見つけて挿入する手順は，次のようになる。
①

h[m]の内容をwに退避する。

②

kをm－1とする。

③

h[k]の内容がw以上であれば，格納すべき位置を見つけたことになるので④に進む。そうでなければ，h[k]の内容をh[k＋1]へ格納してkから1を引き，③へ戻る。

④ wをh[k＋1]へ格納する。
＜設問１＞

挿入法による処理が進行中の図１の状態で空欄に入れるべき適切な字句を解答群から選べ。
配列 h の初期値
添字→
配列 h

0
18

1
28

2
32

3
21

4
25

0
28

1
18

2
32

3
21

4
25

m＝1 のとき
添字→
配列 h

整列済み部分h[1]を挿入

未整列部分

m＝2 のとき
添字→
配列 h

0

1

2
(1)

3

2
(2)

3

2
25

3
21

4
h[2]を挿入

m＝3 のとき
添字→
配列 h

0

1

4
h[3]を挿入

m＝4 のとき
添字→
配列 h

0
32
図１

4
プログラミングスキル

1
28

4
18

挿入法による処理が進んでいく過程

h[4]を挿入令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf(1) ，(2) の解答群
ア．

32

21

18

25

28

イ．

32

25

21

18

28

ウ．

32

25

18

21

28

エ．

32

25

18

28

21

オ．

32

28

18

21

25

カ．

32

28

21

18

25

＜設問２＞

図２の挿入法を用いた流れ図中の(1)に入れるべき適切な字句を解答群から選べ。
(3) の解答群
ア．h[k－1]：h[k]イ．h[k]：w

ウ．h[m]：w

イ．k ← k－1

ウ．k ← k＋1

イ．h[k＋1] ← w

ウ．h[m] ← w(4) の解答群
ア．k ← 1
(5) の解答群
ア．h[k] ← w

5プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf

開

始

m ← 1
挿入ループ１m＜5 の間繰り返すk ← m － 1
w ← h[m]sw ← 0
挿入ループ２k≧0 かつ sw＝0の間繰り返す≧(3)＜h[k＋1] ← h[k]sw ← 1(4)

挿入ループ２(5)m ← m ＋ 1

挿入ループ１
終了

図２

6
プログラミングスキル

挿入法を用いた流れ図

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
問題３

次の文字列の操作に関する記述を読み，各設問に答えよ。
配列 str に格納された文字列(以下，str)から，配列 del に格納された文字列(以下，del)を削除する処理を考える。なお，文字列は配列の１要素に 1 文字ずつ格納されており，配列の要素位置は 0 から始まる。
削除する処理は，str から del を検索し，検索できた位置より後にある文字を前方へ移動することで行う。この時，空いた位置には空白文字（以下，□で表す）を設定するものとする。
del X Y
str A B X X Y Z P V

削除前A B X Z P V □ □ 削除後

図１

文字列を削除する［文字列の検索について］
str の各位置において，del が出現しているかどうかを調べる。
str と del を要素位置の小さい方から 1 つずつ順番に比較し，del の最後の文字まで一致していれば検索できたことになる。途中で文字の不一致があれば，str の検索を開始した位置から 1 つ後に移動して比較を再開する。
0 1 2 3 4 5 6 7
str A B X X Y Z P V
0 1
del X Y… str[0]とdel[0]で不一致… str[1]とdel[0]で不一致

X Y
X Y
X Y

… str[2]とdel[0]は一致、
str[3]とdel[1]で不一致… delの最後まで一致

strの位置をずらしながらdelと比較

図２
＜設問１＞

文字列を検索する流れ

次の文字列検索に関する記述中のに入れるべき適切な字句を解答群から選べ。
図 ２ の 破 線 で 囲 ま れ た 部 分 で は ， str[2]と del[0]は 一 致 し て い る た め str[3]とdel[1]の比較を行っている。str[3]と del[1]は不一致のため，次の検索は検索を開始
した位置から１つ移動した位置からとなる。つまり，(1)の比較から検索を再開する。再開時を考慮すると，str の添字は検索開始位置をどのように保持するかを考えなければならない。

7
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf(1）の解答群
ア．str[3]と del[0]イ．str[3]と del[1]ウ．str[4]と del[0]エ．str[4]と del[1]＜設問２＞

次の文字列検索の流れ図に関する記述を読み，流れ図中のに入れるべき適切な字句を解答群から選べ。
［文字列検索の流れ図（find）に関する説明］
str に格納された文字列から del に格納された文字列を検索し，検索ができた場合
は str の開始位置を，検索できなかった場合は－1 を返す。また，検索文字列が str
内に複数現れる場合は最初の文字列の情報を返却する。なお，str の文字数は sLen，del の文字数は dLen に設定されている。図３の実行例では，1 を返却する。
0

1

2

3

4

5

6

7

8

A

B

C

A

B

C

X

Y

Z

0

1

B

C

返却値

１

str

del

dLen＝2

図３

文字列検索の実行例(2) の解答群
ア．p ＝ －1

イ．p ≠ －1

ウ．p ＞ 0エ．p ≧ 0(3) の解答群
ア．k ＞ 0イ．k ＞ 1ウ．k ＜ dLen

エ．k ＜ sLen(4) の解答群
ア．i ← i ＋ 1

イ．i ← i ＋ k

ウ．k ← k ＋ 1

エ．k ← k ＋ i(5) の解答群

8
プログラミングスキル

sLen＝9ア．sw ： 0

イ．sw ： 1

ウ．k ： sLen

エ．k ： sLen － 1

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf(6) の解答群
ア．i ← i ＋ 1

イ．i ← i ＋ p

ウ．p ← iエ．p ← i ＋ 1［流れ図］
find( )p ← －1i ← 0
strを超えない
位置まで検索するが途中で検索ができたら終了

検索ループ
i ≦ sLen － dLen かつの間繰り返す
(2)

k
sw

← 0
← 0

比較処理
sw ＝ 0 かつの間繰り返すdelの最後まで比較するが途中で不一致になれば繰り返しを止める(3)

str[i＋k]:del[k]

≠

不一致の
時の処理

＝
(4)

sw

比較処理

1

delの最後まで一致したかを
判定する

≠

(5)
検索ができ
た時の処理

←

＝
p

←

i

(6)

検索ループ

pを返す
exit

図４

find の流れ図

9
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf＜設問３＞

次の文字列削除に関する記述中のに入れるべき適切な字句を解答群から選べ。なお，str の文字数は sLen，del の文字数は dLen に設定されている。
図５の実行例では，str 中に del が検索できた位置は 1 である。

str

0

1

2

3

4

5

6

7

8

A

B

C

A

B

C

X

Y

Z

sLen＝9

p

del

0

1

2

B

C

A

dLen＝3
図５

find の実行例検索できたならば，削除処理を行うために配列内の文字を移動する。図５の実行例
では，str[1]に(7)が格納され，str[2]へ(8)が格納されるように移動する。この移動は，str[5]への格納まで続け，str[6]～str[8]へは空白文字を格納する。
(7) ，(8) の解答群
ア．str[3]＜設問４＞

イ．str[4]ウ．str[5]エ．str[6]次の文字列削除の流れ図に関する記述を読み，流れ図中のに入れるべき適切な字句を解答群から選べ。
［文字列削除の流れ図に関する説明］
str に格納された文字列から del に格納された文字列を削除する。
str から del を検索する処理は，図４の find を使用する。また，str に del が複数存在する場合は，全て削除する。
なお，str の文字数は sLen，del の文字数は dLen に設定されており，実行後の sLen
は空白文字を含めない削除後の文字数にする。
実行前

実行後

str

A

B

del

B

C

str

A

A
図６

10
プログラミングスキル

C

A

B

C

X

Y

Z

sLen＝9dLen＝2

X

Y

Z

□

□

□

文字列削除の実行例□

sLen＝5令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
［流れ図］
開
p

←

始
find( )

最初の文字列を検索

削除ループ
p ＞ 0 の間繰り返す
移動処理
p ＋ dLen ＜ sLenの間繰り返す検索した文字列より後の文字をを全て移動
全て移動

1文字の移動(9)str[p + dLen] ← '□'
p

←

p

＋ 1

移動処理
sLenの調整

(10)
次の検索

p

←

find( )

削除ループ

終

図７

了

文字列削除の流れ図(9) の解答群
ア．str[p] ← str[dLen]

イ．str[p] ← str[p－1]ウ．str[p] ← str[p＋1]エ．str[p] ← str[p＋dLen](10) の解答群
ア．sLen ← sLen － 1

イ．sLen ← sLen ＋ 1

ウ．sLen ← sLen － p

エ．sLen ← sLen － dLen

11
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
問題４

次のハフマン符号の説明を読み，プログラム中の(1)に入れるべき適切な字句を解答群から選べ。
［ハフマン符号の説明］
ハフマン符号は，文字列の可逆圧縮などに用いられるものである。文字の出現頻度に応じて，頻度の高い文字には短い符号を，頻度の低い文字には長い符号を割り当てることによって文字列全体を圧縮する方法である。

［プログラムの説明］
ここでは，ハフマン符号の生成を関数 Huffman で，次の手順により行う。
Ⅰ．文字列(in_data[])中の文字の出現回数を求める。
文字列が，“ABBBCDAABBBBBBBBBCDD”文字列の長さ(in_len)が 20 の場合，出現文
字は 4 種類(m_len)，表１のような出現回数となる。
表１

各文字の出現回数

文字

A

B

C

D

出現回数

3

12

2

3

Ⅱ．出現回数の低い方から文字を二つ選び，それらを葉とする２分木(ハフマン木)を作成し，親となる節には葉の出現回数の合計を記述する。出現回数の低い方を左側の葉とし，節の値が同じ時の順序は，並べ替える直前の順序に従う。
5
C

図１

C
A
A

最初の２分木

次に，残った文字と追加した節の出現回数の中から同様に出現回数の低い二つを選び２分木を作成し，その出現回数の合計を新しい親に記述する。
8
D

5
C

図２

A

次の２分木

これらの操作を，すべての文字が一つの２分木に組み込まれるまで繰り返す。

12
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
Ⅲ．ここでは，２分木の左の枝に "0" 右の枝に "1" を割り当てる。文字が格納された葉にたどりつくまで繰り返し，枝の数字を並べたもの(ビット列)が，その文字に割り当てられたハフマン符号となる。

20

0

1

8

B

0

1

D

5

1

0
C

図３
表２

A
A

完成した２分木

データの文字とハフマン符号
文字

ハフマン符号

Ａ

011

Ｂ

1

Ｃ

010

Ｄ

00

なお，図３の２分木の要素を配列で表現すると，次のようになる。配列の初期値
は，文字の場合は空白，数字の場合は－1 とし，各配列の添字は 0 から始まる。
要素番号

→

0

1

2

3

文字：moji[]

A

B

C

D

出現回数：m_cnt[]

3

12

2

3

※

4

5

6

5

8

20

要素番号 4 からは，親の値となる

節の親の要素番号：parent[]

4

6

4

5

5

6

-1

節の左側の子の要素番号：left[]

-1

-1

-1

-1

2

3

5

節の右側の子の要素番号：right[]

-1

-1

-1

-1

0

4

1

図４

図３の２分木の配列

13
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf［擬似言語の記述形式の説明］
記述形式

説明

○

手続き，変数などの名前，型などを宣言する。

・変数 ← 式

変数に式の値を代入する。

/* 文 */

注釈を記述する。

▲

選択処理を示す。

条件式
・処理１

条件式が真の時は処理１を実行し，偽の時は処理２を実行する。

・処理２
▼
■

条件式

前判定繰り返し処理を示す。

・処理

条件式が真の間，処理を実行する。

■［演算子と優先順位］
演算の種類

演算子

単項演算

＋, －, not

乗除演算＊, ／, ％

加減演算

＋, －

関係演算

＞, ＜, ≧, ≦, ＝, ≠

論理積

and

論理和

or

注記

14
プログラミングスキル

優先順位
高

低

整数同士の除算では，整数の商を結果として返す。％演算子は剰余算を表す。

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf［プログラム］〇Huffman( 文字型配列：in_data[]，moji[]，
整数型配列：m_cnt[]，node[], parent[], left[], right[],
整数型：in_len )〇整数型：k, m, m_len, cnt, kosu, first, second/* node は親が生成されていない節の要素番号を格納する *//* 出現文字ごとの回数を求める */・k ← 0・m_len ← 0■ k ＜ in_len
・m ← 0■ m ＜ m_len▲ moji[m] ≠ in_data[k]/* 以前に出現している文字か？ */・m ← m ＋ 1
・break/* 繰り返しを抜ける */▼■▲ m ＝ m_len
・moji[m] ← in_data[k]・/* まだ出現していない文字なら，格納する */(1)

・m_len ← m_len ＋ 1
・m_cnt[m] ← m_cnt[m] + 1
▼
・

(2)

■
/* ハフマン木を作成する */・cnt ← m_len
・kosu ← tree( m_len, parent, node, m_cnt )■ kosu ≧ 2/* 親が作成されていない文字が二つ以上ある */・first ←(3)/* 一番目に少ない値をもつ要素番号 */・second ←(4)/* 二番目に少ない値をもつ要素番号 */・m_cnt[m_len] ← m_cnt[first] ＋ m_cnt[second] /* 子の値の合計 */・left[m_len] ← first・right[m_len] ← second
・parent[first] ← m_len/* 子に親の節の要素番号を格納 */・parent[second] ← m_len/* 子に親の節の要素番号を格納 */・m_len ← m_len ＋ 1
・kosu ← tree( m_len, parent, node, m_cnt )■15
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf/* ハフマン符号を作成 */・k ← 0■ k ＜ cnt
・moji[k]を出力する
・out_bit( k, parent, left )/* 各文字のビットを出力する */・k ← k ＋ 1■/* 親が抽出されていない節の抽出 */○tree( 整数型：m_len, 整数型配列：parent[], node[], m_cnt[] )○整数型：i, kosu
・kosu ← 0・i ← 0■ i ＜ m_len▲ parent[i] ＜ 0/* 親が作成されていないか？ */・node[kosu] ← i・kosu ← kosu ＋ 1▼
・i ← i ＋ 1■
・n_sort( kosu, node, m_cnt )・return kosu/* 親が抽出されていない節に対する出現回数を昇順に整列 */○n_sort( 整数型：kosu, 整数型配列： node[], m_cnt[] )○整数型：j, k, work・k ← 0■ k ＜ kosu － 1
・j ← k ＋ 1■ j ＜ kosu
▲ m_cnt[node[k]] ＞ m_cnt[node[j]]・work ← node[k](5)▼・j ← j ＋ 1■
・k ← k ＋ 1■

16
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf/* ビットの出力をする */○out_bit( 整数型 x, 整数型配列：parent[], left[] )▲ parent[x] ≧ 0・out_bit( parent[x], parent, left )▲ left[parent[x]] ＝ x・"0" を出力する
・"1" を出力する▼▼(1) の解答群
ア．m_cnt[m] ← 0

イ．m_cnt[m] ← 1

ウ．m_cnt[m] ← m_cnt[m] - 1

エ．m_cnt[m] ← m_cnt[m] ＋ 1(2) の解答群
ア．k ← k － 1

イ．k ← k ＋ 1

ウ．k ← k ＋ ｍエ．k ← ｍ(3) ，(4) の解答群
ア．node[0]イ．node[1]ウ．node[kosu]

エ．node[m_len](5) の解答群
ア．・node[j] ← node[k]イ．・node[k] ← node[j]・node[k] ← work
ウ. ・node[k] ← work・node[j] ← work
エ. ・node[j] ← work・node[j] ← node[k]・node[k] ← node[j]17
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf＜ 選 択 問 題 ＞
選択問題は問題から１つ選択し解答せよ。
選択した問題は必ず，解答用紙「選択欄」にマークすること。
※選択欄にマークがなく，解答のみの場合は採点を行いません。

各構成は以下のとおり。

選択問題

18
プログラミングスキル

・Ｃ言語の問題19 ページ～ 24 ページ

・表計算の問題25 ページ～ 32 ページ

・アセンブラの問題

33 ページ～ 35 ページ

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
選択問題

C言語の問題

次のクイックソートに関する記述を読み，各設問に答えよ。
［クイックソートについて］
ソートアルゴリズムの中でも高速な処理が期待できるものであり，最善計算量および平均計算量は他のソートアルゴリズムと比べて最も高速である。ただし，データの並びによっては高速に並べ替えができない場合があり，その時の計算量は選択法ソー

選
択
問
題

トと同程度になる。なお，この問題で扱うデータは整数値であり，昇順に並べ替える
ものとする。

Ｃ
言語［クイックソートの考え方］
クイックソートでは，配列内から基準値(以下，ピボット)を選択し，ピボットより小さい値と大きい値に分割する作業を，分割したそれぞれの配列領域で繰り返す。すべての分割が終了すれば各配列領域の要素数が１になり，並べ替えは完了する。
3

5

4

2

6

ピボット4で分割
3

2

4

ピボット3で分割
2

5

6

ピボット5で分割
3

4

5

6

ピボット5で分割
5

図１

6

クイックソートの流れ［クイックソートの効率化］
クイックソートでは，分割した結果で左側または右側にだけ要素が片寄ってしまう
場合に効率が悪いことがわかっている。最も効率が良いのは，データを順番に並べた
時の中央にある値（以下，メジアン）をピボットにすることであるが，ここでは分割する配列領域の先頭，中央，末尾の３要素を順番に並べたときのメジアンをピボットにする。例えば，配列領域の先頭の値が 3，中央の値が 1，末尾の値が 8 であれば，ピボットは 3 である。

19
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf＜設問１＞

次のプログラムの説明を読み，プログラム中のに入れるべき適

切な字句を解答群から選べ。
［プログラムの説明］
引数で受け取った３つの整数値からメジアンを返却する関数 median である。
［関数の説明］
median 関数
引

数：x，y，z(整数値)機

能：x，y，z の中からメジアンを返却する

戻り値：メジアン［プログラム］
int median(int x, int y, int z) {0000int max, min, res;0000/* x と y の大きい方を max，小さい方を min に設定 */0000if (x > y) {00000000max = x;00000000min = y;0000} else {
00000000max = y;00000000min = x;0000}
0000/* z と max，min を比較してメジアンを res に設定する */0000if (z > max) {00000000(1);0000} else if (z > min) {00000000(2);0000} else {
00000000

(3)

;

0000}
0000return res;}(1）～ (3) の解答群

20
プログラミングスキル

ア．res = max

イ．res = minエ．res = yオ．res = z

ウ．res = x

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf［クイックソートの手順］
１．配列内で分割を行う領域の小さい要素位置を low，大きい要素位置を high とする。
ただし，low≧high であれば戻る。
２．left に low，right に high を代入し，分割する領域の先頭，中央（low と highを加えて 2 で割った位置），末尾の位置にある値からメジアンを求めてピボットとする。
３．left ＜ right の間，以下の操作を繰り返す。なお，left ≧ right となる場合
は，分割が完了した時である。
① left を 1 ずつ増やしながら，ピボット以上の値を検索する。
ピボット＝4

3

5

4

2

6
right

left

図２

ピボット以上の値を検索② right を 1 ずつ減らしながら，ピボット以下の値を検索する。
ピボット＝4

3

5

4

2

6
right

left

図３

ピボット以下の値を検索③ ①と②の結果，left＜right であれば配列の left と right の位置にある値を交換する。

ピボット＝4

3

2
left

図４

4

5

6

right

値の交換

４．分割した左側の配列領域の要素数が１より大きければ，さらに分割するため再帰呼び出しを行う。この時の左端は low，右端は left－1 である。
５．分割した右側の配列領域の要素数が１より大きければ，さらに分割するため再帰呼び出しを行う。この時の左端は right＋1，右端は high である。

21
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf＜設問２＞

次の図５の最初の配列から，クイックソートの手順で示した１～３を１回実行した後の配列の状態を解答群から選び(4)に答えよ。なお，ピボットは２とする。
ピボット

2

最初の配列

1

図５

5

2

4

6

3

クイックソート前の状態(4) の解答群
ア． 1

2

3

4

6

5

イ． 1

2

5

4

6

3

ウ． 1

3

2

4

6

5

エ． 1

3

2

5

6

4

＜設問３＞

次のプログラムの説明を読み，プログラム中のに入れるべき適

切な字句を解答群から選べ。
［プログラムの説明］
引数で受け取る配列をクイックソートにより並べ替える関数 qsort である。このプ
ログラムでは，関数 median と配列のデータを交換するための関数 swap を利用する。
関数 median は，設問１のプログラムである。
［関数の説明］
qsort 関数
引

数：*ary(データを格納した配列：整数型)，low(領域の左端：整数型)，
high（領域の右端：整数型）

機

能：配列内をクイックソートにより並べ替える

戻り値：なしswap 関数
引数：*a(整数値)，*b(整数値)機

能：a と b の内容を交換する

戻り値：なし22
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf［プログラム］
void qsort(int *ary, int low, int high) {0000int i, m, left, right, pivot;
0000if (low >= high) {00000000return;0000} else {
00000000left = low;/* 配列領域の左端を設定 */00000000right = high;/* 配列領域の右端を設定 */00000000m = (low + high) / 2;/* 配列領域の中央を設定 */00000000pivot = median(ary[left], ary[m], ary[right]);
00000000while(left < right) {000000000000/* ピボットより大きい値を左側から探す */000000000000while(ary[left] < pivot) {0000000000000000(5);000000000000}
000000000000/* ピボットより小さい値を右側から探す */000000000000while(ary[right] > pivot) {0000000000000000(6);000000000000}
000000000000if (left < right) {0000000000000000swap(&ary[left], &ary[right]); /* データを交換 */000000000000}
00000000}
00000000/* ピボットより小さい配列領域の並べ替え */00000000if (low < left - 1) {000000000000qsort(ary, low, left - 1);00000000}
00000000/* ピボットより大きい配列領域の並べ替え */00000000if (high > right + 1) {000000000000qsort(ary, right + 1, high);
00000000}
0000}}
void swap(int *a, int *b) {0000int w;
0000

(7)

}

23
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf(5) ，(6) の解答群
ア．left--イ．left++ウ．right--

エ．right++(7) の解答群

24
プログラミングスキル

ア． w = a;イ． w = &a;a = b;&a = &b;

b = w;&b = w;

ウ． w = *a;エ． *w = *a;*a = *b;*a = *b;*b = w;*b = *w;

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
選択問題

表計算の問題この問題で使用する表計算ソフトの仕様は下記のとおりである。
AND 関数
論理式のすべての評価が真であれば真，1つでも偽であれば偽を返す。
書式：AND(論理式 1，論理式 2，…)
HLOOKUP 関数
検索値を検索範囲の上端列の中から検索し，見つかった列の指定した行位置の値を返す。行位置は１から始まる相対的な値であり，検索範囲中に見つけた列の中で，上から何番目の行かを示す。検索の型に0を指定すると検索値と完全に一致する値を検索し，1を指定すると検索値と一致する値がない場合に，検索値未満で一番大きい値を検索する。
書式：HLOOKUP(検索値，範囲，行位置，検索の型)
選
択
問
題

IF 関数
条件が真のときに真の場合，偽のときに偽の場合の計算結果や値を返す。

表
計算

書式：IF(条件，真の場合，偽の場合)
OR 関数
論理式の評価が 1つでも真であれば真，すべて偽であれば偽を返す。
書式：OR(論理式 1，論理式 2，…)
SUM 関数
範囲内の数値を合計した値を返す。
書式：SUM(範囲)
VLOOKUP 関数
検索値を検索範囲の左端列の中から検索し，見つかった行の指定した列位置の値を返す。列位置は１から始まる相対的な値であり，検索範囲中に見つけた行の中で，左から何番目の列かを示す。検索の型に0を指定すると検索値と完全に一致する値を検索し，1を指定すると検索値と一致する値がない場合に，検索値未満で一番大きい値を検索する。
書式：VLOOKUP(検索値，検索範囲，位置，検索の型)
式＝に続いて計算式や関数などを入力する。

25
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
セル番地の絶対参照
セル番地に＄を付けることで，絶対番地(絶対参照)を表す。
別シートの参照
ワークシート名に「！」を付けてセル位置を指定することにより別シートを参照できる。
例：シート名「集計」のセル A1 を参照する場合は，「集計!A1」と記述する。

この問題で使用するマクロの仕様は下記のとおりである。
［マクロの記述］
マクロは一意のマクロ名を付けて宣言する。ワークシートには複数のマクロを格納できる。なお，マクロではワークシートと同様の関数を式内で利用することができる。
変数の型には，数値型，文字列型及び論理型があり，宣言することで使用できる。
また変数名に続けて添字を「[」と「]」で囲むことで配列変数として宣言できる。
添字が複数ある場合は「,」で区切る。添字は 0 から始まる。
［マクロの記述形式］〇マクロ：マクロ名

マクロを宣言する。

〇変数型：変数名

変数を宣言する。

・変数 ← 式

変数に式の値を代入する。

/* 文 */

注釈を記述する。

▲

選択処理

条件式
・処理１

条件式が真の時は処理１を実行し，偽の時は処理２を実行する。

・処理２
▼
▲

条件式
・処理

選択処理
条件式が真の時は処理を実行する。

▼
■

条件式
・処理

■

26
プログラミングスキル

前判定繰り返し処理を示す。
条件式が真の間，処理を実行する。

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf［式と演算子の優先順位］
演算の種類

演算子

優先順位

単項演算

＋, －, not

乗除演算＊, ／, ％

加減演算

＋, －

関係演算

＞, ＜, ≧, ≦, ＝, ≠

論理積

and

論理和

or

高

低

［セルの参照］
マクロ中からセル番地を指定して，セルの値を参照することができる。セル番地を指定した絶対参照と，基点となるセル番地とそこからの相対的な位置を指定した
相対参照がある。相対参照では，セル番地，行方向の相対位置，列方向の相対位置を「,」で区切って順に指定する。
セルの絶対参照と相対参照の例
・wk_a ← 絶対(A1)/* A1 番地 */・wk_b ← 絶対(Sheet1!A1)/* Sheet1 の A1 番地 */・wk_c ← 相対(A1, 1, 2)/* C2 番地 */（注）セル A1 から 1 行，2 列移動したセル C2 が参照される。
Ｊ社では，表計算ソフトを使用して給与計算時の資格手当の計算をしている。社員数は30名で，｢社員表｣ワークシートの２行目からA列に社員番号，B列に氏名，C列に
性別，D列に生年月日，E列に入社年月日，F列に所属ID，G列に役職名が31行まで入力
されている。役職についていない社員の役職は空白になっている。日付を表している
セルにはシリアル値が格納されており,YYYY/M/Dの形式で表示している。

B

C

D

E

E01
E01

亀田 浩秋
毛利 文隆

男
男

図１

課長
係長
…

21448
22382

…

30
31

…

氏名
性別 生年月日 入社年月日
森脇 雅彦 男 1969/6/3 1991/4/1
布施 早紀 女 1971/1/28 1993/10/1
佐伯 三平 男 1973/7/17 1995/7/1
矢吹 隆明 男 1975/9/24 1997/10/1
高岡 千咲 女 1985/1/24 2007/4/1…

1982/1/3 2004/4/1
1968/8/31 1990/9/1

…

役職
部長
課長

社員番号
10203
11387
12886
13128
13438

…

G

所属ID
E01
J01
S01
E01
S01

…

F

…

A
1
2
3
4
5
6

｢社員表｣ワークシート｢資格表｣ワークシートは，２行目からA列に資格名，B列に資格グレードが28行まで入力されている。また，E列～H列の１行目に資格グレード，２行目に１ヶ月ごとの資27
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
格手当金額が入力されている。資格グレードはＡ～Ｄの４段階に区切られており，グレードにより１ヶ月の資格手当金額が設定されている。
B
資格グレード
Ｄ
Ｃ
Ｂ
Ａ
Ａ
Ａ

C

D
E
F
G
H
Ａ
Ｂ
Ｃ
Ｄ
資格グレード
資格手当金額 20,000 15,000 10,000 5,000

…

A
資格名
ITパスポート試験
基本情報技術者試験
応用情報技術者試験
ネットワークスペシャリスト
データベーススペシャリスト
情報処理安全確保支援士
…

…

1
2
3
4
5
6
7

27 日商簿記検定（2級）
28 社会保険労務士

図２

ＤＡ｢資格表｣ワークシート

資格取得状況は図３のようになっている。｢資格取得一覧｣ワークシートは，２行目からA列に社員番号，B列に資格名，C列に資格取得日が90行まで入力されている。資格手当の計算では，複数の資格を取得している場合，資格手当が高額な方から２種類の合計を資格手当金とする。なお，処理対象は，各月の給与計算時までに申請登録済
みの資格に限る。

図３

＜設問１＞

C
資格取得日
2013/8/14
2014/10/17
2015/5/13
2015/5/13
2015/5/14
…

21398
21448

…

89
90

A
B
社員番号
資格名
11387 社会保険労務士
12886 基本情報技術者試験
15651 消防設備士（甲種：４類）
16231 消防設備士（甲種：４類）
16049 建築設備士
…

…

1
2
3
4
5
6

建築ＣＡＤ検定（准１級）
2021/4/13
データベーススペシャリスト 2021/4/19｢資格取得一覧｣ワークシート

次の｢資格取得一覧｣ワークシートの拡張に関する記述中の

(1)

に入

れるべき適切な字句を解答群から選べ。
｢資格取得一覧｣ワークシートに，各資格に対する１ヶ月ごとの資格手当金額を追加する。なお，資格手当金額は，｢資格表｣ワークシートを検索して表示する。

28
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf

建築ＣＡＤ検定（准１級） 2021/4/13
データベーススペシャリスト 2021/4/19

図４

…

21398
21448

C
D
資格取得日 資格手当金額
2013/8/14
20,0002014/10/17
10,0002015/5/13
10,0002015/5/13
10,0002015/5/14
10,000
…

89
90

…

A
B
社員番号
資格名
11387 社会保険労務士
12886 基本情報技術者試験
15651 消防設備士（甲種：４類）
16231 消防設備士（甲種：４類）
16049 建築設備士
…

…

1
2
3
4
5
6

15,00020,000

拡張した｢資格取得一覧｣ワークシート

資格手当金額を表示するため，セル D2 に次の式を入力し，セル D3～D90 まで複写
した。
＝

(1)

(

(2)

, 資格表!E$1:H$2, 2, 0)(1) ，(2) の解答群
ア．HLOOKUP
イ．HLOOKUP(B2, 資格表!$A2:$B28, 2, 0)
ウ．HLOOKUP(B2, 資格表!A$2:B$28, 2, 0)
エ．VLOOKUP
オ．VLOOKUP(B2, 資格表!$A2:$B28, 2, 0)
カ．VLOOKUP(B2, 資格表!A$2:B$28, 2, 0)＜設問２＞

次の｢手当集計表｣ワークシートの作成に関する記述中のに入れるべき適切な字句を解答群から選べ。

E01
E01

図５

…

21448
22382

…

…

30
31

A
B
C
D
社員番号 所属ID 役職名 資格手当合計
10203
E01
部長
10,00011387
J01
課長
40,00012886
S01
30,00013128
E01
課長
30,00013438
S01
係長
35,000
…

…

1
2
3
4
5
6

35,00035,000｢手当集計表｣ワークシート

・A～C 列の社員番号，所属 ID，役職名は，｢社員表｣ワークシートから複写した。
・D 列の資格手当金額はマクロ Salary_cal を作成して格納した。
マクロ Salary_cal は，処理Ⅰ～Ⅳを実行する。

29
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf［マクロ Salary_cal の説明］
資格手当の計算では，複数の資格を取得している場合，資格手当が高額な方から２種類を優先する。
Ⅰ：セル A2 を最初の対象セルとして，以降，セル A3，A4，…と順次，対象セルを下に移しながら，対象セルの値が空値になるまで，ⅡとⅢの処理を繰り返す。
Ⅱ：資格手当が高額なものを保存する二つの変数 shikaku_1st，shikaku_2nd に 0を格納する。
Ⅲ：対象セルに入力されている社員番号と同じ値が入力されているかどうかを，｢資格取得一覧｣ワークシートのセル A2 から下の行方向に検索する。
同じ社員番号が見つかったとき，当該行の列 D の資格手当金額と shikaku_1st，shikaku_2nd の中で，１番高額のものを shikaku_1st に，２番目に高額のもの
を shikaku_2nd に格納する。
Ⅳ：当該行の列 D に shikaku_1st と shikaku_2nd の合計を格納する。
［マクロ：Salary_cal］〇マクロ：Salary_cal〇整数型：i, j, shikaku_1st, shikaku_2nd・i ← 1■ 相対(手当集計表!A1, i, 0) ≠ ""・shikaku_1st ← 0・shikaku_2nd ← 0・j ← 1■ 相対(資格取得一覧!A1, j, 0) ≠ ""▲(3)
▲ 相対(資格取得一覧!A1, j, 3) >(4)・shikaku_2nd ← shikaku_1st・shikaku_1st ← 相対(資格取得一覧!A1, j, 3)▲ 相対(資格取得一覧!A1, j, 3) >(5)・shikaku_2nd ← 相対(資格取得一覧!A1, j, 3)▼▼▼・j ← j ＋ 1
■
・

(6)

・i ← i ＋ 1■

30
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf(3) の解答群
ア．相対(手当集計表!A1, i, 0) ＝ 相対(資格取得一覧!A1, 1, 0)
イ．相対(手当集計表!A1, i, 0) ＝ 相対(資格取得一覧!A1, i, 0)
ウ．相対(手当集計表!A1, i, 0) ＝ 相対(資格取得一覧!A1, j, 0)エ．相対(手当集計表!A1, j, 0) ≠ 相対(資格取得一覧!A1, j, 0)(4) ，(5) の解答群
ア．shikaku_1st

イ．shikaku_2ndウ．相対(資格取得一覧!A1, i, 0)エ．相対(資格取得一覧!A1, j, 0)オ．相対(手当集計表!A1, i, 3)カ．相対(手当集計表!A1, j, 3)(6) の解答群
ア．相対(手当集計表!A1, i, 3) ← shikaku_1stイ．相対(手当集計表!A1, i, 3) ← shikaku_1st + shikaku_2ndウ．相対(手当集計表!A1, i, 3) ← shikaku_2ndエ．相対(手当集計表!A1, i, j) ← shikaku_1st + shikaku_2nd＜設問３＞

次の｢手当集計表｣ワークシートの拡張に関する記述中の

(1)

に入れ

るべき適切な字句を解答群から選べ。
｢手当集計表｣ワークシートに，役職報酬と手当合計を追加する。役職報酬は，｢役職報酬表｣ワークシートを検索して表示する。なお，課長以上は資格手当がなくなり
役職報酬のみとなる。

35,00035,000

…

図６

…

E01
E01

…

21448
22382

…

…

30
31

…

…

1
2
3
4
5
6

A
B
C
D
E
F
社員番号 所属ID 役職名 資格手当合計 役職報酬 手当合計
10203
E01
部長
10,00080,00080,00011387
J01
課長
40,00060,00060,00012886
S01
30,00030,00013128
E01
課長
30,00060,00060,00013438
S01
係長
35,00020,00055,00035,00035,000

拡張した｢手当集計表｣ワークシート

1
2
3
4
5

図７

A
役職名
部長
課長
係長
主任

B
役職報酬
80,00060,00020,00010,000｢役職報酬表｣ワークシート

31
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
・役職報酬を表示するため，セル E2 に次の式を入力し，セル E3～E31 まで複写した。
役職名が空白であれば，役職報酬も空白とする。=(7)・手当合計を表示するため，セル F2 に次の式を入力し，セル F3～F31 まで複写した。
=(8)(7) の解答群
ア．HLOOKUP(C2, 役職報酬表!A$2:B$5, 2, 0)
イ．VLOOKUP(C2, 役職報酬表!A$2:B$5, 2, 0)
ウ．IF(C2="", "", HLOOKUP(C2, 役職報酬表!A$2:B$5, 2, 0))エ．IF(C2="", "", VLOOKUP(C2, 役職報酬表!A$2:B$5, 2, 0))(8) の解答群
ア．IF(AND(C2 = "部長", C2 = "課長"), E2, SUM(D$2:E$2))
イ．IF(C2 >= "課長", E2, SUM(D2:E2))
ウ．IF(OR(C2 = "部長", C2 = "課長"), E2, SUM(D$2:E$2))エ．IF(OR(C2 = "部長", C2 = "課長"), E2, SUM(D2:E2))

32
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf
選択問題

アセンブラの問題

次のアセンブラ言語CASLⅡプログラムの説明を読み，各設問に答えよ。
[プログラムの説明］
TBL 番地から始まる４語の連続した領域に，８ビットのデータが１語に２個ずつまとめて格納されている。この８個のデータに対してそれぞれパリティビットを求め，PARITY 番地の下位８ビットに格納するプログラムである
パリティビットは，対象データ中の１のビットの数が偶数個または奇数個になるよ
うに調整するためのビットである。パリティチェックは対象データとパリティビットを含めたビット列で，１のビット数の奇偶検査を行い誤りの有無を検査する方式である。偶数個で調整する場合を偶数パリティ方式，奇数個で調整する場合を奇数パリティ方式と呼ぶ。プログラムでは奇数パリティ方式を採用する。
また，プログラム中の内部サブルーチン CHECK は，GR0 の下位８ビットで受け取った 1 個のデータに対してパリティチェックを行い，パリティビットを GR3 の最下位ビットに設定する。
図１に TBL 番地以降のデータと PARITY 番地の関係を示す。なおパリティビットは
すべて P で表現している。
TBL＋0 番地

データ１

データ２

＋1 番地

データ３

データ４

＋2 番地

データ５

データ６

＋3 番地

データ７

データ８

PARITY 番地

00000000

PPPPPPPP

選
択
問
題
ア
セ
ン
ブ
ラ

左端がデータ１のパリティビット
右端がデータ８のパリティビット
図１

TBL 番地以降と PARITY 番地の関係

33
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf＜設問１＞

次のプログラム中の(1)に入れるべき適切な字句を解答群から選べ。

[プログラム］
行番号番号
100

ラベル
MAIN

命令
LD

GR1,=0120

LDGR6,=0LD

GR0,TBL,GR1

LOOP1

140

(1)
CALL

CHECK

160

SLL

GR6,1

170

(2)
LD

190

GR0,TBL,GR1; 下位 8 ビットの取り出し

200

CALL

CHECK

210

SLL

GR6,1
(2)

230

LAD

GR1,1,GR1

240

CPA

GR1,=4

250

JMI

LOOP1

260

ST

GR6,PARITY

270

RET

280

CHECK

290
300

LAD

GR3,0

LAD

GR2,8

LOOP2

(4)
JOV

BIT1

320

JUMP

BIT0

LAD

GR3,1,GR3

330

BIT1

340

BIT0

(5)

350

JNZ

LOOP2

360

AND

GR3,=#0001

370

XOR

GR3,=#0001

380

RET
DC

#0102

400

DC

#0304

410

DC

#0506

420

DC

#0708

DS

1

430
440

TBL

PARITYEND; 繰り返し回数の初期値; ビットを検査

310

390

プログラミングスキル; パリティビットの合成

(3)

220

; PARITY 番地用の初期値; 上位 8 ビットの取り出し

150

180

コメント

START

110
130

34

オペランド

; 1 のビットをカウント

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf(1) の解答群
ア．SLL

GR0,1

イ．SLL

GR0,8

ウ．SRL

GR0,1

エ．SRL

GR0,8

ア．OR

GR3,GR1

イ．OR

GR3,GR6

ウ．OR

GR6,GR1エ．OR

GR6,GR3

ア．AND

GR0,#00FF

イ．AND

GR0,#FF00

ウ．AND

GR6,#00FF

エ．AND

GR6,#FF00

ア．AND

GR0,#0001

イ．OR

GR0,#0001

ウ．SLL

GR0,1

エ．SRL

GR0,1

ア．ADDA

GR1, =1

イ．ADDA

GR2, =1

ウ．SUBA

GR2, =1

エ．SUBA

GR1, =1(2) の解答群(3) の解答群(4) の解答群(5) の解答群＜設問２＞

TBL 番地以降に図２の値を設定したとき，PARITY 番地の下位 8 ビットの値を解答群から選べ。
TBL+0 番地

00000001

00000010+1 番地

00000011

00000100+2 番地

00000101

00000110+3 番地

00000111

00001000

図２

TBL 番地以降の値(6) の解答群
ア．00010010

イ．00101100

ウ．11000010

エ．11110000＜設問３＞

１命令を削除することで奇数パリティ方式を偶数パリティ方式に変更できる。削除する命令の行番号を解答群から選べ。
(7) の解答群
ア．300

イ．330

ウ．360

エ．370

35
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf

＜メモ欄＞

36
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf

＜メモ欄＞

37
プログラミングスキル

令和6年(2024年)4月から選択問題(問題5)に改訂があります。
改訂の詳細は以下URLをご覧ください。

https://jken.sgec.or.jp/common/pdf/information/jken̲r6̲kaitei̲jsystem̲programming.pdf

38
プログラミングスキル