COBOL 面试问题
亲爱的读者,这些特别设计的COBOL面试问题是为了让你了解在面试过程中可能遇到的关于COBOL编程语言的问题。根据我的经验,好的面试官在面试时几乎不打算提出任何特别的问题。通常,问题一些基本概念开始,而后他们继续提问基于进一步的讨论和你回答:
你对COBOL有什么了解?
COBOL代表Common Business-Oriented Language。美国国防部在一次会议上组建了CODASYL(数据系统语言会议),开发了一种满足业务数据处理需求的语言,现在称为COBOL。
列出一些COBOL的特点。
COBOL是可以在各种机器上编译和执行的标准语言。它非常适合用于面向商业的应用程序,因为它可以处理大量的数据。它提供了大量的调试和测试工具。COBOL是一种结构化语言;它具有不同的部,因此易于调试。
COBOL程序中部的名称。
标识部,环境部,数据部和过程部。
COBOL中提供了哪些不同的数据类型?
字母数字(X),字母(A)和数字(9)。
什么是“IS NUMERIC”子句?
IS NUMERIC子句用于检查任意项是否为数字。当使用它的项目只包含数字(0到9)时,它返回TRUE。该项目可以为正或负。
66级和88级是用来做什么的?
66级用于RENAMES子句,88级用于条件名称。
下标和索引有什么区别?
下标是数组中的事件。索引是从数组开始的位移。
SEARCH和SEARCH ALL之间有什么区别?
SEARCH是一个串行搜索,而SEARCH ALL是一个二进制搜索。在使用SEARCH ALL之前,表必须按顺序排序。
执行SECTION和PARAGRAPH有什么区别?
执行SECTION将导致作为节的一部分的所有段落被执行。执行PARAGRAPH将只会执行特定段落。
什么是作用域终结符?
作用域终结符用于标记动词的结尾。示例:IF和END-IF。
COBOL中的文件打开方式是什么?
COBOL中的文件打开模式包括:INPUT,OUTPUT,I-O和EXTEND。
我们可以在COBOL中定义的数字字段的最大大小是多少?
数字字段的最大大小为PIC 9(18)。
CONTINUE和NEXT SENTENCE有什么区别?
CONTINUE将控件转移到作用域终结符后的下一个语句。NEXT SENTENCE在遇到第一个句号后将控件转移到语句。
为什么我们不能在01级定义occurs子句?
01是记录级。我们重复记录中的字段,而不是记录本身。所以Occurs子句不能在01级使用。
你将以什么模式打开文件以进行写入?
要写入文件,必须在OUTPUT或EXTEND模式下打开文件。
通过内容调用和通过引用调用之间有什么区别?
通过内容调用传递的参数受被调用程序的修改保护。通过引用调用的参数可以由被调用程序修改。
什么是连接节?
连接节是被调用程序的一部分,它“链接”或映射到调用程序的工作存储中的数据项。
如果你在独立的COBOL程序中编码GO BACK而不是STOP RUN会发生什么?
STOP RUN结束工作单元,并将控制权返回给操作系统,而GO BACK则将控制权返回给调用程序。 所以如果我们编写GO BACK而不是Stop Run,它将进入无限循环。
如何将符号存储在COMP-3字段中?
它存储在最后一个半字节中。
comp和comp-3之间有什么区别?
Comp是二进制使用,而comp-3表示压缩十进制。
标识部的目的是什么?
标识部用于文件目的。
静态调用和动态调用有什么区别?
在静态调用中,被调用的程序是一个独立的程序,是一个可执行程序。在运行时,我们可以在被调用程序中调用它。至于动态调用,被调用程序不是可执行程序,它只能通过被调用的程序执行。
什么是重定义子句?
重定义子句用于允许由不同的数据名称引用相同的存储分配。
STRING命令中指针短语的用途是什么?
指针短语的目的是指定接收字段中将存储第一个转移字符的最左边位置。
77级用于什么?
它是一个基本的级项目,不能细分。
什么是二进制搜索?
将要搜索的项目与在中心的项目进行比较。如果它匹配则好,否则根据项目所在的位置重复该过程左半部分或右半部分。
什么是EVALUATE语句的使用?
evaluate就像一个case语句,可以用来替换嵌套的ifs。因此一旦找到匹配,控件就会出现,不需要中断。
我可以重新定义一个带有X(20)字段的X(10)字段吗?
是,因为重定义会导致两个字段在同一位置开始。
什么是COMP-1和COMP-2?
COMP-1是使用4字节的单精度浮点数。COMP-2是使用8字节的双精度浮点数。
Accept动词功能是什么?
accept动词用于从操作系统或直接从用户获取数据,如日期,时间和天等。如果程序正在接受来自用户的数据,则需要通过JCL传递。
什么是Compute语句?
Compute语句用于在COBOL中写入算术表达式。这是加,减,乘和除的替代。
如何定义子程序中引用的文件?
在JCL中提供DD卡,就像在主程序中引用的文件一样。
COBOL中的哪些部,节和段是强制性的?
标识部和程序名段在COBOL程序中是强制性的。
COBOL中的AREA B从哪里开始?
AREA B从12到72列开始。
FILE-CONTROL段出现在哪里?
它出现在环境部的输入输出节。
Perform With Test After和Perform With Test Before之间有什么区别?
如果指定了TEST BEFORE,则在每次重复执行指定的PERFORM范围开始时测试条件。如果指定了TEST AFTER,则在每次重复执行PERFORM范围结束时测试条件。在TEST AFTER下,范围至少执行一次。
什么是LOCAL-STORAGE SECTION?
本地存储在每次调用程序时被分配,并且当程序通过EXIT PROGRAM,GOBACK或STOP RUN停止时被释放。它在工作存储节后的数据部中定义。
START语句的访问模式是什么?
启动语句的访问模式为SEQUENTIAL(顺序)或DYNAMIC(动态)。
PIC 9.99和PIC9v99之间有什么区别?
PIC 9.99是一个四位字段,实际包含一个小数点,而PIC9v99是一个三位数字字段,带有假定的小数位。
可以在带有或不带索引的表上进行搜索吗?
不,必须对表进行索引才能在表上搜索。
为什么REWRITE需要文件在I-O模式下打开?
在执行REWRITE之前,必须从文件中打开并读取记录。因此,必须在I-O模式下打开文件才能进行重写。
什么是文字?
文字是一个数据项,由其本身的值组成。它不能用名称引用。它们是常量数据项。
PIC 9.999的长度是多少?
PIC 9.999的长度为5,由于“.”需要1个字节,所以1个字节为“.”,4个字节为9。
哪个cobol动词用于更新文件?
重写动词用于更新记录。文件应在I-O模式下打开以进行重写操作。它只能在成功读取操作之后使用。重写动词覆盖最后一条记录。
如果将123值移动到PP999 PIC子句,那么编辑的值是多少?
.00123编辑的值将被采用。P是假定的十进制缩放位置,用于在点不在数据项中出现的数字内时指定假定的小数点位置。 .PIC PP999表示数字数据项为3个字符,小数点后有5位。
在哪里可以指定OCCURS子句?
在数组声明中,我们可以在基本项以及组项上指定occurs子句。
S9(7)SIGN TRAILING SEPARATE字段占用多少字节?
9(7)将占用7字节和1字节的SIGN TRAILING SEPARATE,所以总共需要8个字节。