单选题 编译的优化工作对于下面程序段构造的控制流程图有 ( ) 个基本块。
【正确答案】 D
【答案解析】 基本块划分的3个步骤: (1)满足下列3个条件之一的任一语句可充当入口。 ①程序的第一个语句; ②能由条件转移语句或无条件转移语句转移到的语句; ③紧跟在条件转移语句后面的语句。 (2)根据(1)求出的每一入口语句,构造其所属的基本块。 ①由该人口语句到另一入口语句(不包括该入口语句)之间的语句序列; ②由该人口语句到一转移语句(包括该转移语句)之间的语句序列; ③由该人口语句到一停转移语句(包括该转移语句)之间的语句序列。 (3)凡是未被纳入某一基本块中的语句,都是程序中控制流程无法到达的语句,从而也是不会被执行到的语句,可以从程序中删除。 在本题中,根据程序求解。 (1)确定入口。 A:=100 入口 j:=100 i:=1 loop1: B:=j+1 入口 C:=B+I A:=A+C if i=100 goto loop2 i:=i+1 入口 goto 100p1 100p2: write A 入口 halt 停语句 (2)确定基本块。 基本块1 A:=00 入口 j:=100 i:=1 基本块2 loop1: B:=j+1 入口 C:=B+I A:=A+C if i=100 goto 100p2 基本块3 i:=i+1 入口 goto loop1 基本块4 loop2: write A 入口 halt 停语句 (3)确定可删除语句。 没有无法到达的语句。