以下程序的输出结果是【 】。 #include <stdio.h> #define N 5 int fun(int *s,int a,int n) { int j; *s=a j=n; while(a

admin2009-08-25  25

问题 以下程序的输出结果是【 】。
#include <stdio.h>
    #define  N 5
   int fun(int *s,int a,int n)
   {  int j;
       *s=a j=n;
         while(a!=s[j]) j-;
       return j;
   main()
     {  int s[N+1]; int k:
          for(k=1 ;k<=N;k++) s[k]=k+1:
         print f("%d\n",fun(s,4,N));
   }

选项

答案3

解析 本题主函数中定义了一个一维数组s,并通过for循环给s[1]到s[5]的元素分别赋值为2、3、4、5、6。然后调用 fun函数,使指针变量s与数组s共用同一存储单元。在函数fun中,a=4,n=5,所以while的条件表达式首先判断的是 4!=s[5]是否成立,由于s[5]=6,所以成立,执行j-;接着判断4!=s[4]是否成立,由于s[4]=5,所以成立,执行j-;然后判断4!=s[3]是否成立,由于s[3]=4,所以条件表达式不成立,返回j的值3。
转载请注明原文地址:https://jikaoti.com/ti/QbI0FFFM
0

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