问题 单项选择题

某C语言程序中,x是一个实型变量,y是一个正整数。对于x被y除取余数的表达式“x%y”是一种______错误。

A.语法
B.语义
C.运行
D.词法

答案

参考答案:B

解析: 程序员编写的源程序中往往会有一些错误,这些错误大致可分为静态错误和动态错误两类。静态错误应该在编译的不同阶段被检查出来,它又可以分为语法错误和静态语义错误。词法和语法错误是指有关语言结构上的错误,如单词拼写错误就是一种词法错误,表达式中缺少操作数、括号不匹配是不符合语法规则要求的语法错误等。静态的语义错误是指分析源程序时可以发现的语言意义上的错误。例如,整除取余运算符“%”的有效运算对象是两个整数。对于表达式“x%y”,在形式上两个运算对象存在,其语法是正确的:在语义上,“%”的运算对象中一个是整型数据而另一个是实型数据,则不符合整除取余运算的含义。因此表达式“x%y”(x是一个实型变量,y是一个正整数)在编译时会报错,这是运算对象与运算符的类型不匹配的错误,属于静态语义错误。
所谓动态错误,是指源程序中的逻辑错误。它们发生在程序运行的时候,比如算法逻辑上的错误。动态错误也被称为动态语义错误,如变量取值为0被用作除数、引用数组元素时下标出界等。

判断题
不定项选择