有以下程序 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); pfintf("%d,%d,%d\n",x,y,2); } 执行后输出结果是A.1,2,3B.3,1,2C.1,3,2D.2,3,1

题目

有以下程序 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); pfintf("%d,%d,%d\n",x,y,2); } 执行后输出结果是

A.1,2,3

B.3,1,2

C.1,3,2

D.2,3,1


相似考题
参考答案和解析
正确答案:C
解析:C语言规定else总是和离它最近的if语句配对。分析可以知道,函数f()作用是让形参v和形参w的值交换。在主函数中首先定义了三个变量x、y和z。 然后再执行下面的if-else语句。由程序可以看出第一个else和第一个if搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x,y,z传给形参v和w,以后形参和实参再无联系,故通过if语句调用f()函数后,x、y和x的值并没有改变。故最后输出的x、y和z的值为1、3和2。
更多“有以下程序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);els ”相关问题
  • 第1题:

    有以下程序:

    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。

  • 第2题:

    以下程序执行后的输出结果是( )。include usingnamespacestd;void try(int,int,int,in

    以下程序执行后的输出结果是( )。 #include <iostream> using namespace std; void try(int,int,int,int); int main ( ) { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = X*X; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。下面是正确解答。根据程序逐步分析:①程序中定义了一个名为try的void型函数,即函数try()没有任何返回值。②而try()函数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量r的值。③但在主函数中,并没有对变量r赋值。④在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数try()中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第3题:

    有如下程序: include using namespace std; void f1(int& x, int& y){int z=

    有如下程序:

    #include<iostream>

    using namespace std;

    void f1(int& x, int& y){int z=x; x=y; y=z;)

    void f2(int x, int y){int z=x; x=y; y=z;}

    intmain(){

    int x=10, y=26;

    f1(x, y);

    f2(x, y);

    cout<<y<<end1;

    return 0;

    }

    运行时的输出结果是( )。

    A) 10

    B) 16

    C) 26

    D) 36

    A.

    B.

    C.

    D.


    正确答案:A

  • 第4题:

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

  • 第5题:

    有如下程序:include void fun(int& x, int y){int t=x;x=y;y=t;}int main (){int

    有如下程序: #include <iostream> void fun(int& x, int y){int t=x;x=y;y=t;} int main () { int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; } 执行后的输出结果是

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B
    解析:本题考核函数的调用以及参数值的传递。函数fun中的第一个参数采用引用传值方式,函数中对形参值的改变同样作用于实参上;第二个参数采用按值传值方式,函数中对形参的操作不会影响到实参。所以main函数中调用fun函数后,a[1]的值被修改为a[0]的值,而a[0]的值没有改变。

  • 第6题:

    下列程序的输出结果是()。includedefine F(x)2.84+xdefine w(y)printf("%d",(int)(y)

    下列程序的输出结果是( )。 #include<stdio.h> #define F(x)2.84+x #define w(y)printf("%d",(int)(y)) #define P(y)w(y)putchar('\n') main() { int x=2; P(F(5)*x); }

    A.12

    B.13

    C.14

    D.16


    正确答案:A
    解析:本题考查带参数的宏的定义及相关运算。P(F(5)*x)=P(2.84+5*2)=P(12.84),调用w(12.84),输出(int)(12.84)=12。

  • 第7题:

    有下列程序: include int f(int x) { int y; if(x=0‖x==1)r

    有下列程序: #include <stdio.h> int f(int x) { int y; if(x=0‖x==1)return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3);printf("%d\n",z); 程序的运行结果是( )。

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析:主函数调用f()函数,将实参3传递给x,进行if条件语句的判断不成立,接着执行y=3*3-f(1),再执行f(1)而f(1)满足if条件语句,所以f(1)的值为3,那么代入y=3*3-f(1)=9-3=6,故选项C)为正确的运行结果。

  • 第8题:

    有以下程序includeint f(intx){inty; if(x==0||x==1)return(3); y=x*x-f(x-2); return

    有以下程序 #include <stdio.h> int f(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf("%d\n",z); } 程序的运行结果是

    A.0

    B.9

    C.6

    D.8


    正确答案:C
    解析:函数int f(int x)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x -2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。

  • 第9题:

    以下程序执行后的输出结果是includeusing namcspace std;void try(int,int,int,int);

    以下程序执行后的输出结果是 #include<iostream> using namcspace std; void try(int,int,int,int); int main() { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第10题:

    有以下程序:include void f(int * x,int * y) int t;t= *x; *x= *y; *y=t;main ( ){in

    有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q; p=a;q =&a[7]; while(p<q) { f(p,q) ;p ++ ;q --; } for(i =0;i<8;i ++ ) printf(" % d," ,a[i]); }程序运行后的输出结果是( )。

    A.8,2,3,4.,5,6,7,1,

    B.5,6,7,8,1,2,3,4,

    C.1,2,3,4,5,6,7,8,

    D.8,7,6,5,4,3,2,1,


    正确答案:D
    解析:程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在main函数中,通过P=a;q=&a[7];指针变量p指向数组的第一个元素,指针变量q指向数组的最后一个元素。通过调用函数f(p,q)进行前后对称位置上的数组元素的交换。当while循环4次(即p=q)后,a数组中各元素的值分别为8,7,6,5,4,3,2,1,所以程序输出的结果为:8,7,6,5,4,3,2,1,

  • 第11题:

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

  • 第12题:

    单选题
    有以下程序 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
    解析: 暂无解析

  • 第13题:

    有如下程序:include void fun (int& x,int y){int t=x;x=y;y=t;}int main(){ int

    有如下程序: #include <iostream> void fun (int& x,int y){int t=x;x=y;y=t;} int main() { int a[2]={23,42}; fun (a[1],a[0]; std::cout<<a[0]<<”,”<<a[1]<<std:: ond1; retum0; }执行后的输出结果是______ 。

    A.41,41

    B.23,23

    C.13,42

    D.42,23


    正确答案:B
    解析:a[0]做的是地址传递,所以执行函数后值发生变化,而a[1]做的是值传递,值并没有发生变化,所以此题应选择A。

  • 第14题:

    下面程序的结果【】。 include int f(int); void main() { int x=1,i; for (i=0; i<3;

    下面程序的结果【 】。

    include<iostream.h>

    int f(int);

    void main() {

    int x=1, i;

    for (i=0; i<3; i++)

    cout<<f(x)<<‘ ’ ;

    cout<<end1;

    }

    int f(int x){

    int y=1;

    static int z=3

    y++;

    z++;

    return (x+y+z);

    }


    正确答案:7 8 9
    7 8 9

  • 第15题:

    有以下程序: void f(int v , int w) { int t; t=v;v=w;w=t; } main() { int x=l,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-else语句的应用。C语言规定else总是和离它最近的if语句配对。分析可以知道,函数f()作用是让形参v和形参w的值交换。在i函数中首先定义了三个变量x。y和z。然后再执行下面的if-else语句.由程序可以看出第—个else和第一个订搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x,y,z传给形参v和w,以后行参和实参再无联系,故通过if语句调用f()函数后,x、y和z的值并没有改变。故最后输出的x、v和z的值为1、3和2,所以,4个选项中选项C符合题意。

  • 第16题:

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

  • 第17题:

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

  • 第18题:

    有以下程序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函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值!故三个变量的值依然保持不变。

  • 第19题:

    有以下程序: int f1(doubleA){return a*a;} int f2(int x,int y) {double a,b; a=f1(x); b=f1(y); return a+b; } main() {double w; w=f2(2.1,4.0); } 程序执行后,变量w的值是( )。

    A.20.21

    B.20

    C.20.0

    D.0.0


    正确答案:C

  • 第20题:

    以下程序的输出结果是()。includedefine F(x)2.84+xdefine w(y)printf("%d",(int)(y)

    以下程序的输出结果是( )。 #include<stdio.h> #define F(x)2.84+x #define w(y)printf("%d",(int)(y)) #define P(y)w(y) main() {int x=2; P(F(5)*x); }

    A.12

    B.13

    C.14

    D.16


    正确答案:A

  • 第21题:

    有如下程序:inchdevoid fun(int &x,int y){int t=x;x=y;y=t;}int main(){int a

    有如下程序: #inchde<iostream.h> void fun(int &x,int y){int t=x;x=y;y=t;} int main() { int a[2]={23,42); fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<Std::endl; return 0; } 执行后的输出结果是( )。

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B

  • 第22题:

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

  • 第23题:

    单选题
    有以下程序 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
    解析: 暂无解析