




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、COBOL经典面试题目JCLJobControlLanguage(作业控制语言)JCL代表作业控制语言、JCL是一组控制语句,为需要处理的JOB提供必要的规范。JCL每行80个字符,至今未变JCL必须包括3个JCL基本语句作业语句(JOB):表示一个作业的开始,提供必要的运行参数执行语句(EXEC):标识一个作业步的开始,定义本作业步所要执行的程序或过程数据定义语句(DD):用于描述应用程序所需要的数据文件。/*语句:表示流内数据结束或调用JES控制语句/*语句:注释语句,从第4列到第80列写出注释内容/语句:空语句,用以标识一个作业的结束PROC语句:流内过程(IN-STREAM*RE)或编
2、目过程(*ED*RE)的起始标记PEND语句:表示一个流内过程的结束Command语句:操作员用这个语句在输入流中写入操作命令名字从第3行写,长度必须是1到8个字符JOBLIB和*的区别JOBL旧语句是放在JOB语句后面的,作用于所有的作业步,它不能放在编目过程里*语句是放在EXEC语句后面的,只作用于本作业步,但是它可以放在编目过程里。一个顺序文件有多少extents,VSAM?顺序文件为在一个卷上为16extents,VSAM文件为123DISP=MOD既可以扩展一个顺序*,也可以创建一个没有存在的*,对于一个存在的*,记录被追加到末尾。如果没存在系统将把MOD当成NEW看,提供一个没有使
3、用的空间参数。如果空间参数使用过了,系统则终止JOB并且不创建*,MOD可以被用来扩展一个*的空间。经常用MOD为一个编目的*指定CATLG的属性,既使它已经编目了,因此在编目中可以增加任何连续的空间来写记录。*怎么从一个STEP传递到另一个STEP传递由DISP参数决定,使用*只能被传递到下一个STEP/*DDDSN=JAN.DATA,DISP=SHR/DDDSN=FEB.DATA,DISP=SHR/DDDSN=MAR.DATA,DISP=SHR*怎么级联的?*级联是通过先写一个一般的DD语句,然后加上一个没有DDNAME的DD语句,看读取顺序被级联。在procs那些JCL语句不能命名在过程
4、中不允许的JCL语句:1. JOB,分隔符(/*),或空语句2. JOBLIB或JOBCATDD语句3. DD*或DATA语句4. 任何JES2或JES3控制语句一个数据集的初次分配是什么数据集建立时的空间一个数据集的主分配和从分配有什么区别从分配是当要求更多空间时所分配的你如何创建一个临时数据集吗?在哪里可以使用它们?可以创建临时数据集通过不指定任何DSNAME或指定DSN=TEMP。我们把它们输出到在同意作业步上的工作。一旦作业完成,这个临时数据集就会被删除。甚么是S0C4错误存储违反错误由多种原因决定,例,*是一个美有打开的文件,?SD37,SB37,SE37abends是甚么表示磁盘空
5、间不足SD37没有指定的从分配SB37终止卷,并且没有根多的卷被指定SE37已经分配到最大16extents甚么是S322abend需要更多的CPU时间程序已经超过了默认的为该作业分配的CPU时.TIME参数的意思是甚么?TIME=1440表示甚么TIME当程序需要更多的CPU时间时用于克服S322abendsTIME=1440表示作业的运行没有时间限制,即24小时。COND=EVEN即使先前作业步异常终止,本作业步都要执行COND=ONLY只有先前作业步异常终止,本作业步才执行如何在一个JCL中检查是否有语法错误在JOB过程中,*=SCAN或JSCAN.在PROC中的流数据可以编码吗No如何
6、解决这个限制呢在PROC内编写SYSINDDDUMMY,然后从JCL用流数据覆盖它当一个JCL中既定义了JOBLIB,又定义了*,则会怎样JOBLIB被忽略在JCL里寻找库的顺序是什么?首先在*或JOBL旧指定的库中找,然后再系统库中找,例如SYS1。*。系统库在连接表中指定。DCB关键字是什么意思,与它相关的一些关键字有哪些?DCB是在DD语句中用来描述*的关键字,与其相关的关键字有*和lrecl有什么不同?LRECL是指逻辑记录长度。*指多个记录长度。实用程序介绍:*:什么也不做,返回码0.例如:DD语句中创建数据集*r:建立顺序数据集,pds。打印顺序数据集*:拷贝或合并分区数据集和扩展
7、分区数据集COBOLCOBOLIIQ2)WhatarethedifferentdatatypesavailableinCOBOL?Q:COBOL有哪些可用的数据类型A:字符型(这里指的是包含字母和数字),字母型,数字型Q3)Whatdoesthe*IZEverbdo?-GSQ:*IZE这个词做了些什么A:将字母,字符,数字区域都置成空格(置空),将数字区置0,FILLER和OCCURS*NGON项不处理Q4)Whatis77levelusedfor?Q:77层有什么作用A:基本层数据项,不能用做细分别的层,也不能被细分Q5)Whatis88levelusedfor?Q:88层有什么作用A:条件
8、逻辑层Q6)Whatislevel66usedforA:重命名层Q7)WhatdoestheIS*clauseestablish?Q:IS*这个子句怎么确定(也就是说确定句子的真值)A:IS*用在字符项,带符号数字,浮点数,不带符号数。如果目标项只含09则返回TRUE但是,如果待测项目是个带符号数,那么他就含有0-9还有+和-Q8)Howdoyoudefineatable/arrayinCOBOL?A8)ARRAYS.05ARRAY1PICX(9)OCCURS10TIMES.05ARRAY2PICX(6)OCCURS20TIMES*BYWS-INDEXQ:COBOL中怎么建表/数组A:如上.Q
9、:OCCURS子句能用在第一层吗A:不能Q10)Whatisthedifferencebetweenindexandsubscript?-GSQ:索引和下标有什么区别A:下标可以指定数组中任意中位置的元素(只要知道其下标),下标只能是数字型常量或者数字型变量(但是不能在指定的时候修改,如:A(K+1)这样是不行的,要修改的话要在指定的外部改,如:ADD1TOK,而索引的IS是从表头/数组头开始检索(以BYN的指定检索规律往后滚)再者,索引只能通过*,SEARCH和SET来修改,如果要在一个表中使用SEARCH,SEARCHALL那这个表就要有索弓I(因为SEARCH,SEARCHALL的参数中
10、指定索引,所以即使其有很多限制还是得用它)Q11)WhatisthedifferencebetweenSEARCHandSEARCHALL?-GSQ:SERACH和SERACHALL有什么区别A:SEARCH是顺序查找SERACHALL是2叉查找(相信数据结构学过2叉树的都不会陌生),在使用SEARCHALL前表必须有一个递增/递减的KEY,并且表已经按照其KEY值排序了,这样才能使用SEARCHALLQ12)WhatshouldbethesortingorderforSEARCHALL?-GSQ:为了使用SEARCHALL存贮顺序是怎么样的A:他必须是递增或者是递减的,默认地政。如果你想在一
11、个递减顺序存贮的表/数组使用搜索的话,那么当定义表/数组的时候你应该加一个*INGKEY子句(这之前表要已经按指定的顺序排序了)Q14)Myprogramhasanarraydefinedtohave10items.Duetoabug,Ifindthateveniftheprogramaccessthe11thiteminthisarray,theprogramdoesnotabend.Whatiswrongwithit?Q:我的程序有个数组定义了10项。因为有个BUG,我发现即使访问第11项,程序也不异常终止。那是出了什么问题A:必须使用编译器的一个选项*,如果你想检查数组的超界问题。默认是
12、*GEQ18)Whatistheuseof*Estatement?-GSA:*E就象个CASE语句(多重开关语句,学过C的总知道吧),不同点在于*E不需要BREAK,一旦匹配就跳出*E语句了Q20)Howdoyoucomeoutofan*Estatement?-GSQ:怎么跳出一条*E语句A:象18题目说的那样,一旦匹配了某一个“WHEN吾句就自动跳出了,不需要什么额外的代码来跳出Q21)Inan*Estatement,canIgiveacomplexconditiononawhenclause?Q:在一个*语句的某个WHEN分支中能否再插入复杂的情况(也就是嵌套)A:当然可以,当多个参数作为
13、控制变量的时候1个WHEN内部可以嵌套更多的情况Q22)Whatisascopeterminator?Giveexamples.Q:什么是结束终止符A:结束终止符是搭配一些范围指令的,也就是标识一些范围指令的结束。如:*E,END-*E;IF,END-IF如果没有该结束符,该条语句将终止不了Q23)Howdoyoudoin-line*?-GSQ:怎么使用内嵌的*A:*.</until><sentences></sentences>*所谓内嵌也就是*被嵌在某些比如循环语句中担当执行主体,同时通过UNTIL来指定结束判定Q24)Whenwouldyouusein
14、-lineperform?Q:什么时候使用内嵌式*A:当该段*的内容不被其他段用到,只在某些局部代码中(当然*的主体所用到的参数也都是局部的,例如循环)使用,如果*主体的代码是一般的(用到了别的程序段的变量),还是使用*Paraname这样的形式比较好(也就是相对与内于*的外部*)。Q25)Whatisthedifferencebetween*ENEXT*E?Q:*E和NEXT*E有什么不同A:两者比较相似,都是将程序控制权交给下一句,但是用NEXT*E的时候,只有当碰到句结束符(就是句末的)才会将执行下句.这道题我用了2个例子测试了一下:1 :IFTEST-*0THENNEXT*EEND-I
15、F*"LINE1"*"LINE2".*"LINE3”(请注意代码中的号)结果输出:LINE32 :IFTEST-*0THEN*EEND-IF* IILINE1"* IILINE2"(* IILINE3"(结果输出:LINE1LINE2LINE3相信已经区别已经比较明显了,NEXT*E是靠句末的结束符(也就是)来判断下一句的,而.*E是通过句头的保留字(这例中是*)来判断下一句的Q26)WhatdoesEXITdo?Q:EXIT语句有什么作用A:什么都不做,如果用到的话,肯定是作为一段的唯一的一句话,注意:这里不是子
16、程序中用的EXIT*EQ27)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:Signissto
17、redasahexvalueinthelastnibble(4bits)ofthestorage.ZonedDecimalfields:Asadefault,signisoverpunchedwiththenumericvaluestoredinthelastbite.Q:在内部十进制区域和显示十进制区域符号是怎么存贮的A:内部十进制是一个数字占4位(半字节),内存中用16进制来存,最后在追加4位作为符号,如-4=*-*(末尾的1101表示负,1100表示正),而我们用于显示的十进制,符号并不占空间,只是在最后一位上标识一下Q33)Howissignstoredinacomp-3field?-
18、GSQ:COMP-3区怎么存储符号A:COMP-3采用的是内部十进制的存储方式,所谓内部十进制就是压缩式的外部十进制存储方式,上题讲过外部十进制每个数值都用1个字节存储,但前4位是存符号的,这样比较浪费存储空间,所以内部十进制的存储方式就用半个字节(4位)存储一个数字,在最后增加4位作为符号(1100(C)为正,1101(D)为负)Q34)HowissignstoredinaCOMPfield?-GSQ:COMP区怎么存储符号A:COMP是采用定点二进制的方式存储数据,也就是将一个十进制的数值转化成二进制再进行存储,因为机器存储的形式也是二进制,所以定点二进制的读取是最快速的,因为COMP型的
19、数据是用做计算(也就是说不用再转化成十进制打印),使用定点二进制将会非常高效。这样的存储方式符号是保存在最高有效果位上,如:10=(*-*)?,COMP-3 ?-10=(*-*)?Q35)WhatisthedifferencebetweenCOMPQ:COMP和COMP-3什么区别A:这之前讲过了,COMP采用定点二进制存储,COMP-3采用内部十进制存储Q36)WhatisCOMP-1?COMP-2?Q:COMP-1是什么?什么是COMP-2A:其实之所以定义计算型数据(COMPCOMP-3)以区别*(能计算,但是要用于打印)是为了考虑效率,因为大家知道文件导入(也就是USER使用的数据)一
20、般是十进制的,而机器存储都是二进制,那么当定义的数据光用来计算不用打印,处于效率考虑会把它定义成COMP型,当然就会衍生出几类COMP以适应不用的数据类型的存储。很明显,这里COMP-1就是采用内部短浮点(4个字节表示一个数,8位指数部分,24位表示数字部分),COMP-2用内部长浮点型(8个字节表示一个书,16位指数部分,48位表示数字部分)以适应浮点数据的存储,长浮点精确度更高.Q37)HowdoyoudefineavariableofCOMP-1?COMP-2?Q:怎么定义一个COMP-1型?COMP-2型A:不要用*描述,因为是确定分配多少内存的,直接用USAGE,如01WS-VARU
21、SAGECOMP-1Q38)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)SIGN*G*Efieldoccupy?Q:一个S9(7)SIGN*G*E区域占多少字节A:这里是每个符号单独分配空间(也就是没个数值用1个字节表示,就象最常用的*型的分配方式),算上S的空间,所以是7+1=8字
22、节。一般情况省略的SIGN子句都是隐含SIGNIS*G的Q40)HowmanybyteswillaS9(8)COMPfieldoccupy?Q:一个S9(8)COMP区域占多少字节A:如果之前关于COMP的解释听懂了的话,那很显然就是4字节了(定点二进制用2字节存储14,4字节存储59,类推,你可以自己推下),如果这块还不懂的可以问我或者查下书Q41)WhatisthemaximumvaluethatcanbestoredinS9(8)COMP?Q41)* *Q:S9(8)COMP型最多存储的最大值是什么A:除了8个数值外不忽略符号位Q43)Whatisthemaximumsizeofa01l
23、eveliteminCOBOLI?inCOBOLII?Q43)InCOBOLII:*-*Q:COBOL1定义的01层最大大小是多少,COBOLII中?A:COBOLII中是*-*,没什么说的,自己翻书Q44)HowdoyoureferencethefollowingfileformatsfromCOBOLprograms:Q:COBOL中如何涉及(引用调用)以下这些文件A:文件类型这里是COBOL在文件控制区中的文件组织访问形式(SELECTS面那句)这里最好翻翻书或者事例代码反复记忆定长文件用*ATIONIS*IAL.Use*NGMODEISF,BLOCK*S0固定但是不是以块的组织形式用*
24、ATIONIS*IAL.Use*NGMODEISF,不要使用BLOCK*S(因为不是以块的组织形式)变长文件用*ATIONIS*IAL.Use*NGMODEISV,BLOCK,*S0.在之后的文件区中的文件描述FD中不要编码记录长度为4字节变长但是不是以块的组织形式用*ATIONIS*IAL.Use*NGMODEISV,同样不要使用BLOCK*S也不要编码记录长度为4字节(原因同上)ESDSVSAM文件用*ATIONIS*IALKSDSVSAM文件用*ATIONIS*RECORDKEYIS,*TERECORD作为关键字的RRDS文件用*ATIONIS*E,*EKEYIS打印文件用*ATIONI
25、S*IAL.Use*NGMODEISF,BLOCK*S0.(UseRECFM=FBAinJCLDCB)Q45)WhataredifferentfileOPENmodesavailableinCOBOL?Q:COBOL中有哪些OPEN方式A:有INPUT,OUTPUT,I-O,EXTEND这些OPEN模式Q46)WhatisthemodeinwhichyouwillOPENafileforwriting?-GSQ:当你想OPEN一个文件用来写入的时候,这属于什么方式A:OUTPUT,EXTEND方式Q48)Canyou*arecordinanESDSfile?CanyouDELETEarecor
26、dfromit?Q:能否*(重写)一个ESDS文件?能否删除ESDS中的一条记录?A:能够重写(但是记录长度必须相同),但是不能删除Q51)WhatisStaticandDynamiclinking?Q:什么是静态和动态连接A:在静态连接中,被调用的子程序是连接到调用程序,但是在动态连接中,被调用子程序和调用主程序的可执行模块是都存在的(分开的)。你可以在连接选项中选择DYNAM或者*(就算你选择了*,CALL标识符还是回把它自动转换成一个动态调用)。静态子程序下次被调用时不会再处于其初始状态,除非用*初始化或者用CANCEL。动态的都是以初始状态存在的。Q53)Whatcompileropt
27、ionwouldyouusefordynamiclinking?Q:如果要动态连接那么要用什么编译选项A:DYNAMQ62)Whatisaninline*?Whenwouldyouuseit?Anythingelsetosayaboutit?Q:*行有什么作用?什么时候使用?简单介绍下它A:*和END-*配套使用,所有COBOLII程序语句都在这两关键字之间。这和COBOL的*或者*THRU一段是一样的意思。在*的语句中只要没有内部GOTO就一直执行直到碰到EXIT。在行*语句中为了可读型不能超过一页的长度,他经常会引用到其他*段Q68)Whatisthelinkagesection?Q:*是
28、什么A:“连接区”是一个被调用程序连接或者映射到调用程序工作单元的程序部分。被调用程序中一些共享项被定义在“连接区”中(想象下子程序,主程序是没有连接区的)Q71)Explainthedifferencebetweenaninternalandanexternalsort,theprosandcons,internalsortsyntaxetc.Q:解释下内部排序和外部排序的区别和内部排序的语法A:外部排序不是COBOL,他是通过JCL和PGM=SORT的形式排序的。这种方式不引用代码却容易理解。内部排序用两中语法:1)USING,GIVING,这种方式比得上外边排序,不用额外的文件处理。2)
29、INPUT*RE,OUTPUT*RE,这种方式适用用文件操作,并且在排序前后允许数据操作Q72)Whatisthedifferencebetweencompandcomp-3usage?ExplainotherCOBOLusages.Q:COMP和COMP-3有什么区别?解释下COBOL中的USAGE语句A:COMP用的是定点二进制,COMP-3用的是内部十进制(压缩)。其他的不同USAGE语句就是二进制和*。*是默认情况。Q73)Whenisascopeterminatormandatory?Q:什么时候范围终止符强制执行A:范围终止符在行内*和*E语句中强制执行。为了程序的可读性,编码规范
30、都建议写上这两个终止符。(也就是说*和*e就算没有END-*和END-*E也会强制终止,但是为了可读性还是建议把END-*和END-*E写上)Q75)Inan*statementistheorderoftheWHENclausessignificant?Q:在*E语句中,WHEN子句的顺序是否有意义A:当然有意义。*ION通过WHEN子句从头到尾的执行顺序会决定结果。Q76)Whatisthedefaultvalue(s)foran*IZEandwhatkeywordallowsforanoverrideofthedefault.Q:*IZE默认是值是什么?替代默认值的关键字是什么A:默认情况
31、下*IZE将空格移到字符区,将零移到数字区。*NG作为替代默认值的关键保留字Q81)WhatwillhappenifyoucodeGOBACKinsteadofSTOPRUNinastandaloneCOBOLprogrami.e.aprogramwhichisnotcallinganyotherprogram.Q:在COBOL中如果你用GOBACK代替STOPRUN会发生什么,该程序没有调用别的程序A:当然是会无限循环下去Q83)Whatisthedifferencebetweena*andSTATICcallinCOBOL.Q:COBOL中动态动用和静态调用有什么区别A:所有被调用的模块都
32、不能单独跑除非这些模块要求程序通过连接区传递变量给他们。动态调用的模块就是那些在连接编辑时(LEWL)没有被调用程序限定的模块,这些模块在程序库(JOBLIB,*)中被加载以连接JOB。要动态调用一个模块,DYNAM的编译器选项要被选中,另外,连接编辑器不能是可执行的,因为他会要你处理所有的模块。一个静态调用在连接编辑时被调用程序限制,所以变成了可执行模块的一部分。Q85)WhatisthepurposeofIdentificationDivision?A85)Documentation.Q:写标识区是什么目的A:标识一些作者等信息,便于文档管理Q86)Whatisthedifferenceb
33、etweenPIC9.99and9v99?Q:PIC9.99和9V99有什么区别A:PIC9.99是一块占用了4个位置的区域,因为包括了一个小数点,但是9V99只占用3个位置,因为V不占位Q87)whatisPic9v99Indicates?Q:PIC9V99指什么A:PIC9V99指一段含有一个不占位置的小数点的占三个位置的数值区域。小数点位置在第一个位置之后,V表示一个隐含的小数点。Q90)WhatisthedifferencebetweenSEARCHandSEARCHALL?Whatismoreefficient?Q:SEARCH和SEARCHALL有什么区别?哪个更高效A:SEARC
34、H是顺序查找,从头到尾。SEARCH是二叉搜索。超过70个数据项的时候SEARCHALL效率更高Q95)Givesomeadvantagesof*ESclause.Q:说明*ES子句的优点A:1:你能用另一个*(另一种类型)重定义之前的一种类型,并且以相同的起点2:在工作单元区中能通过*ES初始化变量3 :能够通过重定义一个变量而重定义很多子变量。(这个来解决Y2000问题很方便)PS:在多维表的元素初始化中也用到*E,不过这和第3点作用类似Q96)WhatisthedifferencebetweenstaticcallDynamiccallQ:静态调用和动态调用有什么区别A:在静态调用的情况下,被调用的程序是单独的一段程序,他是一段可执行的程序。在跑程序的时候能够调用它。而关于动态调用,被调用程序并不是一段可执行程序,但能通过调用程序而执行Q99)WhydowecodeS9(4)comp.Inspiteofknowingcomp-3willoccupylessspace.Q:既然已经知道COMP-3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桃树造林规划方案范本
- 矿山安全监测与火灾防控考核试卷
- 弹簧在汽车油门踏板的反馈和控制性能考核试卷
- 莞城区水库清淤施工方案
- 证券从业资格证行业竞争策略试题及答案
- 旧房地基维修施工方案
- 水下作业的深海地质研究新技术考核试卷
- 考生必知的知识点证券从业试题及答案
- 2025年投资组合理论试题及答案
- 2024年微生物检测技师真题及答案
- 2025年04月包头医学院公开招聘28名事业单位工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 《美的电器审计案例》课件
- 2025-2030中国冰鞋行业市场发展分析与发展趋势及投资风险研究报告
- 2024年美容师考试相关法律法规知识试题及答案
- 2025新疆交投集团所属子公司招56人笔试参考题库附带答案详解
- 综艺节目赞助合同书
- 三级精神病医院基本标准(2023版)
- 高尔夫球场浇灌施工方案
- 出纳员工考核试题及答案
- 节假日期间医疗安全
- 智能交通系统在城市管理中的应用与前景
评论
0/150
提交评论