有以下程序: #include<iostream> using namespace std; int f(int,int); int main() {int i:1,x;x=f(i,i+1);cout<<x<<end1;return 0; } int f(int a,int b) {int c;c = a;if(a>b) c = 1;else if(a==b) c = 0;else c = -2;return c; } 运行后的输出结果是( )。
A.1
B.0
C.-1
D.-2
参考答案:D
解析: 本题考核对函数调用方法的掌握程度。做此类题主要是弄清楚程序每一步的目的:在主函数前面声明了整型函数f。在主函数中,调用了函数f()。实参的值分别是1和2,1传给函数f的形参a,2传给函数f的形参b,函数返回的值赋给变量x。即为输出的函数值。 具体分析一下函数f()的功能:如果a大于b,则赋予c的值为1;并且跳出if-else语句。如果a不大于b,则进入else if分支中,如果a等于b,则赋予c的值为0, 并跳出以下的if-else语句。如果a不等于b,则进入else分支,执行c=-2。因为实参1,2分别传给形参a,b,所以此时a<b,f()函数应执行c=-2。即最终输出应为-2。