使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,人员的记录由编号和出生年、月、日组成,N名人员的记录已存入主函数的结构体数组std中,且编号唯一。函数fun()的功能是找出指定

admin2023-02-27  14

问题 使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,人员的记录由编号和出生年、月、日组成,N名人员的记录已存入主函数的结构体数组std中,且编号唯一。函数fun()的功能是找出指定编号人员的记录,作为函数值返回,由主函数输出,若指定编号不存在,返回记录中的编号为空字符串。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行。也不得更改程序的结构!
    试题程序:
1 #include<stdio.h>
2 #include<string.h>
3 #define N 8
4 typedef struct
5 {
6  char num[10];
7  int year,month,day;
8 }STU;
9  /*********found*********/
10 <u>【1】</u>fun(STU*std,char*num)
11 {
12    int i;
13    STU a={" ",9999,99,99};
14    for(i=0;i<N;i++)
15  /*********found*********/
16    if(strcmp(<u>【2】</u>,nun)==0)
17  /*********found*********/
18    return(<u>【3】</u>);
19    return a;
20 }
21 main()
22 {
23    STU std[N]=({"111111",
1984,2,15},{"222222",1983,9,
21},{"333333",1984,9,1},{"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15 },{"777777",1983,6,22},{"888888",1984,8,19}};
24    STU p;
25    char n[10]="666666";
26    p=fun(std,n);
27    if(p.num[0]==0)
28    {
29    printf("\nNot found!\n");
30    }
31    else
32    {
33    printf("\nSucceed!/n");
34    printf("%s%d-%d-%d\n",p.num,p.year,p.month,p.day);
35    }
36 }

选项

答案(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()的返回值类型可知,函数类型标识符应该是结构体类型的,故空1处应该填STU。
    填空2:根据题目说明,找出指定编号人员,并将其数据返回。通过strcmp()函数比较编号,若相同则函数值为0,故空2处应该填std.num。
    填空3:由题目可知,假如编号对应,则返回其编号对应数据,故空3处应该填std。  
转载请注明原文地址:https://jikaoti.com/ti/lioiFFFM
0

相关试题推荐
最新回复(0)