更多“执行以下程序段后,T的值为int T=’a’, x=12, y=5;T=((x || y)(T’A’));A.1 B.NULL C.-l D.0”相关问题
  • 第1题:

    设x,y,t均为int型变量,执行语句:

    x=y=3;

    t=++x||++y;

    完成后,y的值为

    A.不确定

    B.4

    C.3

    D.1


    正确答案:C
    t=++x或++y,当++x不为0的时候,即++x为真,则不需要再继续判断++y,那么y就不再执行自加,因此y=3.

  • 第2题:

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

  • 第3题:

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

  • 第4题:

    设x、y、t均为int型变量,执行以下语句后,y的值为______。x=y=3;t=++x||++y;

    A.不定值

    B.4

    C.3

    D.1


    正确答案:C

  • 第5题:

    设x、y、z、t均为int型变量,则执行以下语句后,t的值是 ( ) x=y=z=l; t=+ + x | | + + y &&am

    设x、y、z、t均为int型变量,则执行以下语句后,t的值是 ( ) x=y=z=l; t=+ + x | | + + y && + + z;

    A.不定值

    B.2

    C.1

    D.0


    正确答案:C

  • 第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(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。

  • 第7题:

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

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

    请选出以下程序的输出结果()。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。

  • 第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 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.4,3,5


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

  • 第14题:

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

  • 第15题:

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

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

    主调函数中的两个变量a和b,要求调用函数交换a、b的值,返回交换结果,则以下正确的函数是______。

    A.funa(int*x,int*y) {int*p; *p=*x;*x=*y;*y=*p; }

    B.funb(int x,int y) {int t; t=x;x:y=y=t;}

    C.func(int*x,int*y) {*x=*y;*y=*x;}

    D.fund(int *x,int*y) {*x=*x+*y;*y=*x-*y;*x=*x-*y;}


    正确答案:D
    解析:选项A中指针变量p没有明确的指向,选项B是值传递方式,显然不能改变实参中的值,选项C不能完成交换,实参中的值都变成一样的,只有选项D是正确的。

  • 第18题:

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

    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

  • 第19题:

    设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )。

    A.不定值

    B.4

    C.3

    D.1


    正确答案:C
    解析:在||运算中,当第一个表达式的值为真时,第二个表达式将不再运算。由于在表达式t=++t||++y;中,t的值为非0,即第一个表达式的值为真,第二个表达式将不再运算,所以y的值没有变化,仍然为3。所以,4个选项中选项C符合题意。

  • 第20题:

    以下程序的输出结果是#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。

  • 第21题:

    设X、y、Z、t均为int型变量,则执行以下语句后,t的值为( ) x=y=z=1;t=++x||++y&&++z;

    A.不定值

    B.2

    C.l

    D.0


    正确答案:C
    语句序列“x=y=z=l;t=++x||++y&&++z;”使变量x的值为1,变量t是赋一个逻辑表达式的值。在C语言中,由逻辑与和逻辑或构成的逻辑表达式有特别的计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑表达式的结果时,就立即结束逻辑表达式的计算,不再计算后继逻辑子表达式。本题的逻辑表达式是两个运算分量的逻辑或,而且左运算分量++X的值为非0,立即得到逻辑或运算的结果为1,并将1赋给变量t,所以变量t的值为1。正确解答为C。

  • 第22题:

    (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

  • 第23题:

    设x,y,z,t均为int型变量,则执行以下语句后,t的值为()。x=y=z=1;t=++x||++y&&++z;

    • A、不定值
    • B、2
    • C、1
    • D、0

    正确答案:C