有以下程序  #include <stdio.h>  int *f(int *s)  {s[1]+=6;   *s=7;   s+=2;   return s;  }  main()  {int a[5]={1,2,3,4,5},*p=a;  

admin2022-04-01  32

问题 有以下程序
 #include <stdio.h>
 int *f(int *s)
 {s[1]+=6;
    *s=7;
    s+=2;
    return s;
 }
 main()
 {int a[5]={1,2,3,4,5},*p=a;
    p=f(p);
    printf("%d,%d,%d\n",a[0],a[1],*p);
 }
 程序运行后的输出结果是(          )。

选项 A、9,8,9
B、7,8,7
C、7,8,3
D、1,2,1

答案C

解析 在main函数中调用了f函数使形参s指向数组a。执行s[1]+=6语句则a[1]=8;执行*s=7语句则a[0]=7;执行s+=2语句则s指向数组的第3个元素并返回s。调用后赋给指针p,则*p=3,因此打印的结果为7,8,3。答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/26kp777K
0

最新回复(0)