有以下程序 #include <stdio.h> #include <string.h> typedef struct { char name[10];

admin2015-11-24  35

问题 有以下程序
    #include <stdio.h>
    #include <string.h>
    typedef struct {
                      char name[10];
                      char sex;
                      int age;
                   } STU;
    void fun(STU t)
    {  strcpy(t.name,"Tong");
        t.age++;
    }
    main()
    {  STU s[2]={"Hua",’m’,18,"Qin",’f’,19};
       fun(s[1]);
       printf("%s,%d,%s,%d\n",s[0].name,s[0].age,s[1].name ,s[1].age );
    }
程序运行后的输出结果是

选项 A、Hua,19,Tong,19
B、Hua,18,Tong,20
C、Tong,19,Qin,19
D、Hua,18,Qin,19

答案D

解析 用typedef说明一种新类型名STU,其使用情况与结构体基本一致。程序执行过程为:定义STU类型数组,长度为2,并为其初始化。s[0].name="Hua",s[0].sex=’m’,s[0].age=18,s[1].name="Qin",s[1].sex=’f’,s[1].age=19。调用函数fun(s[1])将变量s[1]值传入函数,则t.name="Qin",t.sex=’f’,t.age=19。调用函数strcpy使t.name="Tong",t.age=20,函数调用结束。其中结构体数组中元素并没有发生改变,依次输出s[0].name,s[0].age,s[1].name ,s[1].age,结果为Hua,18,Qin,19,D选项正确。
转载请注明原文地址:https://jikaoti.com/ti/CWkiFFFM
0

最新回复(0)