C言語の問題の解き方と解くコツについて

C言語 ポイントC言語
スポンサーリンク

 

C言語の問題をどうやって解けば良いのか分からない・・・

C言語の問題を解く上で、
どのポイントに気をつけたら良いかな?

今回はそんな人に向けて、
C言語の問題の解き方や解くコツについて解説します。

 

C言語というのは、基本情報技術者試験に出題される問題の中でも難易度が高く、
しっかりとした勉強が必要になる分野です。

だからこそ万全の準備をしてから、
今回の「C言語の問題の解き方と解くコツについて」と共に、
C言語の点数を稼げるようにしてください。

 

チョコ
チョコ

ちなみにここのサイトでは、
C言語の勉強法も解説している

シロ
シロ

C言語をどうやって勉強したら良いか、
イマイチ要領がつかめないという人は是非ともチェックしてみてね

C言語の勉強法と勉強において注意すべきポイント Part1
コチラでは基本情報技術者試験におけるC言語の勉強法、勉強において注意すべきポイントについて解説しています。C言語はアセンブラや表計算と比べて、問題の難易度が格段に高いため、スケジュールに余裕を持たせて勉強を始めましょう。
C言語の勉強法と勉強において注意すべきポイント Part2
基本情報技術者試験のC言語は、注意すべきポイントが沢山あります。また問題の難易度に波があるため、逃げ道を作っておくことも重要です。

 

・C言語における問題の解き方について

C言語の問題の解き方

まずはC言語の問題における基本的な問題の解き方について解説します。

私がC言語の問題を解く際には、
以下のような手順で解答を進めていきます。

① 問題がどれくらいで解けそうか、全体像をチェックする
② 問題文をサクッと読む
③ プログラムをしっかり読む
④ 空欄を埋める前に問題文を再度チェックする

では、1つ1つ内容を確認していきましょう。

スポンサーリンク

 

① 問題がどれくらいで解けそうか、全体像をチェックする

まずC言語の問題を解く前に、問題の全体像をチェックします。

なぜC言語の問題を解く前に、問題の全体像をチェックするのか?

それは、

・問題を解くのにどのくらいの時間が掛かるかチェックする
・問題の長さを把握して精神的な負担を軽くする

といった理由があるからです。

 

特にC言語の場合、
問題をじっくり解いていると試験時間が足りなくなる可能性が高いため、
問題を途中で切り上げるという状況も考えて問題を把握しましょう。

 

② 問題文をサクッと読む

まず問題の全体像を把握しました。

それでは次に、問題文をサクッと呼んでみてください。

そのため試験時間を節約するためにも、
始めに問題文を読む際には、
問題文をあまり深く読まずにサクッと読む程度に留めておきましょう。

 

ですが、問題文をサクッと読む程度だと

問題を間違えそうで不安になる・・・

といった考えを持つ人もいるはずです。

しかし、問題文をサクッと読んだ分、
あとでフォローする手立ても考えておりますのでご安心ください。

 

ちなみに問題文においてプログラムの処理に関わる個所については、
ラインを引く、丸を付けるといったメモをしておくと、問題を解く時間が短縮できます。

効率的に問題を解くには欠かせない方法であるため、必ず覚えておくようにしてください。

 

③ プログラムをしっかり読む

C言語の本番は、この「プログラムをしっかり読む」という工程から始まります。

「プログラムをしっかり読む」という工程において重要なのは、
プログラムを単純に読むだけでなく、プログラムにデータを当てはめるといった、
プログラムをトレースするというポイントです。

問題の出来を左右する重要な過程でもあるため、
できる限りプログラムを詳細に読むようにしてください。

 

ちなみに問題文とプログラムを読んでも内容がいまいち把握できないという人は、
プログラムに書かれている変数や配列に、
どのようなデータが使われているか書き込んでください。

また問題で使われているデータをプログラムに当てはめて考えると、
よりプログラムが理解しやすくなるため試してみましょう。

 

④ 空欄を埋める前に問題文を再度チェックする

そして最後に空欄を埋める前に、
問題文に書かれている内容とプログラムをチェックして、解答の最終確認をします。

 

この「空欄を埋める前に問題文を再度チェックする」という工程は、
2つ目に解説した「問題文をサクッと読む」のフォローになります。

またプログラムをトレースしても、
問題文の見落としでプログラムの処理を勘違いしている可能性も有るため、
内容のすり合わせをする意味を持つ重要な工程と言えるでしょう。

 

ちなみに問題文を再度チェックする際には、
問題文を一からチェックするのではなく、
解答に必要な部分のみをチェックして時間の短縮を図ります。

また「空欄を埋める前に問題文を再度チェックする」際には、
「問題文をサクッと読む」で解説した、
プログラムの処理に関わる個所にメモをしておくという方法を実践しておくと、
効率的に内容が確認できるようになります。

スポンサーリンク

 

・問題を解く際の注意点

C言語の問題を解く際には、プログラムをしっかり読み、
トレースをするというポイントを第一に考えて問題を解いてください。

 

なぜこんなポイントを挙げるかというと、
C言語の問題は難しく、問題を読むのを途中で諦めて、
選択肢からの逆算で解答を埋める人がいるからです。

例えば、

さっきはAnd条件が入ったから
今回は違う選択肢が入るだろう!

とか、こんな考えを持っている人は、
不合格がすぐそこまで迫っていると言えるでしょう。

 

もちろん選択肢から逆算して解答をするという方法が悪いとは言いませんが、
選択肢から解答を導く方法はあくまでも選択肢を絞り込む際の最終手段

初めから選択肢から解答を絞り込むというやり方は、
私の経験上でもあまりロクなことがないため注意してください。

 

シロ
シロ

C言語の問題は難しいから、
やっぱり基本を押さえた解答方法が一番かも知れないね

チョコ
チョコ

あとは繰り返しプログラムを読むしかないな。
プログラムを読んだという経験が多ければ、
それだけ要点を押さえるスピードも上がるからな

 

・C言語の問題を解くためのコツ

・問題はデータの処理順に解く(分からなければ問題を飛ばす)

データの処理順に解く

C言語の問題を解く際には、
基本的にプログラムを上から解くのではなく、
データの処理順で解くことをおススメします。

 

なぜデータの処理順で問題を解くようにするのか?

理由は単純。
データの処理順で空欄を埋めるようにしないと、
プログラムの内容が理解できないパターンがあるからです。

もちろん人によっては、
経験則によって、プログラムにどのような処理が当てはまるか分かる人もいるでしょう。

しかしC言語の経験が浅いような人は、
プログラムの処理を一つ一つ追って内容を把握しないと、
間違った解答を入れる可能性高いため注意が必要です。

 

また問題が分からない場合は、
1つの問題に固執するのではなく、次の問題を解くようにしてください。

C言語の場合、問題が難しいため1つの問題に固執すると、
時間が足りなくなるといった事態が発生するため、注意して試験を進めましょう。

 

チョコ
チョコ

C言語の問題を解く際には、
常に試験時間を確認しながら、問題を進めた方が良いかもな

シロ
シロ

C言語のプログラムを読んでいると、
「いつの間にか60分も時間が経ってる・・・」
なんて可能性も有るからね。

チョコ
チョコ

ある程度プログラムに慣れたら、
時間制限を決めて問題を解くようにしよう

スポンサーリンク

 

・注意深く読むべきポイントは、変数と配列

注意するべきは変数と配列

C言語の問題を解くにあたって、
注意するべきポイントは、変数と配列

何故ならば変数と配列という内容は、
C言語のプログラムにおいて最も問題になりやすいからです。

 

また変数と配列を理解するという行為は、
プログラムの処理を理解するといった要素をスピードアップさせる効果があります。

試験だけなく実際のプログラミングでも重要な要素であるため、
今の内から慣れるようにして、プログラムへの経験を積んでおきましょう。

 

ちなみに問題において変数と配列をマークする場合には、
気になる変数や配列に対して、どのような内容が入っているか片っ端からメモしてください。

変数と配列のメモ書きについては、
解答の確実性を上げるだけでなく、問題を解くスピードにも繋がるため、
必ず実践してください。

 

シロ
シロ

変数に関しては入っている内容、
配列に関しては入っている内容と添え字について
理解するのが大事だよ

チョコ
チョコ

プログラムを読み始めた時は、
内容を理解するのは難しいかも知れないが、そこは根気との勝負。
一つ一つ地道に内容を書き出して、
処理が理解できるように努力してくれ

 

・入出力のファイルを間違えないように注意する

入出力のファイルに注意

基本情報技術者試験のC言語のプログラムでは、
入力、出力のファイルを用いて、データを処理する場合があります。

その入出力のファイルをプログラムで用いる場合は、
入出力のファイルを間違えないように気をつけましょう。

 

例えば、以下の平成30年春期の問題で使われた入出力ファイル。

平成30年 春期 午後試験 問9-1

出典:平成30年春期 午後試験 問9より抜粋

上記の問題は、入力ファイルと集計(出力)ファイルを用いてプログラムを処理していますが、
2つのファイルのレコードが勘違いしやすいような内容になっています。

特にデータを出力する際に、空白の付け方といったポイントで、
解答を間違えやすいため注意が必要です。

そのためC言語の問題において、
入力ファイルと出力ファイルを使うプログラムになっていたら、
ファイルを処理する個所でファイルの内容を確認してみる
といった慎重さが必要になるでしょう。

 

チョコ
チョコ

プログラムの入出力ファイルを勘違いするってw
そんな状況有り得るのか?w

シロ
シロ

いや、時間制限がない勉強ならともかく、
150分っていう括りの中でやる試験だから、
入出力ファイルを勘違いするなんてこともよくあるよ。

チョコ
チョコ

受験番号や生年月日を間違える受験生も、
よくある話だからな。
笑ってはいられないか・・・

シロ
シロ

しかも挑む問題は、
基本情報技術者試験の中でも難しいとされるC言語。
だから注意すべきポイントは、
いくらでもあると思っておいた方が良いね

スポンサーリンク

 

・穴埋めは他の解答に影響が出やすいため注意

穴埋めに注意

基本情報技術者試験で出題されるC言語の問題は、
プログラムの穴埋めを慎重に解答する必要があります。

何故プログラムの穴埋めを慎重に解答する必要があるのか?

その理由は、プログラムの穴埋めによって他の問題に影響が出てくるからです。

 

基本的に試験で出題されるC言語の問題は、
前半がプログラムの穴埋め、
後半がプログラムの変更に伴う穴埋めやプログラムの結果を求める問題となっています。

そのため後半に答える問題は、
前半で貴方が答えたプログラムのコードを元に問題が進むため、
穴埋めが間違っていると、後半の問題が総崩れになる可能性も有ります。

だからこそ試験の前半で出題されるプログラムの穴埋めは、慎重に答えて、

後半の問題で躓かないように気をつけましょう。

 

チョコ
チョコ

C言語の問題において、
最も慎重に答えるべきは、このプログラム穴埋めだな

シロ
シロ

まさに試験の点数を左右する問題になるからね。
だから「こんなもんで良いや」なんて感覚で答えると痛い目を見るよ

チョコ
チョコ

問題が難しくて時間が掛かるのに、
慎重さというポイントも重視しなければならない。
やっぱりC言語ってハードルが高いプログラミング言語だと言えるな

 

・プログラムのコメントには重要ポイントが記されている

コメントに注目

C言語の問題を解く上で、プログラムに書かれているコメントは、
答えを出すための重要なポイントが隠れている場合があります。

 

例えば、平成27年の秋期試験で出題された以下の問題。

平成27年 秋期 午後試験 問9-1

平成27年 秋期 午後試験 問9-2

出典:平成27年秋期 午後試験 問9より抜粋

空白「a」の後に続くコメント(ファイルの終わりに~)とプログラムを見比べると、
EOFを返す処理が抜けているという点が分かると思います。

ちなみに問題の答えは、選択肢「エ」のlogEOF = EOFです。

 

上記のようなダイレクトに答えが書いてあるパターンは稀ですが、
プログラムに書かれているコメントには、

・プログラムにおいて重要な処理に使われる変数や配列の簡単な説明
・構造体となっており、分かりにくい変数の説明

といった問題を解く上でのヒントが含まれています。

そのためプログラムにおいてコメントが書いてあれば、
プログラムに対して何か重要な役割があると思って、コメント周辺をマークしておきましょう。

 

チョコ
チョコ

C言語の問題において書かれているコメントには、
プログラムの処理において
重要なポイントが書かれているパターンがあるんだな

シロ
シロ

でも、コメントを重視しすぎるのも良くないよ。
例えばさっき挙げた平成27年秋期の問題では、
EOFの内容が分かっていないと、
「logEOF = 0」といった回答を選んでしまう可能性もあるからね

チョコ
チョコ

結局のところC言語で必要になる知識を勉強してないと、
コメントを当てにしても、問題は解けないだろうからな

スポンサーリンク

 

まとめ

今回は基本情報技術者試験の中でも難しいとされる
C言語の問題を解く上でのコツや問題の解き方を解説しました。

・問題の解き方について
 ① 問題がどれくらいで解けそうか、全体像をチェックする
 ② 問題文をサクッと読む
 ③ プログラムをしっかり読む
 ④ 空欄を埋める前に問題文を再度チェックする
 ・選択肢から絞り込む方法は最終手段   
・C言語の問題を解くためのコツ
 ・問題はデータの処理順に解く(分からなければ問題を飛ばす)

 ・注意深く読むべきポイントは、変数と配列
 ・入出力のファイルを間違えないように注意する
 ・穴埋めは他の解答に影響が出やすいため注意
 ・プログラムのコメントには処理においての重要ポイントが記されている

 

基本情報技術者試験におけるC言語というプログラミング言語は、
正直言って、初心者向きと言われるアセンブラや表計算より、
2回りぐらい難易度が違います。

 

そのためC言語の問題を解く上でのコツも重要ですが、
事前準備となる勉強も、今回挙げたポイント以上に重要な要素と言えるでしょう。

だからこそ今回解説したコツと一緒に、
以前解説したC言語の勉強法も合わせて、C言語の勉強に活用してください。

 

あとは受験生である貴方が、どれだけ努力できるかに掛かっています!

コメント