C プログラミング (C Programming)

[2020/09/10, H.Aman]

[1] 「C 言語にふれる」サンプルプログラムの解説

[1] 「C 言語にふれる」演習課題

  • 演習 1

    まず,サンプルプログラム 1 (sample1.c) を ex01.c という別の名前のファイルにコピーしなさい.
    そして,main の内容を書き換えることで教科書の演習 1-2(p.9)を解きなさい.
    【注意!】
    サンプルプログラム 1 では printf を 2 回使っていたが,
    この演習課題では printf を 1 回使うだけ で目的の出力が得られるようにしなさい.
    " " 内で \n をいくつか適切な位置に書いてあげることがポイントです.
    【出力すべき内容】
     天
     地
     人
    【よくあるミス(gcc でのコンパイルエラーの原因)】
    • printf の最後にセミコロン(;)を書き忘れている.
    • printf の途中に登場する ( ) や "" を全角で書いてしまっている.
    • 途中に全角のスペースを書いてしまっている.
  • 演習 2

    サンプルプログラム 2 (sample2.c) を ex02.c という別の名前のファイルにコピーし,
    それを編集して の値を出力するようにしなさい.
    【注意!】
    この演習課題では サンプルプログラム 2 で x*x を表示していた printf だけを書き換える ようにしなさい.
    なお,以下の「出力すべき内容」における「1018」は,直接 1018 と書くのではなく, 計算式の結果として %d を使って出力すること.
    つまり
    printf("x^3 - 5x^2 + 10 = %d\n",  ここに数式に該当する内容が入る );
    という書き方にしなさい.
    【出力すべき内容】
     変数 x の値は 12 です.
     x^3 - 5x^2 + 10 = 1018
    【よくあるミス(gcc でのコンパイルエラーの原因)】
    • 掛け算(*)を適切に書いていない
      【誤】-5x*x
      【正】-5*x*x
  • 演習 3

    サンプルプログラム 3 (sample3.c) を ex03.c という別の名前のファイルにコピーし,
    それを編集して の値を出力するようにしなさい.
    ただし,x の値は実行時にキーボードを使って入力するものとする.

    【入出力例1】 (赤字は実行時にキーボードから入力する内容)
     整数を入力してください:12
     -3x^3 + 10x^2 - 5x + 9 = -3795
    【入出力例2】 (赤字は実行時にキーボードから入力する内容)
     整数を入力してください:0
     -3x^3 + 10x^2 - 5x + 9 = 9
    【入出力例3】 (赤字は実行時にキーボードから入力する内容)
     整数を入力してください:-5
     -3x^3 + 10x^2 - 5x + 9 = 659
    【よくあるミス(入力がうまくいかない or 終了しない原因)】
    • scanf で "%d " と書いてしまっている (%d の後ろに空白を入れてしまっている).
    • scanf で "%d\n" と書いてしまっている (%d の後ろに \n を入れてしまっている).
    • scanf で x の前に & を書き忘れている (正しくは &x).
  • 演習 4

    サンプルプログラム 3 (sample3.c) を ex04.c という別の名前のファイルにコピーし,
    それを編集して教科書の演習 1-9(p.17)を解きなさい.
    【ヒント】
    整数 1, 整数 2,整数 3 をそれぞれ格納するために変数 x, y, z を用意しなさい.
    これらを用意するには,
     int x, y, z;
    と書けばよい.
    【入出力例1】 (赤字は実行時にキーボードから入力する内容)
     整数1:7
     整数2:15
     整数3:23
     それらの和は45です。
    【入出力例2】 (赤字は実行時にキーボードから入力する内容)
     整数1:0
     整数2:0
     整数3:0
     それらの和は0です。
    【入出力例3】 (赤字は実行時にキーボードから入力する内容)
     整数1:-10
     整数2:5
     整数3:10
     それらの和は5です。