![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
09二級VC++試卷評析 |
2009春上機試卷7 一:改錯題: 【題目】以下程序的功能是:查找某個指定單詞在字符串中出現的次數,單詞之間由一個或多個空格分隔,判斷字符時不區(qū)分字母的大小寫: 例如:在字符串”I am a studeng. My Name is Tony. I am twenty”中包含T的單詞有3個 含有錯誤的源程序如下: #include <iostream.h> 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 || *str==' '){ //第一次查詢或遇到空格時執(zhí)行查詢,所以flag==0 flag=1; while(*(str++)==' '); //跳過空格,使其指向有字母的單詞 str--; //讓str指向空格后的第一個字符 for(char *str1=str;*str1==’ ’ && *str;str1++){ //本循環(huán)實現查找T,所以應為*str1!=’ ’ if(convert(*str1)==convert(*s1)) //如果查找到T,則將count加1,并且跳出for循環(huán) {count++; //因為標明該單詞中有T,就無需再繼續(xù)查找該單詞中的其他單詞 return count; } } } } return count; } void main() {char str[40]=" I am a studeng. My Name is Tony. I am twenty ", ch=’T’; cout<<"字符串"<<"中單詞"<<s<<"出現了"<<search(str,s)<<"次"<<endl; } u |