问题 单项选择题

有以下程序:
#include <stdio.h>
struet STU
charname[10]; int num; float TotalSeore; ;
void f(struet STU * p)
struet STU s [2] = "SunDan" ,20044,550 , "Penghua" ,20045,537 , * q = s;
++p; ++q; *p= *q;main( )
struct STU s[3] = "YangSan" ,20041,703 , "LiSiGuo" ,20042,580 ;
f(s) ;printf("% s % d % 3. Of\n" ,s [1]. name, s [1]. num ,s [1]. TotalScore);程序运行后的输出结果是( )。

A.SunDan 20044 550

B.Penghua 20045 537

C.LiSiGuo 20042 580

D.SunDan 20041 703

答案

参考答案:B

解析: main函数将结构体数组,的首地址传递给了f函数的结构体指针变量P,并在函数f中改变了指针变量p所指向的第二个结构体中的成员变量,这也就是改变了main函数中 s[1]的成员度量,故程序输出的值为Penghua 20045 537。

单项选择题
单项选择题