二级C语言程序类填空题、详细解答!谢谢 5

以下程序的输出结果是__【10】__。#include<stdio.h>#defineN5intfun(int*s,inta,intn){intj;*s=a;j=n;wh... 以下程序的输出结果是__【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;
  printf("%d\n",fun(s,4,N));
展开
 我来答
青春的消耗
2012-02-04
知道答主
回答量:6
采纳率:0%
帮助的人:6.3万
展开全部
#include <stdio.h>
#define N 5
int fun(int *s,int a,int n)
{ int j;
  *s=a;/把a的内容赋值给 指针变量 s*/ 
j=n;
  while(a!=s[j])j--;/*这里a的值首先是为4,与s[j]相比较,j=6,自减3次与a相等不成立,最后返回j 的值 为 3 */
  return j;
}
main()
{ int s[N+1]; int k;
  for(k=1;k<=N;k++) s[k]=k+1;/*整个循环完之后k=6,*/
  printf("%d\n",fun(s,4,N));
追问
j为什么等于6、、看题顺序我都没弄个明白
追答
for(k=1;k<=N;k++) 
s[k]=k+1;/*当k=5时 满足条件 k在自加一次,所以为6*/

因为··············这样吧,举个列 main() 函数里面 可以调用其他主函数以外的函数,所以,程序开头从main()
{ int s[N+1]; int k;
  for(k=1;k<=N;k++) s[k]=k+1;
  printf("%d\n",fun(s,4,N)); 这里开始执行;我也没学好久,基本的都懂了,有兴趣的话加这个群,163111150
hofighter
2012-02-04 · TA获得超过301个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:95.6万
展开全部
#include<stdio.h>
#define N 5
int fun(int *s,int a,int n)//求在数组s中数值为a的位置
{
int j;
*s=a;//这句将s[0]赋值为a
j=n;//将j赋值为n,(j为5)
while(a!=s[j])
j--;
return j;
}
void main()
{
int s[N+1];
int k;
for(k=1;k<=N;k++)
s[k]=k+1;//赋值,从s[1]开始
printf("%d\n",fun(s,4,N));//返回4在数组s中的位置
}
终的输出结果是3,很容易知道s[1]=2,s[2]=3,……,s[5]=6,fun(s,4,N)的意思是在数组s中哪个数是4,找到之后返回4这个位置的下标,即3.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-02-04 · TA获得超过7223个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1867万
展开全部
这个是找4在数组 S中的下标,这里4在s[3]这个位置,所以输出3
追问
不懂、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
idealxuny
2012-02-04
知道答主
回答量:17
采纳率:0%
帮助的人:5.3万
展开全部
不太明白。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式