问题 单项选择题

有以下程序: #include <stdio.h> struct S { int a, b; } data[2]={10, 100, 20, 200}; main() { struct S p=data[1]; printf("%d\n", ++(p.a)); } 程序运行后的输出结果是______。

A.10

B.11

C.20

D.21

答案

参考答案:D

解析: 声明data是结构S数组。初始化data[0].a=10; ,data[0].b=100; ,data[1].a=20: ,data[1].b=200。主函数中p=data[1]; ,即p.a=data[1].a; ,p.b=data[1].b; 。执行语句printf("%d\n", ++(p.a));打印输出时p.a先增1再打印,即p.a=data[1].a=20,先增1等于21。

多项选择题
多项选择题