← 一覧に戻る

アルゴリズムとプログラミング

基礎理論 › アルゴリズムとプログラミング · 32 問

1. 出典: 平成21年度 秋期 ITパスポート試験 問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」であるとき,元の文字列はどれか。

文字番号12345678910111213
英字abcdefghijklm
文字番号14151617181920212223242526
英字nopqrstuvwxyz
図
  • アshe
  • イshy
  • ウski
  • エsky

手続

2. 出典: 平成21年度 秋期 ITパスポート試験 問90

S社の販売管理業務は,受注処理,出荷処理及び請求処理で構成されており,業務効率の向上を目的として販売管理システムを利用している。 販売管理業務の概要と販売管理システムの概要は,次のとおりである。 〔販売管理業務の概要〕 (1) 受注処理では,営業担当者が顧客から注文依頼を受けると,受注データを販売管理システムに登録する。注文には,通常注文と優先注文の二つの種別がある。 (2) 出荷処理では,受注データを基に在庫引当を行う。通常注文は在庫数の70%まで引当可能であり,優先注文は在庫数まで引当可能である。在庫引当ができた分は,倉庫担当者が納品書を作成して出荷作業を行う。在庫引当ができなかった分は,次の入荷を待ってから出荷する。 (3) 請求処理では,毎月20日を請求締め日として,その翌日に経理担当者が出荷済データから顧客ごとに請求書を作成して送付する。 〔販売管理システムの概要〕 販売管理システムでは,受注処理,出荷処理,請求処理の結果が,それぞれ,受注管理ファイル,出荷管理ファイル,請求管理ファイルに登録される。 出荷処理において,引当数の求め方を流れ図で表すとき,次の図の c,d に入る適切な字句の組合せはどれか。 流れ図(網掛けの部分は,表示していない): - 「開始」から,条件 [ c ] の判定へ進む。 - [ c ] が Yes のとき:右側の条件 [ d ] の判定へ進む。 - [ c ] が No のとき:左側の網掛けの条件(非表示)の判定へ進む。 - 左側の網掛けの条件が No のとき:「在庫数を引当数とする」。 - 左側の網掛けの条件が Yes のとき:「注文数を引当数とする」。 - [ d ] が No のとき:「注文数を引当数とする」。 - [ d ] が Yes のとき:右側の網掛けの処理(非表示)。 - いずれの処理のあとも「終了」へ進む。

図
  • アc通常注文かd注文数≦在庫数の70%
  • イc通常注文かd注文数>在庫数の70%
  • ウc優先注文かd注文数≦在庫数の70%
  • エc優先注文かd注文数>在庫数の70%

流れ図 · フローチャート · 選択 · 条件式

3. 出典: 平成21年度 春期 ITパスポート試験 問72

図1のように二つの正の数値 A1, A2 を読み取り, 二つの数値 B1, B2 を出力するボックスがある。B1 には A2 と同じ数値を出力し, B2 には A1 を A2 で割った余りを出力する。図2のようにこのボックスを2個つないだ場合, A1=15, A2=6 のとき後方のボックスの B1 に出力される数値は幾らか。 図1(ボックスの動作): 入力 A1, A2 → 「A2→B1」「A1/A2の余り→B2」→ 出力 B1, B2。 図2(ボックスを2個直列に接続): 入力 15, 6 → ボックス1 → ボックス2 → 出力 B1, B2。

図
  • ア0
  • イ3
  • ウ6
  • エ15

手続 · 入出力 · 関数 · 引数 · 戻り値

4. 出典: 平成21年度 春期 ITパスポート試験 問91

Mさんの部署では,図に示すような,PC2台(PC1とPC2),サーバ1台とプリンタ1台を,ハブ1台と4本のケーブルa~dでつないだLANで構成されるシステムを使っている。 このLANに接続されているプリンタは,プリントサーバ機能を有しており,PCから直接プリンタに出力できる設定になっている。ある日,MさんはPC1からプリンタに出力を行ったが,出力できなかった。前日に同じ処理を行ったときは,出力できていた。 なお,各機器と各ケーブルの接続箇所については,ソケットの不具合は機器側の障害,コネクタの不具合はケーブル側の障害として切り分けられるものとする。また,障害が複数箇所で同時に発生する可能性はなく,PC1では障害が発生していないものとする。 M さんは,障害の原因を特定するための手順を,流れ図に書いて考えてみることにした。このとき,次の図の X に入る適切な字句はどれか。 なお,次の流れ図は,作成途中のものである。 [流れ図] (端子)「問題の切分け」  ↓ 〈判断1〉「PC2 からプリンタに出力できるか」  ・No → 右へ分岐(以降は表示していない)  ・Yes ↓ 〈判断2〉「PC1 と PC2 をハブにつないでいるケーブル c と d をハブ側で差し替え,PC2 からプリンタに出力できるか」  ・No → (処理)「X」  ・Yes → (処理)網掛けの箱(表示していない) 注 網掛けの部分は,表示していない。

図
  • アPC1 とハブをつなぐソケット,すなわちハブの障害ではないか
  • イPC1 とハブをつなぐケーブル c の障害ではないか
  • ウプリンタとハブをつなぐケーブル b の障害ではないか
  • エプリンタの障害ではないか

流れ図 · フローチャート · 選択

5. 出典: 平成21年度 春期 ITパスポート試験 問92

Mさんの部署では,図に示すような,PC2台(PC1とPC2),サーバ1台とプリンタ1台を,ハブ1台と4本のケーブルa~dでつないだLANで構成されるシステムを使っている。 このLANに接続されているプリンタは,プリントサーバ機能を有しており,PCから直接プリンタに出力できる設定になっている。ある日,MさんはPC1からプリンタに出力を行ったが,出力できなかった。前日に同じ処理を行ったときは,出力できていた。 なお,各機器と各ケーブルの接続箇所については,ソケットの不具合は機器側の障害,コネクタの不具合はケーブル側の障害として切り分けられるものとする。また,障害が複数箇所で同時に発生する可能性はなく,PC1では障害が発生していないものとする。 Mさんは,今回の障害の原因を特定するための手順を,流れ図として完成させようと考えた。このとき,次の図のYに入る適切な字句はどれか。 なお,次の流れ図は,作成途中のものである。 [図] 流れ図(作成途中): - 開始端子「問題の切分け」 - 判断「PC2からプリンタに出力できるか」 - Yes → 判断「PC1とPC2をハブにつないでいるケーブルcとdをハブ側で差し替え,PC2からプリンタに出力できるか」 - Yes →(網掛けの処理ボックス,表示なし) - No →(網掛けの処理ボックス,表示なし) - No → 判断「PC1からサーバにアクセスできるか」 - Yes →(下方へ続く) - No → 処理「Y」 注 網掛けの部分は,表示していない。

図
  • アハブの障害ではないか
  • イプリンタとハブをつなぐケーブルbの障害ではないか
  • ウプリンタとハブをつなぐケーブルb,または,ハブの障害ではないか
  • エプリンタの障害ではないか

流れ図 · フローチャート · 選択

6. 出典: 平成22年度 秋期 ITパスポート試験 問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

繰返し · 代入 · 条件式

7. 出典: 平成22年度 春期 ITパスポート試験 問53

変数AとBに格納されているデータを入れ替えたい。データを一時的に格納するための変数をTMPとすると, データが正しく入れ替わる手順はどれか。ここで「x←y」は, yのデータでxの内容を置き換えることを表す。

  • ア[図] TMP ← A → A ← B → B ← A
  • イ[図] TMP ← A → A ← B → B ← TMP
  • ウ[図] TMP ← B → A ← B → B ← TMP
  • エ[図] TMP ← B → A ← B → B ← A

代入 · 手続

8. 出典: 平成22年度 春期 ITパスポート試験 問95

A社研究所の資料室では,文献の貸出管理業務を行っている。文献の貸出管理業務には,PCのデータベースソフトを活用した文献貸出管理システム(以下,文献システムという)を利用している。 文献システムのデータベース構造は,次のとおりである。 社員表

社員番号社員名メールアドレス

文献表

文献番号文献名

貸出表

文献番号文献名社員番号社員名メールアドレス貸出日返却日

保有する文献と貸出についての条件は,次のとおりである。 〔保有する文献と貸出についての条件〕 (1) 同一文献は複数保有せず,文献ごとに固有な文献番号が採番されている。 (2) 貸出期間は,貸出日を含んで最長2週間である。ここで,返却された文献をその日に違う社員に貸し出すことは可能であるが,同じ社員に対して返却した同一文献をその日のうちに貸し出すことはない。 貸出から返却までの手続は,次のとおりである。 〔貸出から返却までの手続〕 (1) 社員は借りたい文献を書庫から取り出して,資料室の担当者(以下,担当者という)に手渡し,社員番号を提示する。 (2) 担当者は文献システムを使って貸出処理を行い,社員に文献を手渡す。 (3) 文献返却時,社員は担当者に文献を返却し,担当者は文献システムを使って返却処理を行う。 文献システムにおける貸出処理と返却処理の仕様は,次のとおりである。 〔貸出処理〕 (1) 文献番号で文献表を検索し,文献名を取得する。 (2) 社員番号で社員表を検索し,社員名とメールアドレスを取得する。 (3) 貸出表のレコード(以下,貸出レコードという)を用意して,(1),(2)で取得した文献番号,文献名,社員番号,社員名,メールアドレスを設定し,貸出日に当日の日付を,返却日に空白値を設定する。 (4) (3)で設定した貸出レコードを貸出表に追加する。 〔返却処理〕 (1) 文献番号で貸出表を検索し,返却日が空白値である貸出レコードを抽出する。 (2) 抽出した貸出レコードの返却日に当日の日付を設定し,貸出表を更新する。 担当者には,社員からの文献の問合せが多い。担当者は,社員から電話で文献名を聞き,貸出可能かどうかを調べている。そこで,文献検索機能を文献システムに追加し,社員に利用させることにした。文献検索機能の概要は次のとおりである。  追加する文献検索機能について,その処理の流れを次の図のとおりにまとめた。図の d〜f に入る適切な字句の組合せはどれか。 〔文献検索機能の概要〕 (1) 問い合わせる文献名で,文献表をあいまい検索して結果を表示する。 (2) 該当する文献があるかを確認し,該当するものがある場合は,貸出可能かどうかを調べる。 (3) 貸出中であるか,貸出可能であるかを表示する。 (処理の流れ:開始 → 「文献名で文献表をあいまい検索して結果を表示する」 → 「該当する文献はあるか」 No → 「“文献なし”と表示する」 → 終了 / Yes → d → 「該当する貸出レコードはあるか」 No → e → 終了 / Yes → f → 終了) ① “貸出可能”と表示する ② “貸出中”と表示する ③ 文献番号で貸出表を検索し,返却日が空白値の貸出レコードを抽出する ④ 文献番号で貸出表を検索し,最も古い貸出日の貸出レコードを抽出する

図
  • アd③e①f②
  • イd③e②f①
  • ウd④e①f②
  • エd④e②f①

流れ図 · フローチャート · 選択

9. 出典: 平成23年度 秋期 ITパスポート試験 問64

1~4の番号をもつ四つの状態がある。四つの状態は図のようにつながれており,時計回りや反時計回りに状態を遷移することができる。 図:四つの状態が環状に並んでおり,上に「1」,右に「2」,下に「3」,左に「4」が配置され,隣り合う状態どうしが両方向の矢印で結ばれている。時計回りは 1→2→3→4→1,反時計回りは 1→4→3→2→1 の向きである。 現在,状態1にいて,次の手順を2回実施した後はどの状態にいるか。 〔手順〕 今いる状態の番号を11倍し,それを3で割った余りによって次の処理を行う。 ・余りが0の場合:時計回りに一つ次の状態に遷移する。 ・余りが1の場合:反時計回りに一つ次の状態に遷移する。 ・余りが2の場合:時計回りに二つ次の状態に遷移する。

図
  • ア1
  • イ2
  • ウ3
  • エ4

繰返し

10. 出典: 平成23年度 秋期 ITパスポート試験 問73

ワイルドカードの“%”が 0 個以上の連続した任意の文字列を表し,“_”が任意の 1 文字を表すとき,文字列全体が“%イ%ン_”に一致するものはどれか。

  • アアクセスポイント
  • イイベントドリブン
  • ウクライアントサーバ
  • エリバースエンジニアリング

条件式 · 選択 · 繰返し

11. 出典: 平成23年度 秋期 ITパスポート試験 問91

文字や図形を白黒で縦 7 画素、横 7 画素のディジタル画像で表すとき、数字の「0」を図 1 のように表現する。このディジタル画像を画素データとして出力する処理、画素データを圧縮する処理及びディジタル画像を回転させる処理について考える。 図 1 数字の「0」のディジタル画像(■=黒、□=白)

1列2列3列4列5列6列7列
1行□□■■■□□
2行□■□□□■□
3行□■□□□■□
4行□■□□□■□
5行□■□□□■□
6行□■□□□■□
7行□□■■■□□

画素データを出力する処理の概要と圧縮する処理の概要は、次のとおりである。 〔画素データを出力する処理の概要〕 (1) 画素の色が白のときは「w」、黒のときは「b」を画素データとして出力する。 (2) 1 行 1 列、1 行 2 列、…、1 行 7 列、2 行 1 列、2 行 2 列、…、7 行 7 列の順番に各位置の画素データを出力する。 (3) 画素データを出力する際は、各画素データの間をコンマ「,」で区切る。 (4) 図 1 の画素データを出力した結果は次のとおりになり、文字数はコンマを含めて 97 文字になる。 w,w,b,b,b,w,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,b,w,w,w,b,w,w,w,b,b,b,w,w 〔画素データを圧縮する処理の概要〕 (1) 同じ色の画素データが連続する場合、「w」又は「b」の後に連続する画素の数をつなげて出力する。例えば、「b,b,b」は「b3」になる。 (2) 図 1 の画素データを圧縮した結果の出力は次のとおりになり、文字数はコンマを含めて 64 文字になる。 w2,b3,w3,b,w3,b,w2,b,w3,b,w2,b,w3,b,w2,b,w3,b,w2,b,w3,b,w3,b3,w2 ディジタル画像を右に90度回転させる処理を流れ図で表すとき, 図3のaに入れる適切な字句はどれか。 図3 ディジタル画像を右に90度回転させる処理 回転前の画像を右に90度回転すると回転後の画像になる。流れ図は次のとおり。

開始
  iでの繰返し(i=1,2,…,7)
    jでの繰返し(j=1,2,…,7)
      回転前のi行j列の画素を回転後の[ a ]の画素に設定する
    jでの繰返し
  iでの繰返し
終了
図
  • ア(8-i)行j列
  • イ(8-j)行i列
  • ウi行(8-j)列
  • エj行(8-i)列

流れ図 · フローチャート · 繰返し

12. 出典: 平成23年度 特別試験 ITパスポート試験 問93

Q社のRさんは,チケット販売システムの開発で使用する関数のプログラミングとテストを実施しようとしている。この関数は,大人と子供のチケットの購入希望枚数を基に,合計金額の計算を行う。大人のチケットは3,000円,子供のチケットは1,000円である。一度に購入できる大人と子供のチケットの最高枚数は,それぞれ20枚までであり,関数はこの購入条件を満たしているかどうかをチェックする。また,合計で20枚以上購入する場合,割引処理を行う。関数の仕様と処理内容は次のとおりである。 〔関数の仕様〕 関数に渡される引数  J:大人のチケットの購入希望枚数,K:子供のチケットの購入希望枚数  (J,Kは0以上の整数) 関数の戻り値  L:合計金額 (Lは整数) 〔処理内容〕 (1) 購入希望枚数を基に,購入条件を満たしているかどうかを判定する。購入条件を満たしていない場合,合計金額に-1を代入する。 (2) 購入条件を満たしている場合,引数を基に次のとおりに合計金額の計算を行う。   合計金額 = 大人のチケットの購入希望枚数×3,000+子供のチケットの購入希望枚数×1,000 (3) チケットを合計で20枚以上購入した場合は,合計金額から1割を割り引く。 関数の処理の流れを図1に示す。図1のaに入れる適切な条件式はどれか。 図1 関数の処理の流れ図 - 開始 - 判定 [ a ] : No の場合 → L=-1 → 終了 - 判定 [ a ] : Yes の場合 ↓ - 判定 [ J+K≧20 ] : No の場合 → L=3,000×J+1,000×K → 終了 - 判定 [ J+K≧20 ] : Yes の場合 → L=0.9×(3,000×J+1,000×K) → 終了

図
  • ア0≦J≦20 and 0≦K≦20
  • イ0≦J≦20 or 0≦K≦20
  • ウ0≦J+K≦20
  • エJ>20 and K>20

流れ図 · フローチャート · 条件式

13. 出典: 平成23年度 特別試験 ITパスポート試験 問96

Q社のRさんは,チケット販売システムの開発で使用する関数のプログラミングとテストを実施しようとしている。この関数は,大人と子供のチケットの購入希望枚数を基に,合計金額の計算を行う。大人のチケットは3,000円,子供のチケットは1,000円である。一度に購入できる大人と子供のチケットの最高枚数は,それぞれ20枚までであり,関数はこの購入条件を満たしているかどうかをチェックする。また,合計で20枚以上購入する場合,割引処理を行う。関数の仕様と処理内容は次のとおりである。 〔関数の仕様〕 関数に渡される引数  J:大人のチケットの購入希望枚数,K:子供のチケットの購入希望枚数  (J,Kは0以上の整数) 関数の戻り値  L:合計金額 (Lは整数) 〔処理内容〕 (1) 購入希望枚数を基に,購入条件を満たしているかどうかを判定する。購入条件を満たしていない場合,合計金額に-1を代入する。 (2) 購入条件を満たしている場合,引数を基に次のとおりに合計金額の計算を行う。   合計金額 = 大人のチケットの購入希望枚数×3,000+子供のチケットの購入希望枚数×1,000 (3) チケットを合計で20枚以上購入した場合は,合計金額から1割を割り引く。 1日券,2日券といった日数の異なる種類のチケットの金額計算に対応できるように,〔処理内容〕の②及び関数の仕様を変更し,引数にチケットの日数を表すMを追加した。Mには使用できる日数が入る。種類別のチケット金額を設定する配列をTP(M, N)とする。Nは大人の場合は1,子供の場合は2とする。配列の値は次のとおりである。引数がJ=10, K=20, M=2のときの合計金額は何円か。 なお,関数は,引数に応じてこの配列を参照し,チケット金額を決定する。 TP(1, 1) = 3,000, TP(1, 2) = 1,000, TP(2, 1) = 4,000, TP(2, 2) = 1,500, TP(3, 1) = 5,000, TP(3, 2) = 2,000

  • ア45,000
  • イ50,000
  • ウ63,000
  • エ70,000

関数 · 引数 · 条件式 · 戻り値

14. 出典: 平成25年度 春期 ITパスポート試験 問53

コンピュータを利用するとき、アルゴリズムは重要である。アルゴリズムの説明として、適切なものはどれか。

  • アコンピュータが直接実行可能な機械語に, プログラムを変換するソフトウェア
  • イコンピュータに, ある特定の目的を達成させるための処理手順
  • ウコンピュータに対する一連の動作を指示するための人工言語の総称
  • エコンピュータを使って, 建築物や工業製品などの設計をすること

流れ図 · 順次 · 手続

15. 出典: 平成27年度 秋期 ITパスポート試験 問48

表に示す構成のデータを,流れ図の手順で処理する場合について考える。流れ図中のx,y,zをそれぞれデータ区分A,B,Cと適切に対応させれば,比較(「xか?」,「yか?」,「zか?」)の回数の合計は,最低何回で済むか。

データ区分件数
A10
B30
C50
その他10

[図]流れ図:「開始」→「xか?」(No→「yか?」,Yes→「xの処理」);「yか?」(No→「zか?」,Yes→「yの処理」);「zか?」(No→「その他の処理」,Yes→「zの処理」);各処理後→「終わりか?」(No→「次のデータ」へ戻る,Yes→「終了」)。注記:流れ図中のx,y,zはデータ区分のA,B,Cのいずれかと対応させる。

図
  • ア170
  • イ190
  • ウ230
  • エ250

流れ図 · フローチャート · 選択 · 条件式

16. 出典: 平成27年度 春期 ITパスポート試験 問59

プログラムの処理手順を図式を用いて視覚的に表したものはどれか。

  • アガントチャート
  • イデータフローダイアグラム
  • ウフローチャート
  • エレーダチャート

流れ図 · フローチャート

17. 出典: 平成31年度 春期 ITパスポート試験 問71

図1のように二つの正の整数 A1, A2を入力すると, 二つの数値 B1, B2を出力するボックスがある。B1は A2と同じ値であり, B2は A1を A2で割った余りである。図2のように, このボックスを2個つないだ構成において, 左側のボックスの A1として49, A2として11を入力したとき, 右側のボックスから出力される B2の値は幾らか。

図
  • ア1
  • イ2
  • ウ4
  • エ5

手続 · 戻り値 · 引数 · 流れ図

18. 出典: 令和3年度 ITパスポート試験 問74

流れ図Xで示す処理では、変数 i の値が、1→3→7→13と変化し、流れ図Yで示す処理では、変数 i の値が、1→5→13→25と変化した。図中の a、b に入れる字句の適切な組合せはどれか。 〔流れ図X〕 開始 → i に1を格納する → 変換(ループ端) k:1, 1, 3 〔注〕 → [ a ]を計算し、その結果を i に格納する → 変換(ループ端) → 終了 〔流れ図Y〕 開始 → i に1を格納する → 変換(ループ端) [ b ] 〔注〕 → [ a ]を計算し、その結果を i に格納する → 変換(ループ端) → 終了 〔注〕ループ端の繰返し指定は、変数名:初期値,増分,終値を示す。

図
  • アa2i+kbk:1,3,7
  • イa2i+kbk:2,2,6
  • ウai+2kbk:1,3,7
  • エai+2kbk:2,2,6

流れ図 · フローチャート · 繰返し

19. 出典: 令和4年度 ITパスポート試験 問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

擬似言語 · 繰返し · 関数 · 引数 · 戻り値 · 代入

20. 出典: 令和4年度 ITパスポート試験 問79

流れ図で示す処理を終了したとき,x の値はどれか。 [流れ図] 開始 ↓ x を 98 とする ↓ y を 42 とする ↓ 繰返し(x = y)(注) ↓ (分岐)x : y  ・「>」の場合: x - y の計算結果を新たな x とする  ・「≦」の場合: y - x の計算結果を新たな y とする ↓ 繰返し ↓ 終了 (注)ループ端の条件は,終了条件を示す。

図
  • ア0
  • イ14
  • ウ28
  • エ56

流れ図 · フローチャート · 繰返し · 選択

21. 出典: 令和4年度 ITパスポート試験 問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

図
  • アa2×num+ibiを1から7まで3ずつ増やす
  • イa2×num+ibiを2から6まで2ずつ増やす
  • ウanum+2×ibiを1から7まで3ずつ増やす
  • エanum+2×ibiを2から6まで2ずつ増やす

擬似言語 · 繰返し · 関数 · 引数 · 戻り値 · 代入

22. 出典: 令和5年度 ITパスポート試験 問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

バブルソート · 繰返し · 擬似言語

23. 出典: 令和5年度 ITパスポート試験 問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

関数 · 繰返し · 戻り値 · 引数 · 擬似言語

24. 出典: 令和5年度 ITパスポート試験 問69

配列に格納されているデータを探索するときの, 探索アルゴリズムに関する記述のうち, 適切なものはどれか。

  • ア2分探索法は, 探索対象となる配列の先頭の要素から順に探索する。
  • イ線形探索法で探索するのに必要な計算量は, 探索対象となる配列の要素数に比例する。
  • ウ線形探索法を用いるためには, 探索対象となる配列の要素は要素の値で昇順又は降順にソートされている必要がある。
  • エ探索対象となる配列が同一であれば, 探索に必要な計算量は探索する値によらず, 2分探索法が線形探索法よりも少ない。

線形探索法 · 2分探索法

25. 出典: 令和6年度 ITパスポート試験 問62

関数 convert は, 整数型の配列を一定のルールで文字列に変換するプログラムである。関数 convert を convert(arrayInput)として呼び出したときの戻り値が“AABAB”になる引数 arrayInput の値はどれか。ここで, arrayInput の要素数は 1 以上とし, 配列の要素番号は 1 から始まる。 〔プログラム〕 〇文字列型: convert(整数型の配列: arrayInput) 文字列型: 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}

擬似言語 · 繰返し · 選択 · 条件式 · 関数 · 引数 · 戻り値

26. 出典: 令和6年度 ITパスポート試験 問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

図
  • アa(2のi乗)−1bintegerNum×digitNum×exponent
  • イa(2のi乗)−1bintegerNum+digitNum×exponent
  • ウa2の(i−1)乗bintegerNum×digitNum×exponent
  • エa2の(i−1)乗bintegerNum+digitNum×exponent

擬似言語 · 繰返し · 基数変換

27. 出典: 令和7年度 ITパスポート試験 問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

繰返し · 擬似言語 · 条件式 · 選択

28. 出典: 令和7年度 ITパスポート試験 問98

4個の要素から成るデータの並びを, 次の手順を繰り返して昇順に整列するとき, 整列が終了するまでに(1)から(3)の一連の手順は, 何回実行されるか。ここで, 最初はデータの並び全体を整列対象とする。 データの並び : [27, 42, 33, 12] [手順] (1) 整列対象中の要素の最大の値を選び, 最後の要素と入れ替える。 (2) 最後の要素を整列対象から外す。 (3) 整列対象に要素が1個以上残っていれば, (1)から(3)の一連の手順を実行する。残っていなければ, 整列完了なので終了する。

  • ア2
  • イ3
  • ウ4
  • エ5

選択ソート · 繰返し

29. 出典: 令和7年度 ITパスポート試験 問99

関数 calculateAmountOfPrize は,業務改善の効果における改善額と短縮期間を,それぞれ improvement と period で受け取り,賞金額を戻り値とする。改善額が20万円で短縮期間が3日の業務改善と,改善額が5万円で短縮期間が14日の業務改善があった。この二つの賞金額の合計は何円か。ここで,改善額と短縮期間の値はそれぞれ0以上とする。 〔プログラム〕 ○整数型: calculateAmountOfPrize(整数型: improvement, // 改善額(円) 整数型: period) // 短縮期間(日) 整数型: prize // 賞金額(円) if (improvement が 100000 より小さい) if (period が 7 より小さい) prize ← 500 else prize ← 1000 endif else if (period が 7 より小さい) prize ← 2000 else prize ← 5000 endif endif return prize

図
  • ア1,000
  • イ1,500
  • ウ3,000
  • エ5,500

条件式 · 選択 · 関数 · 戻り値 · 引数

30. 出典: 令和8年度 ITパスポート試験 問67

手続 sort は,要素数が2以上の整数型の配列を引数 numberArray で受け取り,その要素を昇順に並べ替えた結果を出力する。手続 sort の動作確認のために,処理の途中で j の値と workArray の全ての要素を出力する。配列 numberArray を {3, 5, 1, 2, 4} とし,手続 sort を sort(numberArray) として呼び出したとき,j の値が3と出力された直後の workArray の全ての要素の出力はどれか。ここで,配列の要素番号は1から始まる。 〔プログラム〕 ○sort(整数型の配列: numberArray) 整数型: minIndex, j, k 整数型の配列: workArray ← numberArray // 配列の複製を作る for (j を 1 から (workArray の要素数 − 1) まで 1 ずつ増やす) // j 番目から末尾までの要素の中で最も小さい値をもつ要素の要素番号を // 一つ求める minIndex ← j for (k を (j + 1) から workArray の要素数 まで 1 ずつ増やす) if (workArray[k] が workArray[minIndex] より小さい) minIndex ← k endif endfor workArray[j] と workArray[minIndex] の値を入れ替える // 動作確認のために,j の値と workArray の全ての要素を出力する j の値を出力する workArray の全ての要素 を先頭から順にコンマ区切りで出力する endfor workArray の全ての要素 を先頭から順にコンマ区切りで出力する

  • ア1,2,3,4,5
  • イ1,2,3,5,4
  • ウ4,5,3,2,1
  • エ5,4,3,2,1

選択ソート · 擬似言語 · 繰返し

31. 出典: 令和8年度 ITパスポート試験 問85

関数 isPrime は,引数として与えられた正の整数が,素数であれば true を,素数でなければ false を戻り値とする。例えば,関数 isPrime を isPrime(2) として呼び出したときの戻り値は true である。プログラム中の a,b に入れる字句の適切な組合せはどれか。 〔プログラム〕 ○論理型: isPrime(整数型: num)  整数型: div ← 2  if (num が 2 [ a ])   return false  else   while (num が div [ b ])    if (num ÷ div の余りが 0 と等しい)     return false    else     div ← div + 1    endif   endwhile   return true  endif

図
  • アa以下bと等しい
  • イa以下bより大きい
  • ウaより小さいbと等しい
  • エaより小さいbより大きい

擬似言語 · 条件式 · 繰返し · 関数 · 戻り値

32. 出典: 令和8年度 ITパスポート試験 問88

プログラミングすることによって,ペンの上げ下げ,直進及び右回りの方向転換が可能なロボットがある。このロボットに1辺が1mの正六角形を描画させるプログラムを作成した。次の正六角形描画プログラムの a,b に入れる字句の適切な組合せはどれか。 〔正六角形描画プログラム〕 (1) ペンを下ろす。 (2) 処理回数のカウンタに| a |を設定する。 (3) 次の処理を順に実行する。  ・1m 直進する。  ・右回りに| b |度方向転換する。  ・処理回数のカウンタに1を加える。 (4) 処理回数のカウンタが6未満の場合は,(3) に戻る。 (5) ペンを上げる。

  • アa0b60
  • イa0b120
  • ウa1b60
  • エa1b120

順次 · 繰返し · 流れ図