演習課題 ex03-1.c

1つの整数値をキーボードから入力し、その値を2倍した値を return 文で返すプログラム ex03-1.c を作成し、kiso2コマンドを用いて提出しなさい。

実行例:

t190900@s01cd0542-160:~/kiso2-2019/ex03$ ./ex03-1
1
t190900@s01cd0542-160:~/kiso2-2019/ex03$ echo $?
2
t190900@s01cd0542-160:~/kiso2-2019/ex03$ ./ex03-1
0
t190900@s01cd0542-160:~/kiso2-2019/ex03$ echo $?
0
t190900@s01cd0542-160:~/kiso2-2019/ex03$ ./ex03-1
9
t190900@s01cd0542-160:~/kiso2-2019/ex03$ echo $?
18
t190900@s01cd0542-160:~/kiso2-2019/ex03$ ./ex03-1
-1
t190900@s01cd0542-160:~/kiso2-2019/ex03$ echo $?
254
main() 関数の返り値が負になった場合、シェル(端末)上では負の返り値を正しく表示することができません。これは、C言語が負の整数を2の補数という表現で取り扱っているためです。 2の補数については、1年後期の「情報処理の基礎」で取り扱っています。 実行例で 254 が表示される理由(正しくは -2)は、main() 関数が2の補数表現で -2 を返す一方で、シェルは $? に保持された値を8ビットの正の整数(0〜255)として表現するためです。
  • lecture/kiso2/ex/ex03-1.c.txt
  • 最終更新: 2019/10/07 10:48
  • by sano