メインコンテンツへスキップ
見出し画像

【模擬試験に】FEサンプル問題1❶(基本情報技術者試験, 科目B, 擬似言語)

    このNoteでは「基本情報技術者試験(FE)」科目Bサンプル問題(擬似言語, 問01~16)を解説します。セキュリティは、 >別Note で。

    サンプル問題1は模擬試験として学習最後にするのを、私は薦めます。様子を見たい/"分からされたい"方はサンプル問題2からがお薦め。>【FEB】サンプル問題2の解説Note

    サンプル問題1は擬似言語16問+セキュリティ4問で、本試験20問と同じです。未熟な状態で、食い散らかしたくはないですね。


    このNoteでは、図解と色を使って、どこで何が起きているのかを眺めるように工夫しています。”現場の限られた時間での解き筋”と関連知識/類似問題の紹介までしっかり作りました。

    私のお薦めの演習順番は、
    ❶学習前の”分からせ”
    >サンプル問題2のNote
    ❷テキスト※必要なら
    うかる! 基本情報技術者 [科目B・セキュリティ編](amazon)
    うかる! 基本情報技術者 [科目B・アルゴリズム編](amazon)
    ❸各年度の公開問題
    >【FE科目B】令和07年科目BのNote
    >【FE科目B】令和06年科目BのNote
    >【FE科目B】令和05年科目BのNote
    ❹模擬試験
    >サンプル問題1のNote(擬似言語)←いまここ
    >サンプル問題1のNote(セキュリティ)


    このNoteは、私がIT専門学校で授業したことを基に作成しています。IT専門学校でFEは第一目標として、カリキュラムが構築されています。何も知らずに入学しても、1年生10月にはFE合格していきますよ。実績ある教育ノウハウを詰め込んだので、少しでも信頼して頂けたら嬉しいです。

    少しでも学習のお役に立てたら嬉しいです。

    それでは始めましょう!


    >全Noteへのリンク(FE節)
    ※科目Aのテーマ別対策、科目B対策、旧FE午後(セキュリティ)など沢山作りました!

    【NOTICE】著作権を侵害には即座に法的措置をしています。人格否定もブロックなどの自衛手段を行います。私は1個人であり、公人ではありません。プライベート時間の全てを費やして作成してきました。ご理解頂ける方のみ、ご活用されると嬉しいです🫠


    問01 | メモリ内容のトレース

    問01は、基本的な問題でしたね。プログラムの変数(や配列)内のデータがどう変化するのかを追う「トレース(追跡)」。


    正答はカ(3, 2)。ちょびっとメモするだけで正解できます。

    画像

    現場での解き筋 | 図示しても良い。

    下図。各変数内のデータの、プログラム進行による変化。

    画像

    メモしましょ。x, y, zの3個もあるし、入替もちょっと複雑なので、脳内だけではちょっとキツイかも。簡単な問題なので、もしミスったら勿体ないです。



    関連科目A | ページングの図示と同じ

    今回の図示は、科目Aのページングと同じでした。

    「FIFO」「 LIFO」「 LRU」「 LFU」って覚えてますか?
    >【AP計算⓬】仮想記記憶のNote

    • FIFO:一番古いデータを追い出す
      ※「先入先出」とも云う
      ※最初にページインされたデータから追い出す

    • LIFO:一番新しいデータを追い出す
      ※「後入先出」とも云う
      ※最後にページインされたデータから追い出す

    • LRU:一番長く参照されなかったデータを追い出す
      ※一番使われなかった(必要とされなかった)データ

    • LFU:一番使用頻度が低いデータを追い出す
      ※一定時間内で考えて、使われた回数が少ないデータ

    画像
    画像

    >【AP計算⓬】仮想記記憶のNote



    関連科目B | スタックのpush/pop

    科目B擬似言語には、LIFO(スタック)だけ絡むでしょうね。他はFEには難しいので。>【FE科目B】令和7年問03のNote

    画像
    画像

    >【AP計算⓬】仮想記記憶のNote
    >【FE科目B】令和7年問03のNote

    さらに今回問10で「リスト」が出ました。データと一緒に、次データの場所(アドレス)も保存する形態(ポインタ)。次データの場所を保存するなら「単方向リスト」、前データの場所”も”保存するなら「双方向リスト」と云います




    問02 | 条件はキビシイ順に

    問02は空欄が多いので、一旦問題文通りに組んで、簡単な値で考えるのが初手。または、選択肢を見て目星から考えるのも現実的な所。


    正答はウ(a=3と5, b=3, c=5)。簡単な値で考えれば正解できます。私は、一旦 3, 5 で考えて、15, 16は必要に応じて追加しました。

    画像

    正解を理解する | 問題文の入力/出力に寄せる

    問題文の通り。3, 5を基盤に4パターン考えれば、正解に辿り着けます。

    画像

    問題文に具体的な入力値や出力値がない時、自分で値を設定して動作確認します。値は、2, 3, 5, 7あたりがお薦めです(最後の節で詳しめに解説しますね)。



    現場での解き方 | とりあえず入れてみる

    こんぐらい短い擬似言語なら、頭の中で解いても良いし、特に考えず選択肢を全部試してもOKです。私も最初こんな感じでしたよ。

    問題文の記述順に組んだ場合。

    画像

    問題文「3と5で割り切れる」の15の時に、最初の条件が真になって、返すメッセージが「3で割り切れる」になってしまいます。ダメ。

    画像


    だったら、最初に「3と5で割り切れる」を判定すれば良い、と発想。正解に至ります。

    画像

    if文はふるい落とし。キビシイ条件で取り除いて、だんだん大目に見て行って、最後にelseで全部取るイメージですね。



    関連 | 条件はキビシイ順に(AND)

    ほぼ同じな問題も出てます。

    画像

    今回と同じく、キビシイ条件を最初に設定してます。x>yかつx>zの2ハードル。>【FE科目B】令和06年科目B問01の解説Note




    問03 | 要素数/要素番号/データの区別

    問03の学びは、配列の扱いと、ループの解法。

    • 配列のデータと要素番号の区別
      ➡部屋内と部屋番号の区別

    • ループの省力解法
      ➡最初と最後に集中力


    正答は、カ:out[5]=17。
    ループカウンタ(i)のトレースは従来通り。「outの要素数」にも注意しましょう。(i=2, out要素数=1)で正しく処理できれば、後は流れで正解できます。

    画像

    現場での解き筋❶ | ループ前と1回目は丁寧に

    一緒にトレース頑張りましょう。

    ループは1回目が重要。2~3回目までうまくいけば、後はトレースしなくても”流れ”で解けますから。

    ループ前の初期化、ループ1回目が一番重要。

    画像

    ここで間違いがあるかは、ループ終了で確認します(次々節)。



    現場での解き筋❷ | 2回目が理解できれば、以後は簡略

    1回目のループと値更新が正確ならば、2回目以降は流れに乗れます。

    ループ2回目。i(=3)とoutの要素数(=2個)で、1ずれてるのが注意点。

    画像

    私は2回目のループまでは1行ずつトレースして❷。3回目4回目は概要で進めました❸❹。”つまりinを累計していくんでしょと。3+2+1+6+5=17”。

    これで解答してOKです。

    画像

    気になるなら、for文の条件(i=6までループ、i=7でループしない)で、ループが正常終了、処理も正しいか確認します(次々節)。


    ※このNoteは”復習”なので、最後までトレースします。繰り返しますが、本試験では、やんなくてOKです。見直し時に”やりたきゃやれば良い”ぐらい。


    おまけ❶ | 一応トレースします。

    i=4, 5も図解にしました。過去問演習では、ここまで練習して下さい。本番では前節の概要まで充分ですよ。

    画像

    問われている「戻り値の配列の要素番号5の値」とは、out[5]のこと。17だと分かります(紫)。

    まだループ処理は終了してませんが、カ(17)を解答して、トレースを終了してOK。



    おまけ❷ | ループ終了は再度丁寧に

    このNoteは復習なので、ループ終了までトレースします。

    1回目や2回目が正しければ、正しく終了するはずです。

    画像

    i=6でループでi=7になり、i=7でループ処理はしません。

    引数のin配列(6要素)が、ちゃんと最後まで呼び出されてます。もし解きが間違っていたら、5要素までの処理でループが終わったり、存在しない7要素目を呼び出そうとするなど、不具合が起きるはずです。

    ループ1回目に注力し、ループ終了も確認する解き方が良いですね。




    問04 | 簡単な数で考える

    問04は数学用途ですが、数学的解法を理解しなくて大丈夫です。「最大公約数」は「奇数/偶数」「倍数」「素数」同様に一般常識として知って下さい。
    >【FEB】令和5年科目B問01の解説Note(素数)
    >【FEB】令和7年科目B問01の解説Note(倍数)


    正答は、エ:while(x≠y), x>y, endwhile。
    簡単な値で考えれば正解できます。選択肢も一目で半分に絞れます。

    画像

    現場で解き筋 | 試しに値を入れた方が速い

    問題文から。「最大公約数」を算出するアルゴリズムなのは明確なので、簡単な値を入れてトレースした方が速いです。

     
     
    大学・専門学校の先生の解説Note。 学生時代にITパスポート試験・基本情報技術者試験・応用情報技術者試験を独学で高得点合格。情報処理安全確保支援士試験(セキスペ)・データベーススペシャリスト試験・ネットワークスペシャリスト試験・G検定なども取得。 2027年にPD-S受験予定。