2024A FE-B Questions
2024A FE-B Questions
Instructions:
1. Use a pencil. If you need to change an answer, erase your previous answer completely
and neatly. Wipe away any eraser debris.
2. Mark your examinee information and test answers in accordance with the instructions
below. Your answer will not be graded if you do not mark properly. Do not mark or write
on the answer sheet outside of the prescribed places.
(1) Examinee Number
Write your examinee number in the space provided, and mark the appropriate space
below each digit.
(2) Date of Birth
Write your date of birth (in numbers) exactly as it is printed on your examination
admission card, and mark the appropriate space below each digit.
(3) Answers
Mark your answers as shown in the sample question below.
[Sample Question]
Which of the following should be used for marking your answer on the answer sheet?
Answer group
a) Ballpoint pen b) Crayon c) Fountain pen d) Pencil
[Sample Answer]
Sample B C D ●F G H I J K
-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 combination of answers to be inserted
into ___A___ and ___B___ in the program. Here, the array indexes start at 1.
Bicycle ridership in a city is studied. Examination of several years of data revealed that 30%
of the people who regularly ride bicycles in a given year do not regularly ride bicycles in the
subsequent year. Additionally, 2% of the people who do not regularly ride bicycles in that
year begin to ride bicycles regularly in the subsequent year. If 5,000 people ride bicycles and
100,000 people do not ride bicycles in a given year, then the following program calculates
the number of cyclists in the subsequent year (cycling) and that of people who do not ride
bicycles in the subsequent year (noncycling):
[Program]
real: pc ← 0.3
real: pb ← 0.02
real: pa ← (1 – pc)
real: pd ← (1 – pb)
integer []: N ← {5000, 100000}
real [,]: P ← {{pa, pb}, {pc, pd}}
real: cycling, noncycling
cycling ← ___A___
noncycling ← ___B___
output cycling, noncycling
Answer group
A B
a) P[1,1] × N[1] + P[1,2] × N[2] P[2,1] × N[1] + P[2,2] × N[2]
b) P[1,1] × N[1] + P[1,2] × N[2] P[2,2] × N[1] + P[2,1] × N[2]
c) P[1,2] × N[1] + P[1,1] × N[2] P[2,2] × N[1] + P[2,1] × N[2]
d) P[1,2] × N[1] + P[2,2] × N[2] P[2,1] × N[1] + P[1,2] × N[2]
e) P[2,1] × N[1] + P[1,2] × N[2] P[1,1] × N[1] + P[2,2] × N[2]
f) P[2,1] × N[1] + P[2,2] × N[2] P[1,1] × N[1] + P[1,2] × N[2]
-4-
Q2. From the answer group below, select the correct combination of answers to be inserted
into ____A____ and ____B____ in the program.
The function coupon receives the argument prod_id (a positive integer value) of product
ID, and pur_prod (a positive integer value) of the number of purchased products by a
customer. The function returns the number of coupons.
For every purchase of three products of the product ID of which the last digit is three, the
customer receives one coupon. Otherwise, they receive no coupon.
[Program]
○ integer: coupon(integer: prod_id, integer: pur_prod)
integer: num_coupon ← 0
if ( ___A___ )
num_coupon ← ___B___
endif
return num_coupon
Answer group
A B
a) integer part of (prod_id ÷ 10) = 3 integer part of (pur_prod ÷ 3)
b) integer part of (prod_id ÷ 10) = 3 integer part of (pur_prod ÷ 3) + 1
c) integer part of (prod_id ÷ 10) = 3 pur_prod mod 3
d) prod_id = 10 mod 3 integer part of (pur_prod ÷ 3)
e) prod_id = 10 mod 3 integer part of (pur_prod ÷ 3) + 1
f) prod_id = 10 mod 3 pur_prod mod 3
g) prod_id mod 10 = 3 integer part of (pur_prod ÷ 3)
h) prod_id mod 10 = 3 integer part of (pur_prod ÷ 3) + 1
i) prod_id mod 10 = 3 pur_prod mod 3
-5-
Q3. From the answer group below, select the correct combination of answers to be inserted
into ____A____ and ____B____ in the program. Here, the array index starts at 1.
The program determines the second-largest element of an integer-type array and outputs its
value. For instance, the second largest element of the array {2, 6, 9, 1, 7, 5} is 7. Here,
we assume that the array has two or more elements and that no duplicate elements are present
in the array.
[Program]
integer []: array ← {2, 6, 9, 1, 7, 5}
integer: i
integer: max1 ← -∞
integer: max2 ← -∞
for (increase i from 1
to the number of elements of array by 1)
if ( ___A___ )
max2 ← max1
max1 ← array[i]
elseif (array[i] > max2)
___B___
endif
endfor
output max2
Answer group
A B
a) array[i] < max1 max1 ← array[i]
b) array[i] < max1 max2 ← array[i]
c) array[i] < max2 max1 ← array[i]
d) array[i] < max2 max2 ← array[i]
e) array[i] > max1 max1 ← array[i]
f) array[i] > max1 max2 ← array[i]
g) array[i] > max2 max1 ← array[i]
h) array[i] > max2 max2 ← array[i]
-6-
Q4. From the answer group below, select the correct combination of answers to be inserted
into ___A___ and ___B___ in the program.
The procedure primeFactors outputs the prime factors for the input values as its argument.
The first few prime numbers are 2, 3, 5, 7, 11, and 13. For instance, if the input integer is 12,
the output is “2×2×3”. If the input integer is 78, the output is “2×3×13”. The input integer
must be greater than 1.
[Program]
○ primeFactors(integer: num)
integer: i
i ← 2
do
if ( ___A___ )
num ← integer part of (num ÷ i)
output i
if ( ___B___ )
output "×"
endif
else
i ← i + 1
endif
while ( ___B___ )
Answer group
A B
a) num < 1 num mod i ≠ 0
b) num > 1 num mod i = 0
c) num mod i = 0 num > 1
d) num mod i ≠ 0 num < 1
-7-
Q5. From the answer group below, select the correct combination of answers to be inserted
into ____A____ and ____B____ in the program. Here, the array index starts at 1.
[Program]
○ real: calcGeoMean(real []: dataArray)
real: product, geomean
integer: n ← the number of elements in dataArray
integer: i
product ← 1
for (increase i from 1 to n by 1)
product ← product × dataArray[i]
endfor
geomean ← pow( ___A___ , ___B___ )
return geomean
Answer group
A B
a) 1 ÷ n product
b) product 1 ÷ n
c) product n
d) n product
-8-
Q6. From the answer group below, select the correct combination of answers to be inserted
into ____A____ through ____C____ in the program.
Here, the term b2 - 4ac is known as the discriminant of a quadratic equation. It indicates the
nature of the roots. The formula for solving a quadratic equation is shown in the figure. If
the discriminant value is positive, there are two solutions; if it is zero, there is one solution.
Here, we assume that the discriminant value is non-negative.
−𝑏 + √𝑏 − 4𝑎𝑐
𝑟𝑜𝑜𝑡1 =
2𝑎
If the discriminant > 0
−𝑏 − √𝑏 − 4𝑎𝑐
𝑟𝑜𝑜𝑡2 =
2𝑎
−𝑏
If the discriminant = 0 𝑟𝑜𝑜𝑡1 = 𝑟𝑜𝑜𝑡2 =
2𝑎
Figure The formula for solving a quadratic equation
The procedure findRoots receives three real number arguments a, b, and c as coefficients
and outputs the value of the root(s) of the quadratic equation. Function
sqrt(discriminant) returns the principal square root value of the parameter
discriminant.
[Program]
○ findRoots(real: a, real: b, real: c)
real: discriminant, root1, root2
discriminant ← ___A___
if ( ___B___ )
root1 ← (−b + sqrt(discriminant)) ÷ (2 × a)
root2 ← (−b − sqrt(discriminant)) ÷ (2 × a)
output "root1 = ", root1, " and root2 = ", root2
elseif ( ___C___ )
root1 ← −b ÷ (2 × a)
output "root1 = root2 = ", root1
endif
-9-
Answer group
A B C
a) b × 2 − 4 × a × c discriminant < 0 discriminant = 0
b) b × 2 − 4 × a × c discriminant = 0 discriminant < 0
c) b × 2 − 4 × a × c discriminant = 0 discriminant > 0
d) b × 2 − 4 × a × c discriminant > 0 discriminant = 0
e) b × b − 4 × a × c discriminant < 0 discriminant = 0
f) b × b − 4 × a × c discriminant = 0 discriminant < 0
g) b × b − 4 × a × c discriminant = 0 discriminant > 0
h) b × b − 4 × a × c discriminant > 0 discriminant = 0
- 10 -
Q7. From the answer group below, select the correct combination of answers to be inserted
into ___A___ and ___B___ in the program.
Given two strings, str1 and str2, the task is to determine the length of the longest common
subsequence (LCS), that is, the length of the longest subsequence present in both strings.
For instance, if str1 is “ABXDZ” and str2 is “ABCD”, the LCS between str1 and str2 will
be “ABD” and the length of the LCS will be 3.
The function lcs(string: str1, string: str2, integer: m, integer: n) takes two
strings str1 and str2 and two integers m and n as arguments. str1 and str2 are the strings
on which the length of the LCS is calculated. m and n are indexes addressing the target
characters in str1 and str2, respectively. On the first call, m and n represent the lengths of
str1 and str2, respectively. The function returns an integer containing the value of the
length of the LCS of str1 and str2. For instance, the function may be called as
lcs("ABXDZ", "ABCD", 5, 4).
Another function max(integer: a, integer: b) is also used. The function takes two
integers a and b as arguments. It compares these two integers and returns the integer value
of whichever is the maximum between a and b.
[Program]
○ integer: max(integer: a, integer: b)
if (a > b)
return a
else
return b
endif
- 11 -
Answer group
A B
a) n n - 1
b) n n + 1
c) n - 1 n
d) n - 1 n + 1
e) n + 1 n
f) n + 1 n - 1
- 12 -
Q8. From the answer group below, select the correct answer to be inserted into _______ in
the description.
Constructor Description
PrioQueue() Creates an empty priority queue.
[Program]
○ prioSched()
PrioQueue: prioQueue ← PrioQueue()
prioQueue.enqueue("E", 3)
prioQueue.enqueue("F", 2)
prioQueue.enqueue("G", 1)
prioQueue.enqueue("H", 1)
prioQueue.dequeue() /* The return value is ignored */
prioQueue.dequeue() /* The return value is ignored */
prioQueue.enqueue("I", 1)
prioQueue.enqueue("J", 1)
prioQueue.dequeue() /* The return value is ignored */
prioQueue.enqueue("K", 2)
prioQueue.enqueue("L", 3)
prioQueue.enqueue("M", 1)
- 13 -
while (prioQueue.size() is not equal to 0)
output prioQueue.dequeue()
endwhile
Answer group
a) "M", "I", "K", "F", "L", "E"
b) "M", "L", "K", "I", "F", "E"
c) "J", "M", "F", "K", "E", "L"
d) "E", "L", "F", "K", "I", "M"
- 14 -
Q9. From the answer group below, select the correct answer to be inserted into _________ in
the description. Here, the array indexes start at 1.
The procedure traverse traces through a vertex of the graph shown in the Figure, and
outputs all vertex numbers in the graph. The vertex number of the graph is specified with the
argument k. The global variable n indicates the number of vertices in the graph. The global
array graph represents the graph in the figure. Each element graph[i][j] is equal to 1 if
an edge exists between vertices i and j, and it is equal to 0 otherwise. The global array
visited stores boolean values, where visited[i] indicates whether vertex i of the graph
has been visited during the procedure.
When the procedure is called as traverse(1), the output is in the order _______ .
1 2
4 5
[Program]
global: integer: n ← 5
global: integer [][]: graph ← {{0, 1, 0, 1, 0}, {1, 0, 1, 0, 1},
{0, 1, 0, 0, 0}, {1, 0, 0, 0, 1},
{0, 1, 0, 1, 0}}
global: boolean []: visited ← {false, false, false, false, false}
○ traverse(integer: k)
integer: i
visited[k] ← true
output k
Answer group
a) 1, 2, 3, 4, 5 b) 1, 2, 3, 5, 4
c) 1, 2, 4, 3, 5 d) 1, 2, 4, 5, 3
- 15 -
Q10. From the answer group below, select the correct answer to be inserted into _______ in
the program.
The procedure addNode adds a node to a singly-linked list at the position specified by the
argument pos. The argument pos is a positive integer that is equal to or less than the (number
of nodes + 1) in the list. The position at the top of the list is 1.
The class ListNode represents a node in a singly-linked list. The table summarizes an
explanation of the member variables of the class ListNode. ListNode-type variables store
references to instances of the class ListNode. A reference to the first node in the list is pre-
stored in the global variable listHead.
[Program]
global: ListNode: listHead // stores the first node in the list
Answer group
a) listHead b) listHead.next c) listHead.next.next
d) prev e) prev.next f) prev.next.next
- 16 -
Q11. From the answer group below, select the correct combination of answers to be inserted
into ___A___ and ___B___ in the program. Here, the array indexes start at 1.
The procedure sort sorts an integer array containing certain number (≥ 2) of elements in
ascending order.
[Program]
○ sort(integer []: arg)
Integer []: A ← arg
integer: i, k
for (increase i from 2 to the number of elements in A by 1)
k ← i
while (k > 1)
if (A[k – 1] ≤ A[k])
exit the while block
endif
___ A___
___ B___
endwhile
endfor
output A
Answer group
A B
a) A[i] ← A[i - 1] k ← k + 1
b) A[k] ← A[k - 1] swap k and i
c) A[k - 1] ← A[k] k ← k + 1
d) swap A[i] and A[i - 1] k ← k - 1
e) swap A[i] and A[k] swap k and i
f) swap A[k] and A[k - 1] k ← k - 1
- 17 -
Q12. From the answer group below, select the correct combination of answers to be inserted
into ____A____ and ____B____ in the program. Here, the array index starts at 1.
The function isPalindrome determines whether the character array s given as argument is
a palindrome. Palindromes are words when read backward will still be the same such as
“noon” and “madam.”
If character array s is a palindrome, it returns the value true and if not, the function returns
false.
The table lists examples of s given to the function isPalindrome and the return values. In
the program, areas outside of the arrays must not be referenced.
Table Examples of s given to the function isPalindrome and the return values
s Return value
{"n", "o", "o", "n"} true
{"n", "i", "g", "h", "t"} false
{"m", "a", "d", "a", "m"} true
{"s", "i", "r"} false
[Program]
○ boolean: isPalindrome(character []: s)
integer: left ← 1
integer: right ← the number of elements in s
boolean: ok ← true
while (left < right)
if ( ___A___ )
left ← left + 1
___B___
else
ok ← false
break
endif
endwhile
return ok
- 18 -
Answer group
A B
a) s[left] = s[right] right ← right + 1
b) s[left] = s[right] right ← right − 1
c) s[left] = s[right] right ← right + left
d) s[left] = s[right] right ← right − left
e) s[left] ≠ s[right] right ← right + 1
f) s[left] ≠ s[right] right ← right – 1
g) s[left] ≠ s[right] right ← right + left
h) s[left] ≠ s[right] right ← right − left
- 19 -
Q13. From the answer group below, select the correct combination of answers to be inserted
into ___A___ and ___B___ in the program. Here, the array indexes start at 1.
Hashing in data structures is a fundamental concept used for efficient data retrieval and
storage mechanisms. A program storing a key-data pairs in an array by transforming keys
into array indexes using a hash function exists. A collision occurs when two keys hash to
the same index in the array representing the hash table. A common method handling
collisions, the probing mechanism (checking for an available element), is used in the
function. The procedure insertData inserts a pair of key and data, if the element in the
array is {undefined}. Assumptions are made that no data with the same key is stored,
and that at least one element in the array hashTable is {undefined} when the procedure
insertData is called. The function hashFunction takes a key as input and returns a
hash value.
[Program]
global: integer [][]: hashTable ← {Elements comprising 1000 {undefined}}
global: integer: size ← 1000
○ integer: hashFunction(integer: key)
return (key mod size) + 1
- 20 -
Answer group
A B
a) hashTable[index][1] ≠ key index ← 1
b) hashTable[index][1] ≠ key index ← index - 1
c) hashTable[index][1] = key index ← 1
d) hashTable[index][1] = key index ← index - 1
e) hashTable[index][1] ≠ undefined index ← 1
f) hashTable[index][1] ≠ undefined index ← index - 1
g) hashTable[index][1] = undefined index ← 1
h) hashTable[index][1] = undefined index ← index - 1
- 21 -
Q14. From the answer group below, select the correct answer to be inserted into _______ in
the description. Here, the array indexes start at 1.
The function summarize receives the array sortedData sorted in ascending order and
returns five values that characterize the array. The array sortedData must have at least one
element. The summarize calls the findRank with two arguments, sortedData and q.
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: q)
integer: j
j ← floor(q × (the number of elements in sortedData - 1))
// floor returns the closest integer less than or equal to a given
// number, e.g. floor(7.75) returns 7.
return sortedData[j + 1]
Answer group
a) {0.1, 0.2, 0.3, 0.4, 0.5}
b) {0.1, 0.2, 0.3, 0.4, 0.7}
c) {0.1, 0.2, 0.4, 0.6, 0.9}
d) {0.1, 0.2, 0.4, 0.7, 0.9}
e) {0.1, 0.3, 0.5, 0.7, 1}
f) {0.1, 0.3, 0.5, 0.8, 1}
g) {0.1, 0.3, 0.6, 0.9, 1}
h) {0.1, 0.3, 0.7, 0.9, 1}
- 22 -
Q15. From the answer group below, select the correct combination of answers to be inserted
into ___A___ and ___B___ in the program. Here, the array indexes start at 1.
Suppose the weather in a city, from day to day, follows a Markov process. This implies the
next day’s weather depends only on today’s weather and not on those of the previous days.
If it rains today in the city, a probability 0.3 exists that it will rain again tomorrow. Similarly,
the probability that tomorrow’s weather will be sunny is 0.4 and that it will be cloudy is 0.3.
If today’s weather is sunny, the next day will be rainy, sunny, or cloudy with probabilities
0.2, 0.7, and 0.1, respectively. Additionally, if today’s weather is cloudy, the next day will
be rainy, sunny, or cloudy with probabilities 0.25, 0.5, and 0.25, respectively.
Let us say that the weather is in state 1 if it is rainy, in state 2 if it is sunny, and in state 3 if
it is cloudy. Then, the above is a three-state Markov chain whose transition probabilities are
given by the following:
to
1 2 3
1 0.3 0.4 0.3
from 2 0.2 0.7 0.1
3 0.25 0.5 0.25
Using this transition matrix, the probability distribution of the weather after several days can
be estimated.
The program calculates the probability distribution of the weather of the city after three days
from the present day and outputs a 3 × 3 square matrix that shows this probability distribution
of the weather. For instance, if the weather on the present day is sunny (state 2), the
probability that the weather three days after will be rainy (state 1) is the value in the second
row and the first column of the outputted matrix.
[Program]
real [,]: pmat ← {{0.3, 0.4, 0.3}, {0.2, 0.7, 0.1}, {0.25, 0.5, 0.25}}
real [,]: dmat ← pmat
real [,]: smat
integer: i, j, k, m
for (increase m from 1 to ___A___ by 1)
smat ← {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}
for (increase i from 1 to 3 by 1)
for (increase j from 1 to 3 by 1)
for (increase k from 1 to 3 by 1)
smat[i, j] ← smat[i, j] + __B___
- 23 -
endfor
endfor
endfor
dmat ← smat
endfor
output dmat
Answer group
A B
a) 2 dmat[i, k] × pmat[k, j]
b) 2 dmat[k, i] × pmat[j, k]
c) 3 dmat[i, k] × pmat[k, j]
d) 3 dmat[k, i] × pmat[j, k]
e) 4 dmat[i, k] × pmat[k, j]
f) 4 dmat[k, i] × pmat[j, k]
- 24 -
Q16. From the answer group below, select the correct combination of answers to be inserted
into ___A___ through ___C___ in the program.
Function hammingDistance receives two strings as argument and returns Hamming distance
as the return value. Hamming distance is a metric used to measure the difference between
two strings of equal length. It counts the number of positions at which the corresponding
characters are different. For instance, the return value is 2 when the function
hammingDistance("101010", "111000") is called, because positions 2 and 5 have
different characters.
It can also be extended to strings of different lengths by considering the unmatched
characters as differences. For instance, the return value is 5 when the function
hammingDistance("101010", "111000111") is called, because of two differences in first
six characters and addition of three extra unmatched characters.
[Program]
○ integer: hammingDistance(string: s1, string: s2)
integer: distance, length1, length2, minLength, remainingLength
length1 ← length of s1
length2 ← length of s2
distance ← 0
minLength ← length1
if ( ___A___ )
minLength ← length2
endif
for (increase i from 1 to minLength by 1)
if (the i-th character of string s1 ___B___ the i-th character of string s2)
distance ← distance + 1
endif
endfor
if (length1 > length2)
remainingLength = length1 - length2
else
remainingLength = length2 - length1
endif
distance ← ___C___
return distance
- 25 -
Answer group
A B C
a) length2 < length1 is equal to remainingLength
b) length2 < length1 is equal to distance + remainingLength
c) length2 < length1 is not equal to distance + minLength
d) length2 < length1 is not equal to distance + remainingLength
e) length2 > length1 is equal to remainingLength
f) length2 > length1 is equal to distance + remainingLength
g) length2 > length1 is not equal to distance + minLength
h) length2 > length1 is not equal to distance + remainingLength
- 26 -
Q17. From the answer group below, select the most appropriate combination of answers to be
inserted into ____A____ and ____B____ in the description.
All of your important files have been encrypted. To restore these files, please follow
these steps:
1. transfer $500 worth of cryptcurrency to the currency address provided:
Address: 1ABCD.... EFGH
2. As soon as the transfer is confirmed, we will send you the key to decrypt the files.
3. If the transfer is not confirmed within 48 h, the decryption key will be deleted and
the files will be lost forever.
Contact: help@ransomware.example.com
The accounting department immediately requested the security team in company A to help
resolve the situation. The security team analyzed all the PCs in the accounting department,
including that of employee X, and noted the following:
1. A total of tow compromised PCs were found. One PC was used by Employee X and
the other PC was shared by multiple employees.
2. IDS/IPS was not installed in the accounting department LAN, delaying detection of
ransomware.
3. The shared PC was backed up daily, and important data could be restored from the
backup at the time when the PC was not compromised by the ransomware.
4. Employee X's PC was not backed up, and important data could not be restored.
- 27 -
6. Employee X inadvertently executed the attached file and allowed the ransomware to
invade his PC.
8. On both PCs, the anti-virus software versions and virus definition files were checked
for updates on a daily basis and maintained up-to-date.
9. Both PCs had OS storage encryption feature enabled, but it was not effective against
the ransomware attack in this incident.
The security team and the accounting department decided to take the following approaches
and specific measures as a plan to strengthen the measures against future ransomware attacks.
Answer group
A B
a) SPAM filter enhancement Data backup
b) SPAM filter enhancement Data encryption
c) OS updates Data backup
d) OS updates Data encryption
e) Virus definition updates Data backup
f) Virus definition updates Data encryption
- 28 -
Q18. From the answer group below, select the correct answer to be inserted into ______ in
the description.
Company B runs several web services. Mr. Y is a software engineer in the company. He was
directed to develop a feature that prevents web service users from setting weak passwords.
Mr. Y investigated and found that “Password Entropy” is the important factor for the
password strength.
Password entropy measures the strength of a password based on the difficulty of cracking
the password through guessing or a brute-force attack. The entropy of a password is typically
based on the type of characters used—lowercase letters, uppercase letters, numerical digits,
or special characters—and the length of the password or total number of characters.
E = ⌊L ×Log2 (R)⌋
In this formula:
- E denotes the password entropy
- R denotes the possible range of character types in the password
- L denotes the number of characters in the password (its length)
- Log2 answers the question, "to what power 2 must be raised to equal this number"
- ⌊X⌋ denotes the greatest integer N such that N ≤ X
The following totals show the breakdown for each character set as they appear on a typical
American QWERTY keyboard:
Lowercase letters (a–z) = 26.
Uppercase letters (A–Z) = 26.
Numerical digits (0–9) = 10.
Special characters (!, @, #, $, %, ^, etc.) = 32.
- 29 -
uppercase letters, numbers, and special characters).
In our example:
Here, when the password is A6GmyVyOC (Using numerical digits, lowercase letters, and
uppercase letters. L = 9), the password entropy is ____ ___ bits.
Answer group
a) 42 b) 51 c) 52 d) 53 e) 58
- 30 -
Q19. From the answer group below, select the correct combination of answers to be inserted
into ___A___ and ___B___ in the description.
Company X is an investment company. Recently, one of their database servers was attacked
by an attacker.
Mr. L, the security team leader of company X, decided to ask Ms. A, a security analyst
working for the same company, to analyze the logs. Mr. L will extract log entries related to
database access from the log file of the attacked database server and send the extracted log
entries to Ms. A.
When sending access log data from Mr. L to Ms. A, the following conditions were agreed
upon in advance:
- Mr. L must encrypt the file such that only Ms. A can view it.
- Ms. A must confirm that the sender of the file is Mr. L.
They each have an RSA key pair and have already exchanged their public keys with each
other. They sign, verify, encrypt, and decrypt using those keys and a previously shared
cryptographic processing software.
This time, the log entries must be ___A___ and then ___B___ .
Answer group
A B
a) signed using Mr. L’s private key encrypted using Mr. L’s private key
b) signed using Mr. L’s private key encrypted using Mr. L’s public key
c) signed using Mr. L’s private key encrypted using Ms. A’s private key
d) signed using Mr. L’s private key encrypted using Ms. A’s public key
e) signed using Mr. L’s public key encrypted using Mr. L’s private key
f) signed using Mr. L’s public key encrypted using Mr. L’s public key
g) signed using Mr. L’s public key encrypted using Ms. A’s private key
h) signed using Mr. L’s public key encrypted using Ms. A’s public key
- 31 -
Q20. From the answer group below, select the most appropriate combination of answers to be
inserted into ___A___ and ___B___ in the description.
During the initial project meeting, the members from each department discuss their
respective tasks. The developer team requests the security team to derive specific tasks for
the above requirements related to security. Ms. B, a member of the security team, suggests
the following tasks:
Answer group
A B
a) PKI environment honeypot
b) PKI environment VPN gateway
c) PKI environment web application firewall
d) SPF record honeypot
e) SPF record VPN gateway
f) SPF record web application firewall
_ _
Company names and product names appearing in the test questions are trademarks or registered
trademarks of their respective companies. Note that the ® and ™ symbols are not used within the text.
- 32 -