问题 单项选择题

若有如下程序段: struct student { int num;float score; } stu[3]={{10,85},{60,58},{32,23}}; main() { struct student*t; t=stu; } 则下面表达式中值为58的是( )。

A.(*.num

B.*(t++)->num

C.(*++score

D.(++->score

答案

参考答案:D

解析: 本题是以结构体指针的方式防问结构体数组中的元素。main()函数之前声明了一个结构体,并在声明同时定义了一个全局结构体数组stu[3]。主函数中,第一行定义了一个该结构体的指针t,然后让t指向stu,即t指向的是数组stu的第一个元素。选项A提取的是数组第一个元素的num成员,值为10,不符合题意。选项B使用了一个后缀自增运算符,使t指向第二个元素,但t++表达式返回的还是第一个元素的指针,故结果与选项A相同,不符合题意,选项C语法错误编译不会通过。故应该选择D。

单项选择题
单项选择题 A1型题