基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成17年 秋期 基本情報技術者 午後 問07
問07   COBOL

次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。

〔プログラムの説明〕

1学年における全生徒のテスト結果が格納されている入力ファイルを読み込み, 5科目の合計点を求めるプログラムである。 このプログラムは,学年内の総合順位が分かるよう,合計点の降順に整列して,出力ファイルに格納する。

(1) 入力ファイル IN-FILE は,次のレコード様式の順ファイルであり,1学年分の各生徒の 得点が格納されている。ここで,各科目は 100 点を満点とする。

クラス番号
  2 けた
生徒番号
  2 けた
氏名
  20 けた
国語
  3 けた
数学
  3 けた
英語
  3 けた
理科
  3 けた
社会
  3 けた

(2) 出力ファイル OUT-FILE は,次のレコード様式の順ファイルであり, 5科目の合計点の降順に格納する。

クラス番号
  2 けた
生徒番号
  2 けた
氏名
  20 けた
合計点
  3 けた

〔プログラム〕

(行番号)
 1  DATA DIVISION.
 2  FILE SECTION.
 3  FD IN-FILE.
 4  01 IN-REC          PIC X(39).
 5  FD OUT-FILE.
 6  01 OUT-REC         PIC X(27).
 7  SD SORT-FILE.
 8  01 SORT-REC.
 9     02 CLASS-NO     PIC 9(2).
10     02 STUDENT-NO   PIC 9(2).
11     02 STUDENT-NAME PIC X(20).
12     02 TOTAL        PIC 9(3).
13  WORKING-STORAGE SECTION.
14  01 W-IN-REC.
15     02 STUDENT-ID.
16        03 CLASS-NO     PIC 9(2).
17        03 STUDENT-NO   PIC 9(2).
18        03 STUDENT-NAME PIC X(20).
19     02 SCORE        PIC 9(3) OCCURS 5.
20  01 READ-STATUS  PIC X(1) VALUE SPACE.
21     88 AT-END    VALUE "E".
22  01 K            PIC 9(1).
23  PROCEDURE DIVISION.
24  SORT-PROCEDURE.
25      SORT SORT-FILE DESCENDING KEY TOTAL
26         INPUT  PROCEDURE IS READ-DATA
27         GIVING OUT-FILE.
28      STOP RUN.
29  READ-DATA.
30      OPEN INPUT IN-FILE.
31      PERFORM UNTIL AT-END
32         READ IN-FILE AT END
33            
34         NOT AT END
35            MOVE IN-REC TO W-IN-REC
36            PERFORM RELEASE-DATA
37         END-READ
38      END-PERFORM.
39      CL OS E IN-FILE.
40  RELEASE-DATA.
41      .
42      MOVE ZERO TO TOTAL.
43      PERFORM VARYING K FROM 1 BY 1 UNTIL K > 5
44         COMPUTE TOTAL = TOTAL + SCORE(K)
45      END-PERFORM.
46      RELEASE SORT-REC.

設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。

解答群

ア INITIALIZE SORT-REC

イ MOVE SPACE TO READ-STATUS

ウ MOVE SPACE TO SORT-REC

エ MOVE STUDENT-ID TO SORT-REC

オ PERFORM RELEASE-DATA

カ SET AT-END TO TRUE

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

基本情報技術者試験


設問2 プログラムの最後で生徒数及び各科目の学年平均点を表示するように プログラムを変更する。変更内容を示す次の表中の に 入れる正しい答えを,解答群の中から選べ。
 なお,生徒の人数は 1 〜 9,999 とし,平均点は小数第2位以下を切り捨てる。

処置 プログラムの変更内容
行番号 22 と 23 の間に追加 01 STATISTICS.
  02 STUDENT-TOTAL PIC 9(4) VALUE ZERO.
  02 SUB-TOTAL   PIC 9(8) VALUE ZERO OCCURS 5.
  02 AVERAGE     PIC 999.9.
行番号 27 と 28 の間に追加 DISPLAY "STUDENT:".
DISPLAY STUDENT-TOTAL.
DISPLAY "AVERAGE:".
PERFORM VARYING K FROM 1 BY 1 UNTIL K > 5
  COMPUTE AVERAGE = SUB-TOTAL(K) / STUDENT-TOTAL
  DISPLAY AVERAGE
END-PERFORM.
行番号 44 と 45 の間に追加
行番号 46 の後に追加 .

解答群

ア COMPUTE STUDENT-TOTAL = STUDENT-TOTAL + 1

イ COMPUTE STUDENT-TOTAL = STUDENT-TOTAL + K

ウ COMPUTE SUB-TOTAL(K) = SUB-TOTAL(K) + SCORE(K)

エ MOVE K TO STUDENT-TOTAL

オ MOVE SCORE(K) TO SUB-TOTAL(K)

カ MOVE TOTAL TO SUB-TOTAL(K)

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]