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

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

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

1

I. 次のプログラムは一つの整数値を読み込んで、その数が 1000 以上かつ 9999 以下の場合は、「入力を受け付けました。」、それ以外は「入力は受け付けられませんでした。」と表示するプログラムである。空欄を埋めて、プログラムを完成させよ。
1 #include <stdio.h>
2
3 int main(void) {4int n;5printf("4 桁の 整数を 入力し て 下さい : "); scanf(" (i) ",6if ((iii)) {7printf("入力を受け付けました。\n");8} else {9printf("入力は受け付けられませんでした。\n");10}
11/* n を 処理する */12
return 0;13 }(ii));

II. 以下のプログラムの空欄を埋めて、100 から はじまって 7 ずつ減っていく正の数（ 100, 93, 86,79, . . . , 2 ）を降順にすべて出力するプログラムを完成させよ。
1 #include <stdio.h>
2
3 int main(void) {4int p;5for (6printf("%d ", p);7}
8printf("\n");9return 0;
10 }

) {

2III. 以下のプログラムの空欄に、• 整数の引数を受け取り、その数を 1.618 倍した実数を返す関数
double hoge(int n)を定義せよ。

1 #include <stdio.h>2
3
45 int main(void) {6int k = 5;
7
printf("%d を 1.618 倍し た 結果は %f で す 。\n", k, hoge(k));
89return 0;
10 }このプログラムは

5を 1.618 倍し た 結果は 8.090000 で す 。と出力する。

3

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

printf("%f ", z);printf("%f ", z);printf("%f ", z);

1.000000 1.000000 1.000000
1.000000 1.600000 1.600000

(B).
(D).

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

2(B).

(C).

3

45(D).

7

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

(B).
(D).

1 3 9 27
1 3 9 27 81

1 3 9 27 !!
1 3 9 27 81 !!

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

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

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

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

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

5

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

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

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

(C).

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

(D).

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

1 1 2 2 3(B).

1 1 2 2 16(C).

2 2 1 1 1(D).

2 2 1 1 3

(vii) 次のプログラムの出力結果を下の選択肢より 1 つ選べ。
12345678910
1112
13
14

#include <stdio.h>
int arr[3][3] = { { 1, 2, 3 },{ 4, 5, 6 },{ 7, 8, 9 } };int main(void) {int i;for (i = 0; i < 2; i++) {printf("%d ", arr[i][i + 1]);}
return 0;}(A).

2 4(B).

(C).

6 8

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

(B).
(D).

X Y Z
X Z

7X YX

(D).

2 6

(ix) 次のプログラムの出力結果を下の選択肢から 1 つ選べ。
123456789101112
13
14
1516

#include <stdio.h>void fuga(int x, int a[]) {x += 2;a[0] ∗= 2;}
int main(void) {int x = 1;
int y[] = { 2 };fuga(x, y);printf("x = %d, y[0] = %d\n", x, y[0]);return 0;
}
(A).
(C).

(B).
(D).

x = 1, y[0] = 2
x = 3, y[0] = 2

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

(B).
(D).

5 3 5 1 5 3 5
4 6 1 6 3 58

4 1 45 3 6 1 6 4

（ 計算・下書き用紙）

（ 計算・下書き用紙）

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

学籍番号

氏名

(1, 1, 2 点)

I.
(i).

(ii).

(iii).
II.

(4 点)

III.

(4 点)

IV.

( 各 2 点)
(i).

(ii).

(iii).

(iv).

(v).

(vi).

(vii).

(viii).

(ix).

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

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