COBOL经典面试题库中文.docx

上传人:b****6 文档编号:7107672 上传时间:2023-01-18 格式:DOCX 页数:15 大小:27.47KB
下载 相关 举报
COBOL经典面试题库中文.docx_第1页
第1页 / 共15页
COBOL经典面试题库中文.docx_第2页
第2页 / 共15页
COBOL经典面试题库中文.docx_第3页
第3页 / 共15页
COBOL经典面试题库中文.docx_第4页
第4页 / 共15页
COBOL经典面试题库中文.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

COBOL经典面试题库中文.docx

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

COBOL经典面试题库中文.docx

COBOL经典面试题库中文经典面试题库中文COBOL经典面试题库Q1:

列举COBOL的DEVISIONA1:

标识部,环境部,数据部,进程部Q2:

COBOL有哪些可用的数据类型A2:

字符型(那个地址指的是包括字母和数字),字母型,数字型Q3:

INITIALIZE那个词做了些什么A3:

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

77层有什么作用A4:

大体层数据项,不能用做细别离的层,也不能被细分(来源:

)Q5:

88层有什么作用A5:

条件逻辑层Q6:

66层有什么作用A6:

重命名层Q7:

ISNUMERIC那个子句怎么确信(也确实是说确信句子的真值)A7:

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

若是目标项只含09那么返回TRUE。

可是,若是待测项目是个带符号数,那么他就含有0-9还有+和-05ARRAY1PICX(9)OCCURS10TIMES.05ARRAY2PICX(6)OCCURS20TIMESINDEXEDBYWS-INDEXQ8:

COBOL中怎么建表/数组A8:

如上.Q9:

OCCURS子句能用在第一层吗A9:

不能Q10:

索引和下标有什么区别A10:

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

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

ADD1TOK,而索引的话是从表头/数组头开始检索(以BYN的指定检索规律往后滚)再者,索引只能通过PERFORM,SEARCH和SET来修改,若是要在一个表中利用SEARCH,SEARCHALL,那那个表就要有索引(因为SEARCH,SEARCHALL的参数中指定索引,因此即便其有很多限制仍是得用它)Q11:

SERACH和SERACHALL有什么区别A11:

SEARCH是顺序查找SERACHALL是2叉查找(相信数据结构学过2叉树的都可不能陌生),在利用SEARCHALL前表必需有一个递增/递减的KEY,而且表已经依照其KEY值排序了,如此才能利用SEARCHALLQ12:

为了利用SEARCHALL,存贮顺序是怎么样的A12:

他必需是递增或是递减的,默许地政。

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

什么是2叉查找A13:

将你要找的目标项与数组的正中项比较,找到就终止搜索,没找到那么继续如此循环(比较下一个中值),取哪一半取决于目标值大于中值仍是小于中值PS:

联想2叉树的查找规律就专门好明白得,因为所谓的“表“本身也确实是数组Q14:

我的程序有个数组概念了10项。

因为有个BUG,我发觉即便访问第11项,程序也不异样终止。

那是出了什么问题A14:

必需利用编译器的一个选项SSRANGE,若是你想检查数组的超界问题。

默许是NOSSRANGEQ15:

怎么在一个COBOL程序中排序?

给出排序文件的概念,排序语法和意思A15:

语法确实是SORTfile-1ONASCENDING/DESCENDINGKEYkey.USINGfile-2GIVINGfile-3.USING后程序的输入接口,那个地址能够替换成一个输出进程,也确实是说写一个进程往USING那个接口中导数据(要在那个进程中READ,ATEND,),那个进程在将数据释放到执行排序的文件中之前执行,GIVING后是输出借口,用法类似。

此例中输入文件是file-2输出文件是file3(如此个文件必需在文件区顶用FD和在文件操纵顶用到SELECT)真正执行排序的file-1,那个地址需要注意的是file-1中的文件区不能用FD,应该用SD,file-2和3仍是一样(用FD),具体能够看一下书上的例子Q16:

怎么在JCL中概念一个排序文件来跑那个COBOL程序A16:

用SORTWK01,SORTWK02,.作为DATASETNAME。

用多少取决于你要排序的数量,可是至少3个。

Q17:

执行一个区和一个段有什么区别A17:

简单来讲的话确实是区的概念比段大,执行一个区就要执行其内部所有段,执行段的话只执行该段。

Q18:

EVALUATE语句有什么作用A18:

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

A19)EVALUATEEVALUATESQLCODEALSOFILE-STATUSWHENA=BANDC=DWHEN100ALSO00imperativestmtimperativestmtWHEN(D+X)/Y=4WHEN-305ALSO32imperativestmtimperativestmtWHENOTHERWHENOTHERimperativestmtimperativestmtEND-EVALUATEEND-EVALUATEEVALUATESQLCODEALSOA=BEVALUATESQLCODEALSOTRUEWHEN100ALSOTRUEWHEN100ALSOA=BimperativestmtimperativestmtWHEN-305ALSOFALSEWHEN-305ALSO(A/C=4)imperativestmtimperativestmtEND-EVALUATEEND-EVALUATEQ20:

怎么跳出一条EVALUATE语句A20:

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

在一个EVALUATE语句的某个WHEN分支中可否再插入复杂的情形(也确实是嵌套)A21:

固然能够,当多个参数作为操纵变量的时候1个WHEN内部能够嵌套更多的情形Q22:

什么是终止终止符A22:

终止终止符是搭配一些范围指令的,也确实是标识一些范围指令的终止。

如:

EVALUATE,END-EVALUATE;IF,END-IF若是没有该终止符,该条语句将终止不了Q23:

怎么利用内嵌的PERFORMA23:

PERFORMEND-PERFORM所谓内嵌也确实是PERFORM被嵌在某些比如循环语句中担当执行主体,同时通过UNTIL来指定终止判定Q24:

何时利用内嵌式PERFORMA24:

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

Q25:

CONTINUE和NEXTSENTENCE有什么不同A25:

二者比较相似,都是将程序操纵权交给下一句,可是用NEXTSENTENCE的时候,只有当碰着句终止符(确实是句末的.)才会将执行下句这道题我用了2个例子测试了一下:

1:

IFTEST-NUMERIC0THENNEXTSENTENCEEND-IFDISPLAYLINE1DISPLAYLINE2.DISPLAYLINE3.(请注意代码中的.号)结果输出:

LINE32:

IFTEST-NUMERIC0THENCONTINUEEND-IFDISPLAYLINE1DISPLAYLINE2.DISPLAYLINE3.结果输出:

LINE1LINE2LINE3相信已经区别已经比较明显了,NEXTSENTENCE是靠句末的终止符(也确实是.)来判定下一句的,而CONTINUE是通过句头的保留字(这例中是DISPLAY)来判定下一句的Q26:

EXIT语句有什么作用A26:

什么都不做,若是用到的话,确信是作为一段的唯一的一句话,注意:

那个地址不是子程序顶用的EXITPROGRAME01WS-TOPPICX

(1)01WS-TOP-REDREDEFINESWS-TOPPICX

(2).IfyouMOVE12toWS-TOP-RED,DISPLAYWS-TOPwillshow1whileDISPLAYWS-TOP-REDwillshow12.Q27:

能不能把X(100)的区域重概念成X(200)A27:

能够,重概念只是相当于把两个区域的首地址放在一路,从上面那个例子也专门好明白得Q28:

能不能把X(200)的区域重概念成X(100)A28:

能够,缘故同上Q29:

怎么解决SOC-7错误A29:

大体上你要看一下一些比较奇怪的数据,很多致使SOC7的缘故都是因为数据项的初始化。

第一检查所有的可能性。

某些功能可能提供一个空间用来存贮那些运行时刻ABEND,而且提供最近一次运行时刻ABEND的偏移量的说明(也确实是位于队列中的位置),检查编译器的输出XREF队列以取得一些关键字。

然后你就能够看下源代码找出BUG。

为了捕捉一些运行时刻的信息,你需要在JCL中建一个DATASET(象SYSABOUT如此的),若是这些都没用,那么再审查一下ERROR显现的位置判定一下缘故。

有些软件安装了会提供批处置程序调试工具,那么能够就能够够用这些工具了。

PS:

以上大意确实是说SOC-7那个错误多半是因为数据项初始化造成的,然后你应该到运行后编译器的返回信息中去找这些ERROR显现的地址(咱们经常使用的话应该确实是走查LOG),查的时候多注意下数据项的初始化问题。

Q30:

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

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

COMP-3区怎么存储符号A31:

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

COMP区怎么存储符号A32:

COMP是采纳定点二进制的方式存储数据,也确实是将一个十进制的数值转化成二进制再进行存储,因为机械存储的形式也是二进制,因此定点二进制的读取是最快速的,因为COMP型的数据是用做计算(也确实是说不用再转化成十进制打印),利用定点二进制将会超级高效。

如此的存储方式符号是保留在最高有成效位上,如:

10=(00001010),-10=(00011010)Q33:

COMP和COMP-3什么区别A33:

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

COMP-1是什么?

什么是COMP-2A34:

其实之因此概念计算型数据(COMPCOMP-3)以区别DISPLAY(能计算,可是要用于打印)是为了考虑效率,因为大伙儿明白文件导入(也确实是USER利用的数据)一样是十进制的,而机械存储都是二进制,那么当概念的数据光用来计算不用打印,处于效率考虑会把它概念成COMP型,固然就会衍生出几类COMP以适应不用的数据类型的存储。

很明显,那个地址COMP-1确实是采纳内部短浮点(4个字节表示一个数,8位指数部份,24位表示数字部份),COMP-2用内部长浮点型(8个字节表示一个书,16位指数部份,48位表示数字部份)以适应浮点数据的存储,长浮点精准度更高.Q35:

怎么概念一个COMP-1型?

COMP-2型A35:

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

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

A36:

占用4字节。

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

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

那个地址是每一个符号单独分派空间(也确实是没个数值用1个字节表示,就象最经常使用的DISPLAY型的分派方式),算上S的空间,因此是7+1=8字节。

一样情形省略的SIGN子句都是隐含SIGNISTRAILING的Q38:

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

若是之前关于COMP的说明听懂了的话,那很显然确实是4字节了(定点二进制用2字节存储14,4字节存储59,类推,你能够自己推下),若是这块还不懂的能够问我或查下书Q39:

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

除8个数值外不要忽略符号位Q40:

COMPSYNC是什么A40:

使数据项按“自然边界”排列。

SYNCHRONIZED(简写SYNC)语句是同步安置语句。

不同的机械会有一个机械字的概念(以一个WORD四个字节举例,那个数字因机械各异,但往往是四个字节),两个机械字之间确实是那个地址说的“自然边界”,也确实是说机械每次从内存中掏出二个字节长度的数据,可是一个数据项中含有的数值可能跨越几个机械字或未填满机械字,如此持续读取尽管比较省空间,可是要引用某些机械字的时候要把多个拿出来从头组织(因为一个数值可能跨越多个数据字,也可能未满,机械就要判定一个机械字中哪些是前一个数值哪些是下个数值)。

若是向左对齐的话确实是想左“自然边界”靠,也确实是说未满一个数据字的用空格(对非数字项)或零(数字项)填充,填充部份不能插入其他数据项的内容,同理向右对齐确实是向机械字的右“自然边界”靠,类似的在左侧的空余部份填充。

依照自然边界存储相当与捐躯空间换取时刻,存取效率,系统读取的机械字两段填充区域(0或SPACE)之间确实是一个数值,效率很高。

Q41:

COBOL1概念的01层最大大小是多少,COBOLII中?

A41:

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

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

文件类型那个地址是COBOL在文件操纵区中的文件组织访问形式(SELECT下面那句)那个地址最好翻翻书或事例代码反复经历定长文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISF,BLOCKCONTAINS0固定可是不是以块的组织形式用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISF,不要利用BLOCKCONTAINS(因为不是以块的组织形式)变长文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISV,BLOCK,CONTAINS0.在以后的文件区中的文件描述FD中不要编码记录长度为4字节变长可是不是以块的组织形式用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISV,一样不要利用BLOCKCONTAINS也不要编码记录长度为4字节(缘故同上)ESDSVSAM文件用ORGANISATIONISSEQUENTIALKSDSVSAM文件用ORGANISATIONISINDEXED,RECORDKEYIS,ALTERNATERECORD作为关键字的RRDS文件用ORGANISATIONISRELATIVE,RELATIVEKEYIS打印文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISF,BLOCKCONTAINS0.(UseRECFM=FBAinJCLDCB)PS:

这道题是论述COBOL怎么挪用外部的各类文件,在文件操纵区和文件区中要概念的一些关键字,有咱们最熟悉的FB(定长)和VB(变长)(固然咱们的前提是这两类都是以BLOCK(块)为单位的)可是也有不为咱们所知的文件类型(可能显现的情形很少,可是也确实存在,比如编译出的MODULE放的LOAD必需是V文件(文件组织形式是V)固然在不写ORGANISATION这些关键字的时候都是默以为FB的,可是在处置一些复杂数据(比如VSAM数据)还有和外部文件(比如JCL)的连接的时候这些保留字都是要指定的,关于更具体的仍是要翻书增强经历Q43:

COBOL中有哪些OPEN方式A43:

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

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

OUTPUT,EXTEND方式Q45:

JCL中怎么概念在子程序中要挪用的文件A45:

就象要在主程序中挪用一样利用DD语句Q46:

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

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

A46:

能够重写(可是记录长度必需相同),可是不能删除Q47:

文件状态92是什么?

A47:

是文件状态的一个返回码,是逻辑错误的意思,比如,打开了一个文件用来导入数据可是又想将其他数据写入那个文件Q48:

文件状态39是什么A48:

当你的COBOL的逻辑记录长度(LRECL)或块长度(BLOCKSIZE)或记录形式(RECFM)和JCL匹配错误,文件状态参数就会返回39Q49:

什么是静态和动态连接A49:

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

你能够在连接选项当选择DYNAM或NODYNAM(就算你选择了NODYNAM,CALL标识符仍是回把它自动转换成一个动态挪用)。

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

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

Q50:

AMODE(24),AMODE(31),RMODE(24)和RMODE(ANY)是什么?

(仅适用于MVS/ESA企业治理器)A50:

是编译/连接的选项卡。

大体上AMODE表示寻址方式,RMODE表示贮存方式。

AMODE(24):

24位的寻址方式AMODE(31):

31位的寻址方式AMODE(ANY):

是用24位仍是31位的寻址方式取决于REMODERMODE(24):

存在虚存中超过16Meglne(MEGLINE是某种单位)许诺31位的程序挪用24位的程序。

(OS/VSCOBOL的PGM只有24位的存址)RMODE(ANY)-超过或不到16MeglineQ51:

若是要动态连接那么要用什么编译选项A51:

DYNAMQ52:

SSRANGE,NOSSRANGE是什么A52:

这在之前已经提到过了,是编译器的一个选项,用来查对数组索引或下标的超界问题(比如只概念了10个元素程序却利用了第11个元素的情形)默许情形下是NOSSRANGE,若是选了NOSSRANGE,那么当索引和下标超界的时候也可不能报RUNTIMEERRORQ53:

怎么从一个COBOL程序设置一个JCL的返回码A53:

把你想设置的值MOVE到RETURN-CODE那个寄放器中。

RETURN-CODE寄放器并未在这COBOL程序中申明Q54:

怎么在COBOL程序中提交一个JOBA54:

把一个JCL用“转移程序操纵权给下句,CONTINUE碰着范围终止符就转移程序操纵权给下句。

因此用CONTINUE比用NEXTSENTENCE平安(即便忘记写.也没有关系)。

Q62:

COBOLII中的EVALUATE相当于取代了COBOL中的什么结构A62:

EVALUATE相当于取代了COBOL中的IFTHENELSE的嵌套语句Q63:

abovetheline和belowtheline有什么意义A63:

在IBM推出MVS/XA体系之前,80年代的程序虚拟存储都限制在16megs.程序以24位的方式仅在一个16Mb的地址空间中被编译,就好象那些程序被保留在虚存中一样。

利用COBOLII编码以后,以31位方式的编码能超过16位的界限。

(也确实是说COBOLII之前是“在此界限之下”的,COBOLII以后“在这接线之上”,这通常容易使一些主机程序员弄混)Q64:

COBOLII从COBOL中舍弃了哪些A64:

部份列表(指COBOL中有的,COBOLII中没有的部份语句):

REMARKS,NOMINALKEY,PAGE-COUNTER,CURRENT-DAY,TIME-OF-DAY,STATE,FLOW,COUNT,EXAMINE,EXHIBIT,READYTRACEandRESETTRACE.Q65:

通过比较和其他挪用的区别说明下CONTEXT挪用A65:

传入CONTEXT挪用的参数是能避免被其他程序挪用修改的。

一般的挪用,别的程序能够修改Q66:

LINKAGESECTION是什么A66:

“连接区”是一个被挪用程序连接或映射到挪用程序工作单元的程序部份。

被挪用程序中一些共享项被概念在“连接区”中(想象下子程序,主程序是没有连接区的)Q67:

在表的概念中,下表和索引有什么区别A67:

(这也在前面的题目也说明过了,那个地址仅对文字作翻译。

)下表是工作单元数据概念项,具有代表性的确实是将一个常量移到一个PIC999下标中,通过ADDTO和SUBTRACTFROM来增减。

索引是一个存在在程序工作单元之外的记录项。

用SET设置一个索引的值,并用UPBY和DOWNBY设置步长来增减Q68:

若是通过连接传递一个表,利用哪个更优-下标或索引?

A68:

注意!

是不能通过连接传递索引的。

索引并非是挪用程序工作单元的一部份。

这点常常弄错Q69:

说明下内部排序和外部排序的区别和内部排序的语法A69:

外部排序不是COBOL,他是通过JCL和PGM=SORT的形式排序的。

这种方式不引用代码却容易明白得。

内部排序用两中语法:

1)USING,GIVING,这种方式比得上外边排序,不用额外的文件处置。

2)INPUTPROCEDURE,OUTPUTPROCEDURE,这种方式适用用文件操作,而且在排序前后许诺数据操作Q70:

COMP和COMP-3有什么区别?

说明下COBOL中的USAGE语句A70:

COMP用的是定点二进制,COMP-3用的是内部十进制(紧缩)。

其他的不同USAGE语句确实是二进制和DISPLAY。

DISPLAY是默许情形。

Q71:

何时范围终止符强制执行A71:

范围终止符在行内PERFORM和EVALUATE语句中强制执行。

为了程序的可读性,编码标准都建议写上这两个终止符。

(也确实是说P

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

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1