COBOL语言测试试卷二
一、选择题(共20分)
1.关于COBOL语言,正确的是()A.COBOL非常适合用于科学计算
B.可以用COBOL写操作系统内核程序
C.COBOL追求类自然英语,因此保留字较多
D.COBOL程序非常强调数据类型
2.关于COBOL程序结构,下面错误的是()A.COBOL程序一般由定义部、环境部、数据部和过程部组成
B.COBOL程序的某个部下面不一定有节,但至少应该有一个段
C.过程部里可以直接包含语句,而不必要有节或段
D.COBOL程序也有顺序、分支和循环等结构
3.下面变量名错误的是()A.-class B.class-1 C.SPACE D.class1-
4.下面不是COBOL保留字的是()
A.IDENTIFICATION
B.ZERO
C.ALL
D.begin
5.关于PIC语句,下面叙述不正确的是()
A.普通PIC语句刻画了变量的数据类型及尺寸
B.PIC语句可以通过VALUE短语给变量付初值
C.PIC语句只出现在数据部中
D.PIC语句不能定义数据的显示和打印格式
6.关于记录缓冲器,下面说法正确的是()
A.COBOL程序用到的每个输入或输出文件都必须有独立的记录缓冲器
B.COBOL程序用到的每个输入或输出文件可以有多个记录缓冲器
C.如果COBOL程序用到的多个输入或输出文件的记录内容和格式完全相同,
则它们可以共用记录缓冲器
D.COBOL程序用到的输入或输出文件可以没有记录缓冲器
7.关于COBOL的顺序文件处理,正确的是()A.COBOL程序可以直接使用输入或输出文件的文件名
B.COBOL程序只能通过内部文件名来使用输入或输出文件
C.内部文件名和外部文件名之间的指代关系在数据部里说明
D.用到输入或输出文件的COBOL程序可以没有环境部
8.下面IF语句中的条件部分隐含的主体是()IF VarA>VarB AND VarC AND VarD
DISPLAY“VarA is the Greatest”
END-IF
A.VarA
B.VarB
C.VarC
D.VarA>
9.关于Edited Picture语句,不正确的是()A.它极大地满足了我们对财务数据的格式化要求
B.它不能包含A、9、X、V、S等普通符号
C.它定义的变量不能参与四则运算
D.它定义的变量可以接受四则运算结果
10.关于Table和Group,不正确的是()A.Table实际上可以看成有多个同名子项目的Group
B.Table的元素可以是Group
C.Group的子项目可以是Table
D.Group的子项目不能是Table
二、填空题1.A变量的值及B变量的定义如下,在执行MOVE A TO B后,B的值各是多少?(20分)
A的值B的定义B的值
85PIC ZZZ.99_________________
13PIC ZZZ.ZZ_________________
120138PIC99/99/99_________________
2.58PIC-*(3).99_________________
5000PIC9(4)_________________
-5000PIC9(4)C_________________
1024PIC9999._________________
123.5PIC-9(3).9_________________
123.5PIC+9(3).9_________________
2.58PIC$Z(3).99_________________
2.要写一个COBOL程序从一个文件中输入客户信息,然后将每个客户信息分行输出到另一个文件中作为客户报告,其中输入的每一个客户输入记录包含以下数据:
COLUMNS CONTENTS ――――――――――――――――――――――――――――――――――――
1-6Customer Number(5digits plus1letter)
7-26Customer Name
27-46Street Address
47-61City
62-63Z-letter State Addreviation
64-73Zip code(fromat:99999-9999)
74-77Year of last purchase
78-80unused
要求输出文件中的客户报告格式如下所示(每行80字符,各项之间空2格):――――――――――――――――――――――――――――――――――――
JOE SCHMOE199612345S
314COLLECE DRIVE
DEKALB IL601115-1342
KELLY ANDERSON199412354A
723420TH STREET
BYRON IL61113-4218
ANN WILSON199721345W
2345WILSHIRE BLVD
CHICAGO IL61234-21345
填空完成以下COBOL程序,以达到上述目的。(30分)
IDENTIFICATION DIVISION.
________________.ASSIGN1.
AUTHOR.JEFF DENTON.
**************************************************************** ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.IBM-390.
OBJECT-COMPUTER.IBM-390.
________________SECTION.
________________.
____________CUST-FILE ASSIGN TO INFILE.
____________PRINT-FILE ASSIGN TO OUTFILE.
*************************************************************** ____________DIVISION.
____________SECTION.
*************************************************************** *CUST-FILE IS A DISK FILE CONTAINING AN UNKNOWN NUMBER OF
*RECORDS.EACH RECORD CONTAINS:CUSTOMER NUMBER,NAME,ADDRESS *CITY,STATE,ZIP CODE AND YEAR OF LAST PURCHASE.
*************************************************************** _________CUST-FILE
LABEL RECORDS ARE STANDARD
RECORD CONTAINS80CHARACTERS
BLOCK CONTAINS0RECORDS
RECORDING MODE IS F.
01CUST-RECORD.
05CUST-NUM PIC X(6).
05CUST-NAME PIC X(_______).
05CUST-ADDR PIC X(20).
05CUST-CITY PIC X(15).
05CUST-STATE PIC XX.
05CUST-ZIP PIC X(10).
05CUST-YEAR PIC X(4).
05________PIC X(3).
***********************************************************
*PRINT-FILE IS A GENERIC BUFFER FOR PRINTING REPORT LINES.
***********************************************************
FD
LABEL RECORDS ARE OMITTED
RECORD CONTAINS80CHARACTERS
RECORDING MODE IS F.
01PRINT-LINE PIC X(80).
WORKING-STORAGE____________.
***************************************************************** *VARIABLE DICTIONARY
*EOF-FLAG:END OF FILE FLAG
*REPORT-LINES:DETAIL LINES FOR REPORT OUTPUT
***************************************************************** 01EOF-FLAG PIC X VALUE'N'.
01REPORT-LINES.
05REPORT-LINE1.
10R-CUST-NAME PIC X(20).
10FILLER PIC XX.
10R-CUST-YEAR PIC X(4).
10FILLER PIC XX.
10R-CUST-NUM PIC X(6).
05REPORT-LINE2.
10R-CUST-ADDR PIC X(20).
________REPORT-LINE3.
10R-CUST-CITY PIC X(15).
10FILLER PIC XX.
10R-CUST-STATE PIC XX.
10FILLER PIC XX.
10R-CUST-STATE PIC XX.
10FILLER PIC XX.
10R-CUST-ZIP PIC X(10).
____________DIVISION.
**************************************************************** *000-MAIN:THIS ROUTINE OPENS INPUT AND OUTPUT FILES,READS A *CUSTOMER RECORD AND ENTERS THE PROCESS LOOP WHICH CONTINUES
*UNTIL END-OF-FILE.THEN THE ROUTINE CLOSES BOTH FILES AND
*EXITS THE PROGRAM.
**************************************************************** 000-MAIN.
OPEN____________CUST-FILE
____________PRINT-FILE.
READ CUST-FILE
___________MOVE'Y'TO EOF-FLAG
END-READ.
PERFORM________________________
_________EOF-FLAG='Y'.
_________CUST-FILE
PRINT-FILE.
STOP RUN.
****************************************************************
*100-PROCESS-CUSTOMERS:THE ROUTINE CONSISTS OF MOVING INPUT
*FIELDS TO OUTPUT FIELDS AND WRITING EACH REPORT LINE,THEN
*READING ANOTHER CUSTOMER RECORD.
****************************************************************
100-PROCESS-CUSTOMERS.
MOVE SPACES TO REPORT-LINES.
MOVE CUST-NUM TO____________.
MOVE____________TO R-CUST-NAME.
MOVE CUST-YEAR TO R-CUST-YEAR.
MOVE____________TO PRINT-LINE.
WRITE PRINT-LINE.
MOVE____________TO R-CUST-ADDR.
MOVE____________TO PRINT-LINE.
____________PRINT-LINE.
MOVE CUST-CITY TO R-CUST-CITY.
MOVE CUST-STATE TO____________.
MOVE CUST-ZIP TO R-CUST-ZIP.
MOVE____________TO PRINT-LINE.
WRITE PRINT-LINE.
MOVE____________TO PRINT-LINE.
WRITE PRINT-LINE.
READ____________
AT END MOVE'Y'TO EOF-FLAG
END-READ.
三.编程题
1.某班有30个学生,每个学生修了10门课程,请用COBOL定义一种数据结构来管理他们
的信息,要求每个学生包含以下信息:
学号:7个字符
姓名:8个字符
成绩单:可容纳10门课的成绩,每门课成绩又包括课程编号(5个字符)、课程名(20
个字符)、成绩(3位整数)
性别:1个字符
提示:用GROUP和TABLE(15分)
2.用EVALUATE语句编写一个程序段计算学生的加权平均成绩(用SCORE表示),具体规则
如下:
校三好学生(用Is3Good表示)额外奖励0.6分(多次只算一次);
校优秀学生干部(用IsGoodAdmin表示)额外奖励0.5分(多次只算一次);
校级以上比赛前三名(用IsTop3表示)额外奖励0.5分(多次只算一次);
是校三好学生又是校优秀学生干部的额外奖励1分;
是校优秀学生干部又是校级以上比赛前三名的额外奖励0.9分;
是校三好学生又是校级以上比赛前三名的额外奖励0.8分;
三个均是的额外奖励1.2分。
程序段名为CALSCORE,直写出该段代码即可。(15分)