第二周第二次上机题.docVIP

  • 15
  • 0
  • 约3.17千字
  • 约 4页
  • 2017-06-02 发布于河南
  • 举报
第二周第二次上机题

第二周第二次上机题 MFC第三章 3.2上机实验 改错题 题目:本程序将输入字符串中的单词作变换后输出到文件myf1.txt中,变换方法是:将第2、4、6、……个单词中的每个字母换成其对称字母(a与z对称,A与Z对称,b与y对称,B与Y对称等),第1、3、5、……个单词原样不变地输出,串中其它字符不输出,单词之间空一格。最后将作了变换地单词个数写到文件myf1.txt中。假定由非字母字符隔开的字符串叫做单词,而不管是否有意义。输入字符串以“#”结束。 含有错误的源程序为: #includeiostream.h #includestring.h #includefstream.h #includestdlib.h char exch(char c) { char ch; if(c=a||c=z)ch=a+z-c; else ch=A+Z-c; return ch; } void main() { char ch;int j,k,count; ofstream outfile(myf1.txt); if(outfile){ coutcant open file!endl; exit(1); } ch=cin.get();k=0;j=0; while(ch==#){ if(!((ch=ach=z)||(ch=Ach=Z)))k=0; else{ if(k==0) {cout ;k=1;j++;} if(j%2==1)coutch; else coutexch(ch); } ch=cin.get(); } cin.get(); count=j; coutcount; outfilecount; close(outfile); } 2、改错题 题目:程序定义了一个线性表类,动态地建立一个线性表,可将任意多个元素加到线性表中,线性表的缺省的初始大小为10。当线性表中的元素个数与线性表的大小相同,而要把一个元素加到线性表中时,重新申请线性表空间,使线性表的大小正好与表中的元素个数相同。成员函数int Elem(int)的功能是:把一个元素加到线性表中,并返回线性表中的元素个数。成员函数findrep(int x,int y)的功能是:若x在线性表中,则用y代替x,否则,将y加到线性表的尾部。 含有错误的源程序为: #includeiostream.h class List{ int *list,nMax,nElem;//分别为指向线性表的指针,线性表的大小,线性表的元素个数 public: List(int n=10) { list=new int[n];nMax=n;nElem=0; } void findrep(int x,int y); int Elem(int); void print() { for(int i=0;inElem;i++) coutlist[i]\t; coutendl; } ~List(){if(nMax) delete [nMax]list;} }; void List::findrep(int x,int y) { for(int j=0;jnMax;j++) if(list[j]=x)break; if(jnMax)list[j]=y; else list.Elem(y); } int List::Elem(int ele) { if(nElemnMax)list[nElem++]=ele; else{ int *l; l=new int[nMax+1]; for(int i=0;inElem;i++) l[i]=list[i]; delete [nMax]list; nMax++;list=l; list[nElem++]=ele; } return nElem; } void main(){ int a[]={100,50,60,70,150}; List list1(4); for(int i=0;i5;i++) list1.Elem(a[i]); list1.findrep(60,200); list1.findrep(30,170); list1.print(); } 3.编程题 一维数组a中存放10个数据,数组元素中的最大值为max,最小值为min.将数组a中的数据 作线性变换后存入数组b中.当指定b中数据的取值范围为[new_min,new_max]时,对b中的 任一元素b[j],其计算公式为: b[j]=(a[j

文档评论(0)

1亿VIP精品文档

相关文档