2020年に小中高ではプログラミングが必修化されました。さらに、2024年には大学受験科目「情報Ⅰ・Ⅱ」として再編が検討されています。もしかしたら、試験科目にプログラミングが出題される日も遠くは無いかもしれません。
気が早すぎるかもしれませんが、本記事ではかなり先取りして、プログラミングの試験問題を予想してみました。試験対策の必要性はないかもしれませんが、プログラミングを現在進行形で学習されている皆さんの理解確認用としても書いていますので、ぜひ読みながら解いて見てください。
演算子の問題
僕が試験作成者なら、絶対に下記のような演算子の問題を出します。
問1)排他的論理和(XOR)
0xabcd ^ 0xefab
問2)論理演算とシフト演算
(55 & 85)<<2
問3)論理演算子(XOR)の使用例を示して簡単に説明せよ。
出題意図は、排他的論理和をプログラム上で応用できるかを見るため。
関数
問1)関数の利点を簡潔に説明せよ。
問2)printf関数の利用例を示せ。
制御構文
制御構文は基本中の基本なので、配列とfor文を組み合わせてメモリのアクセスエラー系の問題が頻出されると思います。
メモリ(ポインタ)
C言語が前提になるかもしれませんが、これ系の問題も出題したいところです。
問1)値渡しと参照渡しの違いについて簡潔に説明せよ。
オブジェクト指向言語
現在はオブジェクト指向言語を理解していなければ、ソフトウェア開発は出来ません。このため、試験では必須の出題範囲とするべきでしょう。僕が出題するなら下記のような問題を出題します。
問1)オブジェクト指向の特徴を簡潔に説明せよ。
問2)つぎの用語を説明せよ。「クラス」「コンストラクタ」「インスタンス(化)」「メソッド」「プロパティ」
データ構造
「何をやったら良いか分からない」など、プログラミングが出来ない原因の大半は「データ構造」の設計に慣れていないことです。「データ構造」をきちんと決めることが出来れば、プログラミングも自ずと上達していきます。
問1)「じゃんけんゲーム」のデータ構造を示せ。
問2)「○✕ゲーム」(三目並べ)のデータ構造を示せ。
アルゴリズム
アルゴリズムについては、出されるアルゴリズムによっては難問になります。ただ、実用レベルを考えれば、ソート系のアルゴリズムを出題したいところです。
問1)「計算時間」という用語を用いて、バブルソートを簡潔に説明せよ。
問2)上と同じ類ですが、「計算時間」という用語を用いて、クイックソートを簡潔に説明せよ。
記述式プログラミング問題
多分、ここまでやらせる試験はそうないと思いますが、ぜひ記述式でプログラミングの問題を出題してもらいたいです。理由は、結局プログラムを組めないと意味がないからです。
問1)変数a,bを宣言して、それぞれ整数7,13で初期化せよ。その後、2つの変数a,bを使って値を交換するプログラムを示せ。
コメント