納得C言語
C言語学習コンテンツです。演習問題を取り入れて自分でC言語を習得していきます。
[第1回]はじめに
1.各回の進め方 2.C言語とは 3.「VC++2005」の使い方 4.実際に動かしてみる 1.各回の進め方 本コンテンツでは以下の方法で進めて行きたいと思います。・ 例題を用いてプログラムの書き方や構文などの説明を行います。・ 各回の終わりには、その回で学んだ知識を生かし問題を解きます。・ 2~3回ごとに複合的な演習問題を解くことによりこれまでの学習内容が身につきます。 2.C言語とは C言...
[第2回]データ型
1.変数とは 2.データ型の必要性 3.基本的なデータ型 4.練習問題 1.変数とは 変数とはコンピュータのメモリ上に用意された作業エリアでメモリ上にあるデータを収める箱だと思ってください。 変数の宣言int main() { int i: //(1)変数の宣言 : (中略) : return 0; } このように記述すると、メモリ上に「i」という名前をもったデータを収める箱...
[第3回]演算子
1.演算子とは 2.演算子の使い方 3.練習問題 1.演算子とは 小学生の頃、算数の時間で「+」とか「=」とか学びましたよね。まさにそれが今から学習する演算子と呼ばれるものなんです。プログラムの世界では演算子は主に"代入演算子"と"算術演算子"の2種類の演算子があります(他にも細かい分類があるけど、混乱するのでここでは省略します!)。「......!(゚д゚;)」 代入演算子 代入演算子は左辺...
[第4回]入出力
1.前準備 2.標準出力 3.標準入力 4.練習問題 1.前準備 A「今まで出てきた"#include <stdio.h>"って何?B「printf()などC言語ではじめてから用意されている関数を使うのに必要なんだよ」A「ふ~ん」B「今はおまじないだと思ってもらってもいいよ。他にも"string.h"とか"stdlib.h"などがあるけど、しばらくは"stdio.h"しか使わないかな...
[第5回]演習問題Ⅰ
今まで学習したことを生かして演習問題をやってみよう! 演習問題Ⅰ 第1問 1 加算のみの計算機 2つの数値を入力し、入力された2つの数値を足した答えを表示するプログラムを作成してみましょう。表示方法は特に定めませんが、上のような結果になればOKです!下線部のところを入力して結果を出力するようにしよう。 演習問題Ⅰ 第1問のヒント 初めてヒントページが出てきましたね。ここでは演習問題のヒントを出し...
[第6回]関数
1.関数とは? 2.関数の処理の流れ 3.関数の作り方 4.関数の使い方 5.練習問題 1.関数とは? 関数とは、まとまりのある処理を1つにしたプログラムのことを指します。 例題1 関数ってとりあえずこんなものなのです#include <stdio.h> void func(); //関数のプロトタイプ宣言 int main() { func(); //関数呼び出し ...
[第7回]制御構文
1.制御構文とは? 2.種類と使い方 3.break/continue 4.練習問題 1.制御構文とは? 制御構文は、上から下へ流れるプログラムを途中で流れを分岐させたり、流れを繰り返したりすることができる構文を表します。この制御構文を使うと・・・・今までより複雑な処理をすることができる・プログラムの流れを変えることができるなどと、今までと違ったプログラムを作成することができます。 A「制御構...
[第8回]演習問題Ⅱ
第7回まで学習した内容を使い、演習問題を行います! 1 数当てゲーム ある数値を入力し、10回以内で当てるゲームを作ってみよう!但し、入力した数値が大きいか小さいか正解かを判定する自作関数を作成して作ってみよう。画像のようになればOK! 結果1 10回以内に正解した場合 結果2 10回以内に正解できなかった場合 演習問題Ⅱ 第1問のヒント 1 数当てゲーム 1.正解か不正解かを判定する...
[第9回]変数のスコープ
1.変数のスコープとは 2.ローカル変数 3.グローバル変数 4.静的ローカル変数 1.変数のスコープとは スコープ(scope)とは日本語にすると"有効範囲"を表します。つまり、変数のスコープは変数が使える有効範囲のことを指します。有効範囲とは{ }で囲まれた部分の事です。 2.ローカル変数 今まで、main関数や自作関数の内側で変数を宣言行ってきましたね。main関数内や自作関数内で宣言し...
[第10回]配列
1.配列とは 2.一次元配列 3.二次元配列 4.練習問題 1.配列とは 複数のデータを蓄える性質を持ったデータ型であり、同じ型のデータを複数記録することができます。 2.1次元配列 1次元配列は、縦(もしくは横)のみの表をメモリ内に作成します。 (1) 1次元配列の宣言 1次元配列の宣言方法は以下の通りです。型名はデータ型を宣言するときと一緒です。配列名はデータ型の時の変数の事だと思ってくださ...
[第11回]文字列の扱い
1.変数のスコープとは 2.文字列とは 3.文字列の扱い方 4.文字列を扱う 5.練習問題 1.変数のスコープとは 第4回でこのようなプログラム例を書きましたね。覚えていますか? 例)第4回で出てきた例題です 第4回では"おまじない"だと思ってもらった下線部のchar str[256];ですが、この回でようやく"おまじない"の正体について説明します。 2.文字列とは 文字列とは、名前の通り文字...
[第12回]演習問題Ⅲ
第11回まで学習した内容を使い、演習問題を行います! 1 うるう年判定プログラム うるう年を判定する自作関数を作ってみよう 但し、西暦を格納する変数はグローバル変数で宣言してください 結果1 2007年の場合 結果2 2004年の場合 結果3 2000年の場合 演習問題Ⅲ 第1問のヒント 1 うるう年判定プログラム 1.うるう年を求める計算は「西暦年が4で割り切れるかつ100...
[第13回]ポインタ
1.ポインタって 2.配列とポインタ 3.文字列とポインタ 4.関数とポインタ 5.練習問題 1.ポインタって ポインタの概要 ポインタとは、変数のアドレスを記憶する変数のことです。以前、変数を宣言するとコンピュータ上のメモリ領域のどこかに作られるという話をしました。ポインタを使うことで、宣言した変数がどの場所にあるかを教えることができます。 A「ポインタって何ができるの?」B「変数がメモリ上の...
[第14回]構造体
1.構造体とは? 2.構造体の作り方 3.構造体とポインタ 4.関数と構造体 5.練習問題体 1.構造体とは? C言語では、複数のデータ型を複数格納することができる箱を作ることができます。配列で格納できるのは単一データ型のみ(char型を宣言するとchar型以外は格納できない)ですが、これから学習する構造体を使うことでバラバラのデータ型を持った変数を1つにまとめることができます。例えば、学生名簿...
[第15回]演習問題Ⅳ 第1問
第14回まで学習した内容を使い、演習問題を行います! 1 社員給与表を作ってみよう 下の表をscanf( )を使って構造体に格納して表示させてみようただし、社員番号の入力で0を入力したら入力を終了し、データを表示させるようにします結果のようになればOK!! 結果 演習問題Ⅳ 第1問のヒント 1 社員給与表を作ってみよう 1.文字を入力させるところ以外は第14回の練習問題Ⅲの(1)と似ている...
[第16回]ファイル入出力
1.ファイル入出力の流れ 2.エラー処理 3.練習問題 ファイル入出力とは、今まで画面に入出力していたものをファイルに入出力するというものです。普通のメモ帳やMicrosoft Wordなどのアプリケーションでファイル入出力ができるのと同じく、コンソール画面でもファイルの入出力が可能です。 A「ところで、ファイル入出力で何が出来るようになるの?」B「今までのプログラムでは、終了するとそれまで入力...
[第17回]プリプロセッサ
1.プリプロセッサとは 2.#define 3.#include 4.練習問題 1.プリプロセッサとは コンパイルを行う前にソースファイルに対して行う前処理のことをプリプロセッサといいます。今まで、おまじないと思ってもらっていた「#include」もプリプロセッサの1つなのです。ここでは主なプリプロセッサである「#define」と「#include」について説明します。 2.#define #d...
[第18回]演習問題Ⅴ
これまで学んだきたことをフルに使って総合演習を行いましょう。次の工程を経て、成績表を作ってみよう 1 成績表の構造体を作る (1)学籍番号、氏名、学年、クラス、点数をメンバに持つ構造体を作ります。なお、点数も構造体とし、英・国・数・理・社の点数をメンバに持ちます。構造体のイメージにすると下のような図になります。ここに以下のメンバの点数を初期化で格納し、表示させるプログラムを書いてください。 結...