有以下程序 voidf(intx,inty){intt;if(x<y){ t=x; x=y; y=t;} main(){inta=4,b=3,c=5;f(a,b);f(a

题目

有以下程序 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,%d\n",a,b,c); } 执行后输出的结果是

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5

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

第1题:

【单选题】以下程序的运行结果是【 】。 void f(int a, int b) { int t; t=a; a=b; b=t; } main() { int x=1, y=3, z=2; if(x>y) f(x,y); else if(y>z) f(x,z); else f(x,z); printf("%d,%d,%dn",x,y,z); }

A.1,2,3

B.3,1,2

C.1,3,2

D.2,3,1


B B。【解析】在C++语言中,调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。

第2题:

有以下程序: 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,%d\n",a,b,c); } 执行后输出结果是( )。

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5


正确答案:D
a、b、C都是按值传递给函数f,函数f不能改变它们的值。所以,a、b、t的值仍然是4、3、5。

第3题:

有如下程序: 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,%d\n",a,b,C); } 执行后输出结果是( )。

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5


正确答案:D
解析:C语言规定,在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数f(),用变量作为形参,在main()函数中调用了3次f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。故输出的a、b、c依旧是原来的值4、3、5。D选项为所选。

第4题:

有以下程序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<<","<<c<<end1;}执行后输出结果是

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5


正确答案:D
解析:考生根据分析可以得知f函数的功能是交换两个变量的值。表明看起来,在main函数中,使用三次f函数完成三个变量的交换。真的如此么?只要考生注意到f函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值!故三个变量的值依然保持不变。

第5题:

有以下程序 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,%d\n",a,b,c) ; } 执行后输出结果是

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5


正确答案:D
解析:C语言规定,在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数f(),用变量作为形参,在main()函数中调用了3次f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。所以输出的a、b、c依旧是原来的值4、3、5。

第6题:

有如下程序 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(b,c);f(c,a); print("%d,%d,%d\n",a,b,c); }执行后输出结果是______。

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5


正确答案:D

第7题:

有以下程序:include void f(int v, int w){int t; t=v; v=w; w=t;}main(){int x=1,y=3

有以下程序: #include <stdio.h> void f(int v, int w) { int t; t=v; v=w; w=t; } main() { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf("%d,%d,%d\n",x,y,z); } 执行后的输出结果( )。

A.1,2,3

B.3,1,2

C.1,3,2

D.2,3,1


正确答案:C
解析:程序中if语句的条件只有y>z为真,所以执行f(y,z)。函数f的功能是交换两形参的值,但由于实参和形参都是一般变量,因此形参变量值的交换不能影响实参的值,main函数中的y和z并来互换,因此输出结果为:1,3,2。

第8题:

有以下程序:

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,%d\n",a,b,c);

}

执行后输出结果是( )。

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5


正确答案:D
a、b、C都是按值传递给函数f,函数f不能改变它们的值。所以,a、b、t的值仍然是4、3、5。

第9题:

有以下程序 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,%d\n",a,b,c); } 执行后输出的结果是

A.3,4,5

B.5,3,4

C.5,4,3

D.3,5,4


正确答案:D