COBOL经典面试题目.docx

上传人:b****6 文档编号:13119289 上传时间:2023-06-11 格式:DOCX 页数:19 大小:27.33KB
下载 相关 举报
COBOL经典面试题目.docx_第1页
第1页 / 共19页
COBOL经典面试题目.docx_第2页
第2页 / 共19页
COBOL经典面试题目.docx_第3页
第3页 / 共19页
COBOL经典面试题目.docx_第4页
第4页 / 共19页
COBOL经典面试题目.docx_第5页
第5页 / 共19页
COBOL经典面试题目.docx_第6页
第6页 / 共19页
COBOL经典面试题目.docx_第7页
第7页 / 共19页
COBOL经典面试题目.docx_第8页
第8页 / 共19页
COBOL经典面试题目.docx_第9页
第9页 / 共19页
COBOL经典面试题目.docx_第10页
第10页 / 共19页
COBOL经典面试题目.docx_第11页
第11页 / 共19页
COBOL经典面试题目.docx_第12页
第12页 / 共19页
COBOL经典面试题目.docx_第13页
第13页 / 共19页
COBOL经典面试题目.docx_第14页
第14页 / 共19页
COBOL经典面试题目.docx_第15页
第15页 / 共19页
COBOL经典面试题目.docx_第16页
第16页 / 共19页
COBOL经典面试题目.docx_第17页
第17页 / 共19页
COBOL经典面试题目.docx_第18页
第18页 / 共19页
COBOL经典面试题目.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

COBOL经典面试题目.docx

《COBOL经典面试题目.docx》由会员分享,可在线阅读,更多相关《COBOL经典面试题目.docx(19页珍藏版)》请在冰点文库上搜索。

COBOL经典面试题目.docx

COBOL经典面试题目

JCL------JobControlLanguage(作业控制语言)

@JCL代表作业控制语言、JCL是一组控制语句,为需要处理的JOB提供必要的规范。

@JCL每行80个字符,至今未变

@JCL必须包括3个JCL基本语句

作业语句(JOB):

表示一个作业的开始,提供必要的运行参数

执行语句(EXEC):

标识一个作业步的开始,定义本作业步所要执行的程序或过程

数据定义语句(DD):

用于描述应用程序所需要的数据文件。

@/*语句:

表示流内数据结束或调用JES控制语句

@//*语句:

注释语句,从第4列到第80列写出注释内容

@//语句:

空语句,用以标识一个作业的结束

@PROC语句:

流内过程(IN-STREAMPROCEDURE)或编目过程(CATALOGEDPROCEDURE)的起始标记

@PEND语句:

表示一个流内过程的结束

@Command语句:

操作员用这个语句在输入流中写入操作命令

@名字从第3行写,长度必须是1到8个字符

@JOBLIB和STEPLIB的区别

JOBLIB语句是放在JOB语句后面的,作用于所有的作业步,它不能放在编目过程里

STEPLIB语句是放在EXEC语句后面的,只作用于本作业步,但是它可以放在编目过程里。

@一个顺序文件有多少extents,VSAM?

顺序文件为在一个卷上为16extents,VSAM文件为123

@DISP=MOD既可以扩展一个顺序DATASET,也可以创建一个没有存在的DATASET,对于一个

存在的DATASET,记录被追加到末尾。

如果没存在系统将把MOD当成NEW看,提供一个没有使

用的空间参数。

如果空间参数使用过了,系统则终止JOB并且不创建DATASET,MOD可以被用

来扩展一个DATASET的空间。

经常用MOD为一个编目的DATASET指定CATLG的属性,既使它已

经编目了,因此在编目中可以增加任何连续的空间来写记录。

@DATASET怎么从一个STEP传递到另一个STEP?

传递由DISP参数决定,使用DATASET只能被传递到下一个STEP

@//YEARDATDDDSN=JAN.DATA,DISP=SHR

//DDDSN=FEB.DATA,DISP=SHR

//DDDSN=MAR.DATA,DISP=SHR

DATASET怎么级联的?

DATASET级联是通过先写一个一般的DD语句,然后加上一个没有DDNAME的DD语句,

看读取顺序被级联。

@在procs那些JCL语句不能命名

在过程中不允许的JCL语句:

1.JOB,分隔符(/*),或空语句

2.JOBLIB或JOBCATDD语句

3.DD*或DATA语句

4.任何JES2或JES3控制语句

@一个数据集的初次分配是什么

数据集建立时的空间

@一个数据集的主分配和从分配有什么区别

从分配是当要求更多空间时所分配的

@你如何创建一个临时数据集吗?

在哪里可以使用它们?

可以创建临时数据集通过不指定任何DSNAME或指定DSN=&&TEMP。

我们把它们输出到在同意作业步上的工作。

一旦作业完成,这个临时数据集就会被删除。

@甚么是S0C4错误

存储违反错误由多种原因决定,例,READING是一个美有打开的文件,?

@SD37,SB37,SE37abends是甚么

表示磁盘空间不足

SD37没有指定的从分配

SB37终止卷,并且没有根多的卷被指定

SE37已经分配到最大16extents

@甚么是S322abend

需要更多的CPU时间程序已经超过了默认的为该作业分配的CPU时间,陷入一个无限循环..

@TIME参数的意思是甚么?

TIME=1440表示甚么

TIME当程序需要更多的CPU时间时用于克服S322abends

TIME=1440表示作业的运行没有时间限制,即24小时。

@COND=EVEN

即使先前作业步异常终止,本作业步都要执行

@COND=ONLY

只有先前作业步异常终止,本作业步才执行

@如何在一个JCL中检查是否有语法错误

在JOB过程中,TYPERUN=SCAN或JSCAN.

@在PROC中的流数据可以编码吗

No

如何解决这个限制呢

在PROC内编写SYSINDDDUMMY,然后从JCL用流数据覆盖它

@当一个JCL中既定义了JOBLIB,又定义了STEPLIB,则会怎样

JOBLIB被忽略

@在JCL里寻找库的顺序是什么?

首先在STEPLIB或JOBLIB指定的库中找,然后再系统库中找,

例如SYS1。

LINKLIB。

系统库在连接表中指定。

@DCB关键字是什么意思,与它相关的一些关键字有哪些?

DCB是在DD语句中用来描述DATASET的关键字,与其相关的关键字有BLKSIZE,DEN,LRECL。

@BLKSIZE和LRECL有什么不同?

LRECL是指逻辑记录长度。

BLKSIZE指多个记录长度。

@实用程序介绍:

IEFBR14:

什么也不做,返回码0.例如:

DD语句中创建数据集

IEBGENER:

建立顺序数据集,PDS。

打印顺序数据集

IEBCOPY:

拷贝或合并分区数据集和扩展分区数据集

COBOL&COBOLII

Q2)WhatarethedifferentdatatypesavailableinCOBOL?

Q:

COBOL有哪些可用的数据类型

A:

字符型(这里指的是包含字母和数字),字母型,数字型

Q3)WhatdoestheINITIALIZEverbdo?

-GS

Q:

INITIALIZE这个词做了些什么

A:

将字母,字符,数字区域都置成空格(置空),将数字区置0,FILLER和OCCURSDEPENDINGON项不处理

Q4)Whatis77levelusedfor?

Q:

77层有什么作用

A:

基本层数据项,不能用做细分别的层,也不能被细分

Q5)Whatis88levelusedfor?

Q:

88层有什么作用

A:

条件逻辑层

Q6)Whatislevel66usedfor?

Q:

66层有什么作用

A:

重命名层

Q7)WhatdoestheISNUMERICclauseestablish?

Q:

ISNUMERIC这个子句怎么确定(也就是说确定句子的真值)

A:

ISNUMERIC用在字符项,带符号数字,浮点数,不带符号数。

如果目标项只含0~9则返回TRUE。

但是,如果待测项目是个带符号数,那么他就含有0-9还有+和-

Q8)Howdoyoudefineatable/arrayinCOBOL?

A8)ARRAYS.

05ARRAY1PICX(9)OCCURS10TIMES.

05ARRAY2PICX(6)OCCURS20TIMESINDEXEDBYWS-INDEX

Q:

COBOL中怎么建表/数组

A:

如上.

Q:

OCCURS子句能用在第一层吗

A:

不能

Q10)Whatisthedifferencebetweenindexandsubscript?

-GS

Q:

索引和下标有什么区别

A:

下标可以指定数组中任意中位置的元素(只要知道其下标),下标只能是数字型常量或者数字型变量(但是不能在指定的时候修改,如:

A(K+1)这样是不行的,要修改的话要在指定的外部改,如:

ADD1TOK,而索引的话是从表头/数组头开始检索(以BYN的指定检索规律往后滚)

再者,索引只能通过PERFORM,SEARCH和SET来修改,如果要在一个表中使用SEARCH,SEARCHALL,那这个表就要有索引(因为SEARCH,SEARCHALL的参数中指定索引,所以即使其有很多限制还是得用它)

Q11)WhatisthedifferencebetweenSEARCHandSEARCHALL?

-GS

Q:

SERACH和SERACHALL有什么区别

A:

SEARCH是顺序查找

SERACHALL是2叉查找(相信数据结构学过2叉树的都不会陌生),在使用SEARCHALL前表必须有一个递增/递减的KEY,并且表已经按照其KEY值排序了,这样才能使用SEARCHALL

Q12)WhatshouldbethesortingorderforSEARCHALL?

-GS

Q:

为了使用SEARCHALL,存贮顺序是怎么样的

A:

他必须是递增或者是递减的,默认地政。

如果你想在一个递减顺序存贮的表/数组使用搜索的话,那么当定义表/数组的时候你应该加一个DESCENDINGKEY子句(这之前表要已经按指定的顺序排序了)

Q14)Myprogramhasanarraydefinedtohave10items.Duetoabug,Ifindthateveniftheprogramaccessthe

11thiteminthisarray,theprogramdoesnotabend.Whatiswrongwithit?

Q:

我的程序有个数组定义了10项。

因为有个BUG,我发现即使访问第11项,程序也不异常终止。

那是出了什么问题

A:

必须使用编译器的一个选项SSRANGE,如果你想检查数组的超界问题。

默认是NOSSRANGE

Q18)WhatistheuseofEVALUATEstatement?

-GS

Q:

EVALUATE语句有什么作用

A:

EVALUATE就象个CASE语句(多重开关语句,学过C的总知道吧),不同点在于EVALUATE不需要BREAK,一旦匹配就跳出EVALUATE语句了

Q20)HowdoyoucomeoutofanEVALUATEstatement?

-GS

Q:

怎么跳出一条EVALUATE语句

A:

象18题目说的那样,一旦匹配了某一个“WHEN“语句就自动跳出了,不需要什么额外的代码来跳出

Q21)InanEVALUATEstatement,canIgiveacomplexconditiononawhenclause?

Q:

在一个EVALUATE语句的某个WHEN分支中能否再插入复杂的情况(也就是嵌套)

A:

当然可以,当多个参数作为控制变量的时候1个WHEN内部可以嵌套更多的情况

Q22)Whatisascopeterminator?

Giveexamples.

Q:

什么是结束终止符

A:

结束终止符是搭配一些范围指令的,也就是标识一些范围指令的结束。

如:

EVALUATE,END-EVALUATE;IF,END-IF如果没有该结束符,该条语句将终止不了

Q23)Howdoyoudoin-linePERFORM?

-GS

Q:

怎么使用内嵌的PERFORM

A:

PERFORM......

END-PERFORM

所谓内嵌也就是PERFORM被嵌在某些比如循环语句中担当执行主体,同时通过UNTIL来指定结束判定

Q24)Whenwouldyouusein-lineperform?

Q:

什么时候使用内嵌式PERFORM

A:

当该段PERFORM的内容不被其他段用到,只在某些局部代码中(当然PERFORM的主体所用到的参数也都是局部的,例如循环)使用,如果PERFORM主体的代码是一般的(用到了别的程序段的变量),还是使用PERFORMParaname这样的形式比较好(也就是相对与内于PERFORM的外部PERFORM)。

Q25)WhatisthedifferencebetweenCONTINUE&NEXTSENTENCE?

Q:

CONTINUE和NEXTSENTENCE有什么不同

A:

两者比较相似,都是将程序控制权交给下一句,但是用NEXTSENTENCE的时候,只有当碰到句结束符(就是句末的‘.’)才会将执行下句

这道题我用了2个例子测试了一下:

1:

IFTEST-NUMERIC>0

THENNEXTSENTENCE

END-IF

DISPLAY'LINE1'DISPLAY'LINE2'.DISPLAY'LINE3'.(请注意代码中的‘.’号)

结果输出:

LINE3

2:

IFTEST-NUMERIC>0

THENCONTINUE

END-IF

DISPLAY'LINE1'DISPLAY'LINE2'.DISPLAY'LINE3'.

结果输出:

LINE1

LINE2

LINE3

相信已经区别已经比较明显了,NEXTSENTENCE是靠句末的结束符(也就是‘.‘)来判断下一句的,而CONTINUE是通过句头的保留字(这例中是DISPLAY)来判断下一句的

Q26)WhatdoesEXITdo?

Q:

EXIT语句有什么作用

A:

什么都不做,如果用到的话,肯定是作为一段的唯一的一句话,注意:

这里不是子程序中用的EXITPROGRAME

Q27)CanIredefineanX(100)fieldwithafieldofX(200)?

Q:

能不能把X(100)的区域重定义成X(200)

A:

可以,重定义只是相当于把两个区域的首地址放在一起,从上面这个例子也很好理解

A28)CanIredefineanX(200)fieldwithafieldofX(100)?

Q:

能不能把X(200)的区域重定义成X(100)

A:

可以,原因同上

Q32)HowissignstoredinPackedDecimalfieldsandZonedDecimalfields?

Q32)PackedDecimalfields:

Signisstoredasahexvalueinthelastnibble(4bits)ofthestorage.

ZonedDecimalfields:

Asadefault,signisoverpunchedwiththenumericvaluestoredinthelastbite.

Q:

在内部十进制区域和显示十进制区域符号是怎么存贮的

A:

内部十进制是一个数字占4位(半字节),内存中用16进制来存,最后在追加4位作为符号,如-4=01001101(末尾的1101表示负,1100表示正),而我们用于显示的十进制,符号并不占空间,只是在最后一位上标识一下

Q33)Howissignstoredinacomp-3field?

-GS

Q:

COMP-3区怎么存储符号

A:

COMP-3采用的是内部十进制的存储方式,所谓内部十进制就是压缩式的外部十进制存储方式,上题讲过外部十进制每个数值都用1个字节存储,但前4位是存符号的,这样比较浪费存储空间,所以内部十进制的存储方式就用半个字节(4位)存储一个数字,在最后增加4位作为符号(1100(C)为正,1101(D)为负)

Q34)HowissignstoredinaCOMPfield?

-GS

Q:

COMP区怎么存储符号

A:

COMP是采用定点二进制的方式存储数据,也就是将一个十进制的数值转化成二进制再进行存储,因为机器存储的形式也是二进制,所以定点二进制的读取是最快速的,因为COMP型的数据是用做计算(也就是说不用再转化成十进制打印),使用定点二进制将会非常高效。

这样的存储方式符号是保存在最高有效果位上,如:

10=(00001010)₂,

-10=(00011010)₂

Q35)WhatisthedifferencebetweenCOMP&COMP-3?

Q:

COMP和COMP-3什么区别

A:

这之前讲过了,COMP采用定点二进制存储,COMP-3采用内部十进制存储

Q36)WhatisCOMP-1?

COMP-2?

Q:

COMP-1是什么?

什么是COMP-2

A:

其实之所以定义计算型数据(COMP~COMP-3)以区别DISPLAY(能计算,但是要用于打印)是为了考虑效率,因为大家知道文件导入(也就是USER使用的数据)一般是十进制的,而机器存储都是二进制,那么当定义的数据光用来计算不用打印,处于效率考虑会把它定义成COMP型,当然就会衍生出几类COMP以适应不用的数据类型的存储。

很明显,这里COMP-1就是采用内部短浮点(4个字节表示一个数,8位指数部分,24位表示数字部分),COMP-2用内部长浮点型(8个字节表示一个书,16位指数部分,48位表示数字部分)以适应浮点数据的存储,长浮点精确度更高.

Q37)HowdoyoudefineavariableofCOMP-1?

COMP-2?

Q:

怎么定义一个COMP-1型?

COMP-2型

A:

不要用PICTURE描述,因为是确定分配多少内存的,直接用USAGE,如01WS-VARUSAGECOMP-1

Q38)HowmanybytesdoesaS9(7)COMP-3fieldoccupy?

Q:

一个S9(7)的COMP-3型占用多少字节?

A:

占用4字节。

COMP-3用内部十进制存储,S9(7)中的S是要占空间的,符号占4位,7个数字,每个4位(半个字节),所以是(4+7*4)/8=4字节(字节和位的比例不要搞错了哦)

Q39)HowmanybytesdoesaS9(7)SIGNTRAILINGSEPARATEfieldoccupy?

Q:

一个S9(7)SIGNTRAILINGSEPARATE区域占多少字节

A:

这里是每个符号单独分配空间(也就是没个数值用1个字节表示,就象最常用的DISPLAY型的分配方式),算上S的空间,所以是7+1=8字节。

一般情况省略的SIGN子句都是隐含SIGNISTRAILING的

Q40)HowmanybyteswillaS9(8)COMPfieldoccupy?

Q:

一个S9(8)COMP区域占多少字节

A:

如果之前关于COMP的解释听懂了的话,那很显然就是4字节了(定点二进制用2字节存储1~4,4字节存储5~9,……类推,你可以自己推下),如果这块还不懂的可以问我或者查下书

Q41)WhatisthemaximumvaluethatcanbestoredinS9(8)COMP?

Q41)99999999

Q:

S9(8)COMP型最多存储的最大值是什么

A:

除了8个数值外不忽略符号位

Q43)Whatisthemaximumsizeofa01leveliteminCOBOLI?

inCOBOLII?

Q43)InCOBOLII:

16777215

Q:

COBOL1定义的01层最大大小是多少,COBOLII中?

A:

COBOLII中是16777215,没什么说的,自己翻书

Q44)HowdoyoureferencethefollowingfileformatsfromCOBOLprograms:

Q:

COBOL中如何涉及(引用调用)以下这些文件

A:

文件类型这里是COBOL在文件控制区中的文件组织访问形式(SELECT下面那句)这里最好翻翻书或者事例代码反复记忆

定长文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISF,BLOCKCONTAINS0

固定但是不是以块的组织形式用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISF,不要使用BLOCKCONTAINS(因为不是以块的组织形式)

变长文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISV,BLOCK,CONTAINS0.在之后的文件区中的文件描述FD中不要编码记录长度为4字节

变长但是不是以块的组织形式用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISV,同样不要使用BLOCKCONTAINS也不要编码记录长度为4字节(原因同上)

ESDSVSAM文件用ORGANISATIONISSEQUENTIAL

KSDSVSAM文件用ORGANISATIONISINDEXED,RECORDKEYIS,ALTERNATERECORD

作为关键字的RRDS文件用ORGANISATIONISRELATIVE,RELATIVEKEYIS

打印文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISF,BLOCKCONTAINS0.(UseRECFM=FBAinJCLDCB)

Q45)WhataredifferentfileOPENmodesavailableinCOBOL?

Q:

COBOL中有哪些OPEN方式

A:

有INPUT,OUTPUT,I-O,EXTEND这些OPEN模式

Q46)WhatisthemodeinwhichyouwillOPENafileforwriting?

-GS

Q:

当你想OPEN一个文件用来写入的时候,这属于什么方式

A:

OUTPUT,EXTEND方式

Q48)CanyouREWRITEarecordinanESDSfile?

CanyouDELETEarecordfromit?

Q:

能否REWRITE(重写)一个ESDS文件?

能否删除ESDS中的一条记录?

A:

能够重写(但是记录长度必须相同),但是不能删除

Q51)WhatisStaticandDynamiclinking?

Q:

什么是静态和动态连接

A:

在静态连接中,被调用的子程序是连接到调用程序,但是在动态连接中,被调用子程序和调用主程序的可执行模块是都存在的(分开的)。

你可以在连接选项中选择DYNAM或者NODYNAM(就算你选择了NODYNAM,CALL标识符还是回把它自动转换成一个动态调用)。

静态子程序下次被调用时不会再处于其初始状态,除非用INITIAL初始化或者用CANCEL。

动态的都是以初始状态存在的。

Q53)Whatcompileroptionwouldyouusefordynamiclinking?

Q:

如果要动态连接那么要用什么编译选项

A:

DYNAM

Q62)WhatisaninlinePERFORM?

Whenwouldyouuseit?

Anythingelsetosayabou

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2