C语言设计专业3个判断题,求教下,感谢

(1)内容:设有如下结构说明,则t数组的每个元素均为结构体类型。structnode{inta,b;charc;}t[20];选项:1、错2、对(2)内容:设有宏定义:#... (1)内容:
设有如下结构说明,则t数组的每个元素均为结构体类型。struct node { int a, b;char c;}t[20];
选项:
1、 错
2、 对
(2)内容:
设有宏定义:#define MY(x,y) x*y,则宏调用MY(2+3,5)的结果为25。
选项:
1、 错
2、 对
(3)内容:
设:int a[3][4],(*p)[4]=a;则*(*(p+2)+3)表示引用a[2][3]的值。
选项:
1、 错
2、 对
展开
 我来答
huangxkst
2010-12-30 · TA获得超过368个赞
知道答主
回答量:110
采纳率:0%
帮助的人:81.6万
展开全部
answer:
1: 对
原因结构体后头直接定义的变量为结构体变量,这里直接定义的是数据,那么t[20]就是结构体数组;
结构体定义变量一般分为三种方法:
第一:直接定义法;
第二:结构体名定义法;
第三:typedef定义法;

2:错
这里MY(x,y) x*y,而调用宏时MY(2+3,5),那么系统会将MY宏的x*y改为x2+3*5,这时系统执行完正确答案为17
如果想答案为25,可以将调用宏的方式改为:MY((2+3),5)这样答案就是25.

3:对
(*p)[4]时一个数组指针,也就是说这里*p是将被赋予一个二维数组的第一行的地址,所以这里:
*(p+2)表示A中第三行的起始地址,而*(p+2)+3表示第三行第四列元素的地址,最后*(*(p+2)+3)表示第三行第四列元素的值也就是题目中的a[2][3]

顺便说一下,c中数组元素下标从0开始,最后一个元素为N-1。

个人理解,如有错误请指正,谢谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式