C++期末复习题(5)

2019-08-30 19:34

if(a>0) mul*=a; if(a<0) sum+=a; } cout<<\十个数中正数的积是:\ cout<<\十个数中负数的和是:\ cout<<\十个数中平均值是:\ return 0; }

3.设计一个程序,完成删除一个整数数组中所有的负数。要求:

1)整数数组中的元素个数n由运行程序时指定(提示:使用动态存储分配)。 2)用函数find_elem(int a[],int n)返回n个元素的数组a中的第一个负数的下标;

用函数delete_elem(int a[],int &n,int x)完成对有n个元素的数组a中下标为x的元素进行删除工作。 3)在主函数中输入数据,并输出处理结果,测试所写的函数。 #include using namespace std; int find_elem(int a[],int n)

{ for(int i=0;i=0;i++); return i

void delete_elem(int a[],int &n,int x) { for(int i=x;i

int main( ) { int *p,n,k; cout<<\请输入个数\\n\ cin>>n; p=new int [n]; cout<<\请输入数据\\n\ for(int i=0;i>a[i]; while((k=find_elem(p,n))>=0) delete_elem(p,n,k); for(int i=0;i4. 任意输入一个字符串,串中连续出现的相同元素构成的子序列称为平台。试建立一个类Str,完成求出串中最长平台的长度。

例如:若字符串为\,则最长平台为\,其长度为4。 具体要求如下: (1) 私有数据成员

21

char str[200] :存放字符串。

int maxlen :str字符串中最长平台的长度。 (2) 公有成员函数

Str(char s[]) :构造函数,用s中的字符串初始化成员str;置maxlen初始值为0。 void process ( ) :求str中的字符串中最长平台的长度。 void show( ) :输出字符串及最长平台的长度。 (3) 在主函数中完成对该类的测试。

输入一个字符串到字符数组text中,定义一个Str类的对象s,用text初始化对象s,调用成员函数求str字符串中最长平台的长度,输出字符串及其最长平台的长度。 #include #include using namespace std; class Str

{ char str[]; int maxlen; public: Str(char s[]); void process( ); void show( ); };

Str::Str(char s[]) { strcpy(str, s); maxlen=0; }

void Str::process( ) { char *ptr=str; int len; while(*ptr) { len=1; while(*ptr==*(ptr+1)) { len++; ptr++; } ptr++; if(len>maxlen) maxlen=len; } }

void Str::show( )

{ cout<<\ cout<<\ } void main( )

{ char text[100]; cin.getline(text, 100); Str s(text); s.process( ); s.show( ); }

5. 任意输入一个字符串,将该字符串反序处理。试建立一个类Str,完成对串的反序处理。

22

例如:若字符串为\,则反序后的字符串为\。 具体要求如下: (1) 私有数据成员

char str[200] :存放字符串。 (2) 公有成员函数

Str(char s[]) :构造函数,用s中的字符串初始化成员str。 void process ( ) :将str中的字符串反序处理。 void show( ) :输出字符串。 (3) 在主函数中完成对该类的测试。

输入一个字符串到字符数组text中,定义一个Str类的对象s,用text初始化对象s,调用成员函数对str中字符串进行反序处理,输出处理后字符串。 #include #include using namespace std; class Str

{ char str[]; public: Str(char s[]); void process( ); void show( ); };

Str::Str(char s[]) { strcpy(str, s); } void Str::process( ) { char *p1=str,*p2=str; while(*p2) p2++;

p2--; while(p1

void Str::show( ) { cout<<\ } void main( )

{ char text[100]; cin.getline(text, 100); Str s(text); s.process( ); s.show( );

6. 在二维坐标中,任一线段均可以通过该线段两端点的坐标(x1,y1)和(x2,y2)来描述。设计一程序,输入两端点的坐标,计算两端点之间线段的长度。要求:

1)声明一个点类point,通过成员函数,实现坐标点数据的设置、输出、计算从该端点到另一端点之间的长度并输出。

2)在主函数中,定义两个点对象p1和p2,输入点对象p1和p2的坐标数据并输出两端点坐标及它们之间的长度,完成对点类point的测试工作。 #include

23

#include using namespace std; class point{ double x,y; public: void setxy(double x1=0,double y1=0) { x=x1; y=y1; } double distance(point p1) { return sqrt((x-p1.x)*(x-p1.x)+(y-p1.y)*(y-p1.y)); } void print() { cout<<\点:(\ } };

int main( )

{ point p1,p2;double x1,y1,x2,y2;

cout<<\请输入第一个点的坐标:\ cin>>x1>>y1;

cout<<\请输入第二个点的坐标:\ cin>>x2>>y2; p1.setxy(x1,y1);p2.setxy(x2,y2); p1.print();p2.print();

cout<<\两点之间的距离是:\ return 0; }

24


C++期末复习题(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“个人与团队管理”课程重难点分析与练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: