niusouti.com
参考答案和解析
正确答案:C
解析:因为p=&a[1],p[0]=a[1],p[1]=a[2],p[2]=a[3]。for循环是求p[1]+p[2],因此y的值应为:6+8= 14。
更多“有以下程序:main(){inta[]={2,4,6,8,10},y=0,x,*p; p=&amp;a[1]; for(x=1;x<3;x++)y+=p[x];print ”相关问题
  • 第1题:

    执行以下程序后,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

  • 第2题:

    有以下程序: main { int a[]=(2,4,6,8,10},y=0,x,*P; p=&a[1]; for(x=1;x<3;x++) y+=p[x]; printf("%d\n,y"); } 程序运行后的输出结果是( )。

    A.10

    B.11

    C.14

    D.15


    正确答案:C
    由题目的语句P=&a[1]可知,P指向a数组中下标为1的元素“4”,又因为P为指针变量,所以P[x]与*(p+x)等价,因而在for循环语句中,第一次循环P[1]指向a数组中下标为2的元素“6”,第二次循环p[2]指向a数组中下标为3的元素“8”,所以y=6+8=14,因而选项C为正确答案。

  • 第3题:

    以下程序的输出结果是 main() { int a[] = {2, 4, 6, 8, 10}, y = 1, x, *p; p = &a[1]; for(x = 0; x < 3; x++) y += *(p + x); printf("%dn", y); }

    A.20

    B.18

    C.17

    D.19


    A当所赋的值不够其列的宽度时,系统在其后自动补0,因此a[0][3]=0,a[1][2]=6,a[2

  • 第4题:

    有以下程序:

    main

    { int a[]=(2,4,6,8,10},y=0,x,*P;

    p=&a[1];

    for(x=1;x<3;x++) y+=p[x];

    printf("%d\n,y");

    }

    程序运行后的输出结果是( )。

    A.A.10

    B.11

    C.14

    D.15


    正确答案:C
    由题目的语句P=&a[1]可知,P指向a数组中下标为1的元素“4”,又因为P为指针变量,所以P[x]与*(p+x)等价,因而在for循环语句中,第一次循环P[1]指向a数组中下标为2的元素“6”,第二次循环p[2]指向a数组中下标为3的元素“8”,所以y=6+8=14,因而选项C为正确答案。

  • 第5题:

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

    A.20

    B.18

    C.17

    D.19


    (14)emoclew