
基本情報の過去問道場を解き始めたけど、解説の日本語が難しすぎて理解できない…



問題が多すぎて、どこから手をつければいいか分からない!



その気持ち、痛いほど分かります。
過去問の公式解説って、専門用語のオンパレードで初心者の心をへし折りに来ますよね…。
私も最初は1問解くのに30分かかって絶望していました。
基本情報技術者試験(FE)の合格には「過去問演習」が絶対に欠かせません。しかし、解説を理解できないまま丸暗記しても、本番のひねった問題には太刀打ちできません。
そこで本記事では、IT未経験から一発合格し、現在は現役プロジェクトマネージャとして働く筆者が、基本情報の過去問を初心者向けに徹底解説します!
各分野ごとに分けて分かりやすくまとめていますので、この記事をブックマーク(お気に入り登録)して、毎日の過去問演習の辞書代わりに使ってください!
💡 過去問演習に入る前の「重要なお知らせ」



解説を見る前に、1つだけ現役PMからアドバイスさせてください。
『過去問の解説を何度読んでも頭に入ってこない』と感じたら、早めに学習のアプローチを変える決断が必要です。」
基本情報は「科目B(アルゴリズム・プログラミング)」の難易度が上がり、過去問の暗記だけでは合格できない試験へと変化しています。
もしあなたが、
- 「テキストや過去問の解説を読むのが苦痛」
- 「仕事が忙しくて、勉強時間が全然足りない」
- 「次回の試験で絶対に一発合格したい」
という状況なら、参考書と過去問で消耗するよりも、スマホでプロの動画講義が見放題の『オンライン通信講座』を活用するのが、結果的に一番安上がりで確実なルートです。
「もう独学で時間を無駄にしたくない!」という方は、過去問に本格的に取り組む前に、以下の通信講座ランキングを必ずチェックしておいてください。


[1] テクノロジ系:基礎理論
[1-1] 基数変換・ビット演算・機械学習の基礎
基数変換
【問題】
10進数の演算式7÷32の結果を2進数で表したものはどれか。
(ア)0.001011
(イ)0.001101
(ウ)0.00111
(エ)0.0111



【攻略ヒント】
2進数の数を2の累乗で割り算する場合、右に指数分、ビットシフトすれば計算できるよ!
【解説】
①10進数の7を2進数に変換する
111
②10進数の32を2の累乗で表現する
25
③7の2進数である111を右に5ビットシフトする
右に1ビットシフト=11.1
右に2ビットシフト=1.11
右に3ビットシフト=0.111
右に4ビットシフト=0.0111
右に5ビットシフト=0.00111
【答え】ウ
ビット演算
【問題】
最上位をパリティビットとする8ビット符号において,パリティビット以外の下位7ビットを得るためのビット演算はどれか。
(ア)16進数0FとのANDをとる。
(イ)16進数0FとのORをとる。
(ウ)16進数7FとのANDをとる。
(エ)16進数FFとのXOR(排他的論理和)をとる。



【攻略ヒント】
適当な値(10101010)を代入して計算すれば確実だよ!
【解説】
①入力値を2進数の10101010と定義する。
②問題の16進数を値を2進数に変換する。
16進数の0F=2進数の00001111
16進数の7F=2進数の01111111
16進数のFF=2進数の11111111
③ ①と②のビット演算を縦方向に論理演算し、下位7ビットが入力値と一致しているか確認する。
(ア)16進数0FとのANDをとる。
10101010
00001111(AND
00001010
入力値と取り出した値は不一致のため不正解
(イ)16進数0FとのORをとる。
10101010
00001111(OR
10101111
入力値と取り出した値は不一致のため不正解
(ウ)16進数7FとのANDをとる。
10101010
01111111(AND
00101010
入力値と取り出した値が、一致のため正解
(エ)16進数FFとのXOR(排他的論理和)をとる。
10101010
11111111(XOR
01010101
入力値と取り出した値は不一致のため不正解
【答え】(ウ)
命題の真理値
【問題】
P,Q,Rはいずれも命題である。命題Pの真理値は真であり,命題 (not P) or Q 及び命題 (not Q) or R のいずれの真理値も真であることが分かっている。Q,Rの真理値はどれか。ここで,X or Y は X と Y の論理和,not X は X の否定を表す。
| Q | R | |
| (ア) | 偽 | 偽 |
| (イ) | 偽 | 真 |
| (ウ) | 真 | 偽 |
| (エ) | 真 | 真 |



【攻略ヒント】
落ち着いて、問題の条件を1個ずつ計算しよう!
【解説】
①命題P = 真
②命題 (not P) or Q = 真
(not 真) or Q = 真
偽 or Q = 真
Q = 真
③命題 (not Q) or R=真
(not 真) or R = 真
偽 or R = 真
R = 真
【答え】エ
機械学習
【問題】
機械学習における教師あり学習の説明として,最も適切なものはどれか。
(ア)個々の行動に対しての善しあしを得点として与えることによって,得点が最も多く得られるような方策を学習する。
(イ)コンピュータ利用者の挙動データを蓄積し,挙動データの出現頻度に従って次の挙動を推論する。
(ウ)正解のデータを提示したり,データが誤りであることを指摘したりすることによって,未知のデータに対して正誤を得ることを助ける。
(エ)正解のデータを提示せずに,統計的性質や,ある種の条件によって入力パターンを判定したり,クラスタリングしたりする。



「攻略ヒント】
①教師あり学習:学習データに正誤の情報を付けて、コンピュータに学習させること。
→サメの写真にサメの情報を付けることで、特徴点を学ばせていき、データ判断できるようになる。
②教師なし学習:学習データに正解の情報を付けないで、コンピュータに学習させる方法。
→ネット上の大量の写真をコンピュータに学習させ、自律的に「サメ」という動物を認識できるようになる。
③強化学習:正解を与える代わりに、個々の善しあしを得点として与えることによって、得点が最も多く得られるような方策を学習すること。
→将棋や囲碁の世界において、コンピュータ(AI)が人間(プロ)に勝利できるような時代になっています。
【解説】
(ア)「強化学習」に関する記述のため、不正解。
(イ)「機械学習における教師なし学習」に関する記述のため、不正解。
(ウ)「機械学習における教師あり学習」に関する記述であり、正解!
(エ)「機械学習における教師なし学習」に関する記述のため、不正解。
【解答】(ウ)
2文探索木
【問題】
2分探索木として適切なものはどれか。ここで,1~9の数字は,各ノード(節)の値を表す。





【攻略ヒント】
2文探索木とは、左に分岐したほうは小さい値、右に分岐したほうが大きい値となるようにデータを格納する性質があるよ!
【解説】


【解答】(イ)
[1-2] 誤り検査・フィードバック制御・ディープラーニング
フィードバック制御
【問題】フィードバック制御の説明として、適切なものはどれか。
(ア)あらかじめ定められた順序で制御を行う。
(イ)外乱の影響が出力に現れる前に制御を行う。
(ウ)出力結果と目標値とを比較して、一致するように制御を行う。
(エ)出力結果を使用せず制御を行う。



【攻略ヒント】
分からなかったら、英語の意味から想像してみよう!
それでも分からなかったら勘で当てに行こうw
【解説】
(ア)不正解×
シーケンス制御に関する説明です!
(イ)不正解×
フィードフォワード制御に関する説明です!
(ウ)正解〇
フィードバック制御の説明です!
(エ)不正解×
フィードバック制御出力では、出力結果を使用します!
【答え】(ウ)
AI・ディープラーニング
【問題】AIにおけるディープラーニングの特徴はどれか。
(ア)”AならばBである”というルールを人間があらかじめ設定して、新しい知識を論理式で表現したルールに基づく推論の結果として、解を求めるものである。
(イ)厳密な解でなくてもなるべく正解に近い解を得るようにする方法であり、特定分野に特化せずに、広範囲で汎用的な問題解決ができるようにするものである。
(ウ)人間の脳神経回路を模倣して、認識などの知能を実現する方法であり、ニューラルネットワークを用いて、人間と同じような認識ができるようにするものである。
(エ)判断ルールを作成できる医療診断などの分野に限定されるが、症状から特定の病気に絞り込むといった、確率的に高い判断ができる。



【攻略ヒント】
これは常識問題だね。
分からなかったら、英語の意味から想像してみよう!
それでも分からなかったら勘で当てに行こうw
【解説】
(ア)不正解×
専門家の意思決定プロセスをエミュレートするエキスパートシステムの特徴です!
(イ)不正解×
ディープラーニングは様々な分野に適用できますが、個々のシステム(学習モデル)は1つの事柄の認識に特化したものになります!
(ウ)正解〇
ディープラーニングに関する説明です!
(エ)不正解×
ディープラーニングは、多数の学習データを用いたトレーニング段階で、システム自らが出力と正解の差異が小さくなるような判断ルールやパラメータに調整します!
トレーニング用のデータがあれば、判断ルールはシステムが見つけるので人間が判断ルールを作成できない分野にも適用可能です。
【答え】(ウ)
誤り検査方式
【問題】送信側では、ビット列をある生成多項式で割った余りをそのビット列に付加して送信し、受信側では、受信したビット列が同じ生成多項式で割り切れるか否かで誤りの発生を判断する誤り検査方式はどれか。
(ア)CRC方式
(イ)垂直パリティチェック方式
(ウ)水平パリティチェック方式
(エ)ハミング符号方式



【攻略ヒント】
これは知ってないと解けない問題だね!
正解以外の回答も覚えておこう!
【解説】
(ア)正解〇
CRC方式に関する説明です!
(イ)不正解×
垂直パリティチェック方式は、データに検査用のパリティビットを付加することによって誤りを検出する方式です!
(ウ)不正解×
水平パリティチェック方式は、パリティビットを付加する方向が違うだけで(イ)と同じです!
(エ)不正解×
ハミング符号は、情報ビットに対して検査ビットを付加することで、2ビットの誤り検出と1ビットの自動訂正機能をもった方式です!
【答え】(ア)
AI・機械学習
【問題】AIにおける機械学習の説明として、最も適切なものはどれか。
(ア)記憶したデータから特定のパターンを見つけ出すなどの人が自然に行っている学習能力をコンピュータにもたせるための技術
(イ)コンピュータ、機械などを使って、生命現象や進化のプロセスを再現するための技術
(ウ)特定の分野の専門知識をコンピュータに入力し、入力された知識を用いてコンピュータが推論する技術
(エ)人が双方向学習を行うために、Webシステムなどの情報技術を用いて、教材や学習管理能力をコンピュータにもたせるための技術



【攻略ヒント】
これは知ってないと解けない問題だね!
AI関連の問題は毎回出るかもね!覚えておこう!
【解説】
(ア)正解〇
機械学習に関する説明です!
(イ)不正解×
人工生命に関する説明です!
(ウ)不正解×
エキスパートシステムに関する説明です!
(エ)不正解×
EdTech(エドテック)に関する説明です!
【答え】(ア)
ビット操作(Lv2 スライム)
【問題】8ビットの値の全ビットを反転する操作はどれか。
(ア)16進表記 00 のビット列と排他的論理和をとる。
(イ)16進表記 00 のビット列と論理和をとる。
(ウ)16進表記 FF のビット列と排他的論理和をとる。
(エ)16進表記 FF のビット列と論理和をとる。
【解説】
(ア)不正解×
10101010
00000000(XOR
10101010
(イ)不正解×
10101010
00000000(OR
10101010
(ウ)正解〇
10101010
11111111(XOR
01010101
(エ)不正解×
10101010
11111111(OR
11111111
【答え】ウ
[1-3] 奇数パリティ・論理演算・ビットシフト
奇数パリティ
【問題】8ビットのレジスタがある。このレジスタの各ビットの値を d0,d1,…,d7とし、パリティビットの値をpとする。奇数パリティの場合、常に成立する関係式はどれか。ここで、⊕は排他的論理和演算を表す。
(ア)0⊕d0⊕d1⊕ … ⊕d7=p
(イ)d0⊕d1⊕ … ⊕d7=p
(ウ)d0⊕d1⊕ … ⊕d7⊕p=0
(エ)d0⊕d1⊕ … ⊕d7⊕p=1



【攻略ヒント】
奇数パリティ=1の数が奇数個になるように1とすることに着目!
【解説】
奇数パリティは、データを構成するビット全体の中でビット「1」の数が奇数個になるようにパリティビットを付加する方式なので、パリティビットを含めた各ビットをすべてXOR演算した結果は必ず「1」となります。
【答え】(エ)
基数変換
【問題】16進数の小数0.248を10進数の分数で表したものはどれか。
(ア)31/32
(イ)31/125
(ウ)31/512
(エ)73/512



【攻略ヒント】
基数変換は落ち着いて解けば確実に点が取れる問題だから頑張って!
【解説】
16進数の小数を10進数で表すと小数第1位が1/16、小数第2位が(1/162=)1/256というように桁が小さくなるごとに1/16ずつ小さくなっていきます。
2/16 + 4/256 + 8/4096
= 2/16 + 4/256 + 1/512
= (64 + 8 + 1)/512
= 73/512
【答え】(エ)
関数
【問題】Random(n)は、0以上n未満の整数を一様な確率で返す関数である。整数型の変数A、B及びCに対して次の一連の手続を実行したとき、Cの値が0になる確率はどれか。
A = Random(10)
B = Random(10)
C = A-B
(ア)1/100
(イ)1/20
(ウ)1/10
(エ)1/5



【攻略ヒント】
Random(10)の返す値は整数0~9の10通り
【解説】
Random(10)の返す値は整数0~9の10通りです。
これにより、確率の分母となるAとBの組合せ総数は次のように計算できます。
10通り×10通り=100通り
次に確立の分子を求めます。
Cの値が0、すなわち「A-B=0」となるのは、AとBが同じ値のときのみです。
これは、A=B=0,A=B=1,…,A=B=9 というように全部で10通りあります。
したがって、Cの値が0になる確率は、
10通り / 100通り=1/10 となります。
【答え】(エ)
ビットシフト
【問題】数値を2進数で表すレジスタがある。このレジスタに格納されている正の整数xを10倍する操作はどれか。ここで,桁あふれは,起こらないものとする。
(ア)xを2ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。
(イ)xを2ビット左にシフトした値にxを加算し,更に2ビット左にシフトする。
(ウ)xを3ビット左にシフトした値と,xを2ビット左にシフトした値を加算する。
(エ)xを3ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。



【攻略ヒント】
1ビット左にシフト = 2倍 2ビット左にシフト = 22倍 3ビット左にシフト = 23倍
【解説】
① xを2ビット左にシフト
x × 2^2 = 4x
② xを加算
4x + x = 5x
③ 1ビット左にシフト
5x × 2 = 10x
(イ)不正解×
① xを2ビット左にシフト
x × 2^2 = 4x
② xを加算
4x + x = 5x
③ 2ビット左にシフト
5x × 2^2 = 20x
(ウ)不正解×
① xを3ビット左にシフト
x × 2^3 = 8x
② xを2ビット左にシフト
4x + x = 5x
③ ①と②を加算
8x + 5x = 13x
(エ)不正解×
① xを3ビット左にシフト
x × 2^3 = 8x
② xを加算
8x + x = 9x
③ 1ビット左にシフト
9x × 2 = 18x
【答え】(ア)
論理演算
【問題】次に示す手順は,列中の少なくとも一つは1であるビット列が与えられたとき,最も右にある1を残し,他のビットを全て0にするアルゴリズムである。例えば,00101000が与えられたとき,00001000が求まる。aに入る論理演算はどれか。
(手順1)与えられたビット列Aを符号なしの2進数と見なし,Aから1を引き,結果をBとする。
(手順2)AとBの排他的論理和(XOR)を求め,結果をCとする。
(手順3)AとCのaを求め,結果をAとする。
(ア)排他的論理和(XOR)
(イ)否定論理積(NAND)
(ウ)論理積(AND)
(エ)論理和(OR)



【攻略ヒント】
落ち着いて問題の手順通りに解けば正解できるよ!
この問題が解ければクリアだ!
【解説】
00101000・・・(A)
(手順1)
A - 1 = B
00101000 - 1
= 00100111・・・(B)
(手順2)
A XOR B = C
(手順3)
00101000
00100111(XOR
00001111・・・(C)
(ア)不正解×
00101000
00001111(XOR
00100111
(イ)不正解×
00101000
00001111(NAND
11110111
(ウ)正解〇
00101000
00001111(AND
00001000
(エ)不正解×
00101000
00001111(OR
00101111
【答え】(ウ)
[2] テクノロジ系:アルゴリズムとプログラミング
[2-1] データ構造の基礎:スタック・待ち行列・ハッシュ関数
スタック
【問題】A,B,C,Dの順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
(ア)A,D,B,C
(イ)B,D,A,C
(ウ)C,B,D,A
(エ)D,C,A,B



【攻略ヒント】
スタック=後入れ先出し(LIFO)のデータ構造だよ!
【解説】
スタックは後入れ先出し(LIFO)のデータ構造で、PUSH命令とPOP命令によってデータを操作します。
“後入れ先出し”ですので、スタックに先に入れたデータは、後から入れたデータよりも先に出力することができません。
(ア)不正解×
PUSH(A) [A]
POP(A) []
PUSH(B) [B]
PUSH(C) [BC]
PUSH(D) [BCD]
POP(D) [BC]
POP(B) NG
BはCより先にスタックに格納されたので、Cより先にBを出力することができません。
(イ)不正解×
PUSH(A) [A]
PUSH(B) [AB]
POP(B) [A]
PUSH(C) [AC]
PUSH(D) [ACD]
POP(D) [AC]
POP(A) NG
AはCより先にスタックに格納されたので、Cより先にAを出力することができません。
(ウ)正解〇
PUSH(A) [A]
PUSH(B) [AB]
PUSH(C) [ABC]
POP(C) [AB]
POP(B) [A]
PUSH(D) [AD]
POP(D) [A]
POP(A) []
(エ)不正解×
PUSH(A) [A]
PUSH(B) [AB]
PUSH(C) [ABC]
PUSH(D) [ABCD]
POP(D) [ABC]
POP(C) [AB]
POP(A) NG
AはBより先にスタックに格納されたので、Bより先にAを出力することができません。
答え:(ウ)
Java
【問題】JavaScriptの非同期通信の機能を使うことによって,動的なユーザインタフェースを画面遷移を伴わずに実現する技術はどれか。
(ア)Ajax
(イ)CSS
(ウ)RSS
(エ)SNS



【攻略ヒント】
答えが分からない場合、諦めずに知っているものがあれば消去法で正解確立を上げよう!1つで分かるのがあれば25%から33%に確立が上がるよ!
【解説】
(ア)正解〇
Webブラウザ内で非同期通信とインターフェイスの構築などを行う技術の総称です。
(イ)不正解×
CSSは、HTMLやXMLの要素を、どのように修飾して表示させるかを定義する文書で、Webページのデザインを記述するために用いられます。
(ウ)不正解×
RSSは、ニュースやブログなど各種のウェブサイトの更新情報を簡単にまとめ、配信するための幾つかの文書フォーマットの総称です。
(エ)不正解×
SNSは、社会的ネットワークをインターネット上で構築するサービスです。
【答え】(ア)
ハッシュ関数
【問題】10進法で5桁のa1a2a3a4a5をハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a1+a2+a3+a4+a5,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321は次の配列のどの位置に入るか。ここで,mod(x,13) は,xを13で割った余りとする。
(ア)1
(イ)2
(ウ)7
(エ)11



【攻略ヒント】
ハッシュ法が分からなくても、そのまま代入して計算してみよう!modは除算した余りを求めるよ!
【解説】
ハッシュ法とは、探索するデータのキー値からデータの格納アドレスを直接計算する方法で、この計算の際に使われる関数をハッシュ関数といいます。
問題文より、ハッシュ関数が mod(a1+a2+a3+a4+a5、13) なので、そのまま”54321″を代入します。
mod()は、第1引数を第2引数で割った余りを求めるので、
mod(5+4+3+2+1,13)
= mod(15,13)
= 2
【答え】(イ)
スタック
【問題】次の二つのスタック操作を定義する。
PUSH n:スタックにデータ(整数値n)をプッシュする。
POP:スタックからデータをポップする。
空のスタックに対して、次の順序でスタック操作を行った結果はどれか。
PUSH 1 → PUSH 5 → POP → PUSH 7 → PUSH 6 → PUSH 4 → POP → POP → PUSH 3
(ア)[1,7,3]
(イ)[3,4,6]
(ウ)[3,7,1]
(エ)[6,4,3]



【攻略ヒント】
スタック=後入れ先出し(LIFO)のデータ構造だよ!2問目だから解けるよね?がんばれー!
【解説】
コンピュータの世界で使われるデータ構造のひとつに「スタック」があります。
スタックは、最後に格納したデータから先に取り出す後入れ先出し(Last-in First-out:LIFO)の構造をもちます。
スタックでは、データを挿入するPUSH命令、データを取り出すPOP命令を使用してデータ操作を行います。
PUSH(1) [1]
PUSH(5) [1,5]
POP [1]
PUSH(7) [1,7]
PUSH(6) [1,7,6]
PUSH(4) [1,7,6,4]
POP [1,7,6]
POP [1,7]
PUSH(3) [1,7,3]
【答え】(ア)
行列操作
【問題】待ち行列に対する操作を次のとおり定義する。
ENQ n:待ち行列にデータnを挿入する。
DEQ :待ち行列からデータを取り出す。
空の待ち行列に対し、ENQ1,ENQ2,ENQ3,DEQ,ENQ4,ENQ5,DEQ,ENQ6,DEQ,DEQの操作を行った。
次にDEQ操作を行ったとき、取り出されるデータはどれか。
(ア)1
(イ)2
(ウ)5
(エ)6



【攻略ヒント】
スタックの「後入れ後出し方式」と違って、待ち行列は、先入れ先出し方式ということに気を付けてね!
【解説】
待ち行列(キュー構造)は、先に入ったものから先に取り出す「先入れ先出し方式」のデータ構造です。
左を待ち行列の入口、右を出口として操作に伴う待ち行列の変化を追っておきます。
ENQ1 [1]
ENQ2 [2][1]
ENQ3 [3][2][1]
DEQ [3][2]
ENQ4 [4][3][2]
ENQ5 [5][4][3][2]
DEQ [5][4][3]
ENQ6 [6][5][4][3]
DEQ [6][5][4]
DEQ [6][5]
次に行われるDEQ操作=答え
DEQ [6] →[5]
【答え】(ウ)
[2-2] アルゴリズムの基礎:探索・ソート・再帰処理
サブルーチン
【問題】
サブルーチンへの引数の渡し方のうち、変数を引数として渡しても、サブルーチンの実行後に変数の値が変更されないことが保証されているものはどれか。
(ア)値呼出し
(イ)結果呼出し
(ウ)参照呼出し
(エ)名前呼出し



【攻略ヒント】
これは知っていないと解けない問題だね!
しっかり1個ずつ覚えていこう!
【解説】
(ア)正解〇
値呼び出し
→関数内で変数を上書きしても引数はコピーであるため元の変数の値に影響することはありません。
(イ)不正解✕
(ウ)不正解✕
参照呼出し
→引数として変数のポインタ(メモリアドレス)を渡す方法。呼び出された関数内で引数の内容に直接アクセスすることになるため、変数の値を上書きすると元の変数の値にも反映されます。
(エ)不正解✕
名前呼び出し
→引数として未評価の式(値)を渡す方法。関数の内部で必要となった場合に引数の式(値)が評価される。
【答え】(ア)
2分探索
【問題】2分探索に関する記述のうち、適切なものはどれか。
(ア)2分探索するデータ列は整列されている必要がある。
(イ)2分探索は線形探索より常に速く探索できる。
(ウ)2分探索は探索をデータ列の先頭から開始する。
(エ)n個のデータの探索に要する比較回数は,nlog2nに比例する。



【攻略ヒント】
2分探索法は、要素が昇順または降順に整列された集合に対して、探索範囲を1/2に狭めることを繰り返して目的のデータを探索するアルゴリズムのことだよ!
【解説】
(ア)正解〇
2分探索を適用するにはデータが整列されていることが条件です。
(イ)不正解✕
線形探索より少ない平均比較回数で目的のデータにたどりつけますが、データ列の先頭付近に目的のデータがあるケースでは線形探索のほうが探索が早くなります。
(ウ)不正解✕
探索範囲の中央に位置する値との比較から開始します。
(エ)不正解✕
探索対象のデータ範囲がN個のとき、2分探索における平均比較回数は [log2N]です。
【答え】(ア)
Java
【問題】プログラム言語に関する記述のうち、Javaの説明として適切なものはどれか。
(ア)1970年代に開発されたインタプリタ型のオブジェクト指向言語であり、エディタやデバッガなどの統合開発環境やOSの機能などを含む。
(イ)Cにクラスやインヘリタンスといったオブジェクト指向の概念を取り入れたものであり、Cとの上位互換性をもつ。
(ウ)Webで用いられているマーク付け言語であり、タグによって文書の構造を記述する。テキストや動画などを関連付けたハイパテキストを作成できる。
(エ)ブラウザで動作するアプレットなどを作成できる。このアプレットは、仮想マシンを実装した環境上であれば、どこでも実行できる。



【攻略ヒント】
これも知っていないと解けないね。
消去法で知っているものがあるか確認してみよう!
【解説】
(ア)不正解✕
Smalltalkに関する説明です。
(イ)不正解✕
C++に関する説明です。
JavaもC言語の文法をベースにしていますが上位互換性はありません。
(ウ)不正解✕
HTMLに関する説明です。
(エ)正解〇
Javaは、コンピュータの機種やOSに依存しないソフトウェアが開発できるオブジェクト指向型の言語です。
Javaで作成されたアプリケーションのうちブラウザ上(クライアント環境)で動作するものをJavaアプレット、サーバ上で動作するものをJavaサーブレットといいます。
【答え】(エ)
データ構造
【問題】十分な大きさの配列Aと初期値が0の変数pに対して、関数f(x)とg()が次のとおり定義されている。配列Aと変数pは、関数f(x)とg()だけでアクセス可能である。これらの関数が操作するデータ構造はどれか。
function f(x) {
p=p+1;
A[p]=x;
return None;
}
function g() {
x=A[p];
p=p-1;
return x;
}
(ア)キュー
(イ)スタック
(ウ)ハッシュ
(エ)ヒープ



【攻略ヒント】
f(x)は、配列の最後に引数であるxを代入する関数、g()は、配列の最後の要素を返す関数だよ!
【解説】
この2つの関数で使われている変数pは現在の配列の要素数を保持している変数で、このことを踏まえると、f(x)は、配列の最後に引数であるxを代入する関数、g()は、配列の最後の要素を返す関数と考えることができます。
「配列の最後にデータを追加する」および「最後に追加されたデータを取り出す」という2つの操作を合わせるとLIFO(Last In First Out|後入れ先出し)のデータ構造が実現されることになります。
選択肢の中でLIFOのデータ構造はスタックだけなのでこれが正解となります。
【答え】(イ)
アルゴリズム
【問題】Perlの実行に関する記述のうち、適切なものはどれか。
(ア)動的デバッグは、言語処理系から独立したプログラムを実行して行う。
(イ)UNIX用として開発されており、Windows用の言語処理系はない。
(ウ)実行にWebサーバを必要とする言語であり、CGIの開発に適している。
(エ)プログラムをコンパイルしたファイルを事前に用意する必要はない。



【攻略ヒント】
Perl=インタプリタ言語のことだよ!
【解説】
(ア)不正解✕
付属のPerlデバッガでデバッグ可能です。
(イ)不正解✕
Windows環境用の言語処理系もあります。
(ウ)不正解✕
デスクトップアプリケーションも作成できます。
(エ)正解〇
Perlはインタプリタ言語なので、事前にコンパイルして実行ファイルを作成する必要ありません。
【答え】(エ)
[2-3] プログラミング言語の基礎:変数・制御構造・非同期処理
データ構造
【問題】多数のデータが単方向リスト構造で格納されている。このリスト構造には、先頭ポインタとは別に、末尾のデータを指し示す末尾ポインタがある。次の操作のうち、ポインタを参照する回数が最も多いものはどれか。
(ア)リストの末尾のデータを削除する。
(イ)リストの末尾にデータを挿入する。
(ウ)リストの先頭のデータを削除する。
(エ)リストの先頭にデータを挿入する。



【攻略ヒント】
単方向リストなので末尾のデータから一つ前のデータへの逆方向の参照はできないよ!
【解説】
(ア)正解〇
末尾のデータを削除するには、末尾の1つ前のノードがもつ次ノードへの参照を空にし、末尾ポインタに末尾の一つ前のデータのポインタをセットしなくてはなりません。単方向リストなので末尾のデータから一つ前のデータへの逆方向の参照はできず、先頭から末尾の一つ前まで順番にポインタをたどっていく必要があります。
(イ)不正解✕
末尾ポインタから末尾データへ飛び、末尾データの次ノードへの参照を追加するデータにします。末尾ポインタに追加するデータの参照をセットします。末尾ポインタ→末尾データで1回。
(ウ)不正解✕
現在の先頭のデータが持つ次ノードへの参照を、先頭ポインタにセットすることで先頭のデータがリストから削除されたことになります。先頭ポインタ→先頭データで1回。
(エ)不正解✕
挿入するデータの次ノードへの参照に現在の先頭ポインタの値をセットし、リストの先頭ポインタに挿入するデータのポインタをセットします。ポインタを参照する回数は1回です。
【答え】ア
Java
【問題】Webサービスを利用するときのSOAPの役割として、適切なものはどれか。
(ア)Webサービスのインタフェースを記述して、プログラムからサービスを利用できるようにする。
(イ)Webサービスの送受信プログラム間で、XML形式のメッセージを受け渡す。
(ウ)Webサービスプログラム間の配信保証や重複防止など、データ転送の信頼性を確保する。
(エ)Webサービスの情報を登録しておき、利用者がそのサービスを検索できるようにする。



【攻略ヒント】
SOAP=泡じゃないよ!
しっかり覚えていこう!!!
【解説】
(ア)不正解✕
WSDL(Web Services Description Language)の説明です。
(イ)正解〇
SOAP(ソープ)は、ソフトウェア同士がメッセージを交換する遠隔手続き呼び出し(RPC)のためのプロトコルです。汎用なデータ形式であるXMLに基づいて記述されており、Webサービスにとって有効な手段の一つとなっています。
(ウ)不正解✕
WS-RM(Web Services-ReliableMessaging)の説明です。
(エ)不正解✕
UDDI(Universal Description, Discovery and Integration)の説明です。
【答え】(イ)
コンパイル
【問題】コンパイル済みのオブジェクトコードがサーバに格納されていて、クライアントからの要求によってクライアントへ転送されて実行されるプログラムはどれか。
(ア)アプレット
(イ)スクリプト
(ウ)スレッド
(エ)サーブレット



【攻略ヒント】
知らないと解けない問題だね!
答え以外もしっかり覚えていこう!
【解説】
(ア)正解〇
アプレット(applet)は、Webページと同時にサーバからダウンロードされ、クライアントのWebブラウザ上で動作するコンパイル済のプログラムです。アプレットは利用者が知らない内にダウンロードされて実行されるという特徴をもつため、ユーザ環境のセキュリティを高めるために一般のアプリケーションプログラムにはない機能制限が課せられています。
(イ)不正解✕
スクリプト(script)は、処理手順をテキストで記述する簡易的なプログラム全般を指す言葉です。実行時にソースコードを1行ごとに解釈しながら実行するインタプリタ方式を採用しているためコンパイル作業が必要ありません。Webブラウザ上で動作するJavaScriptやVBScript、Webサーバ上で動作するPerl、PHPがその一例です。
(ウ)不正解✕
スレッド(thread)は、プログラムの並列処理を実現するために、タスクをさらに細分化したCPUの処理単位です。
(エ)不正解✕
サーブレット(servlet)は、サーバ上でデータ処理やWebページの動的生成などを行うプログラムです。
【答え】(ア)
XML
【問題】XMLの特徴として、最も適切なものはどれか。
(ア)XMLでは、ネットワークを介した情報システム間のデータ交換を容易にするために、任意のタグを定義することができる。
(イ)XMLは、SGMLを基に開発されたHTMLとは異なり、独自の仕様として開発された。
(ウ)XMLでは、HTMLにWebページの表示性能の向上を主な目的とした機能を追加している。
(エ)XMLで用いることができるスタイル言語は、HTMLと同じものである。



【攻略ヒント】
これは確実に取って欲しい問題だね。
分からなかったらしっかり覚えていこう!
【解説】
(ア)正解〇
XML(eXtensible Markup Language)は、ユーザが定義したタグを用いて文書構造を記述するマークアップ言語です。
HTMLが、Webページを記述するための言語であるのに対して、XMLは、データ交換のための汎用のデータ形式です。HTMLで使用するタグはあらかじめ定義済みのものですが、XMLではユーザが新しくタグや属性を定義・使用することが可能になっています。
(イ)不正解✕
XMLもHTMLと同様にSGML(Standard Generalized Markup Language)をベースに開発されました。
(ウ)不正解✕
XMLはwebサービスのデータ受け渡しにも使用されますが、目的はデータ交換であり、表示性能の向上ではありません。
(エ)不正解✕
HTMLではスタイル言語にCSS(Cascading Style Sheets)が用いられますが、XMLではXSL(eXtensible Style Language)というスタイル言語が用いられます。
【答え】(ア)
Java
【問題】Java VMが稼働している環境だけがあれば,WebブラウザやWebサーバがなくても動作するプログラムはどれか。
(ア)Javaアプレット
(イ)Javaサーブレット
(ウ)Javaアプリケーション
(エ)JavaScript



【攻略ヒント】
今日は、java問題多めだねw
しっかり覚えていこうね!!!
【解説】
(ア)不正解✕
Javaアプレットは、ネットワークを通してWebブラウザに読み込まれて実行されるJavaのアプリケーションの一形態です。
(イ)不正解✕
Javaサーブレットは、Javaで記述されたWebサーバ上で動作するプログラムです。Webサーバ上に置かれ、クライアントからの要求に基づくウェブページのHTML文書などの動的生成やデータ処理をWebサーバ上で行います。
(ウ)正解〇
javaアプリケーションは、Javaでつくられたプログラムのうち、スタンドアロンのローカルコンピュータ上で実行できるものを指します。
(エ)不正解✕
JavaScriptは、主にWebページとともにウェブブラウザに読み込まれ、ブラウザ上で動作する(※サーバ上で動作するものもあります)オブジェクト指向スクリプト言語です。動的なウェブサイトの構築に用いられます。”Java”と”JavaScript”は名称こそ似ていますが、まったく異なるプログラム言語です。
【答え】(ウ)
まとめ:FE合格のための全体戦略
基本情報技術者試験(FE)を最短で突破し、実務で使える技術力を身につけるには、「ただ過去問を解く」のではなく「PMの視点で体系化する」ことが不可欠です。
以下の3ステップで学習を進めるのが、最も効率的な合格ルートです。
科目Aは過去問の類似問題が多いため、まずは過去問を繰り返し、出題の「型」を体に叩き込みます。ただし、単なる数字の暗記は無駄です。「なぜその答えになるのか」を技術的背景から理解し、短時間で得点できるようにします。
合否を分ける科目Bは、用語暗記ではなく「解く技術」が必要です。擬似言語のトレースやセキュリティ事例の構造を読み解くため、過去問や問題集の解説を深く読み込み、自力で解法を再現できるまで繰り返してください。
学習の最後は、必ず「試験と同じ時間配分で、科目A・Bを通して解く」演習を行ってください。
- 時間感覚の養成:特に科目Bは時間が不足しやすいため、解けない問題に見切りをつける「判断力」を養います。
- 思考の切り替え:科目Aの知識問題から科目Bの長文・論理問題へと頭を切り替えるリズムを作ります。
学習を加速させる必須ツール
最短合格を目指すなら、過去問演習の効率を最大化する「相棒」となる教材選びが不可欠です。現役エンジニアとしての実務視点から、「試験の出題傾向」と「解説のわかりやすさ」を基準に厳選しました。



単なる暗記ではなく「技術的な仕組み」から理解できる、試験本番で使える教材を揃えました。





特に科目Bのアルゴリズム対策で躓きたくない方向けに、解法プロセスを動画で体系的に学べるサービスを厳選して比較しています。


「過去問での型作り」から「通し演習による実戦力の完成」へ。
本サイトの解説記事と厳選教材を武器に、試験の出題傾向に合わせた最短ルートで合格を勝ち取りましょう。


