阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内。【说明】下面的C代码在输入的100个英文单词中找出最小单词和最大单词。约定每个单词是仅由英文字母构成的字符串,且都不超过20个字符。单词的大小按照字典序定义。例如,单词“entry”大于“enter”、“art”小于“ article”、“an”等于“An”。 【C代码】#include #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 Word0) / /调用usr_strcmp比较单词 usr_strcpy(max Word, word); / /用max Word记下最大单词 else if( (3) ='a' && *s='A' && *s='A' && ch

阅读以下说明和C代码,填写代码中的空(1)~(6),将解答写入答题纸的对应栏内。【说明】下面的C代码在输入的100个英文单词中找出最小单词和最大单词。约定每个单词是仅由英文字母构成的字符串,且都不超过20个字符。单词的大小按照字典序定义。例如,单词“entry”大于“enter”、“art”小于“ article”、“an”等于“An”。 【C代码】#include #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 Word0) / /调用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’

相关考题:

●试题一阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。【算法说明】某英汉词典文件包含N个记录(N1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。【算法】第一步读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。第二步输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。第三步根据变量E的值,用二分法在数组ENG中查找。具体步骤如下:1.1→L,N→H2.INT((L+H)/2)→K3.若E=ENG(K),则C→CN(K),转向第二步若EENG(K),则K-1→ (1) ;若E>ENG(K),则K+1→ (2)4.若HL则对I=N,L,-1(始值,终值,增量)循环执行:ENG(I)→ENG(I+1)CN(I)→CN(I+1)然后,将E和C分别存入 (3) 和 (4) ,N+1→N最后转向第二步否则,转向 (5)第四步将数组ENG和CN输出,形成新的英汉词典文件,算法结束。

阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。[说明]下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。注意到单词列表中不存在组成字符完全相同的单词(如Hack12与Hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按ASCⅡ码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。函数中使用的符号定义如下:#define NumberofWords 1275//单词总数#define MaxLength 10//最长单词所含字符数char WordList[NumberofWords][MaxLength];//存储单词列表int cmp(Node *q,Node *p);//q与p比较。p小,返回负值;P大返回正值:相等,返回0typedef struct Node(//二叉树节点char *eleLetters;//重组后的字符串int index;//对应单词表中的下标struct Node *lChiId,*rChiid;//左右子节点}Node;[C代码]void reCompose(Node *p,char *temp)//重纰,亦即将temp字符串中的字符升序排序,存储于p节点中//采用直接插入排序法{char c;strcpy(p->eleLetters,temp);//int len=strlen(temp);int i,j,k;for(i=0;i<len-1;i++){k=i;for(j=i+1;j<lan;j++){if(p->eleLetters[j]<P->eleLetters[k])k=J;}if( (1) ){C=P->eleLetters[i];P->eleLetters[i]=P->eleLetters[k];P->eleLetters[k]=c;}//if}//for};int find(Node root,char *temp)//在二叉排序树root中查找与temp匹配的单词。//若匹配返回相应单词在WordList中下标;若查找失败,返回-1{Node *P,*q;int flag;P=(2);//临时存储reCompose(p,temp);//将temp重组q=root;while((flag=(3))&&q !=NULL){if(flag<0){//搜索左子树q=q->lChiid;}else(//搜索右子树q=q->rChild;}}//whileif(flag==0){//找到匹配的,保存下标return (4);}}if( (5) ){//查找失败printf("cant unscramble the following word:%s",temp);;return -1;}};(1)

()是在词法分析的基础上将单词序列分解成各类语法短语。 A、语法分析B、语义分析C、中间代码生成D、代码优化E、目标代码生成

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】给定函数fun的功能是:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用“.”结束输入。【函数】int fun(char *c,int status){if((1)=='')return 1;else{if((2)(3)(4))(5)='A'-'a';return 0;}}main(){int flag=1;char ch;printf("请输入一字符串,用点号结束输入!\n");do {ch=getchar();flag=fun(ch,flag);putchar(ch);}while(ch!='.');printf("\n");}

. 分别用 PHP 和Javascript. 来验证两个分别叫 slot 和 alternative 的文本框里面的内容:+ slot 可以包含许多行,每行又包含若干个单词,并且以数字结尾+ slot 中的每个单词只能由数字、字母、方括号和下划线构成+ 如果 slot 中的某个单词前后各有相同书面的下划线,则这个单词必须在 alternatives 另起一行,并带有其定义+ 方括号必须成对出现例如,下面的 slot 和 alternative 是正确的:SLOT ALTERNATIVE---------------------- --------------------------| this is 1 | | _this_ th ee s || the is 1 | | || this's 2 | | || _this_ 2 | | |---------------------- --------------------------

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]

阅读以下说明和C程序,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】 函数areAnagrams(char *fstword, char *sndword)的功能是判断fstword和sndword中的单词(不区分大小写)是否互为变位词,若是则返回1,否则返回0。所谓变位词是指两个单词是由相同字母的不同排列得到的。例如,triangle与integral互为变位词,而dumbest与stumble不是。 函数areAnagrams的处理思路是检测两个单词是否包含相同的字母且每个字母出现的次数也相同。过程是先计算第一个单词(即fstword中的单词)中各字母的出现次数并记录在数组counter中,然后扫描第二个单词(即sndword中的单词)的各字母,若在第二个单词中遇到与第一个单词相同的字母,就将相应的计数变量值减1,若在第二个单词中发现第一个单词中不存在的字母,则可断定这两个单词不构成变位词。最后扫描用于计数的数组counter各元素,若两个单词互为变位词,则counter的所有元素值都为0。 函数areAnagrams中用到的部分标准库函数如下表所述。【C函数】 int areAnagrams (char *fstword, char *sndword { int index; int counter [26]={0}; /* counter[i]为英文字母表第i个字母出现的次数,A或a为第0个,B或b为第1个,依此类推 */ if ( (1) ) /* 两个单词相同时不互为变位词 */ return 0; while(*fstword) { /* 计算第一个单词中各字母出现的次数 */ if (isalpha (*fstword)) { if (isupper (*fstword)) counter [*fstword -A]++; else counter [*fstword -a]++; (2) ; /* 下一个字符 */ } } while (*sndword) { if (isalpha (*sndword)) { index= isupper (*sndword) ? *sndword -A: *sndword -a; if (counter [index] ) counter [index] --; else (3) ; } (4) ; /* 下一个字符 */ } for (index = 0; index26; index++) if ( (5) ) return 0; return 1; }

阅读下列说明、c++代码和运行结果,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。【说明】很多依托扑克牌进行的游戏都要先洗牌。下面的c++程序运行时先生成一副扑克牌,洗牌后再按顺序打印每张牌的点数和花色。【c++代码】inciude <iostream>4Finclude <stdlib. h>include <ctime>inciude <aigorithm>include <string>Using namespace stdConst string Rank[13]={”A”,”2”,”3”,”4“,“5”,”6,”’“7”8“,9”,”10,”J”,”Q”,”K”}j//扑克牌点数

阅读以下说明和Java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。【说明】很多依托扑克牌进行的游戏都要先洗牌。下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张牌的点数和花色。【Java代码】

试题三(共15分)阅读以下说明和C函数,填补C函数中的空缺(1)~(6),将解答写在答题纸的对应栏内。【说明】函数numberOfwords (char message[])的功能是计算存储在message字符数组中的一段英文语句中的单词数目,输出每个单词(单词长度超过20时仅输出其前20个字母),并计算每个英文字母出现的次数(即频数),字母计数时不区分大小写。假设英文语句中的单词合乎规范(此处不考虑单词的正确性),单词不缩写或省略,即不会出现类似don't形式的词,单词之后都为空格或标点符号。函数中判定单词的规则是:(1)一个英文字母串是单词;(2) 一个数字串是单词;(3)表示名词所有格的撇号(')与对应的单词看作是一个单词。除上述规则外,其他情况概不考虑。例如,句子“The 1990's witnessed many changes in people's concepts ofconservation”中有10个单词,输出如下:The1990'switnessedmanychangesinpeople'sconceptsofconservation函数numberOfijvords中用到的部分标淮库函数如下所述。【C函数】int numberOfwords (char message[]){char wordbuffer[21],i=0; /*i用作wordbuffer的下标*/(1) pstr;int ps[26]={0); /*ps[0]用于表示字母'A'或'a'的频数*//*ps[1]用于表示字母'B'或'b'的频数,依此类推*/int wordcounter=0;pstr=message;while (*pstr){if((2)(*pstr)){/*调用函数判断是否为一个单词的开头字符*/i=0;do{/*将一个单词的字符逐个存入wordbuffer[],并对字母计数*/wordbuffer[i++]=*pstr;if(isalpha(*pstr)){if (3) (*pstr))ps[*pstr-'a']++;else ps[*pstr-'A']++;}(4) ; /*pstr指向下一字符*/}while (i20(isalnum(*pstr)||*pstr=='\"));if (i=20) /*处理超长单词(含名词所有格形式)*/while (isalnum(*pstr)||*pstr=='\"){pstr++;}(5) ='\0';/*设置暂存在wordbuffepstrr中的单词结尾*/wordcounter++; /*单词计数*/puts(wordbuffer); /*输出单词*/}(6); /*pstr指向下一字符*/}retum wordcounter;}

阅读以下说明和C程序,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]函数areAnagrams(char *fstword,char *sndword)的功能是判断fstword和sndword中的单词(不区分大小写)是否互为变位词,若是则返回1,否则返回0。所谓变位词是指两个单词是由相同字母的不同排列得到的。例如,"triangle"与"integral"互为变位词,而"dumbest"与"stumble"不是。函数areAnagrams的处理思路是检测两个单词是否包含相同的字母且每个字母出现的次数也相同。过程是先计算第一个单词(即fstword中的单词)中各字母的出现次数并记录在数组counter中,然后扫描第二个单词(即sndword中的单词)的各字母,若在第二个单词中遇到与第一个单词相同的字母,就将相应的计数变量值减1,若在第二个单词中发现第一个单词中不存在的字母,则可断定这两个单词不构成变位词。最后扫描用于计数的数组counter各元素,若两个单词互为变位词,则counter的所有元素值都为0。函数areAnagrams中用到的部分标准库函数如下表所述。[C函数] intareAnagrams(char *fstword, char *sndword) { int index; int counter[26]={0); /*counter[i]为英文字母表第i个字母出现的次数, 'A'或'a'为第0个,'B'或'b'为第1个,依此类推*/ if(______) /*两个单词相同时不互为变位词*/ return 0; while (*fstword){ /*计算第一个单词中各字母出现的次数*/ if(isalpha(*fstword)){ if (isupper(*fstword)) counter [*fstword-'A']++; else counter[*fstword-'a']++; ______; /*下一个字符*/ } } while (*Sndword){ if (isalpha(*sndword)) { index=isupper(*sndword)?* sndword -'A':*sndword-'a'; if(counter[index]) counter [index]--; elSe ______; } ______; /*下一个字符*/ } for (index=0;index<26; index++) if(______) return 0; return 1; }

阅读以下C代码,回答问题1和问题2,将解答填入答题纸的对应栏内。【C代码1】【问题2】写出【代码2】的运行时的输出结果。

阅读以下说明,回答问题1至问题2,将解答填入答题纸对应的解答栏内。【说明】某留言系统采用ASP+Access开发,其后台管理登录页面如图4-1所示。【问题1】(9分)以下是该后台管理登录页面login.asp的部分代码,请仔细阅读该段代码,根据图4-1 将(1)~(9)的空缺代码补齐。【问题2】(6分)1.在登录页面 login.asp 中通过导入了bbb.asp的代码,以下是bbb.asp的部分代码,请仔细阅读该段代码,将空缺代码补齐。

有报时,应当在“请回答”单词前拍发“电报”单词和电报等级代码()次。A、2B、3C、1D、4

在Word中,如果想选择文档中的英文单词,最简单的方法是()A、在这个单词上单击左键B、在这个单词上单击右键C、在这单词上双击左键D、在这个单词上双击右键

一般情况下,输入了错误的英文单词时,Word2010会()A、自动更正B、在单词下加绿色波浪线C、在单词下加红色波浪线D、无任何措施

在Word2003默认情况下,输入了错误的英文单词时,单词下面会有红色波浪线。

一般来说,在电子文档中输入错误的英文单词,文档会()。A、在单词下加上红色波浪线B、自动更正C、没有什么变化D、在单词下加上绿色波浪线

设备的账号口令应()位,()。A、长度大于6位,设置不能与帐号名相同,或者只包含数字或英文单词。B、长度大于6位,设置不能只包含数字或英文单词。C、长度不小于6位,设置不能与帐号名相同,或者只包含数字或英文单词。D、长度不小于6位,设置不能只包含数字或英文单词。

在“造词”对话框中“查找”按钮的作用是:按所输入的文字或()在个人词库中查找该词语,并反白显示。A、速录略码B、速录编码C、英文单词D、数字代码

在Stroop干扰实验中,能够熟练阅读的人看到单词,避免不了激发()。A、语音代码B、词汇代码C、语义代码D、语法规则

默认情况下,在Word中输入的错误的英文单词,会()。A、系统响铃,提示出错B、在单词下有黑色波浪线C、在单词下有红色波浪线D、Word自动更正

植物学名由()A、英文单词构成B、法文单词构成C、拉丁词构成D、德文单词构成

当检查拼写功能指出在指定的字典中未找到某个单词时,可以选择处理该单词的方式是()A、更改所指出的单词或在所有地方出现的该单词B、选择建议的单词以用于更改所指出的单词C、将所指出的单词添加到您的“个人字典”中D、以上都正确

单选题在Stroop干扰实验中,能够熟练阅读的人看到单词,避免不了激发()。A语音代码B词汇代码C语义代码D语法规则

单选题植物学名由()A英文单词构成B法文单词构成C拉丁词构成D德文单词构成

配伍题近视的英文单词是( )|正视的英文单词是( )|屈光不正的英文单词是( )|远视的英文单词是( )|散光的英文单词是( )AemmetropiaBametropiaCmyopiaDhyperopiaEastigmatism