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、 对 展开
设有如下结构说明,则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、 对 展开
1个回答
展开全部
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。
个人理解,如有错误请指正,谢谢!
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。
个人理解,如有错误请指正,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询