上机模拟试卷(1) (1) 改错题: 函数fun的功能是:求出s所指字符串中最后一次出现t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始字符串,若未找到,则函数值为NULL. 例如:当字符串中的内容为 abcdabfabcdx,t中的内容为ab时,输出结果为abcdx. 含有错误的源程序如下: # include <iostream.h> #include <string.h> char *fun(char *s, char *t) { char *p,*r,*a; a=Null; while(*s) { p=s;r=t; while(*r) if(r==p) {r++;p++} else break; if(*r==’\0’) a=p; p++; } return a; } main() { char s[100], t[100], *p; cout<<”Please enter string S:”; cin>>s; cout<<”Please enter substring t:”; cin>>t; p=fun(s,t); if(p) cout<<”The result is:”<<p; else cout<<”Not found!”; } 二:编程题: 建立一个类Array,动态生成数组,按数组元素后两位上值大大小进行降序排序,数组中的每个数均是四位数,具体如下: 1. 私有数据成员. int *a:指向根据len动态申请的数组空间 int len:有效数组元素的个数 2. 公有成员函数: Array(int b[],int length):构造函数,使用数组b初始化a所指的动态数组,length初始化len void sort():按题意对动态数组中的元素进行排序 void print():输出a所指向的数组 ~Array():析构函数, 释放动态数组空间 3.在主函数中定义一个Array类的对象test,调用成员函数完成排序和输出 |