单选题 下面程序的运行结果是______。
SET TALK OFF
a=10
DO p1
? a
PROCEDURE p1
LOCAL a
a=11
DO p2
PROCEDURE p2
a=12
RETURN
【正确答案】 C
【答案解析】[解析] PROCEDURE表示一个过程的开始,在主程序中定义了一个私有变量a,并赋值为10。私有变量可以在建立它的模块及其下层模块中使用,若在其下层模块的执行中改变了它的值,被改变后的值将被带回到其上层调用模块。P1程序中,LOCAL a定义局部变量,a=11的含义是给局部变量a赋值为11,此时的a只属于P1过程,P1程序结束时将自动释放。然后执行P2程序,给a赋值为12,此时给a赋值即是为主程序私有变量a赋值。程序返回主程序后,私有变量a=12。该值就是题目程序的最终运行结果,即C为正确选项。