初学者,请求高手帮忙!

ably_0227 2009-06-09 01:19:30
下列程序段,结果是
A)void fun(int x,int y,int z)
void main()
{
int a=1
fun(2,3,a);
printf("%d",a);
}
void fun(int x,int y,int z)
{
z=x*x+y*y;
}
B)int f(int b[].int n)
void main()
{
int x,a[]={2,3,4,5,6,7,8,9};
x=f(a,4);
printf("%d",x);
}
int f(int b[],int n)
{
int i,r=0
for(i=0;i<n;i++)
r+=b[i];
return r;
}
C)
{
char *s="abcdefr";
s+=5;
printf("%c",*s);
}
D)
{
int a,b,c;
a=10;
b=++a;
c=a--;
}

填空
A)
#include<stdio.h>
int prime(int a)
void main()
{
int m,flag;
for(m=101;m<=200;m+=2)
{
flag=___①___;
if(____②____)
printf("%4d",m);
}
}
int prime(int a)
{
int i,k,flag;
k=a-1;
for(i=2;i<=k;i++)
if(a%i==0)
_______③______
if(i==k+1)
flag=1;
else
flag=0;
return flag;
}

B)
#include<stdio.h>
int maxmin(int t[],int *r1,int *r2,int n);
void main()
{
int s[]={10,7,19,29,4,0,8,35,-16,21};
int a,b,*p1=&a,*p2=&b;
maxmin(s,p1,p2,10);
printf("最大值是%d,最小值是%d",a,b);
}
void maxmin(int t[],int *r1,int *r2,int n)
{
int i;
*r1=t[0];
*r2=t[0];
for(i=1;i<n;i++)
{
if(*r1<t[1])
__________①________;
if(*r2>t[1])
__________②________;
}
}


...全文
23 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
勤奋的沉沦 2009-06-10
  • 打赏
  • 举报
回复
编译下 运行一下 结果就出来了
javaboy_2008 2009-06-09
  • 打赏
  • 举报
回复
自己做做效果好
不懂的QQ694750248
我也是个菜鸟,一起进步吧(我学c++的)
breezes2008 2009-06-09
  • 打赏
  • 举报
回复
哎,作业题
nosxcy 2009-06-09
  • 打赏
  • 举报
回复
b=++a;
c=a--;
建议这种风格的LZ不要用,理解它的原理就行了.
ably_0227 2009-06-09
  • 打赏
  • 举报
回复
呵呵,是啊。。。
蠢死了。。
zjf30366 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 ably_0227 的回复:]
{
char *s="abcdefr";
s+=5;
printf("%c",*s);
}

打印*(s+5) 既f


{
int a,b,c;
a=10;
b=++a;
c=a--;
}


++在前,先用其值在自加。
b=10,a=11.
--在后,先自减再用其值。
a=10,c=10.
所以a=10,b=10,c=10
[/Quote]
呵呵,下面这个正好相反,++/--在前先+/-在用值,反之则反。
ably_0227 2009-06-09
  • 打赏
  • 举报
回复
{
char *s="abcdefr";
s+=5;
printf("%c",*s);
}

打印*(s+5) 既f


{
int a,b,c;
a=10;
b=++a;
c=a--;
}


++在前,先用其值在自加。
b=10,a=11.
--在后,先自减再用其值。
a=10,c=10.
所以a=10,b=10,c=10
zjf30366 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ably_0227 的回复:]
哦~恩恩恩...
下面一个有返回值...

哈哈.谢谢师父~~
[/Quote]
。。。,别,头有点晕。都是同道中人,何分彼此?
ably_0227 2009-06-09
  • 打赏
  • 举报
回复
哦~恩恩恩...
下面一个有返回值...

哈哈.谢谢师父~~
zjf30366 2009-06-09
  • 打赏
  • 举报
回复
下面这个因为使用了return r;

函数返回后将r的值给了x;

所以X为14
ably_0227 2009-06-09
  • 打赏
  • 举报
回复
这样的话,那下面一个不也是同样的问题啊?
ably_0227 2009-06-09
  • 打赏
  • 举报
回复
int f(int b[].int n)
void main()
{
int x,a[]={2,3,4,5,6,7,8,9};
x=f(a,4);
printf("%d",x);
}
int f(int b[],int n)
{
int i,r=0
for(i=0;i <n;i++)
r+=b[i];
return r;
}


i=0
r=r+b[0]=0+2=2
i=1
r=2+b[1]=2+3=5
i=2
r=5+b[2]=5+4=9
i=3
r=9+b[3]=9+5=14
i=4不满足条件。返回r=14.

对么?
zjf30366 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ably_0227 的回复:]
void fun(int x,int y,int z)
void main()
{
int a=1
fun(2,3,a);
printf("%d",a);
}
void fun(int x,int y,int z)
{
z=x*x+y*y;
}


是不是把2的值传给x,3传给y,所以z=2*2+3*3=13.
在把z的值返回啊`?

对不对呀..嘻嘻....
[/Quote]

Z的值是对了,但由于z是fun函数的局部变量,在函数结束后它会自动释放,所以z就没有咯。
这时候的a的值还是1,
这是个值传递问题,不知道这个概念你们学了没有,学了的话,回去翻翻课本吧。嘿嘿。
jianzhibeihang 2009-06-09
  • 打赏
  • 举报
回复
做完了哪个有疑问在贴出来啊
ably_0227 2009-06-09
  • 打赏
  • 举报
回复
void fun(int x,int y,int z)
void main()
{
int a=1
fun(2,3,a);
printf("%d",a);
}
void fun(int x,int y,int z)
{
z=x*x+y*y;
}


是不是把2的值传给x,3传给y,所以z=2*2+3*3=13.
在把z的值返回啊`?

对不对呀..嘻嘻....
zjf30366 2009-06-09
  • 打赏
  • 举报
回复
做完了哪个有疑问在贴出来啊,楼主。
大家会帮你的哦。
ably_0227 2009-06-09
  • 打赏
  • 举报
回复
恩.谢谢...
「已注销」 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lgccaa 的回复:]
作业题先自己学着做,走出第一步很重要
[/Quote]
同感!
lgccaa 2009-06-09
  • 打赏
  • 举报
回复
作业题先自己学着做,走出第一步很重要
nosxcy 2009-06-09
  • 打赏
  • 举报
回复
A)void fun(int x,int y,int z)
void main()
{
int a=1
fun(2,3,a);
printf("%d",a);
}
void fun(int x,int y,int z)
{
z=x*x+y*y;
} //拿这个做例子
打开一编译器,把这段代码拷上去,把运行得到的结果与你自己得出的结果做比较,对不对一目了然.
这可是锻炼动手的开始哦
加载更多回复(4)

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧