执行以下程序段后,a,b,c的值分别是()。 int a, b = 20, c, x = 9, y = 8; a = (--x == y)? --x : y++; if(x < 9) b = x++; c=y;A.7, 8, 8B.7, 7, 8C.7, 8, 9D.8, 9, 9

题目

执行以下程序段后,a,b,c的值分别是()。 int a, b = 20, c, x = 9, y = 8; a = (--x == y)? --x : y++; if(x < 9) b = x++; c=y;

A.7, 8, 8

B.7, 7, 8

C.7, 8, 9

D.8, 9, 9


相似考题
参考答案和解析
B 解析: 本题考查自加(++)、自减(--)运算符的使用。“++i,--i”,在使用i之前,先使i的值加1或者减1,再使用此时的表达式的值参与运算;“i++,i--”,先使用此时的i的值参与运算,在使用i之后,再使i的值加1或者减1。 对于第1个表达式--x=4,y++=4。两者相等,--x==y++为真,所以a=x=4,执行完此语句后y的值是5。 第2个表达式b=++x,x的值先加1,然后赋给b,即b=x+1=5;第一个表达式c=y=5。
更多“执行以下程序段后,a,b,c的值分别是()。 int a, b = 20, c, x = 9, y = 8; a = (--x == y)? --x : y++; if(x < 9) b = x++; c=y;”相关问题
  • 第1题:

    有如下程序:

    void main()

    {

    int x=2,y=3,a,b,c,d;

    a=(x++>=--y);

    b=(x==++y);

    c=(x--!=y);

    d=(++x>y--);

    }

    则程序执行后变量a,b,c,d的值分别是______。


    正确答案:1 1 0 0
    1 1 0 0

  • 第2题:

    有如下程序:

    void main()

    {

    in(x=2,y=3,a,b,C,d;

    a=(x++>=--y);

    b=(x==++y);

    c=(x--!=y);

    d=(++x>y--);

    }

    则程序执行后变量a,b,c,d的值分别是______。


    正确答案:1 1 0 0
    1 1 0 0

  • 第3题:

    下列程序的运行结果是_______。

    main()

    { int x=1,y=2,z=3;

    printf("%d,",x<y?y:x);

    primf("%d,",z<y?x++:y++);

    primf("%d,%d",x,y);

    }


    正确答案:2213
    2,2,1,3 解析:本题考查++,--运算符和条件运算符的使用。
    “表达式1?表达式2:表达式3”的功能是:表达式 1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。
    本题中,x=1,y=2时,xy成立,输出y的值2;y=2, z=3时,zy不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。

  • 第4题:

    执行以下程序段后,a,b,c的值分别是()。inta,b=100,c,x=10,y=9;a=(--x==y++)?—x:++y;if(x9)b=x++;c=y;

    A.9,9,9

    B.8,8,10

    C.9,10,9

    D.1,11,10


    正确答案:B

  • 第5题:

    以下程序执行后的输出结果是( )。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,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第6题:

    以下程序的执行后,x和y的值是 ______ 。 include class Sample { public: int x;

    以下程序的执行后,x和y的值是 ______ 。 #include <iostream. h> class Sample { public: int x; int y; void disp() { cout<<"x="<<x<<", y="<<y<<end1; } }; void main() int Sample: :*pc; Sample s; pc=&Sample:: x; s. *pc=10; pc=&Sample: :y; s. *pc=.20; s. disp ();

    A.x=10, y=20

    B.x=20, y=10

    C.x=10, y=10

    D.x=20, y=20


    正确答案:A

  • 第7题:

    执行以下程序后,y的值是 ( ) main( ) { int a [ ]={2,4,6,8,10); int y=1,x, *p; p=&a[1]; for(x=0;x<3; x + +) y + =* (p + x); printf("%d\n",y); }

    A.17

    B.18

    C.19

    D.20


    正确答案:C

  • 第8题:

    有以下程序: main() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d,%d\n",x,y,z); 程序运行后的输出结果是( )。

    A.2,3,3

    B.2,3,2

    C.2,3,1

    D.2,2,1


    正确答案:C
    解析:z=x++是先把x的值1赋给z,所以z=1,然后再把x加1赋给x,x=2,++y后y又加1,所以y=3。

  • 第9题:

    若有定义 int x=3,y;则执行语句y=(x++)+(x++)+(x++)后,y=( )。

    A、9

    B、12

    C、15

    D、18


    答案:B

  • 第10题:

    若有如下程序: main() { int k,x=0,y=0; for(k=0;k<=2;k++) switch(k) { case 0: X++; case 1: y++; case 2: X++;y++; } printf("%d,"d\n",x,y); } 则程序运行后的输出结果是( )。

    A.3,3

    B.2,2

    C.4,5

    D.2,3


    正确答案:C
    解析:本题使用了一个for循环,循环变量k从0递增到2共循环3次,循环体是一个switch语句,第一次循环k为0,所以从case0:处开始执行,变量x和y都自增两次。然后分别从case1:和case2:处执行,变量x共自增两次,y共自增3次,所以最后输出的结果是4,5。故应该选择C。

  • 第11题:

    设x=4,y=8,说明下列各题运算后x,y,z的值分别是多少? (a)z=(++x)*(--y) (b)z=(++x)+(y--) (c)z=(x++)*(--y) (d)z=(x++)+(y--)


    正确答案:(a)x=5,y=7,z=35;
    (b)x=5,y=7,z=13;
    (c)x=5,y=7,z=28;
    (d)x=5,y=7,z=12。

  • 第12题:

    Which two code fragments are most likely to cause a StackOverflowError?()

    • A、int []x = {1,2,3,4,5};for(int y = 0; y < 6; y++)    System.out.println(x[y]);
    • B、static int[] x = {7,6,5,4};static { x[1] = 8;x[4] = 3; }
    • C、for(int y = 10; y < 10; y++)doStuff(y);
    • D、void doOne(int x) { doTwo(x); }void doTwo(int y) { doThree(y); }void doThree(int z) { doTwo(z); }
    • E、for(int x = 0; x < 1000000000; x++) doStuff(x);
    • F、void counter(int i) { counter(++i); }

    正确答案:D,F

  • 第13题:

    有如下程序:includevoid main(){int x=2,y=3,a,b,c,d;a=(x++>=--y);b=(x==++y);c=(x

    有如下程序:

    include<iostream.h>

    void main()

    {

    int x=2,y=3,a,b,c,d;

    a=(x++>=--y);

    b=(x==++y);

    c=(x--!=y);

    d=(++x>y--);

    Cout<<a<<b<<c<<d<<end1;

    }

    则程序执行后变量a,b,c,d的值分别是【 】。


    正确答案:1 1 0 0
    1 1 0 0

  • 第14题:

    执行下列程序段后, int x=10,y=9;int a,b,c;a=(--x= =y++)?--x:++y;b=x++;c=y; 变量a,b,c的值分别是( )

    A.a=9,b=9,c=9

    B.a=8,b=8,c=10

    C.a=9,b=10,c=9

    D.a=8,b=8,c=9


    正确答案:B 

  • 第15题:

    以下程序段执行后y的值是【 】。

    x=7

    y=Int(x+0.6)

    Print y


    正确答案:4
    4 解析:返回参数的整数部分,其类型和参数相同。语法Int(number):必要的number参数是Double或任何有效的数值表达式。如果number包含Null,则返回Null。

  • 第16题:

    执行程序段“int x=1,y=2;x=x^y;y=y^x;x=x^y;”后,x和y的值分别是______。

    A.1和2

    B.2和2

    C.2和1

    D.1和1


    正确答案:C

  • 第17题:

    执行下列程序后,变量a,b,C的值分别是( )。 int x=5,y=4; int a,b,c; a=(--x==y++)?X:++y; b=++x: c=y:

    A. a=5,b=5,c=5

    B.a=4,b=5,c=5

    C.a=5,b=6,c=5

    D.a=1,b=5,c=6


    正确答案:B
    本题考查自加(++)、自减(--)运算符的使用。“++x,--x”,在变量x前使用,先使X的值加1或者减1,再使用此时的表达式的值参与运算;“x++,x--”,先把使用X的值参与运算,在使用X之后,再使x的值加1或者减1。对于表达式--x=4,y++=4,两者相等,--x=y++为真,所以a=x=4,执行完此语句后y的值是5。第2个表达式b=++x,x的值先加1,然后赋给b,即b=x+1=5;第一个表达式c=y=5。故B正确。

  • 第18题:

    有以下程序:includevoid main(){int x=10,y=10;for(int i=0;x>8;y=++i)cout<

    有以下程序: #include<iostream.h> void main() { int x=10,y=10; for(int i=0;x>8;y=++i) cout<<x--<<","<<y<<","; } 该程序运行后的输出结果是( )。

    A.10,1,9,2

    B.9,8,7,6

    C.10,9,9,0

    D.10,10,9,1


    正确答案:D

  • 第19题:

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

    以下程序执行后的输出结果是 #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<<endl; 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,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第20题:

    设x和y均为int型变量,则执行下面的循环后,y值为()。include void main(){int x, y;f

    设x和y均为int型变量,则执行下面的循环后,y值为( )。#include <iostream.h>void main(){int x, y;for(y= 1,x= 1 ;y<=50;y++){ if(x>=10) }break;if (x%2==1){ x+=5; continue;} x-=3;} cout<<y;

    A.2

    B.4

    C.6

    D.8


    正确答案:C

  • 第21题:

    以下错误的if语句是( )。

    A.if(x>y)x++;

    B.if(x)x++;

    C.if(x!=y) cout<<x;y++;

    D.if(x<y) x++;cout<<x;else cout<<y;


    正确答案:D
    解析:if和else语句必须紧密相连,应该将x++;coatx;做成复合语句{x++;coutx;}。

  • 第22题:

    设有定义“int x=8,y,z;”,则执行“y=z=x++,x=y==z;”后,变量x值是( )

    A.0

    B.1

    C.8

    D.9


    正确答案:B
    这是逗号表达式组成的语句,要先计算“y=z=x++”,结果变量y和z的值均为8。注意++是后缀运算符,同时x等于9。再计算“x=y==z”,由于“==”优先于“=”,所以x的值等于“y==z”,而y和z值相等,所以运算结果为1,即x值为1。本题答案应选B。

  • 第23题:

    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }

    • A、17
    • B、18
    • C、19
    • D、20

    正确答案:C

  • 第24题:

    单选题
    执行以下程序后,y的值是() main( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf(""%d/n"",y); }
    A

    17

    B

    18

    C

    19

    D

    20


    正确答案: A
    解析: 暂无解析