EXTENT 扩展
12.你是如何调试批次程序的?
在SDSF里面看作业的返回码,进入JES的作业信息查看是哪一个作业步发生了错误,返回码是多少,然后去响应的作业步里面查看出错信息
如果可能是变量错误的话,用DISPLAY 跟踪 13.S0C7是什么错误,如何解决?
S0C7-may be due to: 1. Numeric operation on non-numeric data; 2. Un-initialize working-storage; 3. Coding past the maximum allowed sub script.
数据类型不匹配。通过OFFSET后面的十六进制的数。 14.在线程序与批次程序有何区别?根本区别: 在线程序需要用到cics,而批次程序不需要
15.COBOL读取文件记录的语句,分别描述一下顺序和索引文件的读取
READ INTO AT END NOT AT END
READ INTO KEY IS INVALID KEY NOT INVALID KEY 16.如何定义一个数组?比如学生记录里面课程有8门 01 STUDENT.
05 NAME PIC X(10).
05 COURSE PIC X(4) OCCURS 8 TIMES. OCCURS不能定义在01层。
17. VSAM文件的组织形式有哪些?
ESDS:Entry Sequential Data Set; 顺序数据集;
特点是:A,记录只能增加在文件尾部;B,记录可被修改但长度不能被改变,记录不能被删除;C能根据相对寻址的方式进行操作。
RRDS:Relative Record Data Set; 相对记录数据集;
特点是:A,在数据集中包含许多小的数据块,这些可能有数据或为空;B,记录可能是固定的或可变的;C,肯顺序或直接的存取,根据相对的记录数方式操作。
KSDS:Key Sequential Data Set; 索引数据集;
特别是:A,记录能进行顺序或直接的读写;B,记录能被新增、修改、删除无限制,记录由索引方式来组织;C,按键值的方式进行操作。
LDS 线性存储,数据没有分界线。 18..文件的访问方式有哪些? SEQUENTIAL 顺序 RANDOM 随机
DYNAMIC 动态(有条件)
19.REDEFINES的起什么作用,请简述REDEFINES使用时要注意的地方
答: REDEFINES表示重定义,为同一个内存重新定义一个变量的名字。
例如: 01 A PIC S9(7)V9(2) COMP-3. 我们用B 来REDEFINES A 就用如下语句:
01 B REDEFINES A PIC X(5). 例如: 01 A.
03 A1 PIC X(6). 03 B1 REDEFINES A1. 05 B11 PIC X(4). 05 B12 PIC 99.
03 C1 REDEFINES A1 PIC 9(6).
1.数据名2与数据名1的层号必须相同。REDEFINES子句不能用于88层和66层。
2.用REDEFINES子句的描述体应紧跟在被重新定义的数据项的描述之后,中间不能插入其他项的描述说明。 3.可以多次重定义,但必须紧跟出现,而且要求使用最初定义的数据名。
4.REDEFINES子句不能用于文件节的01层中,因为文件节中01层描述的是记录,但工作单元节中的01层是可以用REDEFINES子句重新定义的,因为这里的01层不是指输入输出文件的记录,而是指组合项。
5.用REDEFINES子句可以改变数据的结构,但两个数据名的长度应相同。
6.内存中的值为数据名1和数据名2共享。也就是说,重定
义后两个数据名的名称和两种数据结构同时存在,都有效。程序中可使用其中任何一个。他们在内存中为同一段存储单元。如果改变了内存内容,则二者的值都因而改变。 7.重定义子句所在的数据描述体中不能使用初值子句赋初值
20.如何定义和使用文件 ? 如何把COBOL程序中的文件关联到实际的文件上?
答:在COBOL程序的Environment division段里的INPUT-OUTPUT SECTION FILE-CONTROL进行文件的定义,包括内部文件名,外部文件名,文件的格式以及访问方式 在 Data Division里的 FILE SECTION里面进行 FD 进行文件记录变量的描述
在 运行程序的JCL里面通过指定PGM = 程序名, 和相同的外部文件名来关联程序和实际的物理数据集。 21. COBOL中如何做循环,请描述下常用的循环语句 答:COBOL中主要通过 PERFORM做循环; PERFORM有3种主要的格式: PERFORM 100-PROC X TIMES ; PERFORM 100-PROC UNTIL X > 10;
PERFORM 100-PROC VARYING X FROM 1 BY 1 UNTIL X > 10; GO TO 语句。
相关推荐: