若能使程序运行后的输出结果如下:
201501
201502
201503
则空白处填写的表达式或语句应该是
#include
struct student
{
int age;
char num[8];
};
int main()
{
struct student stu[3]={{20,"201501"},{21,"201502"},{19,"201503"}};
struct student *p=stu;
____________________
return 0;
}
A.
printf("%s\n",(p++).num);
printf("%s\n",(p++).num);
printf("%s\n",(p++).num);
B.
printf("%s\n",(++p)->num);
printf("%s\n",(++p)->num);
printf("%s\n",(*p).num);
C.
printf("%s\n",stu[0]->num);
printf("%s\n",stu[1]->num);
printf("%s\n",stu[2]->num);
D.
printf("%s\n",(*p).num);
printf("%s\n",(++p)->num);
printf("%s\n",stu[2].num);
我感觉好像都对啊!!!好纠结。可否挨个讲一下?
还有这题:
若有以下说明,则下面哪个叙述是正确的(已知short占2个字节,float占4个字节)。
struct
{
short a;
float b;
} v1;
union
{
short a;
float b;
} v2;
A.
执行sizeof(v1)获得的结果是8个字节,对结构体变量v1中的任何一个成员都可以进行初始化。
B.
执行sizeof(v2)获得的结果是6个字节,对共用体变量v2中的任何一个成员都可以进行初始化。
C.
执行sizeof(v2)获得的结果是6个字节,只能对共用体变量v2中的第一个成员进行初始化。
D.
执行sizeof(v1)获得的结果是4个字节,对结构体变量v1中的任何一个成员都可以进行初始化。
我感觉v1是六个字节,而v2是四个字节……