niusouti.com
更多“执行以下程序后,y的值是() main() { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for ”相关问题
  • 第1题:

    有以下程序: 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],即使得p[0]的值为4,然后通过两次for循环,使得y的值分别加上p[1]和p[2],那么y=6+8,所以输出的y的值为14。

  • 第2题:

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

  • 第3题:

    执行以下程序段后,y的值是()。 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("%dn",y);

    A.17

    B.18

    C.19

    D.20


    C

  • 第4题:

    有以下程序*f(int * x,int * y) { if( * x< * y) return x; else return y; } main() { int a=7.b=8, * p, * q, * r; p=&a; q=&b: r=f(p,q); coat<< * p<<","<< * q<<","<< * r<<end1; } 执行后输出结果是

    A.7,8,8

    B.7.8,7

    C.8,7,7

    D.8.7,8


    正确答案:B
    解析:可以很容易分析出f函数的功能是比较两个数的大小,返回较小者。而,指向的也是较小者,故代人数据即可得出正确结果为B。

  • 第5题:

    有以下程序:include void f(int * x,int * y) int t;t= *x; *x= *y; *y=t;main ( ){in

    有以下程序:#include <stdio.h>void f(int * x,int * y) int t; t= *x; *x= *y; *y=t;main ( ){ int a[8] = { 1,2,3,4,5,6,7,8} ,i, * p, * q; p=a;q =&a[7]; while(p<q) { f(p,q) ;p ++ ;q --; } for(i =0;i<8;i ++ ) printf(" % d," ,a[i]); }程序运行后的输出结果是( )。

    A.8,2,3,4.,5,6,7,1,

    B.5,6,7,8,1,2,3,4,

    C.1,2,3,4,5,6,7,8,

    D.8,7,6,5,4,3,2,1,


    正确答案:D
    解析:程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。在main函数中,通过P=a;q=&a[7];指针变量p指向数组的第一个元素,指针变量q指向数组的最后一个元素。通过调用函数f(p,q)进行前后对称位置上的数组元素的交换。当while循环4次(即p=q)后,a数组中各元素的值分别为8,7,6,5,4,3,2,1,所以程序输出的结果为:8,7,6,5,4,3,2,1,