更多“有以下程序:main(){unsignedchar a,b;a= 4|3;b=4&3;printf("%d%d\n",a,b);}执行后输出结果是 ”相关问题
  • 第1题:

    有以下程序: main() { unsigned char a,b; a=4 | 3; b=4 & 3; printf("%d %d\n",a,b); } 执行后输出结果是( )。

    A.7 0

    B.0 7

    C.1 1

    D.43 0


    正确答案:A
    解析:在位与运算符&中参加运算的两位都为1时,其结果为1,否则结果为0。所以本题中的4|3:01002|00112=01112=7。位与运算符|中参加运算的两位只要有一个为1,则结果为1,只有当相应的两位都为0结果才为0。所以本题中的4&3=01002&00112 =00002=0。最后输出a和b的值为7和0。故4个选项中选项A符合题意。

  • 第2题:

    有以下程序:

    main

    { int k=5;

    while(--k)printf("%d",k-=3);

    printf("\n"); }

    执行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.死循环


    正确答案:A
    当k=5时,while条件中的值为4,k为4,循环不成立,k-=3可写成k=k-3,输出1,接着执行--k后k为0,当k=0时,while循环不成立,退出。

  • 第3题:

    有以下程序:main() {int k=5; while(--k) printf("%d", k-=3); printf("\n");} 执行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.死循环


    正确答案:A
    解析:因为在while循环的循环条件中,一运算符是前缀形式,所以表达式—k的值是k自减之后的值。程序开始时,将k的值初始化为5,然后进入while循环,因为—k的值为4(非零),所以执行循环体输出k-=3的值1,此时k的值也变为1。第2次执行循环条件,—k的值为0,所以循环结束。因此最后输出的结果是1,故应该选择A。

  • 第4题:

    有以下程序 main( ) { unsigned char a,b; a=4|3; b=4&3; printf(“%d %d\n”,a,b(; } 执行后输出结果是( )

    A.7 0

    B.0 7

    C.1 1

    D.43 0


    正确答案:A
    解析:a=4 0 3中的“|”表示按位或,结果为
      4:100
      3: 011
      4|3:111
      所以a=7。
      b=4&3中,“&”表示按位与,结果为
      4:100
      3:011
      4&3:000
      所以b=0。

  • 第5题:

    有以下程序: main { int k=5; while(--k)printf("%d",k-=3); printf("\n"); } 执行后的输出结果是( )。

    A.1

    B.2

    C.4

    D.死循环


    正确答案:A
    当k=j时,while条件中的值为4,k为4,循环不成立,k-=3可写成k=k3,输出1,接着执行--k后k为0,当k=0时,while循环不成立,退出。