某C语言程序中有表达式x%m(即x被 m除取余数),其中,x为浮点型变量,m为整型非0常量,则该程序在______时会报错,该错误属于______错误。
A、编译 语义
B、预处理 逻辑
C、编辑 语义
D、运行 逻辑
某C语言程序中有表达式x%m(即x被 m除取余数),其中,x为浮点型变量,m为整型非0常量,则该程序在______时会报错,该错误属于______错误。
A、编译 语义
B、预处理 逻辑
C、编辑 语义
D、运行 逻辑
A
【解析】
用户编写的源程序不可避免地会有一些错误,这些错误大致可分为静态错误和动态错误。动态错误也称动态语义错误,它们发生在程序运行时,例如变量取零时作除数、引用数组元素下标越界等错误。静态错误是指编译时所发现的程序错误,可分为语法错误和静态语义错误。C 语言对浮点数作整除取余运算没有定义,属于运算类型不匹配的错误,编译过程中的语义分析阶段会报告此类错误,属于静态语义错误。
编译过程中符号表的作用是记录【 】中各个符号的必要信息,以辅助语义的正确性检查和代码生成。
将高级语言源程序翻译成机器语言程序的过程中常引入中间代码。以下关于中间代码的叙述中,正确的是【 】。
在C程序中有些变量随着其所在函数被执行而为其分配存储空间,当函数执行结束后由系统回收。这些变量的存储空间应在【 】分配。
程序中的错误一般可分为语法错误和语义错误两类,其中,语义错误可分为静态语义错误和动态语义错误。【 】属于动态语义错误。
编译和解释是实现高级程序设计语言的两种方式,其区别主要在于【 】。
以编译方式翻译C/C++源程序的过程中,语句结构的合法性分析是【 】的任务。