一道程序填空题和编程题,急!!!
1、读入文件从中检索出6种关键字,并统计、输出每种关键字在文件中出现的次数。规定:单词是以空格或‘\t’,'\n'结束的字符串。FILE *cp;
char fname[20],buf[100];
int num;
struct key
{
char word[10];int count;
}keyword[]={"if",0,"char",0,"int",0,"else",0,"while",0,"return",0};
char *getword(FILE *fp)
{
int i=0;
char c;
while((c=getc(fp))!=EOF&&(c==''||c=='\t'||c=='\n'));
if(c==EOF)return(NULL);
else buf[i++]=c;
while((c=fgetc(fp))!=EOF&&c==''&&c=='\t'&&c=='\n')
buf[i++]=c;
buf[i]='\0';
return(buf);
}
lookup(char *p)
{
int i;
char *q,*s;
for(i=0;i<num;i++)
{q=________?1________;
s=p;
while(*s&&(*s==*q))
{s++;q++;}
if(______?2________)
{keyword[i].count++;break;}
}
}
main()
{int i;
char *word;
printf("input file name:");
scanf("%s",fname);
if((cp=fopen(fname,"r"))==NULL)
exit(0);
num=sizeof(keyword)/sizeof(struct key);
while(_______?3_________)
lookup(word);
fclose(fp);
for(i=0;i<num;i++)
printf("keyword:%-20s count=%d\n",keyword[].word,keywore[i].count);
}
2、N名学生的成绩从主函数中放入一个带头节点的链表结构中,h指向链表的头节点,请编写程序找出学生的最低分,值由自定义函数f( )返回。