首页
登录
从业资格
阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内。
阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内。
练习题库
2022-08-02
72
问题
阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内。【说明】下面的C代码在输入的100个英文单词中找出最小单词和最大单词。约定每个单词是仅由英文字母构成的字符串,且都不超过20个字符。单词的大小按照字典序定义。例如,单词“entry”大于“enter”、“art”小于“ article”、“an”等于“An”。 【C代码】#include <stdio.h>#define NUMBER 100int isValid(const char *s1); //若字符串s1仅包含英文字母则返回1,否则返回0char toLower(char ch); //将大写字母转换为小写字母int usr_strcmp(char *s1, char *s2); //比较字符串s1和s2,相等时返回0, //s1大则返回正整数,s1小则返回负整数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) / /调用usr_strcmp比较单词 usr_strcpy(max Word, word); / /用max Word记下最大单词 else if( (3) <0) / /调用usr_strcmp比较单词 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 toLower(char ch){ //若ch为大写字母则返回其小写形式,否则直接返回原字符 if(ch>='A' && ch<='Z') ch= (4) +'a'; return ch;} int usr_strcmp(char *s1,char *s2){ //按字典序比较两个英文单词,若s1表示的单词大,则返回正整数, //若s1表示的单词小,则返回负整数;否则返回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';}
选项
答案
解析
(1)word(2)usr_strcmp(word, maxWord)(3)usr_strcmp(word, minWord)(4)ch-‘A’(5)*s1!=’\0’&&*s2!=’\0’或*s1||*s2等价表示(6)*s2!=’\0’或*s2等价表示
【解析】
(1)scanf函数是将输入的数据赋值给相应的变量,在格式字符串后需要取变量地址,即将数据赋值给相应地址的变量,word是数组名,因此可以直接作为地址。(2)调用usr_strcmp比较单词,当usr_strcmp返回的值为正整数时,调用usr_strcpy将word值赋值给maxWord,因此此处是比较word和maxWord,即usr_strcmp(word, maxWord)(3)调用usr_strcmp比较单词,当usr_strcmp返回的值为负整数时,调用usr_strcpy将word值赋值给minWord,因此此处是比较word和minWord,即usr_strcmp(word, minWord)(4)toLower函数是将大写字母转换为小写字母,if函数是判断ch是否为大写字母,当ch为大写的时候,将ch转换为小写,小写是在’a’的基础上加上一个值得到,例如‘b’=1+’a’,这个值便是大写字母和‘A’之间的差值,即例子中1为’B’-‘A’,因此此处填写ch-‘A’(5)usr_strcmp是比较两个英文单词,是需要对s1和s2中的字符逐一比较,因此在for循环中进行比较,for循环的判断条件是s1和s2中的字符是否为’\0’,因此此处填写*s1!=’\0’&&*s2!=’\0’(6)usr_strcpy是将s2复制给s1,是需要将s2中的字符逐一赋值给s1,因此在for循环中进行赋值,for循环的判断条件是s2中的字符是否为’\0’,因此此处填写*s2!=’\0’
转载请注明原文地址:https://tihaiku.com/congyezige/2424925.html
本试题收录于:
初级程序员题库软件水平考试初中高级分类
初级程序员
软件水平考试初中高级
相关试题推荐
网页中代码"inputtype=textname="foo"size=20
负责解释执行JavaScript代码的是()。A.Web服务器 B.Web浏览
通过内部发起连接与外部主机建立联系,由外部主机控制并盗取用户信息的恶意代码为(
下面的XML代码段中,语法正确的是()。A.<!-xml示例-!><?xml
下列设置图像地图正确的HTML代码是()。A.<areashape="po
()是正确的网页代码结构。A.<html></html><head><
阅读一下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】
阅读一下说明,回答问题1至问题4.将解答填入答题纸对应的解答栏内。 【说明】
阅读以下说明,回答问题1至问题4,将答案填入答题纸对应的解答栏内。(注:此题为思
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。 【说明】
随机试题
Googlemaybevaluedatmorethan$185billionandboastmillionsofusers,b
Pleasecontactusat47778886whenever______.A、itwillbeconvenienttoyouB、
FlagDay,June14,isthebirthdayofAmericanflag.Onthisdatein1777,t
限制脊柱过度后伸的韧带是()。A.顶韧带 B.前纵韧带 C.棘间韧带 D
下列关于商业银行次级债务的说法,正确的有()。 ①.固定期限不低于5年(
根据《质量管理体系要求》,下列质量管理内容中,不属于最高管理者职责的是()。A
[多选题]童年期思维的基本特点包括( )。A.经历一个思维发展的质变过程
颞部外伤出血进行压迫止血的有效部位是()A.耳屏前区 B.颈动脉三角区
按照信息范围的不同,把建设监理信息分为()。A:历史性的信息和预测性的信息 B
28岁已婚妇女,停经50日突觉右下腹剧痛伴休克,面色苍白。为确诊最简便、有效的辅
最新回复
(
0
)