printf の基本

課題のやり方

以下の課題は Hello.c と同様に実習します。

  1. エディタでプログラムを作り、指定されたファイル名(たとえばk0102.c)で保存します
  2. コンパイルします (たとえば ~/c$ gcc k0102.c -o k0102)
  3. 実行して結果を確認します。(たとえば ~/c$ ./k0102)
  4. コンパイルに失敗したり、実行結果が思わしくなければプログラムを修正して繰り返します。

課題2 二つのprintf

次のプログラムを作ります。Hello.c に比べて printf の行がひとつ多いだけです。

プログラム名 k0102.c

 1: /* プログラム名: k0102.c */
 2: #include <stdio.h>
 3:
 4: int main()
 5: {
 6:     printf("Hello, world.\n");
 7:     printf("My name is Hoge.\n");
 8:
 9:     return 0;
10: }

行頭の番号とコロン(:)は解説のためにつけてあるものなので、プログラムには入力しません。

文字はここからエディタにコピーできますが、不要な改行やスペースが一緒にコピーされるとコンパイルできなくなることがあります。コピー後に不要なものを削除したり訂正する必要がないか確認しましょう。

重要なところはコピーせず自分で入力したほうが記憶に残ります。

プログラム解説

1:
コメントです。この1行は省略してもよいし、別のコメントを書いても良い。
ただし日本語の文字を使った後は必ず日本語をオフにすること。 /* ... */ 内や " " 内以外は半角英数字と記号でかかなければなりません。
7:
printf は何度でも使えます。
\n 」が「 ¥n 」に見える環境もありますがその場合はかまいません。区別して入力できる場合は「 ¥ 」でなく「 \ 」を使うこと。日本語キーボードでは右の[Shift]キーのそばの「ろ」のキーが「 \ 」です。

コンパイル

エディタでプログラム入力し k0102.c という名前で保存してからコンパイルします。

~/c$ gcc k0102.c -o k0102

実行

コンパイルに成功したら実行します。

~/c$ ./k0102
Hello, world.
My name is Hoge.
~/c$

課題3 \nがない場合

次のプログラムを作ります。k0102.c に比べて \n がなくなっているだけです。

プログラム名 k0103.c

 1: /* プログラム名: k0103.c */
 2: #include <stdio.h>
 3:
 4: int main()
 5: {
 6:     printf("Hello, world.");
 7:     printf("My name is Hoge.");
 8:
 9:     return 0;
10: }

例によって保存、コンパイル、実行します。

~/c$ ./k0103
Hello, world.My name is Hoge.~/c$

課題4 日本の文字を出す

次のプログラムを作ります。k0102.c に比べて文字が日本語の文字になっているだけです。

日本語の文字を使った後は必ず日本語をオフにすること。 /* ... */ 内や " " 内以外は半角英数字と記号でかかなければなりません。

プログラム名 k0104.c

 1: /* プログラム名: k0104.c */
 2: #include <stdio.h>
 3:
 4: int main()
 5: {
 6:     printf("こんにちは みんな。\n");
 7:     printf("私の名前はHogeです。\n");
 8:
 9:     return 0;
10: }

例によって保存、コンパイル、実行します。

~/c$ ./k0104
こんにちは みんな。
私の名前はHogeです。
~/c$

課題5 別の文字列を書くプログラムにする

次のように表示するプログラムを作りなさい

プログラムソースは書いてありませんが、k0104.c に比べて表示内容を次のように変えるプログラムにします。

プログラム名 k0105.c

おはようございます。
今日は晴れです。

例によって保存、コンパイル、実行します。

課題6 3行書くプログラムにする

次のように表示するプログラムを作りなさい。(3行です)

プログラムソースは書いてありませんが、k0105.c に比べて1行多く表示するようにします。

プログラム名 k0106.c

おはようございます。
今日は晴れです。
でもとても寒いです。

例によって保存、コンパイル、実行します。

課題7 一つのprintfで2行書く

一つのprintfで2行出します。

プログラム名 k0107.c

 1: /* プログラム名: k0107.c */
 2: #include <stdio.h>
 3:
 4: int main()
 5: {
 6:     printf("おはようございます。\n今日は晴れです。\n");
 7:
 8:     return 0;
 9: }

例によって保存、コンパイル、実行します。

~/c$ ./k0106
おはようございます
今日は晴れです
~/c$

課題8 一行おきに空白行があるように書く

次のように表示するプログラムを作りなさい。(各行の後に空白行を入れます)

プログラムソースは書いてありませんが、k0106.c を少し変更します。k0107.c が参考になりますが、方法は一つではありません。

プログラム名 k0108.c

おはようございます。

今日は晴れです。

でもとても寒いです。

例によって保存、コンパイル、実行します。

聖愛中学高等学校
http://www.seiai.ed.jp/
Oct. 2011