1 / 7 第七章习题答案2.研究下面给出的伪码程序,要求:⑴ 画出它的程序流程图。⑵ 它是结构化的还是非结构化的?说明你的理由。⑶ 若是非结构化的,则(a) 把它改造成仅用三种控制结构的结构化程序;(b) 写出这个结构化程序的伪码;(c) 用盒图表示这个结构化程序。⑷ 找出并改正程序中的逻辑错误。COMMENT: PROGRAM SEARCHES FOR FIRST N REFERENCES TO A TOPIC IN AN INFORMATION RETRIEVAL SYSTEM WITH T TOTAL ENTRIES INPUT N INPUT KEYWORD(S) FOR TOPIC I=0 MATCH=0 DO WHILE I≤T I=I+1 IF WORD=KEYWORD THEN MATCH=MATCH+1 STORE IN BUFFER END 2 / 7 IF MATCH=N THEN GOTO OUTPUT END END IF N=0 THEN PRINT ”NO MATCH”OUTPUT: ELSE CALL SUBROUTINE TO PRINT BUFFER INFORMATION END 解:⑴ 程序流程图(如图2.1 所示)⑵ 此程序是非结构化的, 它有一个 GOTO语句,并且是从一个循环体内转到循环体外的一个条件语句内部。3 / 7 ⑶ 修改后的伪码如下:YES YES 开 始输入 N 输入关键字WORD I=0 MATCH=0 循环 N+1 次I=I+1 I 控制搜索总次数的计数器MATCH控制搜索成功次数的计数器遇到的字 = KYEWORD?MATCH=MATCH+1 保存 MATCH到缓冲MATCH=N?NO N=0 调子程序打印缓冲器信息打印“没有匹配”结束NO YES 图 2.1 4 / 7 INPUT N,T 输入 N INPUT KEYWORD(S) FOR TOPIC 输入有关话题的关键字OPEN FILE 打开文件I=0 MATCH=0 DO WHILE I≤T 循环— 最多可做 T 次I=I+1 READ A WORD OF WORD 从文件里读一个字到变量WORD IF WORD=KEYWORD THEN MATCH=MATCH+1 IF MATCH=N THEN EXIT 搜索到了 N 个关键字,就跳出循环END IF END IF END DO IF MATCH =0 THEN PRINT ”NO MATCH”若 MATCH =0就打印“没有相匹配”ELSE PRINT “共搜索到”;MATCH;“个匹配的关键字”否则打印信息END IF 修改后的程序框图(盒图)5 / 7 ⑷ 程序中的错误:①语句“ IF WORD=KEYWORD”里的变量“ WORD”没有预先赋值。②程序中没有预先输入T 的值③ “N=0”应该是“ MATCH=0”4. 回答下列问题:(1) 什么是模块测试和集成测试?它们各有什么特点?答:模块测试是对每个单独的模块,分别用黑盒和白盒测试技术,测试它的功能是否正确, 检查模块控制结构中的特定路径并发现最大数...