過去問だけで攻略する「C言語プログラミング能力認定試験3級」
C言語の資格で調べると、チラッと見かける「C言語プログラミング能力認定試験」
資格に執着している自分(ハブ野ヤシタケ)が今回は、試しに受けてみることにしました。
背景
私事ではありますが、自分は現在工学系の大学に在学しています。
授業でC言語とPythonのプログラムの授業を受けましたが、
正直ただ単位のために教員が言っていたことを一時的に覚えていたにすぎませんでした。
そして…
何といってもプログラムが苦手で苦手でしょうがないという状況です。
それゆえに、プログラムを書いても自信がなく、大学の卒研でソフトを選んでしまったが運の尽きだとあきらめて(妥協で)この道を進んでいます。
そんな自分ですが、少しでも自信をつけるべく資格をあさり、ハードルの低そうなこの資格に辿り着きましたので、今回この資格について書かせてもらいます。
概要
試験概要
最初に、試験の概要についてまとめておきます。
この資格でどこまで求められているのかは一つのモチベーションになるのではないかと思います。
続いて、以下大まかな試験概要です。ご参考までに…
◎受験資格
特になし(学歴、年齢、経験等は一切必要ない)
◎合格点
最大点数の60%以上の得点率
◎出題形式
多肢選択式&テーマ別大問6問(小問合計37問)
◎解答時間
60分
◎試験会場
個人の場合、在宅or在社で「リモートWebテスト」によって行われる
対策方法
対策方法に入る前に、自分は試験の申し込みを1か月前に行い、そこから試験対策に入りました。
ここからは、試験申し込みをウェブで行った後の具体的な勉強方法についてのお話です。
過去問の入手方法
最初にこの資格を見て、何から始めるべきか分からない方もいらっしゃると思います。これはあくまで自分のやり方になってしまいますが、最初から過去問に着手すべきではないかと思います。
というのも…
どの資格試験にも言えるかもしれませんが、現状の自分がどこまでの知識を有しているのかは実際に問題を解いてみないと測れないのではないかと思うからです。(文系の人やソフトに全く触れてこなかった人はあまり参考にしないでください…)
ということで、過去問を解いていくわけですが、過去問を入手する方法は主に2つあります。
ネットで拾ってくる
公式(サーティファイ)が販売する物を買う
1.ネットで拾ってくる
おそらく、まず誰もが思いつくであろう方法だと思いますが、
過去問をネットで探すところから始めてみるといいかと思います。
この資格の運営である「サーティファイ」から過去問を一つだけ公開されているものがあります。
以下、そのpdfのURLになります。ご参考までに…
https://www.sikaku.gr.jp/js/cp/img/sample/3/cp3-4.pdf
2.公式が販売する物を買う
試験を受ける上で個人の場合、大方マイページでログインすることになると思いますが、このマイページに問題集購入→デジタル問題集でデジタルで閲覧できる問題集(1,650円)を購入できます。
これにより、スマホ片手で問題集(過去問6回分)を解くことが出来るので、かなり過去問に取り組むハードルが下がります。
その他、紙媒体を入手したい方は、Amazonやメルカリで新品または中古で購入する方法もあります。
が、正直あまり出回っていなかったり、古いバージョンしかなかったりと入手が限定されますので、こちらでの購入はあまりお勧めしません。
過去問の使い方
使い方は人それぞれなのであくまで個人的なやり方になってしまいますが、「過去問を解く」→「間違っている問題確認」から自分の解けていない箇所や分からない問題の傾向を大雑把に把握して、ググる。
簡単に言ってしまうと、こんな感じです。
問題は比較的難易度低めなはずですが、苦手な自分からすると分からない言葉や関数が出てくるたびに調べてるとキリがありません…
ですので、過去問を解いた後に自分ができていない箇所や理解しきれていない箇所をある程度調べて問題の傾向に対してのみ対策します。
残念ながら、完璧な対策ではないので、参考程度にとどめておいてください。
目安:このやり方で大体8割くらいは安定して採れるようになりました。 (過去問に限る)
問題傾向
一通り、解いてみたところで、過去問の問題傾向を大雑把に振り返っていきます。目安時間は完全に自分視点の時間なので、各々で配分は考えてください。
大問1.
正誤問題形式で、C言語の基礎知識を問う問題がほとんどになります。
知らなくても何となく分かる問題もありますが、知っていないと、解けない問題も半分以上ありますので、細かい知識にも目を向ける必要があります。
問題数:8問
目安時間:3~5分
メモ:
関数や型、演算子などについて多く聞かれるかと思いますが、<stdio.h>と<ctype.h>で使えるようになる関数について少しだけ知識をつまんでおくと、比較的解きやすくなるかもしれません。
大問2.
簡単なソースコードが書いてあり、算出結果や表示される文字など、記号や計算方法を問う簡単な問題なのであまり点を落とせない箇所になります。
特に、大問1で分からない箇所がある場合は、こちらに時間を費やして確実に点を取りに行った方がいいかもしれません。
※時期によっては、大問1の延長線上で正誤問題が続く場合や穴埋め問題などがあります。
問題数:5問
目安時間:3~5分
メモ:
大問2は時期によっては、大問1に続く形で正誤問題を問われることがあります。その際、大方<ctype.h>で使える関数について問われることが多かったです。たまたま出くわした問題がそうだっただけかもしれませんが、<ctype.h>で使える関数について一度見ておいて損はないと思います。
参考までに以下のサイトを見ておくことをお勧めします。
大問3.
for文やswitch文、配列などを組み合わせたやや長いソースコードの問題です。じっくり読み解けば、そこまで難しくはないですが、時間を考えながら、解いていく必要があります。
おそらくここが一番時間をかけたいところだと思います。問題数も多く、一つ一つの計算結果などを導くのに時間を要すると思われます。
問題数:8問
目安時間:15~20分
メモ:
こちらと大問5のどちらに比重を置くかは、各々異なるとは思いますが、
比較的難易度の低いこちらの方が点を取りやすいので、文章問題が苦手な方はこちらに時間をかけるといいと思います。
大問4.
scanf関数などの関数の扱い方や定義文(#define)の使い方を問う問題です。scanfの場合、表示させる値や文字によって、「%d」など“%”の後の文字が変わってきます。それぞれ、問われる関数によって性質や使い方を覚えておく必要が出てきます。
一方、定義文の場合は比較的難易度は高くなく、掛け算や割り算の順番さえ間違えなければ、点数を取りやすい問題になります。
問題数:6問
目安時間:3~5分
メモ:
この大問でよく登場するdefineでの定義文ですが、
文字に関して、defineで定義された中身を確認したり、配列は0からスタートであったりといった点に気を付ければ問題ないと思います。
計算問題は()があるかないかで計算の順番が変わってくることに注意が必要です。例えば…定義文で「#define A 10-5」と書いてあり、printf(省略,A*2)という問題の場合、10-5*2となるので、10-10で“0”になります。
しかし、「#define A (10-5)」とすると、答えは(10-5)*2つまり5*2で“10”になるといった具合です。
大問5.
こちらも関数の扱い方を問う問題です。といっても、printfを使ったとき、“%”と“文字”などの間に数字を入れることがあるため、入れた値がどのように表示されるかを覚えておく必要があります。これらは覚えていないと、まず解けないので、各関数の扱い方は前提として覚えておきたいところです。
こちらの問題は時期問わずすべての過去問で出題されておりましたので、まず確定で出てくると言ってもいいかと思われます。
問題数:5問
目安時間:3~5分
メモ:
主に聞かれるのは()のカンマの後に続く文字や数字がどのように表示されるようになるかです。たとえば、[%-6d]なら左詰めに(マイナス)、最小6文字(6)で10進数(d)を表すといった具合に翻訳できるようにしておけば間違えることは少なくなります。他にも、16進数だとXとxで大文字か小文字かといった違いがあります。
大問6.
配列、関数、文字列など総合的な内容を問われる問題です。暗号のように複雑な問題になっていることが多いので、一番時間をかけて解く箇所だと思われます。大問1~5までにかける時間を極力少なくして、いかにこちらに時間を当てるかが重要になってくると思われます。(自分は読解力がないのでこちらに時間をかけるのはあきらめました)
問題数:5問
目安時間:20~30分
メモ:
あまり参考にならないかもしれませんが、読解力がなく時間にルーズな自分目線で説明しますと…
あらゆる文をすっ飛ばして、まず<処理手順>から読みます。
それと同時にプログラムの方も確認し、どの処理がどこと関連づいているのかを意識するようにします。
問題で空白になっている箇所は、大方処理手順の中にヒントが隠れていることが多いです。
以上、大問1~6を見ていきましたが、6割が合格点であるので、最低23問合っていれば、受かることが出来ます。
しかし、ギリギリの得点率を狙うと想定より1、2問余分に間違えただけで落ちてしまうので、「10問くらいは間違えられる」または「10問くらいは分からなければ、飛ばしてもいい」というモチベーションのもとで取り組む方が圧倒的に合格に近づけるはずです。
試験までの流れ
個人受験の方は、まず間違いなく在宅/在社での受験になると思いますので、環境や機材の準備が必要不可欠です。
準備から試験実施までの流れ
受験は基本在宅/在社となりますので、それまでに必要な環境を用意したり、注意事項に目を通したりする必要があります。
簡単に箇条書きでまとめますと…
注意事項の確認(Webテスト受験方法から閲覧)
受験環境や機材の準備(後述)
操作体験(当日の試験を受けるまでの流れ)
受験票の受け取り
試験当日の受検
大まかではありますが、こんなところかと思います。
詳しい情報はWebテスト受験方法を見てもらうと分かると思います。動画や簡単に確認できるコンテンツもあるので、上手く使って環境を整えておくとよいかもしれません。
環境準備
一人暮らしまたは自分の部屋がある方なら可能だと思いますが、ネットがつながる環境であり、なおかつあまりものがない環境が望ましいことは間違いないと思います。
自分は部屋が散らかりすぎているので、ベッド以外見えるものがないように、ダイニングにすべて荷物を追い出して、寝室で受験を試みる形となりました。
機材準備
必要な機材は主にスマホとカメラ付きのパソコンくらいなものですが、念のため確認できるように箇条書きで以下に記しておきます。
受験用のカメラ付きのPCまたはタブレット
スマートフォン(PCやタブレットの画面を映す用)
スマホスタンド(固定させるために必要)
PCやタブレットの充電器
スマホの充電器
その他、タブレットであれば、スタンドなど
大体、以上が必要な機材になっていきます。
学生の方なら、大体はすでに所持されている方が多いと思いますので、そこまで準備に困ることはないと思いますが、スマホスタンドだけは忘れないようにダイソーなどで準備しておくといいと思います。
以上、試験までの流れに関してでした。
受験票は、5日前までには登録したメールアドレス宛に届くと思いますので、確認してから受験の準備を進めておくと良いかと思います。
受験後の感想
受けていた過去問と若干形式が異なってはいましたが、問われる内容は大方似たような問題(傾向)でした。さすがに、これ以上詳しく載せてしまうと、色々な人から問い合わせが来そうなので、これくらいにとどめることにしておきます。
今回のこの対策方法で、結果92%で無事合格することが出来ました!
各大問の得点率としては、以下のような結果になりました。
練習通りに力を発揮できたのではないかと思います!
正誤問題:C言語の特徴 ・・・ 7/8
文法問題:文字操作関数 ・・・ 5/5
トレース問題:for文、配列、演算子、printf関数、if文 ・・・ 8/8
文法問題:配列 ・・・ 4/6
トレース問題:printf関数の書式指定 ・・・ 5/5
プログラム問題:二つの配列を併合し、併合されたデータを出力する ・・・ 5/5
まとめ
今回、ざっくりではありましたが、「C言語プログラミング能力認定試験3級」を対策から実際に受験してみましたが、実力不足だったところも正直多々ありました。
今後、経験を通して実力をつけていくと共に、また力試しに面白そうな資格を受験してこちらで紹介していきたいと思います!
皆さんも興味がおありなら、「C言語プログラミング能力認定試験3級」に限らず、サーティファイの試験を見たり、実際に受けてみたりするといいかもしれません!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?