COBOL经典面试题库中英文版.docx

上传人:b****3 文档编号:4865587 上传时间:2022-12-11 格式:DOCX 页数:33 大小:47.33KB
下载 相关 举报
COBOL经典面试题库中英文版.docx_第1页
第1页 / 共33页
COBOL经典面试题库中英文版.docx_第2页
第2页 / 共33页
COBOL经典面试题库中英文版.docx_第3页
第3页 / 共33页
COBOL经典面试题库中英文版.docx_第4页
第4页 / 共33页
COBOL经典面试题库中英文版.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

COBOL经典面试题库中英文版.docx

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

COBOL经典面试题库中英文版.docx

COBOL经典面试题库中英文版

COBOL经典面试题库(中英文版)

Q1)NamethedivisionsinaCOBOLprogram?

.

A1)IDENTIFICATIONDIVISION,ENVIRONMENTDIVISION,DATADIVISION,PROCEDUREDIVISION.

Q:

列举COBOL的DEVISION

A:

标识部,环境部,数据部,过程部

Q2)WhatarethedifferentdatatypesavailableinCOBOL?

A2)Alpha-numeric(X),alphabetic(A)andnumeric(9).

Q:

COBOL有哪些可用的数据类型

A:

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

Q3)WhatdoestheINITIALIZEverbdo?

-GS

A3)Alphabetic,Alphanumericfields&alphanumericediteditemsaresettoSPACES.Numeric,NumericediteditemssettoZERO.FILLER,OCCURSDEPENDINGONitemsleftuntouched.

Q:

INITIALIZE这个词做了些什么

A:

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

Q4)Whatis77levelusedfor?

A4)Elementarylevelitem.Cannotbesubdivisionsofotheritems(cannotbequalified),norcantheybesubdividedthemselves.

Q:

77层有什么作用

A:

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

Q5)Whatis88levelusedfor?

A5)Forconditionnames.

Q:

88层有什么作用

A:

条件逻辑层

Q6)Whatislevel66usedfor?

A6)ForRENAMESclause.

Q:

66层有什么作用

A:

重命名层

Q7)WhatdoestheISNUMERICclauseestablish?

A7)ISNUMERICcanbeusedonalphanumericitems,signednumeric&packeddecimalitemsandunsignednumeric&packeddecimalitems.ISNUMERICreturnsTRUEiftheitemonlyconsistsof0-9.However,iftheitembeingtestedisasigneditem,thenitmaycontain0-9,+and-.

Q:

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

A:

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

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

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

Q8)Howdoyoudefineatable/arrayinCOBOL?

A8)ARRAYS.

05ARRAY1PICX(9)OCCURS10TIMES.

05ARRAY2PICX(6)OCCURS20TIMESINDEXEDBYWS-INDEX

Q:

COBOL中怎么建表/数组

A:

如上.

Q9)CantheOCCURSclausebeatthe01level?

A9)No.

Q:

OCCURS子句能用在第一层吗

A:

不能

Q10)Whatisthedifferencebetweenindexandsubscript?

-GS

A10)Subscriptreferstothearrayoccurrencewhileindexisthedisplacement(innoofbytes)fromthebeginningofthe

array.AnindexcanonlybemodifiedusingPERFORM,SEARCH&SET.Needtohaveindexforatableinorderto

useSEARCH,SEARCHALL.

Q:

索引和下标有什么区别

A:

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

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

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

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

Q11)WhatisthedifferencebetweenSEARCHandSEARCHALL?

-GS

A11)SEARCH-isaserialsearch.

SEARCHALL-isabinarysearch&thetablemustbesorted(ASCENDING/DESCENDINGKEYclausetobeused&dataloadedinthisorder)beforeusingSEARCHALL.

Q:

SERACH和SERACHALL有什么区别

A:

SEARCH是顺序查找

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

Q12)WhatshouldbethesortingorderforSEARCHALL?

-GS

A12)ItcanbeeitherASCENDINGorDESCENDING.ASCENDINGisdefault.Ifyouwantthesearchtobedoneonan

arraysortedindescendingorder,thenwhiledefiningthearray,youshouldgiveDESCENDINGKEYclause.(You

mustloadthetableinthespecifiedorder).

Q:

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

A:

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

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

Q13)Whatisbinarysearch?

A13)Searchonasortedarray.Comparetheitemtobesearchedwiththeitematthecenter.Ifitmatches,fineelserepeattheprocesswiththelefthalfortherighthalfdependingonwheretheitemlies.

Q:

什么是2叉查找

A:

将你要找的目标项与数组的正中项比较,找到就结束搜索,没找到则继续如此循环(比较下一个中值),取哪一半取决于目标值大于中值还是小于中值

PS:

联想2叉树的查找规律就很好理解,因为所谓的“表“本身也就是数组

Q14)Myprogramhasanarraydefinedtohave10items.Duetoabug,Ifindthateveniftheprogramaccessthe

11thiteminthisarray,theprogramdoesnotabend.Whatiswrongwithit?

A14)MustusecompileroptionSSRANGEifyouwantarrayboundschecking.DefaultisNOSSRANGE.

Q:

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

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

那是出了什么问题

A:

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

默认是NOSSRANGE

Q15)HowdoyousortinaCOBOLprogram?

Givesortfiledefinition,sortstatementsyntaxandmeaning.-GS

A15)Syntax:

SORTfile-1ONASCENDING/DESCENDINGKEYkey….USINGfile-2GIVINGfile-3.

USINGcanbesubstitutedbyINPUTPROCEDUREISpara-1THRUpara-2

GIVINGcanbesubstitutedbyOUTPUTPROCEDUREISpara-1THRUpara-2.

file-1isthesort(work)fileandmustbedescribedusingSDentryinFILESECTION.

file-2istheinputfilefortheSORTandmustbedescribedusinganFDentryinFILESECTIONandSELECT

clauseinFILECONTROL.

file-3istheoutfilefromtheSORTandmustbedescribedusinganFDentryinFILESECTIONandSELECT

clauseinFILECONTROL.

file-1,file-2&file-3shouldnotbeopenedexplicitly.

INPUTPROCEDUREisexecutedbeforethesortandrecordsmustbeRELEASEdtothesortworkfilefromtheinputprocedure.

OUTPUTPROCEDUREisexecutedafterallrecordshavebeensorted.RecordsfromthesortworkfilemustbeRETURNedoneatatimetotheoutputprocedure.

Q:

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

给出排序文件的定义,排序语法和意思

A:

语法就是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)HowdoyoudefineasortfileinJCLthatrunstheCOBOLprogram?

A16)UsetheSORTWK01,SORTWK02,…..ddnamesinthestep.Numberofsortdatasetsdependsonthevolumeofdata

beingsorted,butaminimumof3isrequired.

Q:

怎么在JCL中定义一个排序文件来跑这个COBOL程序

A:

用SORTWK01,SORTWK02,…..作为DATASETNAME。

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

Q17)WhatisthedifferencebetweenperformingaSECTIONandaPARAGRAPH?

-GS

A17)PerformingaSECTIONwillcausealltheparagraphsthatarepartofthesection,tobeperformed.

PerformingaPARAGRAPHwillcauseonlythatparagraphtobeperformed.

Q:

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

A:

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

Q18)WhatistheuseofEVALUATEstatement?

-GS

A18)EvaluateislikeacasestatementandcanbeusedtoreplacenestedIfs.ThedifferencebetweenEVALUATEand

caseisthatno‘break’isrequiredforEVALUATEi.e.controlcomesoutoftheEVALUATEassoonasonematchis

made.

Q:

EVALUATE语句有什么作用

A:

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

Q19)WhatarethedifferentformsofEVALUATEstatement?

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)HowdoyoucomeoutofanEVALUATEstatement?

-GS

A20)Aftertheexecutionofoneofthewhenclauses,thecontrolisautomaticallypassedontothenextsentenceafterthe

EVALUATEstatement.Thereisnoneedofanyextracode.

Q:

怎么跳出一条EVALUATE语句

A:

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

Q21)InanEVALUATEstatement,canIgiveacomplexconditiononawhenclause?

A21)Yes.

Q:

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

A:

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

Q22)Whatisascopeterminator?

Giveexamples.

A22)Scopeterminatorisusedtomarktheendofaverbe.g.EVALUATE,END-EVALUATE;IF,END-IF.

Q:

什么是结束终止符

A:

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

如:

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

Q23)Howdoyoudoin-linePERFORM?

-GS

A23)PERFORM……

END-PERFORM

Q:

怎么使用内嵌的PERFORM

A:

PERFORM……

END-PERFORM

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

Q24)Whenwouldyouusein-lineperform?

A24)Whenthebodyoftheperformwillnotbeusedinotherparagraphs.Ifthebodyoftheperformisagenerictypeofcode

(usedfromvariousotherplacesintheprogram),itwouldbebettertoputthecodeinaseparateParaanduse

PERFORMParanameratherthanin-lineperform.

Q:

什么时候使用内嵌式PERFORM

A:

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

Q25)WhatisthedifferencebetweenCONTINUE&NEXTSENTENCE?

A25)Theyappeartobesimilar,thatis,thecontrolgoestothenextsentenceintheparagraph.But,NextSentencewould

takethecontroltothesentenceafteritfindsafullstop(.).Checkoutbywritingthefollowingcodeexample,oneif

sentencefollowedby3displaystatements(sorrytheyappearonelineherebecauseofformattingrestrictions)If1>0

thennextsentenceendifdisplay‘line1′display‘line2′.display‘line3′.***Note-thereisadot(.)onlyattheendof

thelast2statements,seetheeffectbyreplacingNextSentencewithContinue***

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?

A26)Doesnothing!

Ifused,mustbetheonlysentencewithinaparagraph.

Q:

EXIT语句有什么作用

A:

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

这里不是子程序中用的EXITPROGRAME

Q27)CanIredefineanX(100)fieldwithafieldofX(200)?

A27)Yes.Redefinesjustcausesbothfieldstostartatthesamelocation.Forexample:

01WS-TOPPICX

(1)

01WS-TOP-REDREDEFINESWS-TOPPICX

(2).

IfyouMOVE‘12′toWS-TOP-RED,

DISPLAYWS-TOPwillshow1while

DISPLAYWS-TOP-REDwillshow12.

Q:

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

A:

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

A28)CanIredefine

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

当前位置:首页 > 法律文书 > 调解书

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

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