ITパスポート過去問集 - アルゴリズムとプログラミング

令和7年 問78
手続 calcMod3 を呼び出したときの出力はどれか。

プログラム
○calcMod3()
 整数型: totalValue,i
 totalValue ← 0
 for (i を 1 から 7 まで 1 ずつ増やす)
  if (i ÷ 3 の余りが 0 と等しい)
   totalValue ← totalValue + i
  endif
 endfor
 totalValue を出力する
2
3
7
9
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和7年 問98
4個の要素から成るデータの並びを,次の手順を繰り返して昇順に整列するとき,整列が終了するまでに(1)から(3)の一連の手順は,何回実行されるか。ここで,最初はデータの並び全体を整列対象とする。

データの並び:[27,42,33,12]

〔手順〕
(1) 整列対象中の要素の最大の値を選び,最後の要素と入れ替える。
(2) 最後の要素を整列対象から外す。
(3) 整列対象に要素が1個以上残っていれば,(1)から(3)の一連の手順を実行する。
  残っていなければ,整列完了なので終了する。
2
3
4
5
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和7年 問99
関数 calculateAmountOfPrize は,業務改善の効果における改善額と短縮期間を,それぞれ improvement と period で受け取り,賞金額を戻り値とする。改善額が20万円で短縮期間が3日の業務改善と,改善額が5万円で短縮期間が14日の業務改善があった。この二つの賞金額の合計は何円か。ここで,改善額と短縮期間の値はそれぞれ0以上とする。

1,000
1,500
3,000
5,500
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和6年 問62
関数 convert は,整数型配列を一定のルールで文字列に変換するプログラムである。関数 convert を convert(arrayInput) として呼び出したときの戻り値が「AABAB」になる引数 arrayInput の値はどれか。ここで,arrayInput の要素数は1以上とし,配列要素番号は1から始まる。

プログラム
文字列型: convert (整数型配列: arraiInput)
 文字列型: stringOutput: ← ""// 空文字列を格納
 整数型: i
 for( i を 1 から arrayInput の要素数まで 1 ずつ増やす)
  if( arrayInput[i] が 1 と等しい )
   stringOutput の末尾に "A"を追加する
  else
   stringOutput の末尾に "B"を追加する
  endif
 endfor
 return stringOutput
{0,0,1,2,1}
{0,1,2,1,1}
{1,0,1,2,0}
{1,1,2,1,0}
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
解説
関数 convert は、整数型の配列 arrayInput を引数として受け取り、文字列型の値を返り値として返す関数です。

関数の先頭で文字列型の変数 stringOutput を空文字列に設定し、arrayInput の要素を先頭から順番に調べます。このとき、値が「1」ならば stringOutput の末尾に「A」を付け足し、それ以外の値なら「B」を付け足します。これを配列の末尾まで繰り返し、最後に stringOutput の値を返します。

返り値が「AABAB」になっているということは、引数の配列には先頭から順に「1」「1」「1以外」「1」「1以外」が格納されていたということになります。これに当てはまる「エ」が正解です。

「ア」は返り値が「BBABA」となります。
「イ」は返り値が「BABAA」となります。
「ウ」は返り値が「ABABB」となります。
令和6年 問85
関数 binaryToInteger は,1桁以上の符号なし2進数を文字列で表した値を引数 binaryStr で受け取り,その値を整数に変換した結果を戻り値とする。例えば,引数として「100」を受け取ると,4を返す。プログラム中の a,b に入れる字句の適切な組合せはどれか。

プログラム
整数型: binaryToInteger(文字列型: binaryStr)
 整数型: integerNum, digitNum, exponent, i
 integerNum ← 0
 for( i を 1 から binaryStr の文字数まで 1 ずつ増やす)
  digitNum ← binaryStr の末尾からi番目の文字を整数型に変換した値
  // 例: 文字 “1” であれば整数値 1 に変換
  exponent ← [ a ]
  integerNum ← [ b ]
 endfor
 return integerNum

ab
(2の i 乗) - 1integerNum × digitNum × exponent
(2の i 乗) - 1integerNum + digitNum × exponent
2の (i - 1) 乗integerNum × digitNum × exponent
2の (i - 1) 乗integerNum + digitNum × exponent
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和5年 問60
手続 printArray は,配列 integerArray の要素を並べ替えて出力する。手続 printArray を呼び出したときの出力はどれか。ここで,配列要素番号は1から始まる。

プログラム
○printArray()
 整数型: n, m
 整数型配列: integerArray ← {2, 4, 1, 3}
 for ( nを1から ( integerArray の要素数 - 1) まで1ずつ増やす)
  for ( mを1から ( integerArrayの要素数 - n ) まで1ずつ増やす)
   if ( integerArray[m] > integerArray[m + 1])
    integerArray[m] と integerArray[m + 1] の値を入れ替える
   endif
  endfor
 endfor
 integerArray の全ての要素を先頭から順にコンマ区切りで出力する
1,2,3,4
1,3,2,4
3,1,4,2
4,3,2,1
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和5年 問64
関数 sigma は,正の整数を引数 max で受け取り,1から max までの整数の総和を戻り値とする。プログラム中の a に入れる字句として,適切なものはどれか。

プログラム
整数型: sigma ( 整数型: max )
 整数型: calcX ← 0
 整数型: n
 for ( nを1から max まで1ずつ増やす )
  [ a ]
 endfor
 return calcX
calcX ← calcX × n
calcX ← calcX + 1
calcX ← calcX + n
calcX ← n
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
解説
関数 sigma は整数 max を引数として受け取り、1から max までの和を求めて返り値とします。

整数型の変数 calcX を0で初期化し、forループを用いて変数 n を1から max まで変化させて順番に calcX に足し合わせていきます。ループのたびに、calcX にはその時の n の値が加算されていくので、「calcX ← caclX + n」という操作が必要となります。「ウ」が正解です。
令和5年 問69
配列に格納されているデータ探索するときの,探索アルゴリズムに関する記述のうち,適切なものはどれか。
2分探索法は,探索対象となる配列の先頭の要素から順に探索する。
線形探索法探索するのに必要な計算量は,探索対象となる配列の要素数に比例する。
線形探索法を用いるためには,探索対象となる配列の要素は要素の値で昇順又は降順ソートされている必要がある。
探索対象となる配列が同一であれば,探索に必要な計算量は探索する値によらず,2分探索法が線形探索法よりも少ない。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
解説
データ集合から指定の条件を満たすデータを探し出す操作を「探索」(search)と言います。データの種類や構造に応じて様々な手法が提唱されており、必要な計算時間や記憶容量などの特性が異なります。

「ア」… 誤り。先頭から順に探索する方式は線形探索です。
「イ」… 正解。先頭から順に探索するため要素数に比例して探索時間が伸びます。
「ウ」… 誤り。探索開始前にソート済みである必要があるのは二分探索です。
「エ」… 誤り。探している値がたまたま先頭付近にある場合は線形探索の方が早くなる場合があります。二分探索は事前にソートする計算量も必要なため、探索が一度限りの場合は線形探索より遅い場合があります。
令和4年 問78
関数checkDigitは,10進9桁の整数の各桁の数字が上位の桁から順に格納された整数型配列originalDigitを引数として,次の手順で計算したチェックデジットを戻り値とする。プログラム中の a に入れる字句として,適切なものはどれか。ここで,配列要素番号は1から始まる。

〔手順〕
(1) 配列originalDigit要素番号1〜9の要素の値を合計する。
(2) 合計した値が9より大きい場合は,合計した値を10進の整数で表現したときの各桁の数字を合計する。この操作を,合計した値が9以下になるまで繰り返す。
(3) (2)で得られた値をチェックデジットとする。

プログラム
整数型checkDigit(整数型配列: originalDigit)
 整数型:i, j, k
 j ← 0
 for(i を 1 から originalDigit の要素数まで 1 ずつ増やす)
  j ← j + originalDigit[i]
 endfor
 while(jが 9 より大きい)
  k ← j ÷ 10 の商 /* 10進9桁の数の場合,jが2桁を超えることはない */
  [ a ]
 endwhile
 return j
j ← j - 10 × k
j ← k +(j - 10 × k)
j ← k +(j - 10)× k
j ← k + j
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和4年 問79
流れ図で示す処理を終了したとき,xの値はどれか。

0
14
28
56
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
解説
2つの数の最大公約数を求めるユークリッドの互除法を実行するプログラムです。2つの変数にそれぞれ初期値を設定し、「大きい方から小さい方を引く」という操作を繰り返します。2つの変数の値が同一になったら終了です。

初期値:x=98、y=42
↓ xからyを引く
x=56、y=42
↓ xからyを引く
x=14、y=42
↓ yからxを引く
x=14、y=28
↓ yからxを引く
x=14、y=14

ここで同一になったので終了です。この時点でxの値は14となります。「イ」が正解です。
令和4年 問96
関数calcXと関数calcYは,引数inDataを用いて計算を行い,その結果を戻り値とする。関数calcXをcalcX(1)として呼び出すと,関数calcXの変数numの値が,1 → 3 → 7 → 13 と変化し,戻り値は13となった。関数calcYをcalcY(1)として呼び出すと,関数calcYの変数numの値が,1 → 5 → 13 → 25 と変化し,戻り値は25となった。プログラム中のa, bに入れる字句の適切な組合せはどれか。

〔プログラム 1〕
整数型: calcX(整数型: inData)
 整数型: num, i
 num ← inData
 for(i を 1 から 3 まで 1 ずつ増やす)
  num ←[ a ]
 endfor
 return num

〔プログラム 2〕
整数型: calcY(整数型: inData)
 整数型: num, i
 num ← inData
 for([ b ])
  num ←[ a ]
 endfor
 return num

ab
2 × num + ii を 1 から 7 まで 3 ずつ増やす
2 × num + ii を 2 から 6 まで 2 ずつ増やす
num + 2 × ii を 1 から 7 まで 3 ずつ増やす
num + 2 × ii を 2 から 6 まで 2 ずつ増やす

答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和3年 問74
流れ図Xで示す処理では,変数iの値が,1→3→7→13と変化し,流れ図Yで示す処理では,変数iの値が,1→5→13→25と変化した。図中のa,bに入れる字句の適切な組合せはどれか。


ab
2i+kk:1,3,7
2i+kk:2,2,6
i+2kk:1,3,7
i+2kk:2,2,6
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
令和1年秋期 問70
大文字の英字から成る文字列の暗号化を考える。暗号化の手順と例は次のとおりである。この手順で暗号化した結果が“EGE”であるとき,元の文字列はどれか。

暗号化の手順例 “FAX”の暗号化
処理前処理後
1表から英字を文字番号に変換する。FAX5,0,23
21文字目に1,2文字目に2,n文字目にnを加算する。5,0,236,2,26
326で割った余りを新たな文字番号とする。6,2,266,2,0
4表から文字番号を英字に変換する。6,2,0GCA

英字ABCDEFGHIJKLM
文字番号0123456789101112
英字NOPQRSTUVWXYZ
文字番号13141516171819202122232425
BED
DEB
FIH
HIF
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成31年春期 問71
図1のように二つの正の整数A1,A2を入力すると,二つの数値B1,B2を出力するボックスがある。B1はA2と同じ値であり,B2はA1をA2で割った余りである。図2のように,このボックスを2個つないだ構成において,左側のボックスのA1として49,A2として11を入力したとき,右側のボックスから出力されるB2の値は幾らか。

1
2
4
5
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成27年秋期 問48
表に示す構成のデータを,流れ図の手順で処理する場合について考える。流れ図中のx,y,zをそれぞれデータ区分A,B,Cと適切に対応させれば,比較(“xか?”,“yか?”,“zか?”)の回数の合計は,最低何回で済むか。

170
190
230
250
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成27年春期 問59
プログラムの処理手順を図式を用いて視覚的に表したものはどれか。
ガントチャート
データフローダイアグラム
フローチャート
レーダチャート
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成25年春期 問53
コンピュータを利用するとき,アルゴリズムは重要である。アルゴリズムの説明として,適切なものはどれか。
コンピュータが直接実行可能な機械語に,プログラムを変換するソフトウェア
コンピュータに,ある特定の目的を達成させるための処理手順
コンピュータに対する一連の動作を指示するための人工言語の総称
コンピュータを使って,建築物や工業製品などの設計をすること
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成23年秋期 問64
1~4の番号をもつ四つの状態がある。四つの状態は図のようにつながれており,時計回りや反時計回りに状態を遷移することができる。


現在,状態1にいて,次の手順を2回実施した後はどの状態にいるか。
〔手順〕
今いる状態の番号を11倍し,それを3で割った余りによって次の処理を行う。
・余りが0の場合:時計回りに一つ次の状態に遷移する。
・余りが1の場合:反時計回りに一つ次の状態に遷移する。
・余りが2の場合:時計回りに二つ次の状態に遷移する。
1
2
3
4
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成22年秋期 問69
二つの変数xとyに対して,次の手続を(1)から順に実行する。処理が終了したとき,xの値は幾らになるか。

〔手続〕
(1)xに2を代入し,yに3を代入する。
(2)yの値から1を引いたものをyに代入する。
(3)xの値とyの値を加えたものをxに代入する。
(4)y≠1なら手続(2)に戻り,y=1なら処理を終了する。
4
5
7
8
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成22年秋期 問88
9けたの数字に対して,次のルールでチェックディジットを最後尾に付けることにした。チェックディジットを付加した10けたの数字として,正しいものはどれか。

ルール1:各けたの数字を合計する。
ルール2:ルール1で得られた数が2けたになった場合には,得られた数の各けたの数字を合計する。この操作を,得られた数が1けたになるまで繰り返す。
ルール3:最終的に得られた1けたの数をチェックディジットとする。
1234567890
4444444444
5544332211
6655333331
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成22年春期 問53
変数AとBに格納されているデータを入れ替えたい。データを一時的に格納するための変数をTMPとすると,データが正しく入れ替わる手順はどれか。ここで“x←y”は,yのデータでxの内容を置き換えることを表す。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成22年春期 問79
業務の改善提案に対する報奨を次の表に基づいて決めるとき,改善額が200万円で,かつ,期間短縮が3日の改善提案に対する報奨は何円になるか。ここで表は,条件が成立の場合はYを,不成立の場合はNを記入し,これらの条件に対応したときの報奨を○で表してある。

条件改善額100万円未満YYNN
期間短縮1週間未満YNYN
報奨5,000円
10,000円
15,000円
30,000円
5,000
10,000
15,000
30,000
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成22年春期 問85
下から上ヘデータを積み上げ,上にあるデータから順に取り出すデータ構造(以下,スタックという)がある。これを用いて,図に示すような,右側から入力されたデータの順番を変化させて,左側に出力する装置を考える。この装置に対する操作は次の3通りである。

① 右側から入力されたデータをそのまま左側に出力する。
② 右側から入力されたデータスタックに積み上げる。
③ スタックの1番上にあるデータを取り出して左側に出力する。

 この装置の右側から順番にX,Y,Zを入力した場合に,この①~③の操作を組み合わせても,左側に出力できない順番はどれか。

X,Z,Y
Y,Z,X
Z,X,Y
Z,Y,X
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成21年秋期 問62
小文字の英字からなる文字列の暗号化を考える。次表で英字を文字番号に変換し,変換後の文字番号について1文宇目分には1を,2文宇目分には2を,…,n文宇目分にはnを加える。それぞれの数を26で割った余りを新たに文字番号とみなし,表から対応する英字に変換する。
例 fax → 6,1,24→6+1,1+2,24+3→7,3,27→7,3,1→gca
この手続で暗号化した結果が“tmb”であるとき,元の文字列はどれか。

1 2 3 4 5 6 7 8 9 10 11 12 13
a b c d e f g h i j k l m
14 15 16 17 18 19 20 21 22 23 24 25 26
n o p q r s t u v w x y z
she
shy
ski
sky
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
平成21年春期 問85
ファイルを4冊だけ置くことができる机で,A~Fの6冊のファイルを使って仕事をする。机上に5冊目のファイルを置きたいとき,机上の4冊のファイルのうち,最後に参照してから最も時間が経過しているファイルを引き出しにしまうことにする。ファイルがA,B,C,D,B,A,E,A,B,Fの順で必要になった場合,最後に引き出しにしまうファイルはどれか。
A
B
D
E
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › アルゴリズムとプログラミング
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる