基本情報技術者試験C言語問題のプログラムを動かしてみよう(まとめ)

このページでは実際に過去の基本情報技術者試験で扱われたC言語のソースコードを載せたページへのリンクをまとめています。C言語問題の過去問の解き方については下記ページにまとめていますので解き方を知りたい方は下記ページを参考にしてください。

基本情報技術者試験 午後問題「C言語」過去問の解き方 解説 まとめ

ソースコード

基本情報技術者試験の回ごとにソースコードを公開しています。閲覧したい回のページをクリックしてご覧ください。

・平成30年秋期

基本情報技術者試験 C言語問題のソースコード(平成30年 秋期 )

・平成30年春期

基本情報技術者試験 C言語問題のソースコード(平成30年 春期 )

・平成29年秋期

基本情報技術者試験 C言語問題のソースコード(平成29年 秋期 )

・平成29年春期

基本情報技術者試験 C言語問題のソースコード(平成29年 春期 )

・平成28年秋期

基本情報技術者試験 C言語問題のソースコード(平成28年 秋期 )

・平成28年春期

基本情報技術者試験 C言語問題のソースコード(平成28年 春期 )

・平成27年秋期

基本情報技術者試験 C言語問題のソースコード(平成27年 秋期 )

・平成27年春期

基本情報技術者試験 C言語問題のソースコード(平成27年 春期 )

ソースコードの使い方・注意点

載せているソースコードをコピペして適当な名前で保存し(例えばmain.c)、コンパイルしてやれば動作すると思います。すでに動作確認用のprintf()を仕込んでいますので、実行ればある程度プログラムの中で変数がどのように変化しているかを確認することができると思います。

さらに、下記のようなことを行うとC言語問題を解くために必要なプログラムの動きを追う力をつけていくことが出来ると思いますので是非色々試してみてください。

他の箇所にもprintf()を仕込んでみる

すでに私がprintf()を入れていますが、それでもプログラムの動きが良く理解できない、なぜそのような動きになるかわからない、と言った方はprintf()を更に増やして、もっと細かく変数の変化を追ってみると良いと思います。

ソースコードを変更し、動きの変化を確認してみる

ソースコードを変更した時にどのように動きが変わるかを見てみるのも良い訓練だと思います。例えばC言語問題ではソースコードの一部が抜けていて、そこを穴埋めする問題が頻出されています。公開しているソースコードでは、穴埋め部分は既に解答通りの穴埋めを行なって仕様通りに動作するように作っていますが、その穴埋め部分を他の選択肢などに変更した場合に、どのように動くのか、なぜそのように動くのか、のあたりを考えてみると良いと思います。

入力データを変更してみる

公開しているソースコードではプログラムへの入力データも問題に記載の通りのものを用意しています。この入力データは主にmain関数で格納していますので、この入力データを変更した時にどう動くか、なぜそのように動くのかを追ってみると良いと思います。

ソースコードの注意点

ソースコードはmacOSでコンパイルして動作する事を確認しています。

Windowsだと文字コードが異なる(macだと改行は\nですがWindowsだと\r\nになります)ため、必要に応じて変更して使用してください

スポンサーリンク

最後に

最後になぜソースコードを公開しようと思った理由について少し書いておきたいと思います。

C言語問題を解くためには、プログラムの動きを追う力が重要です。もう少し具体的に言うと各変数がどのように変化していくかを追う力です。この力を付けるための訓練の1つがプログラムを実際に実行し、各変数がどのように変化するかを確認することです。ただし、プログラムを実行するためには、まずコンパイル可能なソースコードを作成する必要があります。

基本情報技術者試験のC言語問題で扱われるソースコードは基本的にサブ関数のみ公開されていますので、そのままソースコードをコピペしただけではプログラムを動かすことができません。メイン関数が必要です。しかし、このメイン関数を作るのも、特にC言語初心者・プログラミング初心者の方にはハードルが高いため、実際にプログラムを動かしたくても動かせない方も多いのではないかと思いました。

ですので、そのままで実行可能なソースコードを用意し、それを用いて色々試してもらうことでC言語問題の対策を行うことができれば良いと考え、ソースコードを公開しようと思いました

是非ソースコードを使用してC言語問題を解く力に役立ててください!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です