COBOL试题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题(15分)(含多项选择)
1、不属于COBOL程序的部的是:(B )
A.过程部。
B.程序部。
C.数据部
D.环境部
2、COBOL程序中的数据在哪个部中定义?(C )
A.过程部。
B.环境部。
C.数据部
D.标识部
3、COBOL程序中如果有环境部的话,应置于:(C )
A.过程部之后标识部之前。
B.标识部之后过程部之前。
C.标识部之后数据部之前。
D.数据部之后过程部之前。
4、标识部中不可缺少的段名是:(A )
A.PROGRAM-ID
B.AUTHOR
C.FILE SECTION
D.PROGRAM
5、COBOL程序中一般变量在哪里定义?(D )
A.标识部
B.环境部
C.数据部的FILE SECTION
D.数据部的WORKING-STORAGE SECTION
6、下列关于过程部的说法正确的是:(C )
A.过程部中可以不定义节但是必须定义段
B.过程部中可以不定义段但是必须定义节
C.过程部中可以不定义节和段,节和段是根据需要定义的
D.所有程序都是在过程部中以STOP RUN来结束的
7、下面是COBOL合法数据名的是:(ABD )
A.W ANG
B.TAN-1
C.12345
D.END-OF
E.PROGRAM
F.GROSS-$
G.SECTION
8、关系运算符的优先顺序正确的是(A )
A.NOT > AND > OR
B.OR> NOT > AND
C.AND > NOT > OR
D.NOT > OR > AND
9、下记语句表示A/B=>C的是(B )
A.DIV A INTO B GIVING C.
B.DIV A BY B GIVING C
10、下记哪些方法可以显示出‘ABCD’六个字符(A,C )
A. PIC X(6) VALUE "'ABCD'". 说明:V ALUE后依次为空格双引号单引号ABCD单引号双引号
B. PIC X(6) V ALUE ''ABCD''.说明:V ALUE后依次为空格单引号单引号ABCD单引号单引号
C. QUOTE ’ABCD’ QUOTE
11、COBOL对文件的操作以为单位的(B )
A.整个文件
B.记录
C.字段
12、PIC 9(3) COMP-3在内存中占几BYTE?(A )
A、2BYTE
B、3BYTE
C、6BYTE
二、判断题(10分)
1、在写COBOL程序时,数据名称可以随意写,只要合乎语法就行。
(错)
2、就象其它编程语言一样,COBOL允许程序员自定义常量名。
(对)
3、COBOL程序中用到的每个变量都必须在数据部里声明。
(对)
4、COBOL变量只要声明类别而不用描述长度。
(错)
5、“-123”和-123都是常量值,二者没有区别。
(错)
6、象征常数指COBOL程序员自己定义的常量。
(错)
7、ZERO、ZEROS和ZEROES具有不同的含义和作用。
(错)
8、组合项数据定义时下一级数据项层号必须比上一级数据项层号大1。
(错)
9、一般认为组合项数据的类型是X,其长度由其所有子项决定。
(对)
10、在子程序调用时,需要在主程序和子程序中分别设置连接节,以存放调用参数(错)
三、填空题(57分)
1、在用PIC子句定义数据时可以用__V ALUE____________子句来给变量附初值
2、传统COBOL程序书写方式为固定格式,分为标号区、指示符区、A区、B区和注释区,请问标号区是第1列到第 6 列,A区从8 列开始,B区从12 列开始
3、除了层号66 、77 、88有特殊用途外。
可以用来描述数据的层次结构的层号
为01 ~ 49 。
代表最高层次的是01 层。
4、用INITIALIZE给变量初始化时,字符型变量将附初值空格,数值型变量将被附初值0 。
5、在PIC子句中,与XXXXX等价的写法是_X(5)______。
6、COBOL实现循环的动词是_PERFORM______,其语法格式有多种变体。
7、有如下申明Y是数值型数据项:
8、A变量的值及B变量的定义如下,在执行MOVE A TO B后,B的值各是多少?(20分)
A的值B的定义B的值
85 PIC ZZZ.99 ___85.00______________
13 PIC ZZZ. ZZ ___13.00______________
120138 PIC 99/99/99 ____12/01/38_____________
120138 PIC X(2)BX(2)BX(2) ____12△01△38_____________
2.58 PIC -*(3).99 ____**2.58_____________
5000 PIC 9(4) ____5000_____________
1024 PIC 9999. ____1024_____________
123.5 PIC -9(3).9 ______- 123.5___________
123.5 PIC +9(3).9 _____+123.5____________
2.58 PIC $Z(3).99 _____$2.58____________
10、变量A、B的定义如下,写出下表语句执行后的变量结果:
注:空格请用△表示
数据定义:
01 A PIC X(4).
01 B PIC X(1).
四、简答题(25分)
1、在COBOL程序中使用文件,必须在三个不同部位进行编码,试简述之(6分)
(1)在环境部中,要有程序使用的每个文件的文件控制项目。
这个项目系列将程序中使用的文件名与COBOL程序之外实际存在(或程序要生成)的文件相联系。
这些项目还定义文件的组织和访问方式。
(2)在数据部文件节中,要有每个文件的文件描述符(FD)项目。
这些项目系列将文件定义的COBOL文件名与构成文件的记录定义相联系。
记录定义就是数据定义。
(3)在过程部,要放上处理文件的语句,包括OPEN、READ、WRITE、REWRITE、DLETE、START。
2、有如下声明:
01 TABLE.
02 A OCCURS 9 INDEXED BY M.
04 B OCCURS 9 INDEXED BY N PIC 9.
(1)请问A、B分别是几维表?(2分)
(1). A是一维表,B是一维表。
(2)M、N是什么类型?(2分)
(2). M是位标,N是数值型位标?
3、66层的作用是什么(2分)
4、77层的作用是什么(2分)
5、88层的作用是什么(2分)
6、下记是文件描述体的定义,分别写出2~6行代表的意义(5分)
FD 文件名
BLOCK CONTAINS 20 RECORDS
RECORDING MODE IS F
LABEL RECORD IS STANDARD
RECORD CONTAINS 300 CHRACTERS
DATA RECORD IS EMP-REC.
7、环境部有哪几个节?(2分)
8、数据部有哪几个节?(4分)
9、FILE-CONTROL是在程序中的哪部分定义的?(2分)
9、有一个文件的数据结果如下表所示,写出其在数据部的数据结构定义:(8分)
四、程序分析
1、数据部的定义如下:(4分)
02 A PIC 9(6).
02 B REDEFINES A PIC X(6).
02 C REDEFINES A.
03 C1 PIC X(2).
03 C2 PIC X(4).
过程部有下列代码:
MOVE 123456 TO A.
DISPLAY A.
DISPLAY B.
DISPLAY C1.
DISPLAY C2.
显示结果是什么?
2、写出下列程序片段的输出。
(6分)
A.
DISPLAY "AAAA".
PERFORM B THRU C.
DISPLAY "BBBB".
STOP RUN.
B.
DISPLAY "CCCC".
C.
DISPLAY "DDDD".
PERFORM B.
DISPLAY "EEEE".
结果:AAAA
CCCC
DDDD
CCCC
EEEE
BBBB
3、阅读以下程序片段回答问题:(5分)
EV ALUA TE A ALSO TRUE ALSO TRUE
WHEN 'M' ALSO B < 20 ALSO ANY
MOVE 5 TO Z
WHEN "F" ALSO B < 20 ALSO ANY
MOVE 10 TO Z
WHEN "M" ALSO B > 19 AND B < 41 ALSO C < 10
MOVE 12 TO Z
WHEN "F" ALSO B > 19 AND B < 41 ALSO C < 10
MOVE 13 TO Z
WHEN "M" ALSO B > 40 ALSO C < 10
MOVE 20 TO Z
WHEN "F" ALSO B > 40 ALSO C < 10
MOVE 15 TO Z
WHEN "F" ALSO ANY ALSO C > 20
MOVE 25 TO Z
WHEN OTHER
MOVE 1 TO Z
END-EV ALUATE.
(1)若A为“M”,B为20,C为20,则最终Z应为多少? 01 (2)若A为“F”,B为35,Z为21,则最终Z应为多少?25
4、分析以下程序片段的输出:(5分)
数据部:01 IDX1 PIC 9(02).
过程部:
PERFORM V ARYING IDX1 FROM 1 BY 5
UNTIL IDX1 EQUAL TO 16
DISPLAY "IDX1=",IDX1
END-PERFORM.
IDX1=01
IDX1=06
IDX1=11。