摘要:今天希赛网软考频道小编为大家准备了软考程序员下午试题每日一练(21),更多软考程序员下午试题请关注希赛网软考频道。
● 阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内。
【说明】
下面的C代码在输入的100个英文单词中找出最小单词和最大单词。约定每个单词是仅由英文字母构成的字符串,且都不超过20个字符。单词词的大小按照字典序定义。例如,单词“entry”大于“enter"、“art”小于“ article”、“an”等于“An”。
【C代码】
#include <stdio.h>
#define NUMBER 100
int is Valid(const char*s1); //若字符串s1仅包含英文字母则返回1,否则返回0
char to Lower(char ch);//将大写字母转换为小写字母
int usr_strcpy(har*s1,char*s2); //比较字符串s1和s2,相等时返回0,
//s1大则返回正整数,s1小则返回负整数
void usr_strcpy(char*s1,const char*s2);//字符串s2拷贝给s1
int main__(4)__
{ char word [32]:
char max Word[32]="", min Word[32] ="";
int num Word=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) //调用usr_strcpy比较单词
usr_strcpy(max Word,word);//用max Word记下最大单词
else
if( (3) <0) //调用usr_strcpy比较单词
usr_strcpy(min Word,word); //用min Word记下最小单词
}
}
printf("max Word=%s min 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 to Lower(char ch)
{//若ch为大写字母则返回其小写形式,否则直接返回原字符
if(ch>='A'&&ch<='Z')
ch=(4)+'a';
return ch;
}
Int usr_strcpy(char*s1,char*s2)
{ //按字典序比较两个英文单词,若s1表示的单词大,则返回正整数,
//若s1表示的单词小,则返回负整数;否则返回0
for(; (5) ;){
if(to Lower(*s1)==to Lower(*s2)) {s1++,s2++;}
else
break;
}
return(to Lower(*s1)-to Lower(*s2));
}
void usr_strcpy(char*s1,const char*s2)
{ //将s2表示的字符串复制给s1
for(;(6);)
*s1++=*s2++;
*s1='\0';
}
点击注册会员>>>即可获取程序员免费在线真题、观看免费公开课!
真题自测:软考各科目历年真题及答案解析
更多资讯可关注希赛网软考频道,问题咨询请拨打客服电话400-111-9811。
软考备考资料免费领取
去领取