#defineNUMBER100intisValid(constchar*s1);//若字符串s1..."/>
閱讀以下說明和C代碼,填寫代碼中的空(1)~(6),將解答寫入答題紙的對應欄內(nèi)。
【說明】
下面的C代碼在輸入的100個英文單詞中找出最小單詞和最大單詞。約定每個單詞是僅由英文字母構(gòu)成的字符串,且都不超過20個字符。單詞的大小按照字典序定義。例如,單詞“entry”大于“enter”、“art”小于“ article”、“an”等于“An”。
【C代碼】
#include <stdio.h>
#define NUMBER 100
int isValid(const char *s1);//若字符串s1僅包含英文字母則返回1,否則返回0
char toLower(char ch); //將大寫字母轉(zhuǎn)換為小寫字母
int usr_strcmp(char *s1, char *s2);//比較字符串s1和s2,相等時返回0,
//s1大則返回正整數(shù),s1小則返回負整數(shù)
void usr_strcpy(char *s1,const char *s2); //字符串s2拷貝給s1
int main()
{ char word[32];
char maxWord[32]="", minWord[32] ="";
int numWord=0;
while(num Word<NUMBER) {
scanf("%s",(1)); / /輸入一個單詞存入word
if(is Valid(word)) {
if (0==num Word) {usr_strcpy(min Word,word);usr_strcpy(max Word,word);}
num Word++;
if( (2) >0)/ /調(diào)用usr_strcmp比較單詞
usr_strcpy(max Word, word);/ /用max Word記下最大單詞
else
if( (3)<0) / /調(diào)用usr_strcmp比較單詞
usr_strcpy(min Word,word); / /用min Word記下最小單詞
}
}
printf("max Word=%smin Word=%s\n",max Word,min Word);
return 0;
}
int is Valid(const char *s)
{
for(; *s ; s++)
if(!(*s>='a' && *s<='z') && !(*s>='A' && *s<='Z'))
return 0;
return 1;
}
char toLower(char ch)
{ //若ch為大寫字母則返回其小寫形式,否則直接返回原字符
if(ch>='A' && ch<='Z')
ch= (4) +'a';
return ch;
}
int usr_strcmp(char *s1,char *s2)
{//按字典序比較兩個英文單詞,若s1表示的單詞大,則返回正整數(shù),
//若s1表示的單詞小,則返回負整數(shù);否則返回0
for(;(5);) {
if(toLower(*s1)==toLower(*s2)){s1++,s2++;}
else
break;
}
return(toLower(*s1) - toLower(*s2));
}
void usr_strcpy(char *s1,const char *s2)
{//將s2表示的字符串復制給s1
for(; (6) ;)
*s1++= *s2++;
*s1='\0';
}