以下程序的输出结果是( )。#include fun(int x,int y,int z) { z=x*x+y*y;} main() { int a=31; fun(5,2,a); printf("%d",a);}

题目
以下程序的输出结果是( )。include fun(int x,int y,int z) { z=x*x+y*y;} main() { int a=31; fun(5,2,a); printf("%d",a);}

A、0

B、29

C、31

D、无定值

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

第1题:

以下程序的输出结果是 【10】 。

fun (int x,int y,int z)

{ z =x*x+y*y;}

main ()

{int a=31;

fun (6,3,a)

printf ("%d", a)

}


正确答案:
31

第2题:

以下程序运行后的输出结果是【】。 include void fun(int x,int y) {x=x+y;y=x-y

以下程序运行后的输出结果是【 】。

include<iostream.h>

void fun(int x,int y)

{ x=x+y;y=x-y;x=x-y;

cout<< x << "," <<y << " ,";}

void main( )

{ int x=2,y=3;fun(x,y);

cout<< x << "," << y << endl;}


正确答案:3223
3,2,2,3 解析:main函数和fun函数中的变量x和y都是局部变量,它们各自独立,在本题 fun函数中:接入实参的值传递:x=2,y=3,执行:x=x+y后,x=5,y=3,执行:x=x-y后,x=5,y=3,执行:y=x-y后,x=3,y=2。所以,第一次执行cout显示结果是3和2返回到main函数中,输出main函数中的x和y的值2,3。

第3题:

以下程序运行后输出结果是【】。

int a=30,b=40;

void fun(int x,int y)

{ int z;

z=(x>y)?x:y;

a=z+10;

b=z+20;

}

main()

{

printf("a=%d,b=%d\n",a,b);

fun(a,b);

prinf("a=%d,b=%d\n",a,b);

}


正确答案:a=30,b=40
a=50,b=60
从题目可知,a,b为全局变量,因此函数对a,b的修改是有效的。首先输出a,b,然后将a,b中较大的值赋给z,即z=b=40,然后将z+10赋给a,将z+20赋给b,所以结果为a=40+10=50,b=40+20=60.

第4题:

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

有以下程序: #include<stdio.h> 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
解析:本题考查函数调用。将a,b,c的值代入函数调用fun((int)fun(a+c,b),a-c)可得到fun((int)fun(10,5),-6)。函数调用分为两步:①调用函数fun(10,5)。②利用强制类型转换(int)将函数fun(10,5)的返回值15.000000转换成15,再将其结果作为函数的实参进行第二次函数调用fun(15,-6),其结果为9。

第5题:

以下程序的输出结果是______。

fun(int x,inty,int z)

{ z=x*x+y*y;}

main()

{ int a=31;

fun(6,3,a)

printf("%d",a)

}


正确答案:
在函数调用时,形参值的改变,不会改变实参值。

第6题:

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

第7题:

以下程序的输出结果是 ( ) fun (int x,int y, int z) { z=x * x+y * y;} main( ) { int a=31; fun(5,2,a); print{("%d",a); }

A.0

B.29

C.31

D.无定值


正确答案:C

第8题:

有以下程序

fun(int x,int y,int z)

{ z=x*y;}

main()

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

fun(a,b,c);

printf("%d",c);

}

程序运行后的输出结果是

A.16

B.6

C.8

D.12


正确答案:B

第9题:

以下程序的输出结果是______。 fun(int x, int Y, int z) { z=x*x+y*y;} main() { int a=31; fun(5, 2, a); printf("% d", a); }

A.0

B.29

C.31

D.无定值


正确答案:C
解析:函数fun的形参是简单变量,main函数中调用fun时只是把实参的值传递给形参,形参的改变不影响实参,所以调用完函数fun后a的值不发生变化,即a=31。

第10题:

若有程序: fun(int a,int b) { static int c=0; c+=a+b: return c; } main() { int x=5,y=3,z=7,r; r=fun((y,x+y),z); r=fun(x,y); printf("%d\n",r); } 上面程序的输出结果是______。

A.23

B.15

C.19

D.18


正确答案:A
解析:static声明的外部变量只限于被本文件引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在:②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。调用第一个fun,其两个实参的值为(3.5+3)与7即8与7,在函数fun执行结束返回15。第二次调用fun时,由于static为静态类型,其值保留,执行fun(5,3)后,其返回值为23,故选A。

更多相关问题