单选题
有以下程序:
#include <stdio.h>
main()
{ struct cmplx{int x; int y;} cnum[2]={1,3,2,7};
printf("% d/n", cnum[0].y/cnum[0].x*cnum[1].x);
}
则正确的输出结果为______。
【正确答案】
D
【答案解析】[解析] 程序定义了一个名为cnum的含有两个元素的结构体类型数组,结构体类型为struct cmplx, cnum的每个元素含有两个成员。在定义cnum的同时给它的元素赋初值,cnum[0].x的初值是1,cnum[0].y的初值是3,cnum[1].x的初值是2,cnum[1].y的初值是7。因此,printf输出项中的表达式可代入为3/1*2,输出结果是6。总结:对结构体变量(或数组)赋初值时,C编译程序按每个成员在内存中排列的顺序,一一对应赋予初值表中的值。