C言語を理解しよう! 基本情報技術者試験の午後問題対策を解説します !

C言語を理解しよう! 基本情報技術者試験の午後問題対策を解説します  !

基本情報技術者試験の午後問題では、プログラミング言語に関する問題が出題されます。特にプログラミング経験がない場合、この問題が基本情報技術者試験の最大の難関となるといえるでしょう。

プログラミング言語問題はいくつかの言語から選択できるため、自分に合った言語を選ぶことがポイントとなります。

この記事では、基本情報技術者試験における言語選択の助けになるように、C言語の特徴や用途などの基本事項や、C言語の基本的な構文についての解説を行います。

目次

C言語とは

まず、C言語の概要について解説します。

C言語の特徴

C言語はアメリカの大手通信会社AT&Tのベル研究所にて開発された言語であり、歴史が古く知名度が高いプログラミング言語です。プログラムの実行前に事前にコンパイルを行うコンパイル型の言語であり、オブジェクト指向ではないという特徴があります(別途、C++という言語がオブジェクト指向をサポートしています)。

特に、メモリの管理を行うポインタという考え方は、C言語の最大の特徴でありつつ、一方で理解が難しいポイントでもあるといえます。ポインタは現代のプログラミング言語では遮蔽されており一般的ではありませんが、コンピュータのメモリを効率的に利用するためには有効は手法です。

C言語の用途

C言語は古くからある言語ですが、現在においても主に家電やマイコンなどの組み込み系システムなどで利用されています。

上述の通り、C言語はポインタによりメモリ管理を細かく行うことができるため、十分なマシンスペックが得られない組み込み系での活用が有効となっています。

さらに、現代で主流となっているPHPやObjective-Cなどの多くの言語は、C言語を基盤としている、もしくはC言語から派生したものとなっています。これらの言語の裏側では現在もC言語が利用されているのです。

C言語の将来性と学ぶメリット

上述の通り、特に組み込み系では現在もC言語が主流の言語となっています。ハードウェアメーカーなどへの就職を目指している方は、C言語を学ぶメリットは大きいといえるでしょう。

また、C言語は比較的コンピュータの処理に近い形で動作するという特徴があります。

基本情報技術者試験を受けるにあたって特に言語にこだわりがない場合は、C言語を学ぶことでコンピュータの内部処理の理解の助けになるといえるでしょう。

C言語の基本構文

以下では、C言語の基本構文について解説します。

C言語では、拡張子を「.c」としてソースファイルを作成します。ソースファイル中には、プログラムのスタート地点として必ずmain関数を記載します。

C言語においては、一つ一つのプログラム処理はセミコロン ( ; ) で区切ります。基本的には1行に一つの処理を記載し、行末にセミコロンを書くようにします。

また、C言語ではダブルスラッシュ以降の記載は行末までコメント扱いとなり、プログラム処理に影響しません。コメントには自由に文字を記述して、プログラムの解説やメモを残すことができます。

C言語を使う際にもう一つ覚えておくべきなのは、外部ライブラリの読み込みです。C言語は外部ライブラリを読み込むことで機能拡張を行うことができます。外部ライブラリの読み込みのためには、読み込むライブラリのヘッダーファイル(拡張子が.hのファイル)を指定します。例えば、入出力処理を行う「stdio.h」などがよく利用される外部ライブラリです。

以下の例は、C言語の基本的な構造を示したものです。

ファイル名:hello.c

// ダブルスラッシュで始まる行はプログラム処理に影響しないコメント部分です

// includeにてstdio.hを読み込みます
#include <stdio.h>

// main関数からプログラムはスタートします
main() {
  printf("hello, world!n");
}

文字出力

C言語では、printf文を用いて文字出力を行います。なお、C言語ではダブルクオーテーションで囲うことで文字列であることを示すことができます。以下に例文を示します。

ファイル名:test.c

#include <stdio.h>

main() {

   // printfのカッコ内に出力する文字列を記載します
   printf("これはテストです!");
}

変数処理

C言語では、型を指定して任意の名称で変数を宣言し、利用することができます。C言語の型には、整数を扱うint型や、小数点以下も扱えるdouble型文字を扱うchar型などが存在します。

ファイル名:human.c

#include <stdio.h>

main() {

  int years_old = 35;
  double height = 180.5;

}

配列

配列を用いると、複数の変数をひとまとまりにして扱うことができます。C言語では、変数名に[]を付与することで配列として変数を宣言することができます。

配列の長さは[]の中に記載します。配列の各要素を指定する際には、変数名[〇]のように配列番号を指定します。なお、配列番号は0から始まることに注意してください。

以下では、int型の配列を作成するケースを記載します。

ファイル名:numbers.c

#include <stdio.h>

main() {

 int numbers[3]; // 長さ3の配列を指定
 numbers[0] = 12; // 配列の1つ目の要素を指定
 numbers[1] = 34;
 numbers[2] = 56;

}

条件分岐

C言語では、if文およびelse文で条件分岐を行うことができます。

if文のカッコ内には、条件分岐のための条件を指定します。この条件に当てはまる場合はすぐ下の中カッコ内の処理を、当て当てはまらない場合はelse文の処理を実施します。

以下で例文を示します。

ファイル名:otona_cheker.c

#include <stdio.h>

main() {

 int years_old = 35;

 if (years_old < 20)
{
   printf(“子供です”);
 } else {
   printf(“大人です”);
}

}

繰り返し処理

C言語では、for文で繰り返し処理を行うことができます。for文の中には、3つの要素を指定します。

最初の要素は、繰り返し処理で用いる変数の初期化です。以下の例文では変数iを0に初期化しています。

2つ目の要素は、繰り返し処理の継続条件の指定です。以下の例文では変数iが年齢を超えない限り処理を継続するように指定されています。

3つ目の要素は、繰り返し処理が1回終わるごとに行う処理を記述します。以下の例文では、一回処理が終わるごとにiに1を加算するようにしています。

ファイル名:setsubun.c

#include <stdio.h>

main() {

 int years_old = 35;

 // 年齢の数だけ豆を食べます
 for (int i=0; i<years_old; i++)
 {
  printf(“豆を食べます”);
 }

}

関数

C言語では、関数と呼ばれる仕組みを利用できます。関数とは、ある値を与えると、処理を行ったうえで何らかの値を返却する機能をもったプログラムのことです。

関数に与える値を引数、関数が返却する値を戻り値と呼びます。

以下で関数の利用例を示します。

ファイル名:new_otona_cheker.c

#include <stdio.h>

main() {

 int years_old = 35;

 // 大人かチェックします
otona_checker(years_old);

}

// 引数が年齢、戻り値がない(void)の関数「otona_checker」
void otona_checker(int years_old){

 if (years_old < 20)
 {
  printf(“子供です”);
 } else {
  printf(“大人です”);
 }

}

まとめ

この記事では、基本情報技術者試験を受けようとされている方に向けて、C言語に関する基本的な内容の解説を行いました。

特にプログラミング未経験者にとって午後問題は鬼門となると思います。いくつかのプログラミング言語から自分に適したものを見つけて、対策を行うことをおすすめします。