プログラミング
期末テスト（ペーパーテスト ）問題用紙（ 2015 年 2 月 16 日）

解答上、その他の注意事項

I. 問題は、問 I〜IV まである。
II. 解答用紙の右上の欄に学籍番号・名前を記入すること。
III. 解答欄がマス目になっている場合は、1 字に 1 マスを用いること。特に空白にも必ず 1マスを用いること
IV. 解答中の文字 (特に a と d) がはっきりと区別できるよう注意すること。
V. 持ち込みは 不可 である。筆記用具・時計・学生証以外のものは、かばんの中などにしまうこと。
VI. 配点は 32 点とする。
（オンラインテスト — 8 点）
VII. スペースの都合上、テスト中のプログラム例では、最初の#include <stdio.h>は省略する場合がある。

1

I. 次のプログラムは一つの実数値を読み込んで、それを整数に変換（ 切り捨て）した値を整数で表示するプログラムである。空欄を埋めて、プログラムを完成させよ。
1 #include <stdio.h>
23 int main(void) {4double d;5printf("実数を入力して下さい: "); scanf(" (i) ",6printf("それを整数に変換した値は (iii) です。\n",7return 0;8 }(ii)(iv)););

II. 以下のプログラムの空欄を埋めて、7 以上 49 未満の 7 の倍数を小さい順にすべて出力するプログラムを完成させよ。
1 #include <stdio.h>
2
3 int main(void) {4int k;5for (6printf("%d ", k);
7}
8printf("\n");9return 0;
10 }

) {

2

III. 以下のプログラムの空欄に、• 実数の引数を受け取り、その数を 0.5 倍して 2.5 を足した整数を返す関数
double foo(double d)を定義せよ。

1 #include <stdio.h>
2345 int main(void) {6double d = 7.2;
7printf("%f を 0.5 倍し て 、2.5 を 足し た 結果は %f で す 。\n", d, foo(d));
89return 0;
10 }このプログラムは7.200000 を 0.5 倍し て 、2.5 を 足し た 結果は 6.100000 で す 。と出力する。

3

IV. 以下の問に答えよ。
(i) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1 #include <stdio.h>
2
3 int main(void) {4double z;56z = 7/4;
printf("%f ", z);
7z = (double)(7/4); printf("%f ", z);
8z = 7/4.0;
printf("%f ", z);
9printf("\n");10
11return 0;
12 }
(A).
(C).

1.000000 1.000000 1.000000
1.000000 1.750000 1.750000

(B).
(D).

1.000000 1.000000 1.750000
1.750000 1.750000 1.750000(ii) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1 #include <stdio.h>
2
3 int main(void) {4int a = 2, b = 4, c = 5, d = 6;
5if (a < b) {6a = b;7}8if (a < c) {9a = c;10} else if (a < d) {11a = d;12}
13
printf("%d", a);14
return 0;
15 }
(A).

2(B).

(C).

445(D).

6

(iii) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1 #include <stdio.h>
23 int main(void) {4int i;56for (i = 13; i > 0; i /= 2) {7printf(" %d", i);8}9printf(" | %d\n", i);10
11return 0;
12 }
(A).
(C).

(B).
(D).

13 6 3 1 | 0
13 6 3 1 0 | 0

13 6 3 1 | 1
13 6 3 1 0 | 1(iv) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1 #include <stdio.h>
23 int main(void) {4int i, j;
56for (i = 1; i <= 2; i++) {7for (j = 1; j <= 3; j++) {8printf("(%d,%d) ", i, i∗j);9}10printf("\n");11}1213
return 0;
14 }
(A).

(1,1) (2,2)(1,2) (2,4)(1,3) (2,6)(B).

(1,1) (2,2)(2,1) (4,2)(3,1) (6,2)(C).

(1,1) (2,1) (3,1)(2,2) (4,2) (6,2)(D).

(1,1) (1,2) (1,3)(2,2) (2,4) (2,6)

5

(v) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1 #include <stdio.h>
23 int main(void) {4int i, j;
56for (i = 4; i > 0; i--) {7for (j = 0; j < i; j++) {8
printf("(%d,%d) ", i, j);9}10printf("\n");
11}
12
13
return 0;14 }(A).

(1,1) (1,2) (1,3) (1,4)(2,2) (2,3) (2,3)(3,3) (3,4)
(4,4)

(B).

(4,1) (4,2) (4,3) (4,4)(3,1) (3,2) (3,3)(2,1) (2,2)
(1,1)

(C).

(4,0) (4,1) (4,2) (4,3)(3,0) (3,1) (3,2)(2,0) (2,1)
(1,0)

(D).

(1,0) (1,1) (1,2) (1,3)(2,1) (2,2) (2,3)(3,2) (3,3)(4,3)(vi) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1 #include <stdio.h>
23 int main(void) {4int i;5int data[3] = { 3, 5, 7 };67for (i = 1; i <= 2; i++) {8printf("%d ", data[i]);9}1011
return 0;
12 }
(A).

3 5(B).

(C).

5 7

6

3 5 7(D).

3 7

(vii) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1234567891011#include <stdio.h>
int arr[4][4] = { { 1, 2, 3, 4 },{ 5, 6, 7, 8 },{ 9, 0, 1, 2 },{ 3, 4, 5, 6 } };int main(void) {printf("%d", arr[2][3]);return 0;
}
(A).

0(B).

7(C).

2(viii) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
1 #include <stdio.h>
2
3 int main(void) {4int n = 7;
5
6
printf("1 ");7if (n % 4 == 3 && n % 3 == 2) {8printf("2 ");9}
10if (n % 5 == 3 || n % 2 == 1) {11printf("3 ");
12}
13
14
return 0;
15 }
(A).
(C).

(B).
(D).

1 2 3
1 27

1 3
1(D).

5

(ix) 次のプログラムの出力結果を下の選択肢から 1 つ選べ。
123456789101112131415#include <stdio.h>void baz(int x, int a) {x += 1;a ∗= 2;}
int main(void) {int x = 1, y = 2;
baz(x, y);printf("x = %d, y = %d\n", x, y);return 0;}
(A).
(C).

(B).
(D).

x = 1, y = 2
x = 1, y = 4

x = 2, y = 2
x = 2, y = 4(x) 次のプログラムの出力結果を下の選択肢から 1 つ選べ。
1234567891011121314#include <stdio.h>void qux(int n) {if (n < 6) {qux(n + 2);
printf("%d ", n);qux(n ∗ 2);}}
int main(void) {qux(1);return 0;}
(A).
(C).

(B).
(D).

4 2 4 1 3 5
1 2 4

8

5 3 1
5 3 1 4 2 4（ 計算・下書き用紙）

（ 計算・下書き用紙）

プログラミング・期末テスト解答用紙 （ 2015 年 2 月 16 日）

学籍番号

氏名

( 各 1 点)

I.
(i).

(ii).

(iii).

(iv).

II.

(4 点)

III.

(4 点)

IV.

( 各 2 点)
(i).

(ii).

(iii).

(iv).

(v).

(vi).

(vii).

(viii).

(ix).

(x).
裏面に感想を記入する欄があります。

授業・テストの感想.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................
.................................................................................................