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

8. 課題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';
    printf("'ex1:  a' + 'A' = %d\n", i);

    c = 1 + 'a';
    i = c;
    printf("ex2:  1 + 'a' を整数で出力すると %d\n", i);
    printf("ex3:  1 + 'a' を文字で出力すると %c\n", c);
}

プログラムを実行してみて、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' は、意味のある結果にならない。)

入出力
文字の入出力の書式は、以下の通り。

        出力    printf("%c", 文字型変数);
        入力    scanf("%c", &文字型変数);



Noriyo Kanayama