WorksheetsQuizz 2024/04/02
Total questions: 3
Worksheet time: 26mins
〔プログラム〕
整数型の配列: findPrimeNumbers(整数型: maxNum)
整数型の配列: pnList ← [] // 要素数0の配列
整数型: i, j
論理型: isPrime
for (i を 2 から「a」まで 1 ずつ増やす)
isPrime ← true
/* iの正の平方根の整数部分が2未満の時は、繰り返し処理を実行しない */
for (j を 2 から iの正の平方根の整数部分まで 1 ずつ増やす)
if (「b」)
isPrime ← false
繰り返し処理を終了する
endif
endfor
if (isPrime が true に等しい)
pnListの末尾に iの値を追加する
endif
endfor
return pnList
次のプログラムの中の「a」と「b」に入れるべき正しい答えの組み合わせを、以下の選択肢から選びなさい。ここで、配列の要素番号は0から始まるものとします。
関数findPrimeNumbersは、引数で与えられた整数以下の、全ての素数だけを格納した配列を返す関数です。ここで、引数に与える整数は2以上です。
a: maxNum+1
b: i % j != 0
a: maxNum
b: i % j == 0
a: maxNum-1
b: i % j == 0
a: maxNum+1
b: i % j == 0
〔プログラム〕
○procA()
"X" を出力する
procC()
○procB()
procC()
"Y" を出力する
procA()
○procC()
"Z" を出力する
次のプログラムにおいて、手続procAを呼び出すと、「 」の順に出力される。
"XZ"
"ZX"
"ZXYZ"
"ZXZ"
〔プログラム〕
大域: 整数型の配列: data ← {2, 1, 3, 5, 4}
○sort(整数型: first, 整数型: last)
整数型: pivot, i, j
pivot ← data[(first + last) ÷ 2 の商]
i ← first
j ← last
while (true)
while (data[i] < pivot)
i ← i + 1
endwhile
while (pivot < data[j])
j ← j - 1
endwhile
if (i ≧ j)
繰返し処理を終了する
endif
data[i]とdata[j]の値を入れ替える
i ← i + 1
j ← j - 1
endwhile
dataの全要素の値を要素番号の順に空白区切りで出力する /*** α ***/
if (first < i - 1)
sort(first, i - 1)
endif
if (j + 1 < last)
sort(j + 1, last)
endif
次の手続 sort は,大域の整数型の配列 data の,引数 first で与えられた要素番号から引数 last で与えられた要素番号までの要素を昇順に整列する。ここで,first < last とする。手続 sort を sort(1, 5) として呼び出すと,/*** α ***/ の行を最初に実行したときの出力は“ ”となる。
1 2 3 4 5
1 2 3 5 4
2 1 3 4 5
2 1 3 5 4
