COBOL经典面试题库中文.docx
- 文档编号:27337679
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:72
- 大小:35.88KB
COBOL经典面试题库中文.docx
《COBOL经典面试题库中文.docx》由会员分享,可在线阅读,更多相关《COBOL经典面试题库中文.docx(72页珍藏版)》请在冰豆网上搜索。
COBOL经典面试题库中文
COBOL经典面试题库
Q1:
列举COBOL的DEVISION
A1:
表记部,环境部,数据部,过程部
Q2:
COBOL有哪些可用的数据种类
A2:
字符型(这里指的是包含字母和数字,字母型,数字型
Q3:
INITIALIZE这个词做了些什么
A3:
将字母,字符,数字地区都置成空格(置空,将数字区置0,FILLER和OCCURS
DEPENDINGON项不办理
Q4:
77层有什么作用
A4:
基本层数据项,不可以用做细分其余层,也不可以被细分
(根源
Q5:
88层有什么作用
A5:
条件逻辑层
Q6:
66层有什么作用
A6:
重命名层
Q7:
ISNUMERIC这个子句怎么确立(也就是说确立句子的真值
A7:
ISNUMERIC用在字符项,带符号数字,浮点数,不带符号数。
假如目标项只
含0~9则返回TRUE。
可是,假如待测项目是个带符号数,那么他就含有0-9还有+和
-
05ARRAY1PICX(9OCCURS10TIMES.
05ARRAY2PICX(6OCCURS20TIMESINDEXEDBYWS-INDEX
Q8:
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值排序了,这样才能使用SEARCHALL
Q12:
为了使用SEARCHALL,存贮次序是怎么样的
A12:
他一定是递加或许是递减的,默认地政。
假如你想在一个递减次序存贮的
表/数组使用搜寻的话,那么当定义表/数组的时候你应当加一个DESCENDINGKEY
子句(这以前表要已经按指定的次序排序了
Q13:
什么是2叉查找
A13:
将你要找的目标项与数组的正中项比较,找到就结束搜寻,没找到则持续如
此循环(比较下一其中值,取哪一半取决于目标值大于中值仍是小于中值PS:
联想2
叉树的查找规律就很好理解,由于所谓的“表“自己也就是数组
Q14:
我的程序有个数组定义了10项。
由于有个BUG,我发现即便接见第11项,
程序也不异样停止。
那是出了什么问题
A14:
一定使用编译器的一个选项SSRANGE,假如你想检查数组的超界问题。
默认是NOSSRANGE
Q15:
怎么在一个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语句了
Q19WhatarethedifferentformsofEVALUATEstatement?
A19
EVALUATEEVALUATESQLCODEALSOFILE-STATUS
WHENA=BANDC=DWHEN100ALSO‘00′
imperativestmtimperativestmt
WHEN(D+X/Y=4WHEN-305ALSO‘32′
imperativestmtimperativestmt
WHENOTHERWHENOTHER
imperativestmtimperativestmt
END-EVALUATEEND-EVALUATE
EVALUATESQLCODEALSOA=BEVALUATESQLCODEALSOTRUE
WHEN100ALSOTRUEWHEN100ALSOA=B
imperativestmtimperativestmt
WHEN-305ALSOFALSEWHEN-305ALSO(A/C=4
imperativestmtimperativestmt
END-EVALUATEEND-EVALUATE
Q20:
怎么跳出一条EVALUATE语句
A20:
象18题目说的那样,一旦般配了某一个“WHEN“语句就自动跳出了,不需要
什么额外的代码来跳出
Q21:
在一个EVALUATE语句的某个WHEN分支中可否再插入复杂的状况(也
就是嵌套
A21:
自然能够,当多个参数作为控制变量的时候1个WHEN内部能够嵌套更多
的状况
Q22:
什么是结束停止符
A22:
结束停止符是搭配一些范围指令的
也就是表记一些范围指令的结束。
如
:
EVALUATE,END-EVALUATE;IF,END-IF
假如没有该结束符
该条语句将停止不
了
Q23:
怎么使用内嵌的PERFORM
A23:
PERFORM
END-PERFORM
所谓内嵌也就是PERFORM被嵌在某些比方循环语句中担当履行主体,同时经过UNTIL来指定结束判断
Q24:
什么时候使用内嵌式PERFORM
A24:
当该段PERFORM的内容不被其余段用到,只在某些局部代码中(自然PERFORM的主体所用到的参数也都是局部的,比如循环使用,假如PERFORM主体
的代码是一般的(用到了其余程序段的变量,仍是使用PERFORMParaname这样的形式比较好(也就是相对与内于PERFORM的外面PERFORM。
Q25:
CONTINUE和NEXTSENTENCE有什么不一样
A25:
二者比较相像,都是将程序控制权交给下一句,可是用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:
EXIT语句有什么作用
A26:
什么都不做,假如用到的话,必定是作为一段的独一的一句话,注意:
这里不是子程序顶用的EXITPROGRAME
01WS-TOPPICX(1
01WS-TOP-REDREDEFINESWS-TOPPICX(2.
IfyouMOVE‘12′to-TOPWS-RED,
DISPLAYWS-TOPwillshow1while
DISPLAYWS-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-2
A34:
其实之因此定义计算型数据(COMP~COMP-3以差别DISPLAY(能计算,但
是要用于打印是为了考虑效率,由于大家知道文件导入(也就是USER使用的数据一
般是十进制的,而机器储存都是二进制,那么当定义的数据光用来计算不用打印,处于效率考虑会把它定义成COMP型,自然就会衍生出几类COMP以适应不用的数据种类的储存。
很明显,这里COMP-1就是采纳内部短浮点(4个字节表示一个数,8位指数部分,24位表示数字部分,COMP-2用内部长浮点型(8个字节表示一个书,16位指数部分,48位表示数字部分以适应浮点数据的储存,长浮点精准度更高.
Q35:
怎么定义一个COMP-1型?
COMP-2型
A35:
不要用PICTURE描绘,由于是确立分派多少内存的,直接用USAGE,如01
WS-VARUSAGECOMP-1
Q36:
一个S9(7的COMP-3型占用多少字节?
A36:
占用4字节。
COMP-3用内部十进制储存,S9(7中的S是要占空间的,符号
占4位,7个数字,每个4位(半个字节,因此是(4+7*4/8=4字节(字节和位的比率不要搞错了哦
Q37:
一个S9(7SIGNTRAILINGSEPARATE地区占多少字节
A37:
这里是每个符号独自分派空间(也就是没个数值用1个字节表示,就象最
常用的DISPLAY型的分派方式,算上S的空间,因此是7+1=8字节。
一般状况省略的SIGN子句都是隐含SIGNISTRAILING的
Q38:
一个S9(8COMP地区占多少字节
A38:
假如以前对于COMP的解说听懂了的话,那很明显就是4字节了(定点二进制用2字节储存1~4,4字节储存5~9,类推,你能够自己推下,假如这块还不懂的能够问我或许查下书
Q39:
S9(8COMP型最多储存的最大值是什么
A39:
除了8个数值外不要忽视符号位
Q40:
COMPSYNC是什么
A40:
使数据项按“自然界限”摆列。
SYNCHRONIZED(简写SYNC语句是同步
布置语句。
不一样的机器会有一个机器字的观点(以一个WORD四个字节举例,这个数字因机器各异,但常常是四个字节,两个机器字之间就是这里说的“自然界限”,也就是说机器每次从内存中取出二个字节长度的数据,可是一个数据项中含有的数值可能超越几个机器字或许未填满机器字,这样连续读取固然比较省空间,可是要引用某些机器字的时候要把多个取出来从头组织(由于一个数值可能超越多个数据字,也可能未满,机器就要判断一个机器字中哪些是前一个数值哪些是下个数值。
假如向左
对齐的话就是想左“自然界限”靠,也就是说未满一个数据字的用空格(对非数字项或许零(数字项填补,填补部分不可以插入其余数据项的内容,同理向右对齐就是向机器字的右“自然界限”靠,近似的在左侧的空余部分填补。
依据自然界限储存相当与牺牲
空间换取时间,存取效率,系统读取的机器字两段填补地区(0或许SPACE之间就是一个数值,效率很高。
Q41:
COBOL1定义的01层最大大小是多少,COBOLII中?
A41:
COBOLII中是16777215,没什么说的,自己翻书
Q42:
COBOL中怎样波及(引用调用以下这些文件
A42:
文件种类这里是COBOL在文件控制区中的文件组织接见形式(SELECT
下边那句这里最好翻翻书或许案例代码频频记忆
定长文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEISF,
BLOCKCONTAINS0
固定可能否是以块的组织形式用ORGANISATIONISSEQUENTIAL.Use
RECORDINGMODEISF,不要使用BLOCKCONTAINS(由于不是以块的组织形式
变长文件用ORGANISATIONISSEQUENTIAL.UseRECORDINGMODEIS
V,BLOCK,CONTAINS0.在以后的文件区中的文件描绘FD中不要编码记录长度为
4字节
变长可能否是以块的组织形式用ORGANISATIONISSEQUENTIAL.Use
RECORDINGMODEISV,相同不要使用BLOCKCONTAINS也不要编码记录长度
为4字节(原由同上
ESDSVSAM文件用ORGANISATIONISSEQUENTIAL
KSDSVSAM文件用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般配错误,文件状态参数就会返回39
Q49:
什么是静态和动向连结
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位的寻址方式取决于REMODE
RMODE(24:
存在虚存中超出16Meglne(MEGLINE是某种单位同意31位的程序调用24位的程序。
(OS/VSCOBOL的PGM只有24位的存址
RMODE(ANY-超出或许不到16Megline
Q51:
假如要动向连结那么要用什么编译选项
A51:
DYNAM
Q52:
SSRANGE,NOSSRANGE是什么
A52:
这在以前已经提到过了,是编译器的一个选项,用来查对数组索引或许下标的超界问题(比方只定义了10个元素程序却使用了第11个元素的状况默认状况下是NOSSRANGE,假如选了NOSSRANGE,那么当索引和下标超界的时候也不会报
RUNTIMEERROR
Q53:
怎么从一个COBOL程序设置一个JCL的返回码
A53:
把你想设置的值MOVE到RETURN-CODE这个存放器中。
RETURN-
CODE存放器并未在这COBOL程序中声明
Q54:
怎么在COBOL程序中提交一个JOB
A54:
把一个JCL用“//xxxxxxxSYSOUT=(A,INTRDR写”到一个DATASET
中,A是输出组,在程序中要将这个DATASET作为OUTPUT(输出翻开。
为这个文件定义一个80字节的记录格式长度
Q55:
OS/VSCOBOL和VSCOBOLII有什么差别
A55:
OS/VSCOBOL的PGM只好是24位地点的,VSCOBOLII的PGM既能24
位又能31位
报表writer只支持OS/VSCOBOL
USAGEISPOINTER只支持VSCOBOLII
REFERENCE(感觉翻成“引用”适合点改正,比方:
WS-VAR只支持VSCOBOLII
只有COBOLII有EVALUATE语句
范围停止符只有COBOLII中才有
OS/VSCOBOL是依据ANSI74标准,VSCOBOLII是依据ANSI85标准
VSCOBOLII程序之间同意CICS调用
Q56:
成立一个COBOL可履行程序要经过哪些步骤
A56:
DB2预编译(假如内含SQL,CICS翻译器(假如是CICSPGM,COBOL
编译器,连结编写器,假如是DB2程序,要成立绑定DBRM的PLAN
Q57:
能不可以在VSCOBOLII的PGM中调用OSVSCOBOL的PGM?
A57:
在没有CICS的环境中,是能够的,在CICS环境中不可以
Q58:
COBOL和COBOLII什么差别
A58:
有五点不一样,COBOLII支持构造变为(经过PERFORMS和一系列范围停止
符;COBOLII引进了些新的特征(如EVALUATE,SETTOTRUE,CALL,BY
CONTEXT,等等,COBOLII同意程序编址在16MB行上;COBOLII不支持一些旧的特征(如READYTRACE,REPORT-WRITER,ISAM,ETC,以及支持增强版CICS
Q59:
什么是范围停止符
A59:
一个范围停止符和其以前的动词配套使用,如,IF和END-IF,以致于前置动
词和停止符一同作用。
COBOLII其余一般的词是READ,PERFORM,EVALUATE,SEARCH和STRING
Q60:
PERFORM行有什么作用?
什么时候使用?
简单介绍下它
A60:
PERFORM和END-PERFORM配套使用,全部COBOLII程序语句都在这两重点字之间。
这和COBOL的PERFORM或许PERFORMTHRU一段是相同的意思。
在PERFORM的语句中只需没有内部GOTO就向来履行直到遇到EXIT。
内行PERFORM语句中为了可读型不可以超出一页的长度,他常常会引用到其余
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- COBOL 经典 面试 题库 中文