有以下程序  #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-10-24  25

问题 有以下程序
 #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/0Dkp777K
0

相关试题推荐
最新回复(0)