こんにちは。アルロジです。
私はサーティファイが主催する「C言語プログラミング能力検定試験1、2、3級」を取得しているソフトウェアエンジニアです。
これからC言語を勉強しようという方にとって、私の経験が何かのヒントになれればと思います。
(参考)サーティファイHP https://www.sikaku.gr.jp/js/cp/
C言語3級合格への道
C言語プログラミング能力検定試験の概要を教えて
合格ラインは60点です。
対象 | 学習時間の目安 |
3級 | 110時間 |
2級 | 110時間+100時間 |
1級 | 110時間+100時間+68時間 |
サーティファイのホームページによると、上記の時間が学習時間の目安として設定されていますが、たしかにそのくらい勉強しないと取得できないでしょう。
C言語3級の難易度は?
3級は一通りC言語のテキストを終わらせていれば楽勝です。
私も新入社員のころに合格しました。
電車遅延のため試験開始時間にだいぶ遅刻してしまいましたが、30分くらいで終わって退室時間までヒマだった記憶があります。
解答は選択式です。
考える問題は少ないためあまり時間を必要としません。
C言語3級はどんな問題が出る?
薄ーく、広ーく出る印象です。
まずは以下を確認してみてください。
頭のなかで回答できそうなら十分合格できそうです。
①言葉の意味を知ってないと太刀打ちできない
以下の言葉を聞いて説明できるでしょうか。
・プリプロセッサ
・標準ライブラリ
・関数、変数、定数
・引数、戻り値
・コンパイラ、リンカ
・2の補数
・予約語
・2byte文字
・ASCIIコード
・四則演算
・アセンブラ言語、機械語
上記が解答できるようだとひとまず安心です。
3級の問題が読めるレベルです。
②C言語の歴史や他の言語との特徴の違い
・C言語が登場した年(西暦)とその背景
・コンパイラ言語とインタプリタ言語(C言語はどっち?それぞれの特徴は?)
・C++やJaveとの違い
上記が解答できる人はC言語を使えるだけじゃなく、C言語のことを理解できている人と言えます。
(ただし、配点が高いわけではないので重点的に対策しておく必要もありません)
③コードが読める
1つのmain()関数内に記載された if文、for分、四則演算を理解することが問われます。
stdio.hからprintf()やscanf()程度の簡単な標準ライブラリも登場します。
数行程度のプログラムが読めなければ合格は難しいでしょう。
①printf()、scanf() の引数が答えられるか
②a = b + c / d * ( e – f ) の優先順位が答えられるか
③a++ と ++a の違いを答えられるか
④for( i = 0 ; i < 10 ; i++ ) の場合、何回処理されるか。処理が終了したときの i の値はいくつか
⑤const int a ; と宣言できない理由を答えられるか
などが解答できればひとまず合格できる知識は持っていると思います。
C言語3級はどうやって勉強すればいい?
手を動かす
たまに本を読むだけで理解した気になっている人がいますが、よくないですね。
プログラミングは自分でやりたいことを実現するための手段です。
実際に手を動かしてプログラミングをしてみましょう。
書籍に掲載されている練習問題からで構いません。
合格することより「アルゴリズム」を身に付けることの方が重要です。
入門書で勉強しない
入門書は確かに読みやすいものが多いのですが、理解するために重要な部分を省略しているケースが多いです。
将来、プログラミングをしっかりやっていきたいと思うのであれば専門書で学ぶべきでしょう。
さいごに
C言語の検定の一番の難しいポイントは「公開試験が札幌・東京・名古屋・大阪・福岡会場しかない」ことかもしれません。
試験会場が近い人は良いですが、新幹線を使って受験する場合には気軽に「受けてみよう」とはならないですからね。。。
試験当日、無事に試験会場に到着することを祈るばかりです。
(私のように遅刻しないように早めに出発しましょう!)
それではグッドラック!