问题 填空题

以下程序的输出结果是 【10】 。 #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)); }

答案

参考答案:C

解析:[评析] 本题主函数中定义了一个一维数组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。

多项选择题
单项选择题