niusouti.com
参考答案和解析
正确答案:A
本题主要考查函数的嵌套调用。在本题中,首先定义了函数fun,该函数的返回类型为浮点型,函数带有两个整型形参,函数的作用不难看出是返回两个形参的和。
在主函数中,定义了三个整型变量a,b,c,并分别赋初值为2,5,8,然后嵌套调用fun函数。输出语句fun((int)fun(a+c,b),a-c)首先调用嵌套的fun函数,即(int)fun(a+c,b),按照前面对fun函数的介绍,它应该返回的值为a+c+b=15,由于函数在前面加了强制数据类型转换,将本来的返回结果浮点型转换为了整型,并作为函数的参数,与函数定义的参数类型匹配,程序编译不报错,然后执行fun函数,它返回的结果为15+a-c=9,此时的结果应该是浮点型,即为9.0,但输出语句的输出格式是“%3.0f”,说明无须输出小数部分,因此,最终的输出结果是9。
更多“有以下程序float fun(int x,int y){ return(x+y);}main(){ int a=2,b=5,c=8; printf("%3.0f\n",f ”相关问题
  • 第1题:

    有以下程序 float fun(int x,int y) { return(x+y); } main() { int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,B) ,a-C) ); } 程序运行后的输出结果是( )

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B

  • 第2题:

    有以下程序: float fun(int x,int y) {return(x+y);} main( ) { int a=2,b=5,c=8; printf("%3.Of\n",fun( (int)fun(a+c,b),a-c) ); } 程序运行后的输出结果是

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:对于float或double类型的实型数据可以用“整数1,整数2”的形式在指定宽度(整数1)的同时来指定小数位的位数(整数2)。

  • 第3题:

    有以下程序 float fun(int x,int y) { return(x+y);} main() { int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c));} 程序运行后的输出结果是

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。本题可按部就班地逐步运算:fun((int)fun(a+c,b),a-c)fun((int)fun(10,5),2-8)fun((int)15.000000,-6)fun(15,-6)9

  • 第4题:

    有以下程序: float fun(int x,int y) {return(x+y);} main() { int a=2,b=5,C=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是( )。

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:fun((int)fun(a+c,b),a-c))是用函数的返回值做实参。第一次调用fun(a+c,b),x+y=a+c+b=2+5+8=15,由于函数fun()的返回值类型被定义为float型,返回值为15.000000,在主函数中被强制转换为int型变为15。第二次调用后fun(15,a-c),x+y=15+a-c =15+2-8=9,返回值为9.000000,输出格式要求小数位为0且数据宽度为3,则输出9。

  • 第5题:

    有以下程序 float fun(int x, int y){ return{x+ y); }main(){ int a=2,b=5,c=8; printf("%3.of\n",fun((int)fun(a+ c, B) ,a-C) );} 程序运行后的输出结果是

    A.编译出错

    B.9

    C.21

    D.9


    正确答案:B
    解析:本题考查的知识点是函数的参数类型、函数值类型及函数调用.fun()函数是将传进来的两个整型参数相加,把和作为函数值返回,.注意返回值为float型.在主函数调用了两次fun()函数,第一次调用时把表达式“a+c”和变量“b”的值求和,得到15转换为15.0作为函数的返回值。第二次调用把第一次调用的返回值通过强制类型转换成int型15,再和表达式“a-c”相加,得到结果9,转换成float型作为函数值返回。由于输出格式符为“%3.0f”输出时没有小数位,故输出为9.所以4个选项中B正确。