有以下程序: #include<stdio.h> typedef struct { int num;char name[10];int score; }PER; void fun(PER x[]) { int t; if(x[0].score>x[1].s

admin2022-06-24  7

问题 有以下程序:
#include<stdio.h>
typedef struct
{
int num;char name[10];int score;
}PER;
void fun(PER x[])
{
int t;
if(x[0].score>x[1].score)
{t=x[0].score;x[0].score=x[1].score;x[1].score=t;}
}
main( )
{
PER s[2]={{1001,"zhang",621},{1002,"wang",585}};
int i;
fun(s):
for(i=0;i<2;i++)
printf("%d,%s,Ha,",s.Bum,s.name,s.score);
程序的运行结果是(          )。

选项 A、1001,zhang,585,1002,wang,621,
B、1001,zhang,62l,1002,wang,585,
C、1002,wang,585,100l,zhang,621,
D、1002,wang,621,1001,zhang,585,

答案A

解析 程序首先使用typedef定义一种新的类型名PER,它包含三种数据成员:整数mun,字符数组name,整数score。main( )函数使用PER定义结构体数组s,s包含两个PER类型的元素;然后调用函数fun( )将数组s传入。fun( )函数的功能是比较形参数组x的两个元素的score值大小,若第1个元素的score值大于第2个元素的score值,就使用临时变量t将两个元素的score值交换,由于621大于585且x等价于实参s的指针,所以实参s的两个元素的score也会进行交换,执行完fun( )函数之后,for循环将两个元素输出,故本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/jTkp777K
0

最新回复(0)