单项选择(2017年春程序员软考)

在对高级语言编写的源程序进行编译时,可发现源程序中【 】

A、全部语法错误和全部语义错误

B、部分语法错误和全部语义错误

C、全部语法错误和部分语义错误

D、部分语法错误和部分运行错误

答案解析

C

【解析】

语法错误是程序语句结构上的错误,语义错误是程序语句及其成分使用时出现的含义方面的错误,语义错误分为静态语义错误和动态语义错误,动态语义错误在程序运行时才可能出现,编译时可发现源程序中的全部语法错误和静态语义错误。

讨论

对布尔表达式进行短路求值是指在确定表达式的值时,没有进行所有操作数的计算。对于布尔表达式“a or((b>c)and d)”,当【 】时可进行短路计算。

一个变量通常具有名字、地址、值、类型、生存期、作用域等属性,其中,变量地址也称为变量的左值(1-value),变量的值也称为其右值(r-value)。当以引用调用方式实现函数调用时,【 】。

如果要使得用C语言编写的程序在计算机上运行,则对其源程序需要依次进行【 】等阶段的处理。

将多个目标代码文件装配成一个可执行程序的程序称为【 】。

用某高级程序设计语言编写的源程序通常被保存为【 】

设数组 a[0..n-1,0..m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素 a[i,j](0≤i<n,0≤j<m)的存储位置相对于数组空间首地址的偏移量为【 】。

已知函数 f()、g()的定义如下所示,调用函数f()时传递给形参x的值是5。若 g(a)采用引用调用(call by reference)方式传递参数,则函数f()的返回值为______;若 g(a)采用值询用(call by value)的方式传递参数,则函数f()的返回值为______。其中,表达式“x>>1”的含义是将x的值右移1位,相当于x除以 2。f(int x) int a =x>>1; g(a); return a+i;g(int x) x=x*(x+1)i; returni;

某C语言程序中有表达式x%m(即x被 m除取余数),其中,x为浮点型变量,m为整型非0常量,则该程序在______时会报错,该错误属于______错误。

编写C程序时通常为了提高可读性而加入注释,注释并不参与程序的运行过程。通常,编译程序在【 】阶段就会删除源程序中的注释。

函数 main()、test()的定义如下所示。调用函数test时,第一个参数采用传值方式,第二个参数采用传引用方式,man()函数中“ printi(x,y)”执行后,输出结果为【 】。main(){ int x=1,y=5; test(x,y); print(x,y);}test (int x,int &a){ a=x+a*2; x=x+1; return;}