C语言问题望高手帮忙!

1.设有定义“inta[i][4]={1,2,3,4,5,6,7,8,9}”问a第一维最大合法下标是多少?是3吗?2.inta[][3]={{1,2},{3,4},{5,... 1.设有定义“int a[i][4]={1,2,3,4,5,6,7,8,9}”问a第一维最大合法下标是多少?是3吗?

2.int a[][3]={{1,2},{3,4},{5,6}},i,j,s=0
for(i=1,i<3;i++)
for(j=i;j>=o;j--) s+=a[i][j]
printf(“%d",s); 问:输出的是哪机个数字相加!解释!

3.#define A 2
#define B(c) ((a+1)*c)
printf("%d\n",2*(A+(B+C))
问:宏定义是什么意思!最好举例说明!这个程序每一步是什么意思!结果是多少!
展开
 我来答
mzhrd
2011-09-27 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:111万
展开全部
1、不是3,二维数组a第一维最大合法下标是2,因为a[0][ ]={1 2 3 4;
a[1][ ]= 5 6 7 8;
a[2][ ]= 9 0 0 0;}
所以a的最大合法下标是a[2][3];
2、因为i从1开始,小于3结束,所以i的取值为1、2;
当i=1时,j从i(即1),减到0为止,即j取值为1、0,此时为:a[1][1]+a[1][0]相加;
当i=2时,j从i(即2),减到0为止,即j取值为2、1、0,此时为:a[2][2]+a[2][1]+a[2][0]相加
综上:
s=a[1][1]+a[1][0]+a[2][2]+a[2][1]+a[2][0]=4+3+0+6+5=18;
注:a= 1 2 0
3 4 0
5 6 0
3、宏定义就是:指定某个东西代表什么
就拿 “#define A 2” 来说,以后在程序中只要遇到 A ,就代表数字2,也就是说可以用2把A 换掉
请把你的提问中的问题说明白,才能给你这个题的运行结果:
“ printf("%d\n",2*(A+(B+C)) ”中的大写字母C没说明是说明啊,请再检查一下程序
还有 " #define B (c)((a+1)*c) "问题中两个括号怎么离那么远啊,应该是相乘的关系吧
genen028
2011-09-27 · 超过20用户采纳过TA的回答
知道答主
回答量:431
采纳率:0%
帮助的人:253万
展开全部
问题补充:具体该怎么做? 这没有语法错误,只是在执行时,分配的RAM#include
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaoguo128
2011-09-27 · TA获得超过101个赞
知道答主
回答量:35
采纳率:0%
帮助的人:23万
展开全部
1.i值可以是任意的大于3的正整数,只要你的内存够大,其余的内容都被初始化为0,。至于小于3的情况,在编译的时候就会报错,编译器是不允许数组越界情况的出现的。
2.0+4+3+0+6+5 好解释的也就是第二维的3 没有显示初始化的都初始化为0
3.宏就是直接替换
宏定义B是个有参数的宏 在被替换里有个a 不理解,
在使用B的时候B和B()怎么是一回事呢
上面的代码不知所云 肯定编译不过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式