情報科学1 演習問題3 出題: 2015-06-22 氏名 提出期限: 2015-06-23 18:00 学籍番号 第1問 (1)∼(12)に適切な言葉を入れなさい。 整数を格納する ax という変数を使うためには (1) ax; というような宣言(変数の定義)が必要である。定義されない変数を使用するとエラーとなる。 また、初期化していない変数の値は(2)である。 加算を行うための記号は + であり、減算を行うための記号は - である。 乗算を行うための記号は(3)である。除算を行うための記号は(4)である。 整数の演算では(5)を求める演算のために%という記号が使用できる。 整数と整数の除算の結果は整数であり、小数点以下の値は(6)となる。 入力を行うための関数として、scanf がある。 scanfを用いて整数型の値を変数 k に取り込むには scanf((7)); のようにする.最初の(8)は入力すべき変数が整数型であることを示し, 次の(9)は値を格納する変数が k であることを示している。 表示を行うための関数として printf がある。 printfに渡す最初の実引数は書式制御文字列と呼ばれ、その中には、続く実引数の出力書式を 指定するための変換指定を含むことが出来る。たとえば、整数 int の値を10進数で出力する ための変換書式は(10)である。%を出力する場合は(11)のように指定する。 また,printfで改行を行うためには(12)を出力書式に加える必要がある。 (1) int (2) 不定(予測できない値) (3) * (4) / (5) 剰余(余り) (6) 切り捨て (7) "%d",&k (8) "%d" (9) &k (10) (11) %% (12) %d \n 裏面につづく #include <stdio.h> int main(void) { int a,b,c; d = 0; c = 2; b = a+c; printf("%d\t%d\t%d\n",a,b,c); } return 0; 第2問 左のプログラムには2つエラーがある。 どのようなエラーかを簡潔に書きなさい。 (1)変数 dが宣言されていない。 (2)変数 a を初期化せずに値を式で 使用している。 (aをdと打ち間違えたと考えればエラ ーは1つ。しかし、コンパイラはそれ を知ることは出来ない、また、aを初 期化していないことをコンパイラは指 摘できない) (教科書 P78∼81 3.1.6 「変数の定義と初期化」) 第3問 以下のプログラムを実行した場合について、答えなさい。(実際に実行してたしかめること。) (1) aに11、bに4を入力した場合の出力はどの ようなものになるか答えなさい。 #include <stdio.h> int main(void) { int a,b; printf("a = "); scanf("%d",&a); printf("b = "); scanf("%d",&b); printf("a = %d, b = %d\n",a,b); printf("%d + %d = %d\n",a,b,a+b); printf("%d - %d = %d\n",a,b,a-b); printf("%d * %d = %d\n",a,b,a*b); printf("%d / %d = %d\n",a,b,a/b); printf("%d %% %d = %d\n",a,b,a%b); return 0; } 剰余(余り)は負になることもある a = 11, b = 4 11 + 4 = 15 11 - 4 = 7 11 * 4 = 44 11 / 4 = 2 11 % 4 = 3 (2) aに-3、bに-6を入力した場合の出力はどの ようなものなるか答えなさい。 a = -3, -3 + -6 -3 - -6 -3 * -6 -3 / -6 -3 % -6 b = = = = = = -6 -9 3 18 0 -3 (3) aに4、bに0を入力した場合の出力はどのようなものなるか答えなさい。 a = 4, b = 0 4 + 0 = 4 4 - 0 = 4 4 * 0 = 0 Floating point exception: 8 (4) (3)のように入力するとエラーが発生する。その原因はなにか答えなさい。 0での割り算を行ったため、処理が打ち切られた。
© Copyright 2024 ExpyDoc