<< Sample Questions >>Fundamental IT Engineer Examination (Subject B)

Question Nos.
Question Selection
Examination Time-1-

Q1 – Q20
Compulsory
100 minutes

Pseudo programming language notations
In algorithm and programming questions that use pseudo programming language, thefollowing notations are used unless otherwise stated:[Pseudo programming language notations]Notation

Description○ procedure(type: arg1, ...)
Declares a procedure and its argument(s) arg1, ... .
○ ret-type: function(type: arg1, ...) Declares a function, its argument(s) arg1, ... , andtype of return value ret-type.

type: var1, ...
type []: array1, ...

Declares variables var1, ... and arrays array1, ... bydata type such as integer, real, and string.

/* comment */Describes a comment between /* and */.

// comment

Describes a comment after // till end of line.

variable ← expression

Assigns the value of the expression to the variable.

procedure(arg1, ...)

Calls a procedure by passing arguments arg1, ... .

function(arg1, ...)

Calls a function by passing arguments arg1, ... ,and receiving the return value.

output arg1, ...

Outputs values of arg1, ... to a printable device.

return ret-val

Finishes a function by passing return value ret-val.

if (condition-i)
process-i
elseif (condition-ei)
process-ei
else
process-e
endif

*1
*2
*3

Indicates the selection process.
*1 If condition-i is true, then execute process-i.
Otherwise, proceed to the next elseif or else.
*2 If condition-ei is true, then execute process-ei.
Otherwise, proceed to the next elseif or else.
*3 If all conditions are false, execute process-e.
Note: *2 and *3 can be omitted.
Note: *2 may exist twice or more.

for (sequence)
process
endforIndicates the “for” iteration process.
In the order specified in the sequence, execute theprocess repeatedly.

while (condition)
process
endwhile

Indicates the “while” iteration process.
While the condition is true, execute the processrepeatedly.

doIndicates the “do - while” iteration process.
Execute the process once, and then while thecondition is true, execute the process repeatedly.

process
while (condition)-2-

Pseudo programming language notations(continued)[Operators and their precedence]

Type of operator
Expression
Unary operator
Binary operator

Operators
Precedence Note(1)(1) accessing member or method( ), .
High(2) logical negation+, −, not (2)(3) remainder
×, ÷, mod (3)+, −>, <, ≥, ≤, =, ≠(4) logical productand (4)(5) logical sumor (5)
Low[Boolean-type constants]
true, false[Array reference]

1-dimensional array
Array declaration type []: name …
Exampleinteger []: a1
1

2

3

4

5

1

3

5

7

9

2-dimensional array

Array of arrays

type [,]: name …

type [][]: name …

integer [,]: a2

integer [][]: aa

1
2
3

1

2

3

11
14
17

12
15
18

13
16
19

1
2
3

1

2

3

21
23
26

22
24

25

Data reference

Data 7 is referred
to by a1[4]Data 16 is referred
to by a2[2,3]Data 25 is referred
to by aa[2][3]Notation of array
contents{1, 3, 5, 7, 9}{{11, 12, 13},
{14, 15, 16},
{17, 18, 19}}{{21, 22},
{23, 24, 25},
{26}}

.

Note: The indexes of example arrays start at 1.
[undefined state]
undefined is a state in which no value is set to a variable (or an element of an array).
By setting undefined to a variable, the variable is transformed into undefined state.

-3-

Q1. From the answer group below, select the correct answer to be inserted in _______ inthe description.
When the program is executed, the output is " _______ ".
[Program]
integer: x ← 1
integer: y ← 2
integer: z ← 3
x ← y
y ← z
z ← x
output y, z// the values are separated by ", "Answer groupa) 1, 2d) 2, 3b) 1, 3e) 3, 1c) 2, 1f) 3, 2-4-

Q2. From the answer group below, select the correct combination of the answers to be inserted
in ___A___ through ___C___ in the program.
The function fizzBuzz receives a value that is given as an argument, and returns “Divisibleby 3” if the value is divisible by 3 but is not divisible by 5, “Divisible by 5” if the value isdivisible by 5 but is not divisible by 3, and “Divisible by 3 and 5” if the value is divisible by
3 and 5. Otherwise, it returns “Not divisible by 3 or 5”.
[Program]○ string: fizzBuzz(integer: num)
string: resultif (num is divisible by ___A___ )result ← "Divisible by ___A___ "elseif (num is divisible by ___B___ )result ← "Divisible by ___B___ "elseif (num is divisible by ___C___ )result ← "Divisible by ___C___ "elseresult ← "Not divisible by 3 or 5"
endif
return result

Answer group
A

a)
b)
c)
d)
e)

B

C

3

3 and 55

3

5

3 and 5

3 and 5

3

5

5

3

3 and 5

5

3 and 53

-5-Q3. From the answer group below, select the correct answer to be inserted in _______ inthe description. Here, the array indexes start at 1.
The function makeNewArray receives an integer array with at least two elements as anargument, and returns an integer array. When the function makeNewArray is called as
makeNewArray({3, 2, 1, 6, 5, 4}), the value at element number 5 of the array that isreturned as the return value is _______ .
[Program]○ integer []: makeNewArray(integer []: in)integer []: out ← {} // An array with 0 elements
integer: i, tailadd the value of in[1] to the end of out
for (increase i from 2 to the number of elements in in by 1)
tail ← out[the number of elements in out]
add the value of (tail + in[i]) to the end of out
endforreturn out

Answer group:
a) 5
e) 12

b) 6
f) 17

c) 9
g) 21

-6-

d) 11

Q4. From the answer group below, select the correct combination of the answers to be inserted
in ___A___ through ___C___ in the program.
The function gcd uses the properties (1) through (3) below to calculate the greatest common
divisor for the two positive integers num1 and num2 that are given as arguments.
(1) When num1 and num2 are equal, the greatest common divisor for num1 and num2 is num1.
(2) When num1 is greater than num2, the greatest common divisor for num1 and num2 isequal to the greatest common divisor for (num1 - num2) and num2.
(3) When num2 is greater than num1, the greatest common divisor for num1 and num2 isequal to the greatest common divisor for (num2 - num1) and num1.
[Program]○ integer: gcd(integer: num1, integer: num2)
integer: x ← num1
integer: y ← num2___A___
if ( ___B___ )x ← x - yelsey ← y - x
endif___C___
return x

Answer group
A

a)
b)
c)
d)

B

C

if (x ≠ y)

x < y

endif

if (x ≠ y)

x > y

endif

while (x ≠ y)x < yendwhile

while (x ≠ y)x > y

endwhile-7-

Q5. From the answer group below, select the correct answer to be inserted in _______ in
the program.
The function calc receives the positive real numbers x and y, and returns the result of thecalculation of √ x2 + y2. The function pow that the function calc uses receives the positive
real number a as its first argument and the real number b as its second argument, and returns
the real type value of ab (a to the power of b).
[Program]○ real: calc(real: x, real: y)return _______

Answer groupa) (pow(x, 2) + pow(y, 2)) ÷ pow(2, 0.5)
b)
c)
d)
e)
f)
g)

(pow(x, 2) + pow(y, 2)) ÷ pow(x, y)pow(2, pow(x, 0.5)) + pow(2, pow(y, 0.5))
pow(pow(pow(2, x), y), 0.5)
pow(pow(x, 2) + pow(y, 2), 0.5)
pow(x, 2) × pow(y, 2) ÷ pow(x, y)pow(x, y) ÷ pow(2, 0.5)

-8-

Q6. From the answer group below, select the correct answer to be inserted in _______ in
the program.
The function rev receives the 8-bit type argument byte, and returns these bits in reverse
order. For example, when the function rev is called as rev(01001011), the return value is11010010.
Here, the operator & represents a bitwise logical product, the operator | represents a bitwise
logical sum, the operator >> represents a logical shift to the right, and the operator <<represents a logical shift to the left. For example, v >> n performs a logical shift of the valueof v by n bits to the right, and v << n performs a logical shift of the value of v by n bits tothe left.
[Program]○ 8-bit: rev(8-bit: byte)
8-bit: rbyte ← byte
8-bit: r ← 00000000
integer: ifor (increase i from 1 to 8 by 1)_______
endforreturn r

Answer groupa) r ← (r << 1) | (rbyte & 00000001)
rbyte ← rbyte >> 1b) r ← (r << 7) | (rbyte & 00000001)
rbyte ← rbyte >> 7c) r ← (rbyte << 1) | (rbyte >> 7)
rbyte ← rd) r ← (rbyte >> 1) | (rbyte << 7)rbyte ← r

-9-

Q7. From the answer group below, select the correct answer to be inserted in _______ in
the program.
The function factorial receives the non-negative integer n as an argument, and returns its
factorial. The factorial of the non-negative integer n is 1 when n is 0, and in all other cases,
it is the number obtained by multiplying all integers from 1 to n.
[Program]○ integer: factorial(integer: n)
if (n = 0)
return 1
endif
return _______

Answer groupa) (n − 1) × factorial(n)b) factorial(n − 1)d) n × (n − 1)f) n × factorial(n − 1)c) ne) n × factorial(1)- 10 -

Q8. From the answer group below, select the correct answer to be inserted in _______ inthe description.
The program performs operations on a priority queue.
A priority queue is a queue where the handled elements have a priority assigned to them, andwhen elements are extracted, they are extracted in the order of highest priority first.
The class PrioQueue represents a priority queue. The Figure shows an explanation of theclass PrioQueue. Here, the priority is the integer value 1, 2, or 3, and the smaller the value
the higher the priority.
When the procedure prioSched is called, the order of the output is _______ .
Constructor

Description

PrioQueue()

Creates an empty priority queue.

MethodType ofreturn value
None

Description

dequeue()stringExtracts the element with the highest priority ina priority queue and returns it. If there are
multiple elements with the highest priority, it
extracts the element that was added first andreturns it.

size()

integer

Returns the number of elements that are stored ina priority queue.

enqueue(string: s,
integer: prio)

Adds the string s as an element to a priority
queue with the priority prio.

Figure Explanation of the class PrioQueue- 11 -

[Program]○ prioSched()
PrioQueue: prioQueue ← PrioQueue()prioQueue.enqueue("A", 1)
prioQueue.enqueue("B", 2)prioQueue.enqueue("C", 2)prioQueue.enqueue("D", 3)prioQueue.dequeue() /* Does not use a return value */prioQueue.dequeue() /* Does not use a return value */prioQueue.enqueue("D", 3)prioQueue.enqueue("B", 2)prioQueue.dequeue() /* Does not use a return value */prioQueue.dequeue() /* Does not use a return value */prioQueue.enqueue("C", 2)prioQueue.enqueue("A", 1)
while (prioQueue.size() is not equal to 0)
output the return value of prioQueue.dequeue()endwhile

Answer groupa) "A", "B", "C", "D"b) "A", "B", "D", "D"c) "A", "C", "C", "D"d) "A", "C", "D", "D"- 12 -

Q9. From the answer group below, select the correct answer to be inserted in _______ inthe description. Here, the array index starts at 1.
The procedure order traces through a subtree of the binary tree in the Figure, and outputs
all node numbers in the subtree. The node number of the root node of the subtree is specified
with the argument n.
The global array tree represents the binary tree in the Figure. Each element of the array
tree is an array that stores the node numbers of the corresponding child nodes in the orderof left child then right child.
For example, the element at element number 1 in the array tree is an array that contains thenode numbers of the children of node number 1, and it stores node number 2 of the left childand node number 3 of the right child as the array {2, 3}.
When the procedure order is called as order(1), the output is in the order _______ .

1
2

3

4
8

5
9

10

Note 1: A number in a

6
11

12

7
13

14

○ is a node number.

Note 2: If there is only one child node, it is handled as a left child node.

Figure Binary tree that is handled by the program- 13 -

[Program]global: integer [][]: tree ← {{2, 3}, {4, 5}, {6, 7}, {8, 9},{10, 11}, {12, 13}, {14}, {}, {}, {},{}, {}, {}, {}}// {} is an array with 0 elements○ order(integer: n)
if (the number of elements in tree[n] is equal to 2)
order(tree[n][1])output norder(tree[n][2])elseif (the number of elements in tree[n] is equal to 1)
order(tree[n][1])output nelse
output n
endif

Answer groupa) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14b) 1, 2, 4, 8, 9, 5, 10, 11, 3, 6, 12, 13, 7, 14c) 8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 13, 3, 14, 7d) 8, 9, 4, 10, 11, 5, 2, 12, 13, 6, 14, 7, 3, 1

- 14 -

Q10. From the answer group below, select the correct answer to be inserted in _______ in
the program.
The procedure delNode deletes an element from a singly-linked list at the position specified
with the argument pos. The argument pos is a positive integer that is equal to or less than
the number of elements in the list. The position at the top of the list is 1.
The class ListElement represents an element in a singly-linked list. The table provides an
explanation of the member variables of the class ListElement. ListElement-type variables
store references to instances of the class ListElement. A reference to the first element in
the list is pre-stored in the global variable listHead.
Table Explanation of the member variables of the class ListElement

Member variable

Type

Descriptionvalcharacter

The value of an element.

next

ListElement

A reference for the next element.
If there is no next element, thestatus is undefined.

[Program]
global: ListElement: listHead○ delNode(integer: pos)// stores the first element in the list/* pos is a positive integer that is equal to orless than the number of elements in the list */ListElement: prev
integer: iif (pos is equal to 1)
listHead ← listHead.next
else
prev ← listHead/* if pos is equal to 2, the following iteration process is not executed */for (increase i from 2 to pos − 1 by 1)
prev ← prev.next
endfor
prev.next ← _______
endif

Answer group:a) listHeadd) prevb) listHead.nextc) listHead.next.nexte) prev.nextf) prev.next.next- 15 -

Q11. From the answer group below, select the correct answer to be inserted in _______ inthe description. Here, the array indexes starts at 1.
When the function binSort is called as binSort( _______ ), the values are sorted inascending order with no undefined elements included in the array of the return value.
[Program]○ integer []: binSort(integer []: data)
integer: n ← the number of elements in data
integer []: bins ← {n undefined values}
integer: ifor (increase i from 1 to n by 1)bins[data[i]] ← data[i]endforreturn bins

Answer groupa) {2, 6, 3, 1, 4, 5}c) {4, 2, 1, 5, 6, 2}b) {3, 1, 4, 4, 5, 2}d) {5, 3, 4, 3, 2, 6}- 16 -

Q12. From the answer group below, select the correct answer to be inserted in _______ in
the program. Here, the array indexes start at 1.
The function simRatio compares the two character arrays s1 and s2 that are given asarguments. s1 and s2 have one or more elements.
If the number of elements in each array is equal, it returns the following real value as anindex of how similar the arrangement of the content in the arrays is:(number of pairs of elements where the characters at the same element number match÷ the number of elements in s1)
For example, the return value is 1 when all of the elements in the arrays match, and the return
value is 0 when there are no matching elements.
If the number of elements in each array is not equal, the function returns -1.
The table shows examples of s1 and s2 given to the function simRatio and the return values.
In the program, areas outside of the arrays must not be referenced.
Table Examples of s1 and s2 given to the function simRatio and the return values

Return values1s2{"a", "p", "p", "l", "e"}{"a", "p", "p", "l", "e"}1{"a", "p", "p", "l", "e"}{"a", "p", "r", "i", "l"}0.4{"a", "p", "p", "l", "e"}{"m", "e", "l", "o", "n"}0{"a", "p", "p", "l", "e"}{"p", "e", "n"}−1

[Program]○ real: simRatio(character []: s1, character []: s2)
integer: i, cnt ← 0
if (the number of elements in s1 ≠ the number of elements in s2)
return -1
endif
for (increase i from 1 to the number of elements in s1 by 1)
if ( _______ )cnt ← cnt + 1
endif
endforreturn cnt ÷ the number of elements in s1 /* calculate as real numbers */Answer groupa) s1[i] ≠ s2[cnt]c) s1[i] = s2[cnt]b) s1[i] ≠ s2[i]d) s1[i] = s2[i]- 17 -

Q13. From the answer group below, select the correct answer to be inserted in _______ inthe description. Here, the array index starts at 1.
The function search receives the array specified with the argument data, and if it contains
the value specified with the argument target, returns the relevant element number. If thearray does not contain the value specified with target, it returns -1. data is sorted inascending order, and there are no duplicate values.
The function search has a defect. For example, if _______ , the function enters an endlessloop.
[Program]○ integer: search(integer []: data, integer: target)
integer: low, high, middle
low ← 1high ← the number of elements in data
while (low ≤ high)middle ← integer part of ((low + high) ÷ 2)
if (data[middle] < target)
low ← middle
elseif (data[middle] > target)
high ← middle
else
return middle
endif
endwhile
return -1

Answer groupa) one or more elements in data contain the value -1b) the number of elements in data is 1 and target is equal to the value of the elementc) the number of elements in data is 2 and target is equal to the value of the firstelement of datad) the number of elements in data is 2 and target is equal to the value of the lastelement of data

- 18 -

Q14. From the answer group below, select the correct answer to be inserted in _______ inthe description. Here, the array indexes start at 1.
The function summarize receives the array sortedData with at least one element and thatis sorted in ascending order, and returns five values that characterize the array.
When the function summarize is called as summarize({0.1, 0.2, 0.3, 0.4, 0.5, 0.6,
0.7, 0.8, 0.9, 1}), the return value is _______ .
[Program]○ real: findRank(real []: sortedData, real: p)
integer: ii ← round up (p × (the number of elements in sortedData − 1))// round up the value to the nearest whole number, e.g. round up (3.75) is 4.
return sortedData[i + 1]

○ real []: summarize(real []: sortedData)
real []: rankData ← {} /* array with 0 elements */real []: p ← {0, 0.25, 0.5, 0.75, 1}
integer: ifor (increase i from 1 to the number of elements in p by 1)
add the return value of findRank(sortedData, p[i]) to the end of rankData
endforreturn rankData

Answer groupa) {0.1, 0.3, 0.5, 0.7, 1}b) {0.1, 0.3, 0.5, 0.8, 1}c) {0.1, 0.3, 0.6, 0.7, 1}d) {0.1, 0.3, 0.6, 0.8, 1}e) {0.1, 0.4, 0.5, 0.7, 1}f) {0.1, 0.4, 0.5, 0.8, 1}g) {0.1, 0.4, 0.6, 0.7, 1}h) {0.1, 0.4, 0.6, 0.8, 1}- 19 -

Q15. From the answer group below, select the correct combination of the answers to be inserted
in ___A___ and ___B___ in the description.
In tic-tac-toe, the moves that give a player the highest chance of winning are to be determined.
In the following procedure, the state transition of a game is expressed with a tree structure,and the evaluated value of each node other than the root is calculated. As a result, the movewith the highest evaluated value among the child nodes of the root is deemed to be the movewith the highest chance of winning. The moves that the player chooses are represented with○, and the moves that the opponent chooses are represented with ×.
[Procedure](1) The current state of the board is taken as the root, and all conceivable moves up to awin, loss, or draw are expressed by using a tree structure.
(2) The state of the leaf (bottom node) is evaluated as below.
(a) If the player wins: 10(b) If the player loses: -10(c) If the game is a draw: 0(3) The evaluated value of nodes other than leaves is determined based on the evaluatedvalues of all child nodes of the relevant node.
(a) For a node on the player’s turn, the evaluated value of the node is the maximum
evaluated value among the child nodes.
(b) For a node on the opponent’s turn, the evaluated value of the node is the minimum
evaluated value among the child nodes.
When the game is in a state with the root as shown at the top of the Figure, there are threemoves that the player can choose from. Among these, the evaluated value of the childindicated by A is ___A___ , and the evaluated value of the child indicated by B is___B___ .

- 20 -

Root state

× ○ ×
× ○ ○
A

× ○ ×
× ○ ○

Player's turn

B

× ○ ×
× ○ ○

○

× ○ ×
× ○ ○

○

Opponent's turn○

Win Evaluated value 10

× ○ ×
× ○ ○
○ ×

× ○ ×
× ○ ○
×
○

× ○ ×
× ○ ○
×
○

× ○ ×
× ○ ○
× ○

Loss Evaluated value -10

× ○ ×
× ○ ○
○ × ○

× ○ ×
× ○ ○
○ ○ ×

× ○ ×
× ○ ○
○ × ○

Draw Evaluated Win Evaluatedvalue 10value 0Draw Evaluatedvalue 0Figure State transition for tic-tac-toe

Answer group
a)
b)
c)
d)

A

B

0
0
10
10

-10

0
-10
0

- 21 -

Player'sturnQ16. From the answer group below, select the correct answer to be inserted in _______ in
the program. The same answer goes into both blanks _______ . Here, the array index
starts at 1.
The program converts the code point of Unicode to UTF-8 encoding.
In this question, “(16)” after a numerical value indicates that it is a hexadecimal value.
Each Unicode character is given an integer value that is called a code point. UTF-8 is one of
the encoding methods for Unicode characters, and a character with a code point that ranges
between 800(16) and FFFF(16) is encoded to a 3-byte value as below.
Let the bit pattern with a 3-byte length be 1110xxxx 10xxxxxx 10xxxxxx. The underlined
16 “x” positions in the bit pattern store the 16-bit code point. The code point is justified to
the right, and 0 is stored in any leftover “x” positions. This 3-byte value is UTF-8 encoded.
For example, when the code point 266B(16) for Beamed Eighth Notes character “♫” isrepresented in binary, it is 10011001101011. When this is stored right-justified in the “x”
positions in the bit pattern above, it is 1110xx10 10011001 10101011. When 0 is stored in
the two leftover “x” positions, the UTF-8 encoding for Beamed Eighth Notes character “♫”
11100010 10011001 10101011 is obtained.
The function encode converts a Unicode code point that is passed as an argument to UTF-8
encoding, and returns an integer array that stores it one byte per element from the start of thearray. It is assumed that only an integer value that ranges between 800(16) and FFFF(16) ispassed to encode as an argument.
[Program]○ integer []: encode(integer: codePoint)/* the initial value of utf8Bytes is the value when “x”s in the bit pattern are replaced with 0, divided into three 8-bit blocks, and each deemed to be binary */integer []: utf8Bytes ← {224, 128, 128}
integer: cp ← codePoint
integer: ifor (decrease i from the number of elements in utf8Bytes to 1 by 1)
utf8Bytes[i] ← utf8Bytes[i] + (cp ÷ remainder of _______ )cp ← cp ÷ quotient of _______
endforreturn utf8Bytes- 22 -

Answer groupa) ((4 − i) × 2)c) (2 to the power of i)
e) 2
g) 16
i) 256

b)
d)
f)
h)

- 23 -(2 to the power of (4 − i))(i × 2)
6
64

Q17. From the answer group below, select the appropriate combination of the answer to beinserted in ___A___ , ___B___ , and ___C___ in Figure 1.
Company X, a manufacturer, sells its products to consumers on Company X’s EC site(hereinafter, the site). On the site, the consumers can search Company X’s products andservices. The site provides log-in function, and manages member information of registeredconsumers such as names and mail addresses.
The site operates on Company Y’s PaaS. It uses DBMS and application servers on the PaaS.
Company X outsources the development and operation of the site to Company Z. The
outsourcing contract between Company X and Company Z states that Company Z is
responsible to control and fix vulnerabilities in Web application programs.
Recently, a security incident occurred on a Web site operated by another company in thesame profession. A Web vulnerability was exploited and that resulted in leakage of personal
information. Accordingly, Company X conducted vulnerability assessment of the site andthree findings that need security actions were pointed out. Figure 1 shows the findings andresponsible companies that should take corrective actions.
No
Finding
1 Attacks that exploit a vulnerability may occur due to a known
vulnerability in the OS of the application server used in the site.
2 Member information may be leaked due to a vulnerability ofcross-site scripting in the site.
3 Attacks that exploit a vulnerability may occur due to a known
vulnerability in the DBMS used in the site.

Action byCompany _A_
Company _B_
Company _C_

Figure 1 Findings and responsible companies that should take corrective actions- 24 -

Answer group
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)

A

B

C

X
X
X
Y
Y
Y
Y
Z
Z
Z

X
X
Y
Y
Y
Z
Z
Y
Y
Z

X
Z
Y
Y
Z
Y
Z
Y
Z
Y

- 25 -

Q18. From the answer group below, select the most appropriate answer to be inserted in_______ in the description.
Company A is a company that undertakes IT development and has 1,000 employees. The
General Affairs Department has 50 employees, the Sales Department has 50 employees, andall other employees are in the Development Department. 90% of Development Department
employees are stationed at customers’ offices. The current status of the use of PCs at
Company A is as shown in Figure 1.
1. Company A’s PCs
o Company A prepares and lends one PC (hereinafter, a Company PC) to each
employee in the General Affairs Department, each employee in the Sales
Department, and each employee in the Development Department who works at
Company A’s office.
o Company A does not lend Company PCs to Development Department employees

who are stationed at customers’ offices, but instead, it prepares shared PCs for themto use when they come to work at Company A’s office.
2. Use of the business system by Development Department employees who are
stationed at customers’ officeso Development Department employees who are stationed at customers’ offices need
to use a shared PC in order to use the business system for labor claiming andexpense claiming.
3. Use of Company A’s VPN
o A VPN server is installed at Company A, and Sales Department employees can use
the business system when they are on business trips by establishing a VPN
connection to the internal network from a Company PC via the Internet. The rules
state that a Company PC is to be used for VPN connections.
Figure 1 Current status of the use of PCs at Company A

Company A considers that it is inefficient for Development Department employees who are
stationed at customers’ offices to come to Company A’s office only for the purpose of using
the business system, and so decided to consider permitting them to use their private PC forbusiness use (BYOD) and for connecting to the VPN.

- 26 -

Assuming that Development Department employees who are stationed at customers’ offices
are permitted to connect to the VPN from their private PC.
Among the risk descriptions (1) to (5) below, the two risks that will increase or appear for
the first time are _______ .
(1) The risk of lowering the availability because of an increase in VPN connections.
(2) The risk that a Development Department employee stationed at a customer’s office loses
a Company PC.
(3) The risk that a Development Department employee stationed at a customer’s officeclicks on a URL in a phishing e-mail and infects his / her private PC with malware.
(4) The risk that a General Affairs Department employee establishes a VPN connection
from his / her private PC.
(5) The risk that a private PC with a malware infection establishes a VPN connection to theinternal network, and the malware will spread on the internal network.
Answer groupa) (1) and (2)e) (2) and (3)i) (3) and (5)b) (1) and (3)f) (2) and (4)j) (4) and (5)c) (1) and (4)g) (2) and (5)- 27 -d) (1) and (5)h) (3) and (4)Q19. From the answer group below, select the appropriate combination of the terms or phrases
to be inserted in ____A____ and ____B____ in Table 1.
Company X is a mail-order sales company with 200 employees. It sells general lifestyle
goods, gift products, and other such products to general consumers. One of the products that
it offers is Product Z, and Sales Section Z is responsible for selling this product.
[The work of Sales Section Z]

Currently, the staff members of Sales Section Z perform order management work and handle
inquiries concerning Product Z. Figure 1 shows the procedure for order management work.
Orders from customers for Product Z are received by e-mail.
(1) Input
A sales staff member enters the details of an order received (including changes andcancellations) into the order management system1) (hereinafter, System OM), andrequests approval from a sales manager2).
(2) Approval
The sales manager checks the content of the order against the results of input into
System OM, and approves the order if there are no problems. If there is a problem,the sales manager sends the order back to the sales staff member.
Note 1) The system is operated by the Information Systems Department in Company X.
Note 2)The users include sales managers and sales staff members.
Approval is required only from the manager of Sales Section Z.
Figure 1 Procedure for order management work

[System OM operation permissions]Regarding System OM, Sales Section Z has defined the usage policies below.
[Policy 1] Information that is entered by a certain user is approved by another user.
[Policy 2] Sales managers can view information for all work in Sales Section Z.
In System OM, a function to grant the operation permissions based on business needs tousers is implemented.
Because of an increase in orders, order management work for Product Z is increasing.
Therefore, Company X decides to outsource a part of the work for Product Z to Company Y.
Specifically, sales staff members in Company Y perform input operations for ordermanagement work. A sales manager in Company Y views the input results of the sales staff
members in Company Y and verbally requests Company X to send them back if they are
incomplete.

- 28 -

For this outsourcing, Sales Section Z conveys the requirements below concerning System
OM to the Information Systems Department.
[Requirement 1] If input is performed by Company Y, it is to be approved by Company X.
[Requirement 2] If input is performed by sales staff members in Company X, it is to beapproved by Company X’s sales manager as usual.
On the basis of the above, the Information Systems Department compiles the operation
permissions to be granted to each user in Table 1.
Table 1 Operation permissions to be granted to each user

Operation permissions
to be granted
User

System OM
View

Input

(Omitted)○

Sales staff members in Sales Section Z(Omitted)(Omitted)____A____○○○____B____

Approve○(Omitted)

Note: ○ indicates that an operation permission is granted.

Answer group
a)
b)
c)
d)
e)

A

B

Sales manager in Company Y
Sales manager in Company Y
Sales manager in Sales Section Z
Sales manager in Sales Section Z
Sales staff members in Company Y

Sales manager in Sales Section Z
Sales staff members in Company Y
Sales manager in Company Y
Sales staff members in Company Y
Sales manager in Company Y- 29 -

Q20. From the answer group below, select the most appropriate answer to be inserted in_______ in the description.
Company A offers nutritional supplements and has 500 employees. Company A’s
information systems, including its servers and firewall (hereinafter, FW), are run by the
Information Systems Department.
One day, there was an audit from the Internal Audit Department, and when the manager of
the Information Systems Department provided the explanation in Figure 1, he received thefindings in Table 1.
• The information systems, including the FW, are run by six operation staff members
who belong to the Operations Team in the Information Systems Department.
• There are three aspects to FW operation: editing FW rules, checking operation logs,
and checking FW rules after editing and approving operations (hereinafter, checking
FW rules after editing and approving operations is referred to as operation approval).
• Editing of FW rules is performed in line with operation instructions that are createdin advance.
• There are three FW functions: FW rule editing, operation log checking, and operation
approval.
• In order to change FW rules, both FW rule editing and operation approval are
required. Prior to operation approval, operation log checking is performed.
• User IDs for the FW are issued to individual operation staff members, and user IDs
are not shared.
• For the FW, permission to use a function can be granted for each operation staff
member’s user ID.
• Currently, each of the six operation staff members is granted all of the permissions,and the same operation staff member that edited FW rules then checks that there areno errors in the operation, and approves the operation.
• A password is used for logging in to the FW. Passwords are composed of eightalphabetical and numeric letters.
• In FW operation, whether login can be performed from the console without going via
the network, and whether login can be performed remotely via the network, are set
for each operation staff member’s user ID.
• The same FW functions can be used regardless of whether login is performed fromthe console without going via the network or whether login is performed remotely
via the network.
• The FW is installed in the server room. In the server room, there are also several
other types of servers installed.
• Only operation staff members are permitted to enter the server room.
Figure 1 FW operation status- 30 -

Table 1 Findings from the Internal Audit Department

Finding

Finding Details

Finding 1

In FW operation work, duties are not properly separated.

Finding 2(Omitted)

Finding 3(Omitted)

Finding 4(Omitted)

The manager of the Information Systems Department investigates action plans for thefindings in Table 1.
The following is the action plan that prevents erroneous changes to FW rules concerning
Finding 1 in Table 1.
Action plan concerning Finding 1: _______
Answer groupa) Assign the operation staff members who will perform the work for each day of theweek.
b) Divide the operation staff members into those who can log in from the console andthose who can log in remotely using the FW’s access control function.
c) Divide the operation staff members into those who edit FW rules and those who
check operation logs and approve operations, and only grant them the minimum
permissions necessary.
d) Install Endpoint Detection and Response (EDR) in the console in order to enhancemonitoring.
e) Limit the number of operation staff members for the FW to one.
f) Make some of the operation staff members’ role only to check operation logs, andonly grant these members the permission to check operation logs.
g) Use multi-factor authentication instead of password authentication for login to the
FW by operation staff members.

- 31 -

Correct answers
Q1

f)

Q2

c)

Q3

f)

Q4

d)

Q5

e)

Q6

a)

Q7

f)

Q8

d)

Q9

c)

Q10 f)

Q11 a)

Q12 d)

Q13 d)

Q14 h)

Q15 a)

Q16 h)

Q17 f)

Q18 d)

Q19 b)

Q20 c)First Edition: 2023-05-15__

Company names and product names appearing in the test questions are trademarks or registeredtrademarks of their respective companies. Note that the ® and ™ symbols are not used within the text.

- 32 -