下列程序运行后的输出结果是:_____ #include<stdio.h> void fun(int *pa, int pb ) { int pt; pt = *pa, *pa = pb, pb = pt; } int main() { int x=1, y=2; fun(&x, y); printf("%d", x==y); return 0; }

题目

下列程序运行后的输出结果是:_____ #include<stdio.h> void fun(int *pa, int pb ) { int pt; pt = *pa, *pa = pb, pb = pt; } int main() { int x=1, y=2; fun(&x, y); printf("%d", x==y); return 0; }


相似考题
更多“下列程序运行后的输出结果是:_____ #include<stdio.h> void fun(int *pa, int pb ) { int pt; pt = *pa, *pa = pb, pb = pt; } int main() { int x=1, y=2; fun(&x, y); printf("%d", x==y); return 0; }”相关问题
  • 第1题:

    阅读下列程序: include void fun(int n) { int x(5); static int y(10); if(n>0) {

    阅读下列程序:

    include<iostream.h>

    void fun(int n)

    {

    int x(5);

    static int y(10);

    if(n>0)

    {

    ++x;

    ++y;

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

    }

    }

    void main()

    int m(1);

    fun(m);

    }

    则该程序的输出结果是______。


    正确答案:611
    6,11 解析:由主函数mian入手,首先定义变量m等于1,然后调用fun函数。fun函数中y为静态数值,等于10,作用域为到本文件结束。所以y加1后,主函数中y的值也为11。其中函数中x的加1运算调用的是函数中的x等于5的变量,作用域为由定义到文件结束,即主函数中输出的x值为6。所以答案为6,11。

  • 第2题:

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

    有如下程序: #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::ndl; return 0; } 执行后的输出结果是

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B
    解析:x为引用,双向的;而y为值传递,单向的。

  • 第3题:

    有如下程序: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]的值没有改变。

  • 第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题:

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

  • 第6题:

    有以下程序includeint fun(int x;int y){if(x=y)reurn(x); elsereturn((x+y)/2);}main

    有以下程序 #include<stdio.h> int fun(int x;int y) { if(x=y)reurn(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
    解析:在主函数中,第—次调用fun函数,将变量b,c的值传给形参x,y,在fun()函数中执行if语句,判断b和c的值是否相等,由于在主函数中赋初值b=5,c=6,所以判断条件不满足,执行else语句,返回表达式(x+y)/2的值,即:(5+6)/2,因为参数的类型都为int型,所以结果也为整型:5,第二次调用时8和5也不相等,所以返回值为6,因此,选项B是正确的。

  • 第7题:

    下面程序的输出结果是()。includeint m=13;int fun2(int x,int y){int m=3; return(x*y

    下面程序的输出结果是( )。 #include <stdio.h> int m=13; int fun2(int x,int y) { int m=3; return(x*y-m); } main() { int a=7,b=5; printf("%d\n",fun2(a,b)/m); }

    A.1

    B.2

    C.7

    D.10


    正确答案:B
    解析:本题考查函数的调用。函数fun2的作用是将形参x和y的值相乘后减去3,在fun2中的变量m是一个局部变量,它的值在fun2函数内有效;在主函数中的m指的是全局变量,其值为13,所以fun2(a,b)/m的值为(7*5-3)/13,即2。

  • 第8题:

    有以下程序:includeint fun(int x,int y){if(x==y)return(x);else return((x+y)/2);}m

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

    A.2

    B.3

    C.4

    D.5


    正确答案:A

  • 第9题:

    下面程序的运行结果是【】。 include using namespace std; void fun(int&a,int b=3)

    下面程序的运行结果是【 】。

    include <iostream>

    using namespace std;

    void fun(int &a, int b=3)

    {

    static int i=2;

    a = a + b + i;

    i = i + a;

    }

    int main()

    {

    int x=5, y=2;

    fun(x, y);

    cout<<x<<",";

    fun(x);

    cout<<x<<end1;

    return 0;

    }


    正确答案:923
    9,23 解析:本题主要考察C++中变量的作用域、存储类别和参数默认值的使用。本题主函数中,第1次调用fun()函数时,利用实参x和y将5和2分别赋值给形参a和b;由于形参a为传址方式传值,因此在函数fun()内部,由于a的改变:a =a+b+i=5+2+2=9。导致实参x值也变为9,因此程序第1次输出x值为9。
    此后静态局部变量i值变为:i=i+a=2+9=11。
    主函数第2次调用fun()时,只给出了一个实参x,其值由上述计算应该为9,而另一个参数由于fun()函数定义中为形参b指定了默认值3,因此此时程序将把3作为形参b的值代入fun()函数中去。类似上面计算有:a=a+b+i=9+3+11=23。
    由于形参a采用传址方式传值,因此实参x值也随之变为23,则程序第2次输出值应该为23。故程序整体输出为“9,23”。

  • 第10题:

    下列程序的输出结果是()。includeint fun(int x){ int a;if(x==0||x=1)return 3;elsea=

    下列程序的输出结果是( )。#include<stdio.h>int fun(int x){ int a; if(x==0||x=1) return 3; else a=x-fun(x-2); return a;}void main(){ printf("%d",fun(7));}

    A.2

    B.8

    C.9

    D.5


    正确答案:A
    解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3→0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2.

  • 第11题:

    下列程序运行后的输出结果是()。 include void fun(int,int,int*); void main() { i

    下列程序运行后的输出结果是( )。 #include<iostream.h> void fun(int,int,int*); void main() { int x,y,z; fun(5,6,&x); fun(7,x,&y); fun(x,y,&z); cout<<x<<","<<y<<","<<z<<end1; } void fun(int a,int b,int *c) { b+=a; *c=b-a; }

    A.5, 5, 5

    B.6, 6, 6

    C.5, 6, 7

    D.7, 7, 7


    正确答案:B
    解析:由程序中的main函数入手,分别调用fun函数,第一个调用中x参数为引用地址,调用后x的值为6,因为参数为地址,所以第二个调用中的x参数值为6,调用后y的计算结果为6。同理, z在第三个函数调用后z的值为6。

  • 第12题:

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

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

  • 第13题:

    以下程序运行后的输出结果是【】。 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。

  • 第14题:

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

  • 第15题:

    下列程序的输出结果是()。 include int fun(int x) {int a; if(x==0‖x==1) return 3;

    下列程序的输出结果是( )。

    #include<stdio.h>

    int fun(int x)

    { int a;

    if(x==0‖x==1)

    return 3;

    else

    a=x-fun(x-2) ;

    return a;

    }

    void main()

    { printf("%d",fun(7) );

    }

    A.2

    B.8

    C.9

    D.5


    正确答案:A
    解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→ fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→ fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。

  • 第16题:

    如下程序的输出结果是includevoid fun(int & X,inty){intt=x;x=y;y=t;}int main(){in

    如下程序的输出结果是 #include<iostream> void fun(int & X,inty){intt=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
    解析:参数X是引用传递,传递的是地址:参数Y是值传递,函数fun( )是做X与Y值交换,交换后X的值要被回传给a[1],此时a[1]=a[0]=23。

  • 第17题:

    下列程序的输出结果是()。 include int fun(int x) {int a;if(x==0‖x==1) return 3;els

    下列程序的输出结果是( )。 #include<stdio.h> int fun(int x) { int a; if(x==0‖x==1) return 3; else a=x-fun(x-2); return a; } void main() { printf("%d",fun(7)); }

    A.2

    B.8

    C.9

    D.5


    正确答案:A
    解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fon(5)→fun(5):a=5-fon(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去 fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5-2,最后的计算结果为2。

  • 第18题:

    有以下程序:includeint fun(int x,int y){if(x!=y)return(y);else return((x+y)/2);}ma

    有以下程序: #include<stdioh> int fun(int x,int y) {if(x!=y)return(y); 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

  • 第19题:

    以下程序的输出结果是()。includeint m=13;int fun(int x,int y){int m=2;return(x*y-m

    以下程序的输出结果是( )。 #include<stdio.h> int m=13; int fun(int x,int y) {int m=2; return(x*y-m); } main() {int a=7,b=6; printf("%d",fun(a,B)/m); }

    A.1

    B.3

    C.7

    D.10


    正确答案:B

  • 第20题:

    以下程序输出结果是 ______。includevoid fun(int x,int y,int z){z=x+y;}void main

    以下程序输出结果是 ______。 #include<iostream.h> void fun(int x,int y,int z){z=x+y;} void main() { int a=10; fun (2,2,a); cout<<a; }

    A.0

    B.4

    C.10

    D.无定值


    正确答案:C

  • 第21题:

    如下程序执行后的输出结果是【】。include using namespace std; class Base { public:

    如下程序执行后的输出结果是【 】。

    include <iostream>

    using namespace std;

    class Base

    {

    public:

    Base(int x,int y)

    {

    a=x;

    b=y;

    }

    void Show()

    {

    cout<<"Base: "<<a<< ',' <<b<<" ";

    }

    private:

    int a,b;

    };

    class Derived : public Base

    {

    public:

    Derived(int x, int y, int z) : Base(x,y),c(z) { }

    void Show()

    {

    cout<<"Derived:"<<c<<end1;

    }

    private:

    int c;

    };

    int main()

    {

    Base b(100,100),*pb;

    Derived d(10,20,30);

    pb=&b;

    pb->Show();

    pb=&d;

    pb->Show();

    return 0;

    }


    正确答案:Base:100100 Base:1020
    Base:100,100 Base:10,20 解析:本题考核对象指针的应用。主函数中通过对象指针pb.分别调用其类成员函数Show()和派生类成员函数Show()先后输出 Base:100,100Base:10,20。

  • 第22题:

    下列程序运行后的输出结果是()。includevoid fun(int,int,int*);void main(){int x,

    下列程序运行后的输出结果是( )。 #include<iostream.h> void fun(int,int,int*); void main() { int x,y,z; fun(5,6,&x); fun(7,x,&y); fun(x,y,&z); cout<<x<<","<<y<<","<<z<<endl; } void fun(int a,int b,int *c) { b+=a; *c=b-a; }

    A.5,5,5

    B.6,6,6

    C.5,6,7

    D.7,7,7


    正确答案:B
    解析:由程序中的main函数入手,分别调用fun函数,第一个调用中x参数为引用地址,调用后x的值为6,因为参数为地址,所以第二个调用中的x参数值为6,调用后y的计算结果为6。同理,z在第三个函数调用后z的值为6。

  • 第23题:

    下列程序段的输出结果是 include void fun(int * X,int * y) {cout < < * X < <

    下列程序段的输出结果是 #include<iostream.h> void fun(int * X,int * y) { cout < < * X < < * y; * X=3; * y=4; } void main( ) { int x=1,y=2; fun(&y,&x); cout < < X < < y < < end1; }

    A.2143

    B.1212

    C.1234

    D.2112


    正确答案:A
    解析:在fun函数中,x接收的是main函数中y的地址,所以*x值为2,同样,*y值为1,所以第1次输出的是21,第2次改变*x的值等同于改变y的值,改变*y的值也即改变x的值,所以第2次输出的是43。注意:C++语言中函数的传参方式中关于指针的应用。

  • 第24题:

    有如下程序: include using namespace std; int fun1(int x) {return++x;} int fun2(i

    有如下程序:

    include<iostream>

    using namespace std;

    int fun1(int x) {return++x;}

    int fun2(int &x) {return++x;}

    int main(){

    int x=1,y=2;

    y=fun 1(fun2(x));

    cout<<X<<','<<y;

    return 0:

    }

    程序的输出结果是______。


    正确答案:23
    2,3 解析:此题考查的是函数传值。int fun1(int x) {retum++x;}函数中参数为传值,所以对于函数的操作不会改变实参的值,而函数int fun2(int &x){retum++x;}中的参数为引用,对于形参的操作会改变实参的值。在主函数中调用fun2(x)后,变量x的值修改为2,所以在调用fun1函数时其形参值为2,即运算后y的值被赋值为3,所以输出为2,3。