2道很简单的c语言题目。帮忙看看谢谢

我需要答案和过程噢感谢

一、第10题选B.
共用体/union各个成员是从同一地址开始存放的。共用体大小计算一般是实际占用空间最大的成员的长度(这里就是int b[3]的大小最大3*4=12)。若该成员的长度不是其他成员类型长度的整数倍(如果是数组就是数组类型的长度)则拓展到满足成员大小的整数倍。这里其他两个数组是char和long大小是1和4,刚好12是他们的整数倍,不用拓展。
二、第7题选D.

结构体第一个成员地址和结构体首地址相同,每个成员地址相对于结构体首地址的偏移量是该成员大小的整数倍,如果不是就在成员间加填充字节;构体总的大小必须是其成员中最大的整数倍,如果不是就在末尾添加填充字节。
根据上面的计算union大小的的方法,计算得union uu大小是8。所以第一个int r1大小是4,偏移量为4;第二个double r2大小为8,偏移量为0;第三个float r3大小为4,偏移量为4,union uu大小为8,所以总的大小为(4+4)+8+(4+4)+8=32。
采纳一下吧。
温馨提示:答案为网友推荐,仅供参考