江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
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<<"字符串"<<"中单词"<出现了"<"<

}

 

二:编程题

 

 实定义一个类Array,实现由一个二维数组派生出另一个新二维数组,新数组的行数和列数分别为