更多“若有以下程序:main(){int k=2,i=2,m; m=(k+=i*=k); print f("%d,%d\n",m,i);}执行后的输出结果是 ”相关问题
  • 第1题:

    若有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k);cout<<m<<","<<i<<end1;}执行后的输出结果是

    A.8,6

    B.8,3

    C.6,4

    D.7,4


    正确答案:C
    解析:首先进行括号内的运算,注意赋值表达式是从右向左进行的。因此,只要考生细心运算就可以得到正确答案为C。

  • 第2题:

    有以下程序: fun(int x,int y) { static int m=0, i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1,m=1,k; k=fun(j,m); printf("%d,"k); k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是( )。

    A.5,5

    B.5,11

    C.11,11

    D.11,5


    正确答案:B
    解析:本题的fun()函数中定义的变量m和i是静态局部变量,第1次调用fun()函数时m=0、i=2,执行i+=m+1后,i的值变为3,再执行m=i+x+y后,m的值变为5,所以第1次输出的整数是5。第2次调用fun()函数时m=5、i=3,执行i+=m+1,i变为9,再执行m=i+x+y,m变为11,所以第2次输出的整数是11。故本题应该选择B。

  • 第3题:

    若有以下程序段: int k=2,i=2,m; m=(k+=i*=k); 执行后m,i的结果是()

    A.8,6

    B.8,3

    C.7,4

    D.6,4


    无限次

  • 第4题:

    若有以下程序: main() { int k=2,i=2,m; m=(k+=i*=k);printf(“%d,%d\n”,m,i); } 执行后的输出结果是

    A.8,6

    B.8,3

    C.6,4

    D.7,4


    正确答案:C
    解析:在复合赋值语句中,应该由右向左依次赋值,在表达式中,右端由i* =k得i=2*2为4,k=k+i,即k值为6,m=k故m=6。

  • 第5题:

    若有以下程序: main( ) { int k=2,i=2,m; m=(k+=i*=k);printf("%d,%d\n",m,i); } 执行后的输出结果是

    A.8,6

    B.8,3

    C.6,4

    D.7,4


    正确答案:C