以编译方式翻译C/C++源程序的过程中,语句结构的合法性分析是【 】的任务。
A、词法分析
B、语义分析
C、语法分析
D、目标代码生成
以编译方式翻译C/C++源程序的过程中,语句结构的合法性分析是【 】的任务。
A、词法分析
B、语义分析
C、语法分析
D、目标代码生成
C
【解析】
般情况下,编译程序的工作过程可以分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等6个阶段,还需要有错误处理和符号表管理。其中,语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等。
如果源程序中没有语法错误,语法分析后就能正确地构造出其语法树;否则就指出语法错误,并给出相应的诊断信息。词法分析和语法分析本质上都是对源程序的结构进行分析。
对布尔表达式进行短路求值是指在确定表达式的值时,没有进行所有操作数的计算。对于布尔表达式“a or((b>c)and d)”,当【 】时可进行短路计算。
一个变量通常具有名字、地址、值、类型、生存期、作用域等属性,其中,变量地址也称为变量的左值(1-value),变量的值也称为其右值(r-value)。当以引用调用方式实现函数调用时,【 】。
通用的高级语言一般都会提供描述数据、运算、控制和数据传输的语言成分,其中,控制成分中有顺序、【 】、循环结构。
设N和B都是(无符号)整形变量,下面C代码段的功能是计算变量B的二进制表示中【 】。N=0;while(B){ B=B&(B-1);//“&”是按位“与”运算 N++;}