目录: 标题| 题干| 答案| 搜索| 相关
问题

有以下程序float fun(int x,int y){ return(x+


有以下程序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.9 B.编译出错C.21 D.9.0

  • A9
  • B编译出错
  • C21
  • D9.0
参考答案
参考解析:

本题主要考查函数的嵌套调用。在本题中,首先定义了函数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。

分类:其他
相关推荐

1、有以下程序: int f1(int x, int y){ return x>

有以下程序: int f1(int x, int y){ return x>y? x:y; } int f2(int x, int y){ return x>y? y:x; } main() { int a=4, b=3, c=5, d=2, e, f, g...

2、考虑下面的函数: int min(int x,int y){return

考虑下面的函数:int min(int x,int y){return xint max(int x,int y){return x>y?x:y;}对于下面的代码:t=0;for(i=max(x,y);i>=min(x,y);i--)t+=i;假设x=1,y=100,则可以得到函数调用的次数为()A200B201C101D102

3、有以下程序#define F(X,Y)(X)*(Y)main(){ int

有以下程序#define F(X,Y)(X)*(Y)main(){ int a=3, b=4; printf("%d\n", F(a++, ++b));}程序运行后的输出结果是A.12 B.15C.16 D.20A12 B15C16 D20

4、有以下程序 void f(int x,int y) { int t; if

有以下程序void f(int x,int y){int t;if(x < y){t=x;x=y;y=t;}}main(){int a=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%dn",a,b...

5、有以下程序void f(int x,int y){ int t, if(x<

有以下程序void f(int x,int y){ int t, if(x<y){t=x;x=y;t;}}main(){ int a=4,b=3,c=5; f(a,B) ;f(a,C) ;f(b,C) ; cout<<a<<","<<b<<",...

6、有下列程序: int fun(int x[],int n) { static

有下列程序: int fun(int x[],int n) { static int sum=0,i; for(i=0;i<n;i++) sum+=x[i]: return sum; } main( ) {int a[3]={1,2,3,4,5),b[3]...