填空题 以下程序从文本文件worker.txt中输入10个职工的信息(包括工号和工资),然后计算并输出平均工资,再从键盘上输入一个职工号,查找并输出该职工的信息,如果没有找到,则输出Not Found。假设文件操作总是成功的。
   #include<stdio.h>
   struct  worker
   {/*职工结构体*/
       int num;    /*工号*/
       float pay    /*工资*/
       struct  worker *next;
   };
   float averpay(struct worker per[],int n)
   {
       float sum=0;
       int i;
       for(i=0;i<n;i++)
           sum+= 1;
       return sum/n;
   }
   struct worker*find(struct worker per[],int n,int num)
   {
       inti;
        for(i=0;i<n;i++)
           if(per[i].num==num)
           return 2;
       return NULL;
     }
     main ()
   {
   struct worker per[10],*p;
   float x,ave;
   int  num,i;
   FILE *fp;
   /*从文件中输入10个职工的信息*/
   fp= 3;
   for(i=0:i<10;  i++)
   {
       fscanf(fp,"/%d/%f",&num,&x);
       per[i].num=num;
       per[i].pay=x;
   }
   fclose(fp);
   /*计算并输出平均工资*/
   ave=averpay(per,10);
   printf("Average=/%f\n",ave);
   /*查找某个职工*/
   scanf("/%d",&num);
   p= 4;
   if(P!=NULL)
       printf("/%d,/%f\n",p->num,p->pay);
   else
       printf("Not Found\n");
   }
  • 1、
【正确答案】 1、per[i].pay  或  (per+i)->pay &per[i]或per+i fopen("worker.txt","r") find(per,10,num)    
【答案解析】