人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。 函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 请在程序的下画线处填入正确的

admin2017-09-23  19

问题 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。
函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
    请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
#include < stdio.h >
#include < string.h >
#define N 8
typedef struct
{
  char num[10];
  int year,month,day;
}STU;
/*********found*********/
【1】fun(STU*std,char*hum)
{
    int i;
    STU a={"",9999,99,99};
    for(i=0;i < N;i++)
/*********found*********/
    if(strcrnp(【2】,hum)=0)
/*********found*********/
    return(【3】);
    retUrn a;
}
main()
{
    STU std[N]={{"11 1111",1984,2,15},{"222222",1983,9,21),
{"333333",1984,9,1},
{"4 4 4 4 4 4",198 3,7,1 5},
{"5555 55”,198 4,9,2 8},
{"6 6 6 6 6 6",198 3,11,15},
{"7 7 7 7 7 7",1 98 3,6,22},
{"8 8 8 8 8 8",1984,8,19)};
    STU P;
    char r1[1 0]="66 6 6 6 6";
    P=fun(std,n);
    if(p.num[0]==0)
    {
    printf("\nNot found!\n");
    }
    plse
    {
    printf("\nSucceed!\n");
    print;f("%s%d一%d一%d\n",p.num,P.year,p.month,p.day);
    }
}

选项

答案(1)STU (2)std[i]. num (3)std[i]

解析 本题考查:if条件表达式;比较字符串函数strcmp;指针变量的使用;函数定义及函数返回值。
strcmp函数用来比较两个字符数组的大小,其格式为:strcmp(字符数组1,字符数组2)。若字符数组1 >字符数组2,函数值大于0(正数);若字符数组1=字符数组2,函数值等于0;若字符数组1 < 字符数组2,函数值小于0(负数)。
填空1:根据函数fun的返回值类型可知,函数类型标识符应该是结构体类型的,所以填入STU。
填空2:根据题目说明,找出指定编号人员,并将其数据返回。通过strcmp函数比较编号,若相同则函数值为0,所以填入std.num。
填空3:由题目可知,假如编号对应,则返回其编号对应数据,所以填入数据std
转载请注明原文地址:https://jikaoti.com/ti/Sea0FFFM
0

最新回复(0)