FE B SampleQuestions
FE B SampleQuestions
-1-
Pseudo programming language notations
In algorithm and programming questions that use pseudo programming language, the
following notations are used unless otherwise stated:
-2-
Pseudo programming language notations
(continued)
+, −
>, <, ≥, ≤, =, ≠
and (4) (4) logical product
[Boolean-type constants]
true, false
[Array reference]
1-dimensional array 2-dimensional array Array of arrays
Array declaration type []: name … type [,]: name … type [][]: name …
Example integer []: a1 integer [,]: a2 integer [][]: aa
1 2 3 4 5 1 2 3 1 2 3 .
1 3 5 7 9 1 11 12 13 1 21 22
2 14 15 16 2 23 24 25
3 17 18 19 3 26
[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 _______ in
the description.
[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 group
a) 1, 2 b) 1, 3 c) 2, 1
d) 2, 3 e) 3, 1 f) 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 “Divisible
by 3” if the value is divisible by 3 but is not divisible by 5, “Divisible by 5” if the value is
divisible 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: result
if (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___ "
else
result ← "Not divisible by 3 or 5"
endif
return result
Answer group
A B C
a) 3 3 and 5 5
b) 3 5 3 and 5
c) 3 and 5 3 5
d) 5 3 3 and 5
e) 5 3 and 5 3
-5-
Q3. From the answer group below, select the correct answer to be inserted in _______ in
the description. Here, the array indexes start at 1.
The function makeNewArray receives an integer array with at least two elements as an
argument, 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 is
returned as the return value is _______ .
[Program]
○ integer []: makeNewArray(integer []: in)
integer []: out ← {} // An array with 0 elements
integer: i, tail
add 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
endfor
return out
Answer group:
a) 5 b) 6 c) 9 d) 11
e) 12 f) 17 g) 21
-6-
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 is
equal 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 is
equal 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 - y
else
y ← y - x
endif
___C___
return x
Answer group
A B C
a) if (x ≠ y) x < y endif
b) if (x ≠ y) x > y endif
c) while (x ≠ y) x < y endwhile
d) 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 the
calculation 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 group
a) (pow(x, 2) + pow(y, 2)) ÷ pow(2, 0.5)
b) (pow(x, 2) + pow(y, 2)) ÷ pow(x, y)
c) pow(2, pow(x, 0.5)) + pow(2, pow(y, 0.5))
d) pow(pow(pow(2, x), y), 0.5)
e) pow(pow(x, 2) + pow(y, 2), 0.5)
f) pow(x, 2) × pow(y, 2) ÷ pow(x, y)
g) 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 is
11010010.
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 value
of v by n bits to the right, and v << n performs a logical shift of the value of v by n bits to
the left.
[Program]
○ 8-bit: rev(8-bit: byte)
8-bit: rbyte ← byte
8-bit: r ← 00000000
integer: i
for (increase i from 1 to 8 by 1)
_______
endfor
return r
Answer group
a) r ← (r << 1) | (rbyte & 00000001)
rbyte ← rbyte >> 1
-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 group
a) (n − 1) × factorial(n) b) factorial(n − 1)
c) n d) n × (n − 1)
e) n × factorial(1) f) n × factorial(n − 1)
- 10 -
Q8. From the answer group below, select the correct answer to be inserted in _______ in
the description.
Constructor Description
PrioQueue() Creates an empty priority queue.
- 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 group
a) "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 _______ in
the 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 order
of left child then right child.
For example, the element at element number 1 in the array tree is an array that contains the
node numbers of the children of node number 1, and it stores node number 2 of the left child
and 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 _______ .
2 3
4 5 6 7
8 9 10 11 12 13 14
- 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 n
order(tree[n][2])
elseif (the number of elements in tree[n] is equal to 1)
order(tree[n][1])
output n
else
output n
endif
Answer group
a) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
b) 1, 2, 4, 8, 9, 5, 10, 11, 3, 6, 12, 13, 7, 14
c) 8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 13, 3, 14, 7
d) 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.
[Program]
global: ListElement: listHead // stores the first element in the list
Answer group:
a) listHead b) listHead.next c) listHead.next.next
d) prev e) prev.next f) prev.next.next
- 15 -
Q11. From the answer group below, select the correct answer to be inserted in _______ in
the description. Here, the array indexes starts at 1.
When the function binSort is called as binSort( _______ ), the values are sorted in
ascending 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: i
return bins
Answer group
a) {2, 6, 3, 1, 4, 5} b) {3, 1, 4, 4, 5, 2}
c) {4, 2, 1, 5, 6, 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 as
arguments. 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 an
index 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
s1 s2 Return value
{"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
endfor
return cnt ÷ the number of elements in s1 /* calculate as real numbers */
Answer group
a) s1[i] ≠ s2[cnt] b) s1[i] ≠ s2[i]
c) s1[i] = s2[cnt] d) s1[i] = s2[i]
- 17 -
Q13. From the answer group below, select the correct answer to be inserted in _______ in
the 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 the
array does not contain the value specified with target, it returns -1. data is sorted in
ascending order, and there are no duplicate values.
The function search has a defect. For example, if _______ , the function enters an endless
loop.
[Program]
○ integer: search(integer []: data, integer: target)
integer: low, high, middle
low ← 1
high ← the number of elements in data
return -1
Answer group
a) one or more elements in data contain the value -1
b) the number of elements in data is 1 and target is equal to the value of the element
c) the number of elements in data is 2 and target is equal to the value of the first
element of data
d) the number of elements in data is 2 and target is equal to the value of the last
element of data
- 18 -
Q14. From the answer group below, select the correct answer to be inserted in _______ in
the description. Here, the array indexes start at 1.
The function summarize receives the array sortedData with at least one element and that
is 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: i
i ← 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]
Answer group
a) {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 move
with the highest evaluated value among the child nodes of the root is deemed to be the move
with 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 a
win, 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 evaluated
values 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 three
moves that the player can choose from. Among these, the evaluated value of the child
indicated by A is ___A___ , and the evaluated value of the child indicated by B is
___B___ .
- 20 -
Root state
× ○ ×
× ○ ○ Player's turn
A B
× ○ × × ○ × × ○ ×
× ○ ○ × ○ ○ × ○ ○ Opponent's turn
○ ○ ○
Win Evaluated value 10
× ○ × × ○ × × ○ × × ○ ×
Player's
× ○ ○ × ○ ○ × ○ ○ × ○ ○ turn
○ × ○ × × ○ × ○
Loss Evaluated value -10
× ○ × × ○ × × ○ ×
× ○ ○ × ○ ○ × ○ ○
○ × ○ ○ ○ × ○ × ○
Draw Evaluated Win Evaluated Draw Evaluated
value 0 value 10 value 0
Answer group
A B
a) 0 -10
b) 0 0
c) 10 -10
d) 10 0
- 21 -
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.
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 “♫” is
represented 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 the
array. It is assumed that only an integer value that ranges between 800(16) and FFFF(16) is
passed 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 re-
placed with 0, divided into three 8-bit blocks, and each deemed to be binary */
integer []: utf8Bytes ← {224, 128, 128}
integer: cp ← codePoint
integer: i
for (decrease i from the number of elements in utf8Bytes to 1 by 1)
utf8Bytes[i] ← utf8Bytes[i] + (cp ÷ remainder of _______ )
cp ← cp ÷ quotient of _______
endfor
return utf8Bytes
- 22 -
Answer group
a) ((4 − i) × 2) b) (2 to the power of (4 − i))
c) (2 to the power of i) d) (i × 2)
e) 2 f) 6
g) 16 h) 64
i) 256
- 23 -
Q17. From the answer group below, select the appropriate combination of the answer to be
inserted in ___A___ , ___B___ , and ___C___ in Figure 1.
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 the
same profession. A Web vulnerability was exploited and that resulted in leakage of personal
information. Accordingly, Company X conducted vulnerability assessment of the site and
three findings that need security actions were pointed out. Figure 1 shows the findings and
responsible companies that should take corrective actions.
No Finding Action by
1 Attacks that exploit a vulnerability may occur due to a known Company _A_
vulnerability in the OS of the application server used in the site.
2 Member information may be leaked due to a vulnerability of Company _B_
cross-site scripting in the site.
3 Attacks that exploit a vulnerability may occur due to a known Company _C_
vulnerability in the DBMS used in the site.
Figure 1 Findings and responsible companies that should take corrective actions
- 24 -
Answer group
A B C
a) X X X
b) X X Z
c) X Y Y
d) Y Y Y
e) Y Y Z
f) Y Z Y
g) Y Z Z
h) Z Y Y
i) Z Y Z
j) Z 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, and
all 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.
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 for
business 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 office
clicks 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 the
internal network, and the malware will spread on the internal network.
Answer group
a) (1) and (2) b) (1) and (3) c) (1) and (4) d) (1) and (5)
e) (2) and (3) f) (2) and (4) g) (2) and (5) h) (3) and (4)
i) (3) and (5) j) (4) and (5)
- 27 -
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.
In System OM, a function to grant the operation permissions based on business needs to
users 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 order
management 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 be
approved 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.
Answer group
A B
a) Sales manager in Company Y Sales manager in Sales Section Z
b) Sales manager in Company Y Sales staff members in Company Y
c) Sales manager in Sales Section Z Sales manager in Company Y
d) Sales manager in Sales Section Z Sales staff members in Company Y
e) 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 the
findings 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 created
in 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 are
no errors in the operation, and approves the operation.
• A password is used for logging in to the FW. Passwords are composed of eight
alphabetical 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 from
the 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.
- 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 the
findings 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 group
a) Assign the operation staff members who will perform the work for each day of the
week.
b) Divide the operation staff members into those who can log in from the console and
those 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 enhance
monitoring.
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, and
only 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)
- 32 -