COBOL面试黄金版.docx
《COBOL面试黄金版.docx》由会员分享,可在线阅读,更多相关《COBOL面试黄金版.docx(27页珍藏版)》请在冰点文库上搜索。
COBOL面试黄金版
TSO
1、什么是TSO?
答:
TSO(Time Sharing Option)一个模块,是MVS的基本组件、充当命令输入器。
提供主机用户(TSO ID)与系统之间的接口。
用户在TSO终端上,用命令形式操纵和管理计算机的资源和应用。
2、我们在配置PCOM时需要设置哪些参数?
答:
链路参数和会话参数 3、TSO的签到方式?
方法一:
1、画面命令行输入‘TSO ’, ‘确定’ 显示签到 画面 2、在签到画面Password栏位后输入用户密码
方法二:
1、画面输入 ‘TSO USERID’, ‘确定’ 显示签到 画面 2、在签到画面Password栏位后输入用户密码 4、TSO的签退方式?
方法一:
1、在签到后的第一屏(标记有“ISPF Primary Option Menu ”的屏幕)输入‘X’,退出ISPF 2、画面出现READY,在下面输入LOGOFF 方法二1、在签到第一屏,点击功能键 'F3' ,
2、如果系统画面出现READY ,在下面输入‘LOGOFF’
3、如果系统画面出现 '退出选项提示 ' 选择 ‘2’ 确定,来到READY 画面,之后输入LOGOFF
5、以下账号有哪些权限?
SYSUSER:
具有对z/OS操作系统基本产品的操作功能
DBAUSER:
具有对z/OS操作系统基本产品和数据管理产品的操作功能 TIVUSER:
具有操作Tivoli产品的功能
TSOUSER:
具有存取TSO READY提示信息下的使用功能 6、简述一下ISPF/PDF界面?
ISPF/PDF:
Interactive System Productivity Facility /Program Development Facility
菜单(Panel)式的操作界面,为用户提供数据集管理、程序开发、作业(JOB)提交和监控等功能。
他的主要功能是使用菜单方式来使用TSO 命令。
7、ISPF界面分为哪几个功能区?
Action Bar(行为菜单):
提供了一些系统操作的选项,光标停留其上按确认键将跳出功能菜单可供选择。
Title(标题):
显示当前画面实现的功能和说明。
Option List(选项列表):
此块显示了画面上提供的功能列表,可在命令行进行输入。
Command/Option(命令行/选择栏):
输入选项列表中提供的选项或者直接输入TSO命令(以后介绍)。
Function Key(功能键):
显示快捷功能键。
8、ISPF界面功能键都有哪些?
F1:
Help(帮助) F2:
Split(分屏) F3:
Exit(返回/保存退出) F4:
自定义 F5:
Rfind(再次搜寻) F6:
Rchange(再次替换) F7 :
Up(向上翻页) F8 :
Down(向下翻页) F9 :
Swap(切换屏幕) F10:
Left(向左翻屏) F11:
Right(向右翻屏) F12:
Cancel(取消) 9、Dataset List(数据集列表)有什么作用?
用于显示存在的Dataset列表
10、Scroll Indicate(翻屏说明)有几种方式?
PAGE:
每次翻一页
CSR :
一直翻屏到当前光标所在位置 n :
每次翻数字n行 HALF:
半页移动
11、查看数据集是E、V、B有什么区别?
VIEW :
查看文件,此时文件可被修改但无法保存 EDIT :
编辑文件,此时文件可被修改同时可保存
BROWSE:
浏览文件,此时文件无法修改同时不显示行号
12、ISPF提供层次、结构清晰的菜单式的操作界面,其画面主要分为哪四类?
功能选择画面:
提供功能选项用于选择 要素输入画面:
要求输入要素以完成功能
数据集列表画面:
将数据集及目录以列表形式显示,提供给用户进行选择 数据集操作画面:
编辑数据集内容 13、数据集命名规则?
最多22个段;
每一个段1-8个数字或字母字符; 必须以字母或@、#、$开头;
数据集所有字符不超过44个(包括“.c”)。
命名经常使用三段名形式:
Project名.Group名.Type名。
Project名:
目标名,属于同一个目标的所有库的公共标识,通常对于每个用户,系统人员给定一个目标名。
Group名:
标识同一个目标下的各个组,可自己定义。
Type名:
指出该组中内容的类型。
14、数据集的分类?
顺序数据集(SDS,Sequential Data Set)PS 分区数据集(PDS,Partitioned Data Set)PO-E 扩展分区数据集(PDSE)LIBRARY VSAM数据集;VS
15、建立数据集的参数有哪些?
Volume Serial:
存放数据集的直接存取卷的卷号。
Space Units:
Track:
表示系统以磁道为单位分配空间 ;Cylinder:
表示系统以柱面为单位分配空间;Block:
以块的长度作为空间分配单位 KB;MB。
Primary Quantity:
初次为数据集所分配的空间大小。
Secondary Quantity:
当初次分配值不足时,指定再次分配的空间的数量。
Directory Blocks:
指定在一个分区数据集中用来作为目录的长度为256字节的记录的数量。
对于顺序数据集,此值必须为0
对于分区数据集,块的大小为256字节
Record Length:
以字节为单位存放在数据集的逻辑记录长度。
Record Format:
F:
定长,不分块 FB:
定长,分块 V:
变长,不分块 VB:
变长,分块 U:
Undefined
Block Size:
块的大小,也成物理记录长度,用此值可以确定每一块中数据有多少字节。
记录是逻辑单位,块是物理单位
对程序或文档类的数据集,块长不宜太大。
对大数据量的数据集,块长大,I/O性能会好 16、怎么样才PDS中建立MEMBER?
分两种情况一种是PDS中无MEMBER存在,一种是有MEMBER存在:
PDS中没有member:
主选项菜单下,选2(Edit)给出PDS数据集全名,然后给出要创建的member的名字或者 在3.4的DS列表中,在要添加成员的PDS前面输入e,名字后面输入(membername),回车即可。
PDS中有member:
进入后,在成员选择菜单的命令行下,直接输入s newmembername 即可,新建的member需键入内容或在命令行下键入save命令才可。
否则不创建。
17、3.4界面下有哪些命令?
E - Edit the dataset V - View the dataset B - Browse the dataset D - Delete the dataset R - Rename the dataset C - Catalog the dataset U - Uncatalog the dataset Z - Compress a PDS library
18、编辑数据集的行命令有哪些?
I(insert) n :
插入n个新行
D(delete) n :
删除当前行开始的n行 DD „ DD :
删除DD之间的行
C(copy) n :
标识将要拷贝当前行开始的n行
CC „ CC:
此命令通过在不同的行Row位置输入CC,标识CC之间的行将被拷贝 M(move)n :
标识将要移动当前行开始的n行
MM „ MM:
此命令通过在不同的行Row位置输入MM,标识MM 之间的行将被移动 A(after):
和C/M命令配合使用,将拷贝/移动的行拷贝/移动至当前行之后 B(before) :
和C/M命令配合使用,将拷贝/移动的行拷贝/移动至当前行之前 O :
行覆盖
R(repeat) n:
重复当前行n次 RR „ RR :
重复RR之间的行
UC n :
将当前n行小写字母变成大写 ( n :
表示向左移n列,n的默认值是2。
((„(( :
指定左移n列的行区域。
) n :
表示向右移n列,n的默认值是2。
))„)) :
指定右移n列的行区域。
< n :
表示向左移n列,n的默认值是2。
<<„<< :
指定左移n列的行区域。
> n :
表示向右移n列,n的默认值是2。
>>„>>:
指定右移n列的行区域。
“<”“>”数据移动受到边界值的限制。
COL OR COLS :
在编辑数据的任意行产生一标尺。
X n :
隐藏n行。
XX „ XX :
指定要隐藏行的范围。
S n :
隐藏行的重新显示,n指定要显示的行数。
19、数据集中的编辑命令有哪些?
CANCEL:
取消操作退出画面 SAVE :
保存操作
L(locate) n:
定位到第n行,n为所在行的具体行号 F(find) string:
查找字符串
C str1 str2 :
替换字符串str1为str2
C str1 str2 ALL :
替换所有字符串,F5快捷键可以在查找和替换命令中使用。
HEX ON/OFF:
将当前画面模式切换成16进制/切换回10进制 Hi JCL/COBOL:
JCL/COBOL关键字高亮
CAPS ON/OFF :
切换只由大写模式/大小写兼容模式 RESET:
重置编辑器,可用来刷屏 RENUM :
重新设置行号
PROFILE:
配置文件的控制盒显示
RECOVERY ON/OFF:
恢复控制,ON表示用户可以通过undo命令取消上一次编辑操作。
UNDO:
取消上次编辑操作。
SORT 【A|D】:
重新排列记录。
EDIT 【成员名】:
该命令允许用户不必退出当前编辑回话而编辑另一个数据集。
保存返回:
F3。
不保存返回:
CANCEL
SUBMIT:
将正在编辑的数据集提交到后台批作业流进行处理。
SAVE:
保存数据集命令。
CANCEL:
取消编辑命令
20、合并成员的主命令有哪些?
COPY:
将一个顺序数据集或分区成员拷贝到正在编辑的数据集。
MOVE:
将一个顺序数据集或分区成员移动到正在编辑的数据集。
CREATE:
把正在编辑的数据集中的一部分产生为一个新的数据集。
REPLACE:
用正在编辑的数据集的一部分替换命令中指定的数据集的内容。
格式:
REPLACE 【成员名】 .A .B CREATE 【成员名】 .A .B 21、SDSP界面的主要功能有哪些?
SDSF(System Display and Search Facility)
它主要用于察看和管理作业队列(JOB QUEUE)。
在SDSF,我们可以看到:
正在执行\排队等待\已执行结束 (未清除)的作业队列及其执行结果 22、SDSF主要使用的功能介绍?
DA:
Display Active Users显示正在执行的作业
ST:
Status of jobs显示所有的作业(包括执行结束的)
INIT:
Initiators显示各个JOB CLASS通道、及哪个Initiator上有哪个JOB正在运行 23、DA/ST命令介绍?
PREFIX/PRE + string:
对JOBNAME进行筛选,选出JOBNAME=string的作业清单 OWNER + string:
对OWNER进行筛选,选择OWNER=string的作业清单
SORT POS A/D:
对POS进行排序,A为从小到大升序排列,D为从大到小降序排列
JCL
1、什么是JCL?
JCL:
Job Control Language用户与操作系统的接口,用户通过JCL语句按照自己的意图来控制作业的执行。
当用户需要使用计算机完成某项任务时,用户必须准备一个作业流(Job Stream)。
作业流中包含一个或多个作业,作业是用JCL书写的。
2、JCL中包含几种语句?
作业语句(JOB):
标识一个作业的开始,提供必要的运行参数。
执行语句(EXEC):
标识一个作业步( JOB STEP)的开始,定义本作业步所要执行的程序或过程。
同一个JOB中的JOB STEP数目不能超过255个。
数据定义语句(DD):
用于描述应用程序所需要的数据文件。
3、JCL的三大功能?
控制作业的执行。
管理系统资源和数据集。
(类似TSO交互式菜单对数据集的管理) 对COBOL程序编译和执行。
(COBOL代码→JCL编译→机器码→JCL执行) 4、JCL的重要性?
编译作业流和执行作业流都是JCL编写 合格的TEAM LEADER的前提 5、JCL允许使用的字符:
字母字符(alphameric character):
A~Z
数字字符(numeric character):
0~9 通配字符(national character):
@ $ #
特殊字符(special character):
, . ‘ ’ / ( ) * & + - = 空格 EBCDIC可打印字符集
6、JCL包括哪5个区?
有什么作用?
标识区(identifier field)
告知系统所包含的语句类型,用以语言的种类。
以 // 为起始。
位于每条语句的第一、第二列。
名字区(name field)
必须从第三列开始编写
最多八个字符, 可用字母、数字、通配字符(#,@,$)组合 第一个字符不能是数字,必须是字母或通配字符(#,@,$) 操作区(operation field)
表示语句形态, 如:
EXEC 语句, 其操作项目即为EXEC 参数区或运算区(operand field)
几乎每一个操作符都需要有参数配合使用。
可包含一个或一个以上的参数, 参数之间以“,”分隔 备注区或说明区(comments field) 注释。
不参与语句的执行,
在参数区后,只要间隔一个以上的空格, 即可编写备注; 7、JCL中参数区的参数类型有哪些?
位置参数(Positional Parameter)
用它的位置来描述其特性的一种参数
特点:
如果一个操作符含有多个参数,那么位置参数必须位于所有参数之前。
位置参数,相互之间不允许调换前后顺序。
关键字参数(Keyword Parameter)
简称键字参数,以关键字来描述其特性 特点:
帶 ”=”号的参数都是关键字参数 两个例外:
“PGM=”, “PROC=”为位置参数 关键字参数之间的顺序可以任意调换
例1:
//ABCDEFGH JOB A123456,’LINING’,CLASS=A,MSGLEVEL=(1,1) 例2:
//ABCDEFGH JOB A123456,’LINING’,MSGLEVEL=(1,1),CLASS=A 列示参数(List of sub-parameter)
所有含有子参数的关键字参数都可以称为列示参数。
有位置子参数和关键字子参数两种表现形式:
以位置子参数的形式表现:
例1:
DISP=(NEW,KEEP,DELETE),其中NEW KEEP DELETE具有位置参数的特性,所以三者位置不可任意调换。
符号参数(Symbolic Parameter)
与其他语言里“变量”的概念类似,并非系统指定的,而是程序员自定义(对变量赋值,然后调用变量)
在参数值之前加一个“&” 符号的参数,即为调用符号参数 符号参数的三种指定、赋值的方式:
SET:
权限最大,可以在过程和JCL里指定符号参数 PROC:
只在过程里指定符号参数
EXEC:
在调用过程时,对符号参数赋值(覆盖式的) 8、JCL语句的续行规则有哪些?
只有JOB、EXEC、DD、PROC语句允许续行若语句长度超过它所能允许的列数,则必须延续到下一行; 在一完整参数后紧接着“,” (必须在第72列之前); 下一行的第一、二列必须为 “//”;
欲延续的参数必须在第4列及第16列之间开始。
9、备注区的续行规则?
在第72列之前的适当地方中断备注; 在第72列填上非空格字符“-”; 下一行的第一、二列必须为 “//”;
延续的备注必须从第4列之后开始编写。
10、有三种常用的提交方式?
在JCL的编辑界面里,命令行上输入“SUB”命令。
在ISPF3.4的成员列表中,在编写JCL的MEMBER前输入“SUB”。
使用TSO命令提交SUBMIT提交,可以在ISPF任何地点发出命令。
11、所有JCL结果里都会有三个DDNAME,是哪3个?
JESMSGLG:
存放各步的返回值和统计信息。
JESJCL:
存放用户提交的JCL语句。
JESYSMSG:
存放JES运行JCL时发生的详细信息。
12、JOB语句的用途及规则。
用途:
定义作业的名称,表示作业的开始 格式:
//jobname JOB 规则:
每一个作业的第一个语句必须是JOB语句; 每一个作业必须有且只能有一个JOB语句; JOB语句中的jobname必须编写; 并要符合名称域的编写规则; 尽量起有意义的名字;
13、JOB语句中的位置参数有哪些?
记账信息( Accounting Information)
最大长度143个字符。
常用括号[()]和引号[‘’]。
作成者的名字(Programmer Name)
最大长度20个字符。
含特殊字符时,需用引号[‘’]。
14、JOB语句中的关键字参数有哪些?
ADDRSPC(作业所需之存储类型)它有两个子参数:
VIRT及REAL,缺省值VIRT。
VIRT:
表示作业请求虚拟页式存储,REAL:
表示作业请求实存空间。
REGION(作业所需的实存或虚存的空间大小)格式:
REGION=valueK/M,valueK:
以Kb为单位,取值范围:
1-2096128,取值为4的整数倍。
valueM:
以Mb为单位,取值范围:
1-2047。
CLASS(作业类别)
JCL中可选用的作业类别有36个,用字母A-Z及数字0-9表示。
同一类别的作业处于同一输入队列等待执行,并具有相同处理属性 PRTY(为作业分配优先级)
系统根据作业优先级的高低来选择作业执行。
同一级的作业的选择将采用“先进先出”的原则。
取值范围是JES2:
0-15;JES3:
0-14.
TYPRUN:
将输入作业流直接拷贝到系统输出数据集并对其进行输出处理,挂起一个作业,直至某特定事件发生。
对JCL进行语法检查。
格式:
TYPRUN=COPY,=HOLD,=JCLHOLD,=SCAN
COPY:
将输入作业流直接拷贝到系统输出数据集并对其进行输出处理。
HOLD:
请求系统在执行作业之前将其挂起
35、在建立一个VSAM数据集的控制语句有哪些?
(1)NAME:
指明VSAM数据集的名字,命名规则和其它数据集相同。
(2)CYLINDERS:
以柱面为单位分配空间,仅限于磁盘数据集。
Primary指第一次进行分配的数量,secondary指追加的分配数量。
(3) TRACKS :
以磁道为单位进行数据集的分配。
(4)RECORDS:
以记录为单位进行数据集的分配。
(5)FREESPACE:
给KSDS或者VRRDS中的每个CI和CA分别预留多少百分比的空间。
默认为0;
(6)INDEXED:
数据集类型为KSDS
(7)NONINDEXED:
数据集类型为ESDS (8)LINEAR:
数据集类型为LDS
(9)NUMBERED:
数据集类型为RRDS,如果记录平均长度和最大长度不一样,则为VRRDS。
(10)KEYS:
说明数据集中索引的长度和起始位置。
注意,偏移量是从零开始的。
(11)RECORDSIZE:
分别指定记录的平均长度和最大长度。
如果两值相等,则代表数据集的记
录是定长格式。
(12) CONTROLINTERVALSIZE:
范围512-8192字节时,512的倍数。
范围8192-32768字节时,2048的倍数。
(13)VOLUMES:
卷标号
(14)DATA:
代表KSDS数据集的数据部分 (15)INDEX:
代表KSDS数据集的索引部分
40、定义VSAM的时候,参数 KEYS(9 12) 表示什么意思?
(6 0)
答:
KEYS(9,12)表示从记录的12列开始,数9个长度作为VSAM文件的KEY. 比如 KEYS(6 0),就是指从文件开始的6个长度的字段作为KEY 41、在一个JCL作业中有多个作业步,如何从其中的一个作业步开始执行作业,用哪个参数指定?
答:
可以通过在JOB语句里面指定RESTART = STEP5 参数是JCL直接从作业步 5 开始执行。
COBOL
1、简述一下你对COBOL的理解
COBOL(Common Business Oriented Language)COBOL是面向商业通用编程语言。
它是专门为商业数据处理而设计的计算机高级程序语言。
广泛用于数据管理领域。
应用于多个行业如:
银行,证券,金融,制造,等等。
1960年4月正式发表COBOL 61。
目前最新版COBOL 2002。
2、COBOL语言的特点
描述性好,能根据需要描述各种形式的数据。
适合大批量数据处理,能对数据进行严密的组织(运算简单但运算量大,逻辑运算多) 语法接近自然语言(英语),成文自明。
通用性强,移植方便。
格式固定,结构严谨,层次分明。
缺点是比较繁琐。
3、COBOL程序的基本结构:
SYSIN:
编译步的输出SYSLIN(INPUT)
SYSPRINT:
输出MESSAGE的数据集 (OUTPUT) SYSMOD:
输出LOAD 模块数据集,即可执行模块 SYSLIB:
系统和应用子程序数据集
其他:
工作数据集:
SYSUTx; SYSUDUMP,SYSABEND 等 11、标识部的作用:
标识部是COBOL程序的第一部分,用来为程序设定标志,以便识别,每个程序(包括主程序和子程序)都必须有一个名字,系统按名字对程序管理和调用。
标识部下面不设置节,只设置段,部名和段名都从A区开始书写。
12、标识部中的段名有哪些 IDENTIFICATION DIVISION. PROGRAM-ID. 程序名. [AUTHOR. 作者名.]
[INSTALLATION. 公司或部门.]
[DATE-WRITTEN. 编写日期或修改日期.] [DATE-COMPILED. 程序编译日期.] [SECURITY. 保密程度.] 13、PROGRAM-ID 命名规则 只能使用字母,数字和连字符
最少一个字母,不能以连字符开头或结尾
最长30个字符,但通常工作中要求不超过8个字符 书写格式:
PROGRAM-ID. program-name. 14、环境部的作用:
环境部用来说明程序运行的软硬件环境,是COBOL程序中唯一与设备相关的部分,将程序中用到的内部文件与外部设备建立起联系。
15、环境部中有哪两个节,分别是什么,有什么用途 配置节:
CONFIGURATION SECTION.
SOURCE-COMPUTER. computer-name. 标识对该COBOL程序进行编译的计算机。
OBJECT-COMPUTER. computer-name. 标识运行该COBOL程序的计算机。
SPECIAL-NAMES. 用来通知系统把原来规定的设备名或符号改为用户自己指定的名字或符号。
输入输出节:
INPUT-OUTPUT SECTION.
程序中如果用到输入输出文件,就在该节把程序中的内部文件和外部文件(设备)联系起来。
输入输出节包括两个段:
文件控制段,输入输出控制段。
FILE-CO