}
9,对3个变量按由小到大顺序排序,要求使用变量的引用;
#include
usingnamespacestd;
intmain()
{
inta=0,b=0,c=0;
voidpl(int&a,int&b,int&c);
cout<<"请输入三个数:
"<cin>>a>>b>>c;
pl(a,b,c);
return0;
}
voidpl(int&a,int&b,int&c)
{
intmin=a,max=c;
if(a>c)
{
min=c;
max=a;
}
if(bcout<
else
{
if(b>max||b==max)
cout<else
cout<}
}
10,编写一个程序,将两个字符串链接起来,结果取代第一个字符串。
要求用string方法
#include
#include
usingnamespacestd;
intmain()
{
stringstr1,str2;
cout<<"输入两串字符串:
"<cin>>str1>>str2;
str1=str1+str2;
cout<return0;
}
11,输入一个字符串,把其中的字符按逆序输出。
如输入light,输出thgil。
要求用string方法。
#include
#include
usingnamespacestd;
intmain()
{
stringstr;
cout<<"输入一串字符串:
"<cin>>str;
intsize=str.length();
cout<<"您输入了"<for(inti=(size-1);i>0||i==0;i--)
cout<cout<return0;
}
12,有5个字符串,要求对他们按由小到大的顺序排列,用string方法;
#include
#include
#include
usingnamespacestd;
intmain()
{
stringstr[5];
for(intn=0;n<5;n++)
cin>>str[n];
for(inti=0;i<5;i++)
{
for(intm=i;m<5;m++)
{
if(str[i]>str[m])
{
stringmin=str[m];
str[m]=str[i];
str[i]=min;
}
}
}
for(intg=0;g<5;g++)
cout<return0;
}
13,编写一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整形,单精度,双精度。
用重载函数实现。
#include
#include
usingnamespacestd;
intmain()
{
intpl(int*q,intn);
doublepl(double*p,intn);
floatpl(float*p,intn);
inta,n;
cout<<"您需要比较什么类型的数:
(1)整形
(2)单精度(3)双精度"<cin>>a;
cout<<"请输入您需要比较数据的个数:
"<cin>>n;
cout<<"请输入"<if(a==1)
{
int*p=newint[n];
for(inti=0;icin>>p[i];
pl(p,n);
}
if(a==2)
{
double*p=newdouble[n];
for(inti=0;icin>>p[i];
pl(p,n);
}
if(a==3)
{
float*p=newfloat[n];
for(inti=0;icin>>p[i];
pl(p,n);
}
return0;
}
intpl(int*q,intn)
{
for(inti=0;i{
for(intj=i;j{
if(q[i]>q[j])
{
intx;
x=q[j];
q[j]=q[i];
q[i]=x;
}
}
}
for(intx=0;xcout<return0;
}
floatpl(float*q,intn)
{
for(inti=0;i{
for(intj=i;j{
if(q[i]>q[j])
{
floatx;
x=q[j];
q[j]=q[i];
q[i]=x;
}
}
}
for(intx=0;xcout<return0;
}
doublepl(double*q,intn)
{
for(inti=0;i{
for(intj=i;j{
if(q[i]>q[j])
{
doublex;
x=q[j];
q[j]=q[i];
q[i]=x;
}
}
}
for(intx=0;xcout<return0;
}
2,改写本章例2.1程序,要求:
(1)将数据成员改为私有;
(2)将输入和输出的功能改为由成员函数实现;
(3)在类体内定义成员函数;
#include
usingnamespacestd;
classTime
{
private:
inthour;
intminute;
intsec;
public:
voidsl()
{
cin>>hour;
cin>>minute;
cin>>sec;
};
voidsc()
{
cout<"<"<};
};
intmain()
{
Timet1;
cout<<"请按小时:
分钟:
秒输入\n";
t1.sl();
t1.sc();
return0;
}
3,在第2题的基础上进行如下操作:
在类体内声明成员函数,而在类外定义成员函数。
#include
usingnamespacestd;
classTime
{
private:
inthour;
intminute;
intsec;
public:
voidsl();
voidsc();
};
voidTime:
:
sl()
{
cin>>hour;
cin>>minute;
cin>>sec;
};
voidTime:
:
sc()
{
cout<"<"<};
intmain()
{
Timet1;
cout<<"请按小时:
分钟:
秒输入\n";
t1.sl();
t1.sc();
return0;
}
4,在本章第2.6.2(题目错误)节中给出了包含类定义的头文件student.h,包含成员函数定义的源文件student.cpp以及包含主函数的源文件main.cpp。
请完善该程序,在类中增加一个对数据成员赋初值得成员函数set_value。
上机调试并运行。
main.cpp
#include
#include"student.h"
usingnamespacestd;
intmain()
{
Studentstud;
cout<<"请按学号名字性别输入\n";
stud.sex_value();
stud.display();
return0;
}
student.cpp
#include
#include"student.h"
voidStudent:
:
display()
{
cout<<"num:
"<cout<<"name:
"<cout<<"sex:
"<}
voidStudent:
:
sex_value()
{
cin>>num>>name>>sex;
}
student.h
#include
usingnamespacestd;
classStudent
{
public:
voiddisplay();
voidsex_value();
private:
intnum;
stringname;
charsex;
};
5,将本章的例2.4改写为一个多文件的程序:
(1)将类定义放在头文件arraymax.h中;
(2)将成员函数定义放在源文件arraymax.cpp中;
(3)主函数放在源文件filel.cpp中。
请写出完整的程序,上机调试并运行。
arraymax.h
#include
classArray_max
{
public:
voidset_value();
voidmax_value();
voidshow_value();
private:
intarray[10];
intmax;
};
arraymax.cpp
#include
#include"arraymax.h"
usingnamespacestd;
voidArray_max:
:
max_value()
{
inti;
max=array[0];
for(i=1;i<10;i++)
{
if(array[i]>max)
max=array[i];
}
};
voidArray_max:
:
set_value()
{
inti;
for(i=0;i<10;i++)
cin>>array[i];
};
voidArray_max:
:
show_value()
{
cout<<"max="<};
filel.cpp
#include
#include"arraymax.h"
usingnamespacestd;
intmain()
{
Array_maxarrmax;
arrmax.set_value();
arrmax.max_value();
arrmax.show_value();
return0;
}
6,需要求3个长方柱的体积,请编写一个基于对的象程序。
数据成员包括length(长),width(宽),height(高)。
要求用成员函数实现以下功能:
(1)有键盘分别输入3个长方柱的长,宽,高;
(2)计算长方柱的体积;
(3)输出3个长方柱的体积。
请编程序,上机调试并运行。
#include
usingnamespacestd;
classV
{
private:
intlength;
intwidth;
intheight;
public:
voidsl()
{
cout<<"按格式输入长宽高:
\n";
cout<<"length:
";
cin>>length;
cout<cin>>width;
cout<cin>>height;
cout<};
voidsc()
{
intv=0;
v=length*width*height;
cout<<"体积:
"<};
};
intmain()
{
Vv1;
v1.sl();
v1.sc();
return0;
}