以下程序的运行结果是______。 # include <string.h> typedef struct student{ char name[10]; long sno; float scor

admin2013-02-23  28

问题 以下程序的运行结果是______。
  # include <string.h>
   typedef struct student{
        char name[10];
        long sno;
        float  score;
    }STU;
   main()
    {  STU  a={"zhangsan",2001,95},b={"Shangxian",2002,90},
        c={"Anhua",2003,95},d,*p-&d;
        d=a;
        if{strcmp(a.nalne,b.name)>0)   d=b;
        if(strcmp(c.name,d.name)>0)    d=c;
        printf("%ld%s\n",d.sno,p >name};
    }

选项

答案2002Shangxian

解析 本题考核的知识点是结构体类型的定义、赋初值以及字符串的比较。本题中首先定义一个结构体类型STU,镇结构体由一个长度为10的字符型数组、一个long型变量和一个float型变量组成。接着在主函数中用 STU定义了4个结构体变量a、b、c、d,并且给a、 b、c赋初值,然后定义?一个结构体指针p,并让它指向变量d。然后让将变量a的值赋给变量d,接着通过两个if语句比较结构体变量a、b、c的成员 name大小。第一个订语句将结构体变量a.name和结构体变量b.name中较小的那个赋值给结构体变量 d,第二个if语句将结构体变量c.name和结构体变量d.name较大的那个赋给结构体变量d。比较通过函数strcmp实现。strcmp()函数有两个参数,分别为被比较的两个字符串。如果第一个字符串大于第二个字符串返回值大于0,若第一个小于第二个返回值小于0,相等时返回值为0。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串,如果遇到某一个字符小,该字符所在的字符串就是较小的字符串。  程序中第一个if语句 strcmp(a.name, b.name)>0为真,故将b的值赋给d;第二个if语句strcmp(c.name.d.name)>0为假,故不执行后面的语句,最后d的值为b的值,因此输出 d.sn0和p->name的值为2002Shangxian
转载请注明原文地址:https://jikaoti.com/ti/wCB0FFFM
0

最新回复(0)