有以下程序:#include <stdio.h>struet STU{ charname[10]; int num; float TotalSeore; };void f(struet STU * p){ struet STU s [2] = { {

admin2013-06-11  29

问题 有以下程序:#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

答案2

解析 main函数将结构体数组,的首地址传递给了f函数的结构体指针变量P,并在函数f中改变了指针变量p所指向的第二个结构体中的成员变量,这也就是改变了main函数中 s[1]的成员度量,故程序输出的值为Penghua 20045 537。
转载请注明原文地址:https://jikaoti.com/ti/wwn0FFFM
0

最新回复(0)