有如下程序: #include<iostream> using namespace std; int f1(int x,int y=5){return x+y;} int f1(double x){return x;}

admin2018-06-19  27

问题 有如下程序:
    #include<iostream>
    using namespace std;
    int f1(int x,int y=5){return x+y;}
    int f1(double x){return x;}
    int main( ) {
    int a=3;
    double b=2.5:
    cout<<f1(a)+f1(b);
    return 0;
    }
    运行后的输出结果是(    )。

选项 A、5
B、6
C、10
D、11

答案C

解析 题意中两个f1( )函数是重载函数,其中第一个f1( )函数有两个整型形参x,y,其中y有默认值5,函数返回值x+y;第二个f1( )函数有一个double类型形参x,再将x转换为整型作为函数返回值;main( )函数中,表达式f1(a)+f1(b)两次调用f1( ),f1(a)由于实参a是整型变量,所以会调用第一个f1( )函数,其中形参x的值为a,y的值为5,返回值为a+5=8;n(b)由于实参b是double类型,所以调用第二个f1( )函数,返回值为2;所以程序运行结果为8+2=10,答案为C。
转载请注明原文地址:https://kaotiyun.com/show/fNAp777K
0

最新回复(0)