问题
单项选择题
有以下程序:
#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。