| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:二级C问题 ~~~~~~~~~~~~~~~~~~~~~~帮帮忙
只看楼主 加入收藏
pointers_on_c
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-6
收藏
 问题点数:0 回复次数:4 
二级C问题 ~~~~~~~~~~~~~~~~~~~~~~帮帮忙
#include "stdio.h"
void fun(int *s)
{
 static int j=0;
 do s[j]+=s[j+1]; while(++j<2);
}
main()
{
 int k,a[10]={1,2,3,4,5};
 for(k=1;k<3;k++) fun(a);
 for(k=0;k<5;k++) printf("%d",a[k]);
}
我的答案是35 但参考书时35745
****************************************
main()
{
 int a=3,b=2,c=1;
 c-=++b;
 b*=a+c;
 {
  int b=5,c=12;
  c/=b*2;
  a-=c;
  printf("%d%d%d",a,b,c);
  a+=--c;
 }
 printf("%d%d%d",a,b,c);
}
答案是25123-2
****************************************
****************************************
以上大案我都在tc上运行过,答案是正确的,但我不懂啦 !帮个忙


[[it] 本帖最后由 pointers_on_c 于 2008-6-7 00:00 编辑 [/it]]

[[it] 本帖最后由 pointers_on_c 于 2008-6-7 01:53 编辑 [/it]]
搜索更多相关主题的帖子: 二级C问题 
2008-06-06 23:57
C王之王
Rank: 1
来 自:南京
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-6-5
收藏
得分:0 
对于第2题
第1个printf输出的变量是内含的程序{}里的b,c和总程序{}里的a;
从程序第4行开始运算,c=c-(++b),则b=2+1=3;c=c-3=-2;b=b*(a+c)=3*(3-2)=3;
此时a=3,b=3,c=-2;
在内含程序{}里重新定义了个b,c;
c=c/(b*2)=12/(5*2)=1;
a=a-c=3-1=2;
运行到这里第1次输出251
然后a=a+(--c),c=c-1=1-1=0;a=2+0=2;
对于a没有在内含程序{}被重新定义,而是在内含程序里被重新赋值,所以对于第2次输出
输出23-2
2008-06-07 09:58
C王之王
Rank: 1
来 自:南京
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-6-5
收藏
得分:0 
对于第1题目
关键在于第10行for(k=1;k<3;k++) fun(a);
由于for(k=1;k<3;k++)的控制作用 ,fun(a)执行2次;
第1次执行得到a[0]=3,a[1]=5;
第2次执行得到a[2]=7;
所以输出35745
2008-06-07 10:15
pointers_on_c
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-6
收藏
得分:0 
很感谢!  再看看。
2008-06-07 10:45
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
收藏
得分:0 
第一题:关键在于理解,static 的真正含义.它是共享的(要是说它是不变的,我想你更难理解)

蝴 蝶 颤 动 了 翅 膀 !!!
2008-06-09 01:47
快速回复:二级C问题 ~~~~~~~~~~~~~~~~~~~~~~帮帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027144 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved