niusouti.com
参考答案和解析
正在拼命补充中,明天再来康康哇~
更多“以下程序段输出的结果是 int x=5,y=10,t=0; if(x==y) t=x;x=y;y=t; printf("%d,%d",x,y);”相关问题
  • 第1题:

    有如下程序:includevoid 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::end1; return 0; } 执行后的输出结果是( )。

    A.42,42

    B.23,23

    C.23,42

    D.42,23


    正确答案:B

  • 第2题:

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

    #define MAX(x,y)(x)>(y)?(x):(y)

    main()

    { int a=5,b=2,c=3,d=3,t;

    t=MAX(a+b,c+d)*10;

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

    }


    正确答案:
    7

  • 第3题:

    有以下程序

    void f( int y, int *x)

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

    main()

    { int x=2,y=4;

    f(y,&x);

    printf("%d %d\n",x,y);

    }

    执行后输出结果是______。


    正确答案:8 4
    8 4 解析:本题考核的知识点是函数的调用、值传递和地址传递的区别。“值传递”指实参将值传递给形参后,实参与形参再无联系。也就是说对行参的改变将不影响实参;地址传递是指地址或数组名作为形参时的参数传递,这种情况下对形参的改变将对实参产生影响.函数 f(Y*x)的作用是让y的值加上指针x所指向变量的值,让指针x所指向变量的值加上y的值。由于形参y是传值的,形参x是传地址的,故调用该函数后,作为实参的y的值将不改变,而实参x的值将改变,故最后输出的y的值为4,而x的值为8。

  • 第4题:

    有以下程序段,其输出的结果是______。

    int x,y,z;

    X=y=z=0;

    ++x‖++y && ++z;

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


    正确答案:100
    1,0,0

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

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

    inc]udc

    main()

    {int x=10.y=20.t=0;

    if(x==y) t=x;x=y;y=1;

    printf(“%d %d/n”.x,y);


    正确答案:20 0
    20 0

  • 第7题:

    下列程序的输出结果是______。main() { int x,y; for(x=1,y=1;x<=10;x++) {if(y>=5)break;if(y%3=

    下列程序的输出结果是______。 main() { int x,y; for(x=1,y=1;x<=10;x++) {if(y>=5)break; if(y%3==1) }y+=3; continue; } y-=5; } printf("%d\n",x); }

    A.2

    B.3

    C.4

    D.5


    正确答案:B
    解析:本题考查循环辅助控制语句break和continue,前者退出整个for循环,后者跳过本次循环没有执行完的若干条语句,开始下一次循环操作,建议读者采用本书推荐的列表法分析。

  • 第8题:

    有以下程序的输出结果是( ) 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
    解析:在本题中,main函数中的x,y,z在f函数调用前后不会发生值的变化。

  • 第9题:

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

    int t(int x,int y,int cp,int dp)

    {cp=x% y+y*y;

    dp=x+x-y*y;

    }

    main()

    { im a=4,b=3,c=9,d=8;

    t(a,b,c,D);

    printf("%d%d\n",c,D);

    }


    正确答案:98
    98 解析:本题的考查点是函数的调用。本题中a,b,c,d是实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是98。

  • 第10题:

    以下程序的输出结果是#define MAX(x,y) (x)>(y)?(x):(y)main() { int a = 5, b = 2,c = 3, d = 3, t; t = MAX(a + b, c + d)*10; printf("%d\n", t);}


    正确答案:7
    宏替换后,表达式t = MAX(a + b, c + d)*10即变为t = (a+b)>(c+d) ? (a+b) : (c + d)*10;,由于(a+b)>(c+d)为真,所以t = (a+b),即为7。

  • 第11题:

    请选出以下程序的输出结果()。includesub(int *s,int y){static int t=3; y=s[t];t--;}

    请选出以下程序的输出结果( )。 #include <stdio.h> sub(int *s,int y) { static int t=3; y=s[t];t--; } main() { int a[]={1,2,3,4},i,x=0; for(i=0;i<4;i++) { sub(a,x);printf("%d",x); } printf("\n"); }

    A.1234

    B.4321

    C.0

    D.4444


    正确答案:C
    解析:本题考查函数的形参和实参的关系。函数sub将实参x的值传给形参y,y值的改变不能使x的值发生改变,所以输出的x值始终为0。

  • 第12题:

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

  • 第13题:

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

  • 第14题:

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

  • 第15题:

    有如下程序: 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为值传递,单向的。

  • 第16题:

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

  • 第17题:

    下列程序的输出结果是______。 int t(int x,int y,int cp,int dp) { cp=x*X+y*y; dp=x*x-y*y; } main() { int a=4,b=3,c=5,d=6: t(a,b,c,d); printf("%d%d\n" ,c,d);

    A.4 5

    B.4 6

    C.5 6

    D.5 5


    正确答案:C

  • 第18题:

    下面程序的运行结果是( )。

    define EXCH(a,B){int t;t=a;a=b;b=t;}

    main()

    {int x=1,y=2;

    EXCH(x,y);

    printf("x=%d,y=%d\n",x,y);

    }


    正确答案:x=2y=1
    x=2,y=1

  • 第19题:

    下列程序段的输出结果是( )。 void fun(int *x,int *y) { printf("%d%d",*x,*y);*x=3;*y=4; } main() { int x=2,y=1; fun(&y,&x); printf("%d%d",X,y); }

    A.1243

    B.1212

    C.1234

    D.2112


    正确答案:A
    解析:本题主函数中首先定义了两个变量x和y,并初始化为2和1,然后将y和x的地址值,传入函数fun(),函数fun()中的形参x和y分别指向主函数中的变量y和x,所以fun()函数输出的值为1和2,fun()函数在结束之前把形参x所指内容赋为3,把形参y所指内容赋为4,所以返回主函数后,主函数中的x和y已被改写为4和3。故程序输出结果为1243。选项A正确。

  • 第20题:

    有如下程序: 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选项为所选。

  • 第21题:

    以下程序运行后的输出结果是void fun(int x,int y){ x=x+y;y=x-y;x=x-y; printf("%d,%d,",x,y);}main(){ int x=2,y=3; fun(x,y); printf("%d,%d\n",x,y);}


    正确答案:3,2,2,3
    被调用函数fun()实现的功能是交换变量x和y的值并打印,由于该函数无返回值,所以在主函数中打印出的x和y的值仍然为2,3。

  • 第22题:

    下面程序的输出结果是()。includeusing namespace std;templateT max(T x,T

    下面程序的输出结果是( )。 #include<iostream> using namespace std; template<class T> T max(T x,T y) { return(x>= y ? x:y);} template<class T> T max(T x,T y,T z) { T t; t=(x>=y ? x:y); return(t>=z ? t:z); } void main(){ int x = 10,y=18,maxi; float a = 1.2,b = 3.2,c = 2,max2; max1 = max(x,(int)c); max2 = max(a,b,(float)y); cout<<maxi<<endl; cout<<max2<<endl;

    A.18 3.2

    B.10 18

    C.10 3.2

    D.编译出错


    正确答案:B
    解析:本道题考查函数模板以及函数模板重载的使用,max1=max(x,(int)c)语句会实例化Tmax(Tx,Ty)函数模板,返回两个int数据中的最大值;max2=max(a,b,(float)y);语句会实例化Tmax(Tx,Ty,T2)函数模板,返回3个float数据中的最大值。

  • 第23题:

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

    #include <stdio.h>

    main()

    { int x=10,y=20,t=0;

    if(x==y)t=x;x=y;y=t;

    printf("%d %d\n",x,y);

    }


    正确答案:
    (10)20 0

  • 第24题:

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