单选题 有下列程序#include<stdio.h>int*f(int*s){s+=1;s[1]+=6;*s+++=7;return s;}main(){int a[5]={1,2,3,4,5},*p;p=f(&a[1]);printf("%d,%d,%d,%d",a[1],a[2],*p,P[1]);}程序执行后的输出结果是( )。
【正确答案】 C
【答案解析】解析:程序main()函数中首先定义整型数组a和整型指针p,数组a包含5个元素:1,2,3,4,5。然后将数组第2个元素2的地址&a[1]传给函数f(),形参s接收了此地址,然后将s指针向后移动一个单位,此时s指向数组a的第2个元素,即3。然后将此时s指向的后一个元素累加6,并将s指向的元素累加7后,s再次后移一位,指向数组a的第4个元素,最后将8的值返回赋给p,所以f()函数调用后,a数组中的元素分别为:1,2,10,10,5,p指向第4个元素,所以输出a[1]为2,a[2]为10,*p为10,p[1]为5,本题答案为C。