关于C语言问题,急!!高手请进!

有几个问题不太懂,希望解答者能详细说明一下为什么选那个答案,谢谢!1.fun(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2]... 有几个问题不太懂,希望解答者能详细说明一下为什么选那个答案,谢谢!

1.fun(int **s,int p[2][3])
{ **s=p[1][1]; }
main()
{ inta[2][3]={1,3,5,7,9,11},*p;
p=(int *)malloc(sizeof(int));
fun(&p,a);
printf("%d\n,*p);
}
程式输出为: 9
问题:1.**s是什么东西?
2.p=(int *)malloc(sizeof(int))是什么?
3.为什么输出 9?

2.若如下的说明和语句:
inta[7][8],*ip;ip=(int *)a
使指针ip指向a[4][6]的正确答案是:
a)ip+=3*8+6 b)ip+=(3*8+6)*sizeof(int)
c)ip+=4*8+6 d)ip+=(4*8+6)*sizeof(int)

3.fun(int n,in*s)
{ int f1,f2;
if(n==1||n==2) *s=1;
else
{ fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{ int x;
fun(6,&x);
printf("%d\n",x);
}
程序结果为:_______

4.#include<stdio.h>
void fun(int a,int b);
int c=-2;
main()
{ int i;
for(i=0;i<=1;i++) fun(i,c);
printf("c=%d\n",c);
}
void fun(int a,int b)
{ static int c=2;
c=a+b+++c;
printf("c=%d\n",c);
}
程序输出的第一行,第二行和最后一行分别是:__.__和__。

5.#include<stdio.h>
main()
{ int i=-5;
while(i++)
{ swtich(i+5)
{ case 1:
switch(-i-3)
{ case 1:printf("%d\n",i);
case 2:printf("%d\n",i);
}
case 2: printf("%d\n",i);break;
case 3: printf("*d\n",i);
}
}
}
程序输出的最后一行是_______。
展开
 我来答
百度网友09178f9f0
2007-07-06 · TA获得超过318个赞
知道答主
回答量:135
采纳率:0%
帮助的人:162万
展开全部
s是指针的指针,在这里是指向主函数的p指针的指针;**s就是主函数p所指地址的内容;p是指向一个动态存储地址,这是向系统要求配给的(int *)malloc(sizeof(int)),具体操作在教程里可以找到;
fun(int **s,int p[2][3])
{ **s=p[1][1]; }
p[2][3}即a[2][3];**s=p[1][1]的意思是把p[1][1](其值为9(第二行第二列的数))即a[1][1]的内容赋予**s指向的存储空间,也就是主函数中p的值为9了,所以输出值为9。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式