有以下程序float fun(int x, int y){ return{x+ y); }main(){int a=2,b=5,c=8;printf("%3.of\n",

题目

有以下程序 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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

(33)有以下程序

#include <stdio.h>

int fun{int x,int y}

{ if(x==y) return(x);

else return((x+y)/2)

}

main()

{ int a=4,b=5,c=6;

printf(“%d\n”,fun(2*a,fun(b,c)))

}

程序运行后的输出结果是

A)3 B)6 C)8 D)12


正确答案:B

第2题:

有以下程序: fun (iht a,int b) { if(a>b)return(a); else return(b); } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 程序运行后的输出结果是( )。

A.3

B.6

C.8

D.12


正确答案:D
解析:主函数中首先定义了4个整型变量x、y、z和r,并分别给x、y、z赋初值为3、8、6,接着调用一个fun()函数,并将返回值赋给变量r。其中将fun(x,y)函数的返回值和2*z作为fun()函数的两个参数。在内层fun(x,y)函数中,将x的值和y的值传给形参a和b,此时a和b的值分别为3和8,执行if浯句,由于if后面判断条件表达式a>b为假,所以执行else后面的语句,返回值为8。此时,外层fun(x,y)函数两个参数为8和2*z=12,所以r的赋值语句相当于r=fun(8,12),同上分析可知tim(8,12)返回值为12,因此最后r的值为12。

第3题:

有以下程序

#include <stdio.h>

int fun(int x,int y)

{ if(x==y) return (x);

else return((x+y)/2);

}

main()

{ int a=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));

}

程序运行后的输出结果是

A)3

B)6

C)8

D)12


正确答案:B

第4题:

有以下程序:includeFloat fun(int x, int y){return(x+y) ;}void main( ){int a=2,

有以下程序: #include<iostream.h> Float fun(int x, int y) { return(x+y) ;} void main( ) { int a=2,b=5,c=8; cout < < fun((int) fun(a+c, b) ,a-c) ;} 程序运行后的输出结果是

A.编译出错

B.9

C.21

D.9.0


正确答案:B
解析:本题的运算过程是fun((int) fun (a+c, b) ,a-c) ,fun((int) fun(10,5) ,2-8) ,fun ((int) 15.000000,-6) ,fun(15,-6) =9。

第5题:

有以下程序

fun(int a, int b)

{ if(a>b) return(a);

else return(b);

}

main( )

{ int x=3, y=8, z=6, r;

r=fun(fun(x,y), 2*z);

printf("%d\n", r);

}

程序运行后的输出结果是

A.3

B.6

C.8

D.12


正确答案:D
解析:此题考查了带返回值的函数的调用。fun()函数的功能是求出两个数的最大数并返回主函数r=fun(fun(x,y),2*z)处。执行过程为先调用函数fun(x,y)求得两数中的较大者,再进行自身的递归调用,此时函数中的两个参数为刚求得的数和2*z(即12)传递给子函数,找出两数中的大数。

第6题:

有以下程序 fun(int x,int y){return(x+y);} main() { int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf("%d\n",sum); }

A.6

B.7

C.8

D.9


正确答案:C
解析:在fun((a++,b++,a+b),c++)中,先算括号内的(a++,b++,a+b)逗号运算,即先算出a++的值,a=2;再算出b++的值,b=3;最后算出a+b的值,a+b=2+3=5,整个逗号表达式的值为最后a+b的值即为5;接下来调用fun函数,此时原语句变为:smn=fun(5,C++);进行运算,c++表示在使用c以后再将c的值加1,所以结果为:5+3=8。

第7题:

有以下程序:includefun(int a, int b){if(a>b) return(a); elsereturn(b);}main(){int

有以下程序: #include <stdio.h> fun(int a, int b) { if(a>b) return(a); else return(b); } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); } 程序运行后的输出结果是( )。

A.3

B.6

C.8

D.12


正确答案:D
解析:本题考查函数的返回值。fun函数的功能是比较a,b的值,返回其中较大者。对于main函数中的语句r=fun(fun(x,y),2*z);是先调用fun(x,y)返回8,再将8和12作为实参调用函数fun,得到的返回值为12。

第8题:

写出下列程序的运行结果。 fun(int a, int b) { if(a>b) return (a); Else return (b); } main { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%d\n”,r); }


正确答案:
12

第9题:

有以下程序includefloat fun(int x,int y){return(x+y);}void main( ){int a=2,b=5

有以下程序 #include<iostream.h> float fun(int x,int y) {return(x+y);} void main( ) {int a=2,b=5,c=8; cout<<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((int)fun(10,5),2-8),fun ((int)15.000000,-6),fun(15,-6)=9。

第10题:

下面程序输出的结果是( )。 int m=17; int fun(int x,int y) {int m=3; return(x*y-m); } main() {int a=5,b=7; printf("%d\n”,fun(a,B)/m); }


正确答案:√
1 解析:本题考查局部变量和全局变量的区别:局部变量是指作甩域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。

更多相关问题