参考答案和解析
正确答案:C
更多“若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是A ) 16 B ) 8 C ) 4 D ) 2 ”相关问题
  • 第1题:

    若有以下程序#include <stdio.h>int a[]={2,4,6,8};main(){ int i; int *p=a; for(i=0;i<4;i++)a[i]=*p; printf("%d\n",a[2]);} 上面程序的输出结果是A.6 B.8C.4 D.2


    正确答案:D
    本题中,程序开始定义了一个全局数组a,并对这个数组进行赋初值。在主函数中,定义一个整型变量i和一个整型指针变量p,并使指针变量p指向全局数组a的首地址。然后执行for循环,循环变量i的初值为0,循环结束条件为变量i的值大于等于4,循环变量i的值每循环一次自加1,通过这些分析我们知道,循环执行了4次结束。
    第一次循环时,由于*p表示数组的第一个元素值2,那么执行a[i]=*p;语句,即将数组的第一个元素变为2;第二次循环时,由于i为1,即将数组的第二个元素变为2,同理,第三次与第四次循环分别将数组的第三和第四个元素值变为2。
    循环结束,程序执行输出语句,这时数组中所有元素的值都为2。因此,程序最后的输出结果是2。

  • 第2题:

    若有以下程序includeint a[]={2,4,6,8};main(){int i; int *p=a; for(i=0;i<4;i++)a[i

    若有以下程序 #include <stdio.h> int a[]={2,4,6,8}; main() { int i; int *p=a; for(i=0;i<4;i++)a[i]=*p; printf("%d\n",a[2]);} 上面程序输出结果是

    A.6

    B.8

    C.4

    D.2


    正确答案:D
    解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

  • 第3题:

    若有以下程序 include int a[ ]={2,4,6,8}; main( ) { int i; int *p=a; for(i=0;i<4

    若有以下程序

    #include <stdio.h>

    int a[ ]={2,4,6,8};

    main( )

    { int i;

    int *p=a;

    for(i=0;i<4;i++) a[i]=*p;

    printf("%d\n",a[2]);}

    上面程序的输出结果是

    A.6

    B.8

    C.4

    D.2


    正确答案:D
    解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量 p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

  • 第4题:

    若有以下程序段: int r=8; print("%d\n",r>>1): 输出结果是( )。 A.16B.8S

    若有以下程序段: int r=8; print("%d\n",r>>1): 输出结果是( )。

    A.16

    B.8

    C.4

    D.2


    正确答案:C
    本题考查移位运算。将8转为二进制数为1000,右移一位不足补0,结果为0100,转化为十进制结果为4。

  • 第5题:

    若有以下程序段

    int r=8:

    prinff(“%d\n”,r>>1);

    输出结果是

    A.16

    B.8

    C.4

    D.2


    正确答案:C
    解析:8用二进制表示为1000,右移1位后为0100,即十进制4。