MainFrame面试是针对IBM大型机系统开发中的关键技术进行考核的一种面试形式,其中涉及到的技术主要包括COBOL编程语言、VSS(Visual SourceSafe)版本控制系统等。在准备这类面试时,需要深入理解COBOL的基本结构和数据类型,以及如何在JCL(Job Control Language)中定义排序文件等操作。
1. COBOL程序的组成部分:一个COBOL程序通常包括5个主要部分,分别是程序标识段(IDENTIFICATION DIVISION)、环境段(ENVIRONMENT DIVISION)、数据段(DATA DIVISION)、程序段(PROCEDURE DIVISION)和工作存储区(WORKING-STORAGE SECTION)。这些部分定义了程序的结构和处理数据的方式。
2. COBOL数据类型:COBOL提供了多种数据类型,如数值型(NUMERIC)、字符型(CHARACTER)、布尔型(BOOLEAN)、日期型(DATE)等。理解每种类型的特点和用法对于编写有效代码至关重要。
3. 数据描述符级别:在COBOL中,77级用于定义基本的数据项;88级用于定义数据项的条件或子条件,常用于条件测试;66级则用于创建复合数据结构,类似于结构或类。
4. IS NUMERIC子句:在COBOL中,IS NUMERIC子句用于判断某个数据项是否能被解释为数字,如果可以,编译器会跳过非数字字符。
5. 定义数组/表格:在COBOL中,使用OCCURS子句来定义数组。例如,`01 ARRAY-NAME PIC X OCCURS 10 TIMES.` 这行代码定义了一个包含10个字符元素的数组。
6. OCCURS子句的位置:OCCURS子句通常用于01级数据项,它允许定义可变数量的数据项实例。
7. 二分查找:二分查找是一种高效的搜索算法,适用于已排序的列表。它通过不断将搜索区间减半来快速定位目标值。
8. 数组访问错误:如果程序尝试访问超出定义范围的数组元素,如访问第11个元素,但在定义时只指定了10个元素,这通常不会导致立即的程序异常(abend),除非有特殊的边界检查机制。在某些系统中,超出范围的访问可能导致未定义的行为或数据损坏。
9. 定义JCL中的排序文件:在JCL中,使用SORT或SORTA步骤来定义和执行排序。需要指定输入文件、输出文件、排序关键字段和其他控制参数。
10. EVALUATE语句:EVALUATE语句用于条件分支,可以基于不同的条件执行不同的代码块。它有几种形式,如简单比较、多个条件和默认情况。
11. 复杂的WHEN条件:在EVALUATE语句中,WHEN子句可以包含简单的条件,但不能直接包含复杂的逻辑表达式。复杂的条件通常需要通过IF-ELSE结构来实现。
12. 内联PERFORM:内联PERFORM允许在代码中直接执行子程序,而无需定义单独的子程序段。这种方式可以减少程序的调用开销,提高效率,但可能增加代码的复杂性。
在MainFrame面试中,除了上述内容,还可能涉及其他主题,如文件处理、I/O操作、主控程序设计、错误处理、数据库接口等。考生应全面掌握COBOL语法和MainFrame系统的特性,以应对各种技术问题。同时,了解VSS在版本管理和团队协作中的应用也是必不可少的。