以前のリビジョンの文書です


演習課題 ex03-3.c

次のような処理を行うプログラム ex03-3.c を作成し、kiso2コマンドを用いて提出しなさい。

  1. 1つの int 型変数 ascanf() 関数でキーボードから読み込み、そのときの scanf() 関数の返り値を int型変数 n に代入する。
  2. キーボードから読み込んだ a の値をprintf() 関数で出力し、そのときの printf() 関数の返り値を int型変数 m に代入する。
  3. nm の値を printf() 関数で出力する。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex03$ ./ex03-3
1
a is 1
n=1, m=7
t180900@s01cd0542-160:~/kiso2-2018/ex03$ ./ex03-3
1234
a is 1234
n=1, m=10
t180900@s01cd0542-160:~/kiso2-2018/ex03$ ./ex03-3
-2
a is -2
n=1, m=8
scanf() 関数とprintf() 関数は、それぞれ整数(int)型の返り値としてどのような情報を返しているでしょうか?

演習課題 ex03-4.c

ex03-3.c を修正し、入力された a の値が正 (a > 0) である間、キーボードからの入力と出力を繰り返すプログラム ex03-4.cを作成し、kiso2コマンドを用いて提出しなさい。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex03$ ./ex03-4
1
a is 1
n=1, m=7
1234
a is 1234
n=1, m=10
0
a is 0
n=1, m=7
シェル(端末)上で実行中のプログラムは、Ctrl-C(コントロールキー + C)で強制的に終了することができます。

演習課題 ex03-5.c

次のような処理を行うプログラム ex03-5.c を作成し、kiso2コマンドを用いて提出しなさい。

  1. 1つの double 型変数 x を定義し、その値を1に初期化する。
  2. x の値が 0.0 でない間、次の処理を繰り返す。
    1. x の値を2で除算する。
    2. x の値を変換指定子 %e を使ってprintf() 関数で出力(表示)する。
  3. x の値が 0.0 に等しくなって 2. の処理が終了したら、return 文で 0 を返す。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex03$ ./ex03-5
1.000000e+00
5.000000e-01
2.500000e-01
1.250000e-01
6.250000e-02
3.125000e-02
1.562500e-02
7.812500e-03
3.906250e-03
1.953125e-03
	:

演習課題 ex03-6.c

演習 ex03-2.c では、整数型 int が表現できる値の範囲が有限であることを確認した。 また、ex03-5.c では、実数型 double もまた、表現できる値の範囲が有限であることを確認することができる。

これらの int 型や double 型の変数が表現できる値の限界(最大値や最小値など)は、C言語によって書かれたプログラムが動作する環境によって異なっている。 たとえば、多くの一般的なPC上(実習室のPCも含む)では int 型の最大値は 2147483647、最小値は -2147483648 である。 一方で、炊飯器や冷蔵庫などに使われる小さなICチップ上で動作するC言語では、より小さな値の範囲しか表現できないこともある。

C言語では、このように環境によって異なる変数型の限界を表現するための定数が定義されており、プログラム上でこれらの変数型が表現できる最大値や最小値を調べることができる。 これらの定数は、整数型 int については limits.h、実数型 double については float.h というファイルを、プログラムの最初にインクルードすることで参照することができるようになる。

これら limits.hfloat.h に定義された定数を参照することで

  • int 型が表現できる最大の値
  • int 型が表現できる最小の値
  • double 型が表現できる最大の値
  • double 型が表現できる最小の(もっとも0に近い)値

printf() 関数を用いて出力するプログラム ex03-6.c を作成し、kiso2コマンドを用いて提出しなさい。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex03$ ./ex03-6
int型の最大値は 2147483647
int型の最小値は -2147483648
double型の最大値は 1.797693e+308
double型の最小値は 2.225074e-308
  • lecture/kiso2/ex03.1538461564.txt.gz
  • 最終更新: 2018/10/02 15:26
  • by sano