2009年春江苏计算机上机考试1 |
2009春上机试卷1 一:改错题: 【题目】以下程序的功能是:查找某个指定单词在字符串中出现的次数,单词之间由一个或多个空格分隔,判断字符时不区分字母的大小写: 例如:在字符串”Abc defabc abc abcge ABC”中,单词abc出现了3次(下划线部分) 含有错误的源程序如下: #include char convert(char c) //本函数实现将大写字母转换为小写字母 {if(c>='A' && c<='Z') return c+'a'-'A'; //因为是转化为小写,所以应该为c+'a'-'A' return c; } int search(char *str, char *s) {int count=0,flag=0; for(;*str;str++){ if(flag==0 || *str==' '){ flag=1; while(*(str++)==' '); //跳过空格,使其指向有字母的单词 str--; for(char *str1=str,*s1=s;*s1;s1++,str1++){ if(convert(*str1)!=convert(*s1)) break; //for循环判断s字符串是否在str中 } if(!*s1&&(*(str1)==' '||!*str1)) //如果s1字符串比较结束了并且str1遇到了空格或 count++; //者是str1在最后就加1 } } return count; } void main() {char str[40]="Abc defabc abc abcge ABC",s[10]="abc"; cout<<"字符串"<<"中单词"< }
|