「C言語プログラミング能力認定試験 2級」の合格率とは?【合格体験記】

 どうも、水那@mzpdn)だ。

 今回は、C言語プログラミング能力認定試験2級合格した僕が、試験概要であったり、合格するために行った勉強方法コツなどを語らせていただこうと思う。
 なお、当記事は「【C言語プログラミング能力認定試験3級】に合格している」ことを前提として話していく。

 そのため、まだ「C言語プログラミング能力認定試験3級」に合格していない方、もしくはC言語の始め方がわからないという方は、下にあるこちらの記事を読んでから戻ってきていただきたい。

https://mznblog.com/certifyc3/


 3級と比べてかなり難しくなるが、合格のため頑張っていこう。

C言語プログラミング能力認定試験とは

 C言語プログラミング能力認定試験とは、その名の通り個人がC言語を扱う能力にどれほど優れているのかを測る資格試験だ。
 これは、サーティファイというところが実施する民間資格試験となっており、このブログを見ている方を含め、普段C言語を扱っている方はご存じだろう。
 C言語プログラミング能力認定試験は、レベルの優しい方から順に「3級」「2級」「1級」となる。
 ちなみに、試験の級ごとに基準があるので下記をご覧いただこう。


 3級:C言語がどういったものかを理解しており、簡単なプログラムを組むことがで
    きる。
 2級:500行程度のプログラムを、正しく早く適切に組むことができる。
    加えて、各種基本のアルゴリズム(効率の良い処理手順)を深く理解して
    いる。
 1級:C言語をうまく活用し、高難易度のプログラムを組むことのできる能力を持つ。
    加えて、使用しているOSについて深く理解している。

 前回ご覧いただいた3級と比べて、いかがだろうか?
 2級から急に「500行程度のプログラムを読め」と、怖い要求を強いられることとなる。
 加えて、各種基本のアルゴリズムを学ばなければならないので、学習時間は3級と比べて圧倒的に長いものとなるだろう。
 それに、「ポインタ」という初心者が嫌う概念も出題されるので、合格への壁はそこそこなのは言うまでもないだろう。
 しかしながら、我慢していただき、もう少し頑張って読み進めていただきたい。

難易度はそこそこ高いのではないか

 僕が調べてみた限り「C言語プログラミング能力認定試験2級」に関しての、専門的な解説は少ないように思われる。
 あったとしても、3級すら受験したことも無いような人がいい加減に解説したものがほどんどを占めている(例えば「この本は評価が高いので読むといいのかもしれません!」とか)
 そこで、実際に受験して合格している僕が思う難易度は「そこそこである。
 それもあくまで、C言語の入門書籍を一通り理解している人にとっての難易度だ。

 理由としては、「ポインタ」「構造体」というような初心者が嫌うような分野が出題されるのでそういうった難易度であると考えている。

出題はかなりいやらしい

 「C言語プログラミング能力認定試験2級」においては、8つのテーマが出題され、それを制限時間である90分(1時間30分)で回答することになる。
 この8つのテーマというのは、試験ごとにランダムで出題されて僕が受験したときは

  1. 正誤問題:C言語の特徴 (8問
  2. 文法問題:ビット演算 (6問
  3. トレース問題:文字列と文字列関数 (5問
  4. 文法問題:数学関数 (6問
  5. 文法問題:ファイルアクセスに関する関数 (4問
  6. トレース問題:ポインタによる配列の参照 (5問
  7. プログラム問題:文字データをスタック構造及びキュー構造によりデータ管理する (5問
  8. プログラム問題:リバーシゲームにおいて、挟める相手の石の数の合計値を出力する (5問

 というテーマで構成されており、問題数は合計44問であった。
 ここで僕が、少ない情報の中で細かく研究してみたので、是非参考にしていただきい。

 (※裏情報アリなので、ぜひお楽しみに)

出題されるテーマ

テーマ1は100%固定である

 「C言語プログラミング能力認定試験2級」における、1つ目のテーマである「C言語の特徴」は確実に出題される
 そのため、どこよりも優先して学習すべきだと言える。
 ちなみにここは、8つ程度の問題文に対して「 正しい」「 誤り」の二択で答えるところであるため、最低でも1ミス程度で済ますべきだ。
 ただ、ここに関しては「果たしてそれは実務で使うのか?」というレベルに意味の分からないことを問われる場合があるため、対策はしっかりとすべきである。

テーマ2からかなりランダムになってしまう

 2級はそもそもの情報量が少ないため、どの問題が多く出題されるかはわかりかねるが、「ビット演算」「ファイル入出力関数」「列挙型」などの勉強はしておくべきだと言える。
 ここに関しては、のちほどご紹介する問題集とほぼ同じ形式で出題されるため、勉強をすれば対策に時間がかかることはないだろう。

テーマ3はトレース問題だが

 ここは個人的に「ビット演算」に関して問われることが多い印象だ。
 そのため、演算子はすべて覚えておくべきだと言える。

テーマ4は文法問題で、問題によっては地獄

 ここからの問題は、初心者にとって少し厳しいかと思われる。
 というのも、僕が受けたテーマが「数学関数」で、思っていたより正解が少なかったからだ。
 ここの学習は全く頭に入っておらず、盲点だったと思うとともに、結構運ゲーなのかなと感じた。
 違う日の受験者の中には、このテーマ4が「列挙関数」であった人もいるためだ。
 
 そのため、少なくとも「数学関数」「列挙関数」を学習しておくと効果的だろう。

テーマ5はかぶりやすいかも

 テーマ5は、配列とポインタを混ぜた問題が多く出題されている印象だ。
 「printf(“%c¥n”, **pt_2 + 2)」
 「printf(“%s¥n”, *(pt_2 + 2) + 2)」
 のようなちょっと変態的なものを読み取れるようになっておくと良いだろう。

テーマ6はテーマ5の対策をしておけば

 テーマ6とテーマ5は反対になって出題されるようなものなので、知識があれば解ける問題ばかりだ。
 そのため、ここはあまり心配する必要はないと感じる。

テーマ7とテーマ8は見た目ほどではない

 題材から見るにとても難しそうだが、実際に解いてみるとそれほどでもない。
 確かに長文なのだが、普段から文字を読みなれている人は苦に感じることはないだろう。
 しかし、ここに関しては得意不得意で大きくわかれる問題なので、難易度には個人差があるといえる。

ここだけの裏話

話していいのか悩む「裏話」

 ネットをいろいろとあさっていたら見つけてしまったことがある。
 正直これは、皆さんのためにもならないだろうし話そうかどうか迷ったのだが、僕のプライドが許さなかったので話そうと思う。
 それが、「受験した日が近い人と、テーマがかぶっていた」ということだ。
 なんと、僕が受験した問題と1週間前くらいに受験した人のテーマ(問題名)がまったく同じであったのだ。
 これは、問題の名前がすべて一緒というだけで、中身は少しちがうのかもしれないが、大きな違いはないと考えられる(リバーシゲームなんかはまったく同じなのではないか?)。
 すなわち、テストを受ける日が近い人に「あの問題どうだった?何がでてきた?」と聞いて参考にするのは良い戦略かもしれない。
 3級に関してはどうなのかわかりかねるが、2級に関しては驚くことに、こんなことがあったのだ。

僕がすすめる試験対策方法

試験対策の前に読むべき一冊

 まず初めに、C言語の基礎を学ばないことには試験対策は始められない。
 既にC言語の基礎を理解している方は読み飛ばして頂いていいのだが、
 「ポインタもわからないし、これはもう地獄や~(泣)」
 と困っている方のために滅茶苦茶にわかりやすい書籍」をご紹介させていただく。
 それがこちら

苦しんで覚えるC言語
https://amzn.to/3bdA50p

 知る人ぞ知る良書である「苦しんで覚えるC言語」通称苦Cだ。
 他にも「新・明解C言語 入門編」などがあるのだが、苦Cはとにかく最強だと考えている。
 もともとネットで人気があり、それを書籍化したものなのだがとても分かりやすい。
 例えば、他の入門書でありがちな「今のところはおまじないだと思ってください」のような誤魔化しがないのだ。
 最初から分からないを生み出さないために「苦しんで」と掲げているのだろうが、そのおかげもあって、想像以上にすんなり頭に入ってくる。
 僕がこれまでに読んできたC言語の入門書では、断トツ1位に君臨する良書である。

 そして上記に加え、ポインタをしっかり理解したいという方に向けてこちらもおすすめさせていただきたい。

C言語ポインタ完全制覇
https://amzn.to/3did3qy

 今はリニューアルしたことにより、僕が持っているものと表紙が違うのだが、こちらも買っておけばまず間違いないだろう。

 そしてこれらを読み進めて、「C言語プログラミング能力認定試験2級」の試験範囲である文法や技術などを学ぶことが良いと考えられる。
 進めるにあたって、試験範囲ではないものも含まれるかと思うが「最初から最後」まで学習しておけば、間違いないだろう。
 各自、確認しながら試験に出題されそうなものをチョイスすると良いだろう。

それでは試験対策だ

 試験対策に推奨するものはただ1つ、過去問題集である。

C言語プログラミング能力認定試験 過去問題集

 これは級それぞれに存在しており、過去にあった6回分の試験に出題された問題を一冊にまとめた、サーティファイが提供する公式問題集だ。

 購入サイト(ウイネットホームページ)はこちらから
 (個人)https://bookshop.wenet.co.jp/products/detail.php?product_id=17
 (教育機関・企業の方)
https://www.wenet.co.jp/webapp/products/detail.php?product_id=2153

 とりあえず、こちらを購入した後にひたすら問題を解くといった方法が合格への近道といえる。
 

 結論:C言語の基礎を「苦C」「ポインタ完全制覇」で学んだ後、公式問題集」でひたすら試験対策

まとめ

 いかがだっただろうか?
 今回は「C言語プログラミング能力認定試験2級」の合格方法を語らせていただいた。
 人によっては、難しいと感じた方もいるだろう。

 プログラミングは、本を読んでいるだけでは効率的な学びにはならないため、実際に手を動かしながら試験対策をすると効果的だろう。
 ぜひ、今回ご紹介した方法で皆さんも合格していただければ幸いだ。
 加えて、この方法で合格した方はぜひとも「合格してやったぜ!どうだ!」といった感じでご報告していただければ嬉しい。

 今回もご覧いただき、ありがとうございました。