FD OUT-FILE. 01 OUT-RECORD PIC X(80).
4.COMP和COMP-3,DISPLAY各表示什么意思?
S9(4) COMP-3占多少字节? S9(7)V9(2) DISPLAY 占多少字节?
COMP是二进制,COMP-3是压缩十进制,DISPLAY是十进制。 S9(4) COMP-3占3个字节 S9(7)V9(2) DISPLAY 占9个字节
5.如果VSAM中的字段格式是 S9(7)V9(2) comp-3, 如何定义一个数据来接收这个数据并DISPLAY出来? 答:通过定义 9(7).9(2) 来接收这个变量。
6.S9(4) COMP-3在内存中占多少字节? -1234在内存中是如何存储的?
答: S9(4) COMP-3在内存中占3个字节, -1234在内存中表示为 01 23 4D (16进制表示) ( 00000001 00100011 01001101) (2进制表示)
7. S9(7) COMP在内存中占多少字节? MOVE 1234 TO VAR, DIS PLAY 之后VAR1 显示结果是 (VAR1的PIC字句是 S9(7) COMP-3)
答:S9(7) COMP 在内存中占4个字节, MOVE 1234 TO VAR1之后, DISPLAY VAR1显示为 0001234.
8.COBOL程序读取文件记录,如何判断已经读到最后一条记录
100-READ.
READ FILE1 INTO FILE-REC AT END….. NOT AT END…… …..
GO TO 100-READ.
9.COBOL中如何调用子程序?如何向子程序传值?
使用CALL,XTCL,LINK来调用子程序,其中call使用在batch程序中,XCTL,LINK使用在CICS中。使用call和LINK调用子程序后,子程序结束后仍回到主程序。而XTCL后,子程序结束后不返回。
使用通讯区在子程序间传值。
10.举例说明如何使用 REDEFINES, 要注意什么? REDEFINES是用来重定义,数据长度和类型都可以不同 05 AAA PIC X(6) 05 BBB REDEFINES AAA. 10 B-1 PIC X(4). 10 B-2 PIC X(2)
11.文件打开的方式有哪几种?各表示什么? INPUT 输入 从该文件中读取数据 OUTPUT 输出 把数据输出到文件中 I/O 即可输入又可输出
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共享。也就是说,重定