next up previous contents
Next: 10. 関数 I Up: 9. 文字型 Previous: 9.6 文字の入出力

9.7 課題9

cd c を実行した後で( ~/c に移動した後で)、 以下の課題をやってみよ。

課題 9.1
文字変数の入出力 キーボードから、文字を1文字読み取り、'y' だったなら ば YES を、'n' だったならば NO を、それ以外だったならば、 ERROR を表示するプログラムを作成せよ。

課題 9.2
文字の値

文字に割り当てられた値を調べるために、キーボードから文字を 1文字読み取り、その文字の値を調べるプログラムを作成せよ。

文字の値は、読み込んだ文字をいったん整数変数に代入し、その 整数変数の値を出力することで得られる。

    int a;
    char c;
    ...
    /* キーボードから文字変数 c に読み込んだ後で */
    ...
    a = c;
    ...

色々な文字を入力してみよ。

課題 9.3
何が起こるか?

以下のプログラムを入力し、実行してみよ。

#include <stdio.h>
main()
{
    int i;
    char c;

    i = 'a' + 'A';
    cout << "'ex1:  a' + 'A' = " << i << endl;

    c = 1 + 'a';
    i = c;
    cout << "ex2:  1 + 'a' を整数で出力すると " << i << endl;
    cout << "ex3:  1 + 'a' を文字で出力すると " << c << endl;
}

プログラムを実行してみて、ex1, ex2, ex3 それぞれの表示が何故そうなるかを 説明せよ (課題9.2 を用いると文字の値を調べられるので、それを用いよ)。 更に、自分で 'Q' + 4 の結果を文字として表示すればどうなる かを考え、理由とともに答えよ。 プログラムの実行結果と説明を creport までメイルで送ること。 題名は、kadai09 とせよ。

前回の復習
文字型
英数記号などの文字に対する変数の型を文字型という
文字
C 言語では、英数記号の文字は、シングルクォーテーション(')で 囲むことで表す。
例  'a', 'b', 'c', '=', '.',...
文字型変数の宣言

文字変数の宣言は、char var[,var2[...]] で行う。 但し、こうして得られる変数は、英数字記号を1文字だけ格納できる。

        char a;
        char a, b, character;

文字の実体
コンピュータ上では、文字は、 実はある一定の整数である。従って、演算は全て整数として行われると考えて良い。 しかし、比較以外はあまり意味はない。('a'+'b' は、意味のある結果にならない。)



Noriyo Kanayama