プログラミング
中間テスト（ペーパーテスト）問題用紙（2019 年 11 月 22 日）

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

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

1

I. 以下のプログラムは動作はするがインデンテーションが滅茶苦茶でプログラムの構造を正しく反映していない。（そして、おそらく作成者の意図したようには動かない。）プログラムの構造を明確にするために「プログラミング」のインデンテーションの約束事（別紙）に厳密に従って（特に V 番目のルールに注意）、必要に応じてブレースを挿入し、インデントしなおせ。ただし、ブレース内の字下げは紙幅の制限のため 3 文字分とせよ。
もちろん、プログラムの意味（実行結果）が変わらないようにすること。（つまり、作成者の（よくわからない）意図を忖度するのではなく、コンパイラーが解釈する通りにインデントすること。）
解答は、最初の #include <stdio.h> は省略せよ。また、解答欄のスペースの都合で、（最後は別として）空行は入れずに記入せよ。

int main(void) {int i, j;for (i = 0; i < 6; i++)
if (i % 2 == 0)
for (j = 0; j < i; j++)putchar(’*’);
if (i % 3 == 0)
for (j = 0; j < i; j++)putchar(’@’);
putchar(’\n’);return 0;}
II. 次のプログラムは一つの整数値を読み込んで、それを 3.14 倍した値と、10 倍してから（整数として）9 で割った値を表示するプログラムである。
たとえば、30 を入力すると、それを 3.14 倍した値は 94.200000 です。
それを 10 倍してから 9 で割った値は 33 です。と出力する。 空欄を埋めて、プログラムを完成せよ。

1 int main(void) {2int num;
3printf("整数を入力して下さい:␣");4scanf(" (i) ",(ii) );5printf("それを␣3.14␣ 倍した値は ␣ (iii) です。\n",6printf("それを␣9␣ 倍してから ␣10␣ で割った値は ␣ (v)7(vi));
8
return 0;
9 }2(iv));です。 \n",III. 次のプログラムの出力を書け。
1 int main(void) {2int k = 45;
34if (k % 5 == 0) {5printf("A␣");6}
7if (k % 15 == 0) {8printf("B␣");9} else if (k % 9 == 0) {10printf("C␣");11} else if (k % 3 == 0) {12printf("D␣");
13}
14printf("\n");15return 0;
16 }3

IV. 以下の空欄を埋めて、初項 5、公比 3 の等比数列 5, 15, 45, 135, . . . の 99999 以下の部分を出力するプログラムを完成させよ。
1 int main(void) {2int n;34for (5printf("%d␣", n);6}78putchar(’\n’);9return 0;10 }) {

V. 以下のプログラムは、整数の組のデータを (i,j) という形式で出力する。このプログラムの出力を書け。ただし、空白は明示的に空白記号（␣）を、改行は矢印（↓）を書くこと。
1 int main(void) {2
int i, j, n = 4;
3
for (i = 0; i < 2 * n; i += 2) {4for (j = i; j < 2 * n; j += 3) {5
printf("(%d,%d)␣", i, j);6}
7
printf("\n");8}
9return 0;
10 }解答の書き方の例:(1,2)␣(3,4)␣↓(5,6)␣↓(7,8)␣(9,0)␣↓4

「プログラミング」インデンテーションについての約束事
http://guppy.eng.kagawa-u.ac.jp/2019/Programming/indentation.html より抜粋したものである。（ただし今回の問題に関係ない部分は割愛した。また、字下げ幅はオリジナルは 4 だが、ここでは紙幅の制限のため、3 とした。）
I. 原則として、一行には文は一つしか書かない。
II. ブレース（{〜}）の中は、外よりも 3 字分を字下げする。
III. 開きブレース（{）は if や else, while, for などのキーワードと同じ行に改行せずに書く。開きブレースのあとは何も書かず改行する。
IV. 閉じブレース（}）は if や while, for などのキーワードのはじめの文字と列をそろえて書く。
その行には閉じブレース以外には何も書かない。
• ただし、else . . . が続く場合は、閉じブレース（}）と同じ行に書く。
V. if 文, if 〜 else 文 や for 文, while 文などでは、選択されたり、繰り返したりされる文が一つだけの場合も、ブレース（{〜}）に囲む。
この約束事だけは、教科書のプログラム例は必ずしもそうなっていないので、特に注意する。

• ただし、else のあとにすぐ if 文が続く else if . . . というかたちは、 else { if . . . }とはしない。

プログラミング・中間テスト解答用紙 （2019 年 11 月 22 日）

学籍番号

i n t

m a i n ( v o i d )i n t

i ,j ;

r e t u r n

0 ;

氏名

{I.

}

II.

(i).

(ii).

(iii).

(iv).

(v).

(vi).

III.
IV.

V.

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

2