参考答案和解析
正确答案:B
解析:本题考查的是指针的简单应用。题目中首先定义了一个int型数组a并初始化了,然后定义了两个指针变量p和q,并分别初始化p为指向数组元素a[3]、q指向p后面的第2个元素即指向a[5]。所以最终输出的值为a[3]+a[5]的值10。应该选B。
更多“有以下程序 main ( )int a[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;print f ("%d\n" , ”相关问题
  • 第1题:

    有以下程序include<stdio.h>int*f(int*p,int*q);main( ){int m=1,n=2,*r=&m;r=f(r,&am

    有以下程序

    include<stdio.h>

    int*f(int*p,int*q);

    main( )

    {int m=1,n=2,*r=&m;

    r=f(r,&n);printf(”%d\n”,*r);

    }

    int-f(int*P,int*q)

    (return(*p>*q)?p:q;)

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


    正确答案:2
    2 解析:函数f的返回值的类型是int*,作用是返回两个int*型指针所指变量中值大的那个指针的。本题中定义了一个int*型指针r并置初值&m,即指针r指向m。r=f(r,&n),由于m的值小于n值,所以f函数返回值为&n,所以输出为2,即n值。

  • 第2题:

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

    A.16

    B.10

    C.8

    D.6


    正确答案:B
    解析:p指向了a[3]的地址,且*p=a[3]=4,又有*q=p-2;则q指向了a[5]的地址,且*q=a[5]=6,最后输出为10。

  • 第3题:

    有以下程序: main() {int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf("%d\n",*p+*q); }

    A.16

    B.10

    C.8

    D.6


    正确答案:B
    解析:本题定义了一维数组a和两个指针变量。指针变量p的初值为第4个数组元素的地址,指针变量q的初值为,第6个数组元素的地址。*p+*q=4+6=10。

  • 第4题:

    有以下程序

    main()

    { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;

    printf("%d\n",*p+*q);}

    程序运行后的输出结果是


    正确答案:8
    8 解析:*p=&a[3],即*p=4,*q=p+ 2;即*q=6,所以*p+*q=10。

  • 第5题:

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

    A.16

    B.10

    C.8

    D.6


    正确答案:B
    解析:题目中首先定义了一个int型数组a并初始化了,然后定义了两个指针变量p和q,并分别初始化p为指向数组元素a[3]、q指向p后面的第2个元素即指向a[5]。所以最终输出的值为a[3]+a[5]的值10。应该选B。