C++练习题源代码.docx

上传人:b****5 文档编号:7227127 上传时间:2023-01-22 格式:DOCX 页数:68 大小:35.16KB
下载 相关 举报
C++练习题源代码.docx_第1页
第1页 / 共68页
C++练习题源代码.docx_第2页
第2页 / 共68页
C++练习题源代码.docx_第3页
第3页 / 共68页
C++练习题源代码.docx_第4页
第4页 / 共68页
C++练习题源代码.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

C++练习题源代码.docx

《C++练习题源代码.docx》由会员分享,可在线阅读,更多相关《C++练习题源代码.docx(68页珍藏版)》请在冰豆网上搜索。

C++练习题源代码.docx

C++练习题源代码

C++练习题源代码

标题:

1、字符串输入输出

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   编写一个简单的控制台应用程序,先输入姓名,如“John”,再输出问候语,如“Hello, John!

”。

输入:

John

输出:

Hello,John!

输入样例:

John

输出样例:

Hello,

John!

提示:

1、使用string类定义字符串对象,需包含头文件

2、使用cin和提取符>>从键盘输入数据,使用cout和插入符<<输出结果到屏幕,需包含头文件

3、注意使用名称空间std。

#include

#include

usingnamespacestd;

intmain()

{

stringszName;

cin>>szName;

cout<<"Hello,"<

"<

return0;

}

标题:

2、求3个数的平均值

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   从键盘上输入3个浮点数,求这3个数的平均值。

输入:

3个浮点数

输出:

3个数的平均值

输入样例:

1.51.61.3

输出样例:

1.46667

提示:

1、用usingnamespacestd;明确名字空间

2、用cin对象,采用>>运算符输入数据

3、用cout对象,采用<<运算符输出数据

#include

usingnamespacestd;

intmain()

{

floatx1,x2,x3;

cin>>x1>>x2>>x3;

cout<<(x1+x2+x3)/3<

return0;

}

标题:

3、求鞍点

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

输入一个二维矩阵,找出其中所有鞍点。

如果矩阵有鞍点,则输出鞍点的信息:

行号、列号、值;

如果没有鞍点,则输出“Notfound!

”。

所谓“鞍点”,是指满足以下条件的矩阵中的一个数:

在它所在的行上最小、所在列上最大。

该题中假设矩阵中任意两个数互不相等。

输入:

输入数据有多行:

第一行是矩阵的行数m和列数n

从第二行起共包含m行,每行包含n个数,为矩阵的一行数据

输出:

  如果矩阵有鞍点,输出鞍点的信息,包括:

所在行、所在列、值

  如果没有鞍点,输出Notfound!

输入样例:

34

11235647

12456690

16773418

输出样例:

2

0

16

提示:

1、要求用动态内存分配来完成,可用new和delete实现;

2、屏幕输出只有2016(加回车换行),不能有其它信息。

//SaddlePoint.cpp:

定义控制台应用程序的入口点。

//

#include

usingnamespacestd;

intmain()

{

int**mat;

int*matRow,*matCol;

intnMaxRow=0,nMaxCol=0;

boolbFind=false;

intnTargetRow=0,nTargetCol=0,nSaddlePoint=0;

inti,j;

//cout<<"Pleaseinputthenumberofrowsandthenumberofcolumns:

"<

cin>>nMaxRow>>nMaxCol;

//Allocatememoriesforthetwodimensionalmatrices

mat=newint*[nMaxRow];

for(i=0;i

mat[i]=newint[nMaxCol];

matRow=newint[nMaxRow];//Bufferstosavetheminimumelementineachrow

matCol=newint[nMaxCol];//Bufferstosavethemaximumelementineachcolumn

//Inputtheelements

//cout<<"Pleaseinputtheelements:

"<

for(i=0;i

for(j=0;j

cin>>mat[i][j];

//Findtheminimumelementineachrow

for(i=0;i

{

intnMin=mat[i][0];

for(j=1;j

{

if(mat[i][j]

}

matRow[i]=nMin;

}

//Findthemaximumelementineachcolumn

for(j=0;j

{

intnMax=mat[0][j];

for(i=1;i

{

if(mat[i][j]>nMax)nMax=mat[i][j];

}

matCol[j]=nMax;

}

//Findthesaddlepoint

for(i=0;i

bFind;i++)

{

for(j=0;j

{

if(mat[i][j]==matRow[i]&&mat[i][j]==matCol[j])

{

nTargetRow=i;

nTargetCol=j;

nSaddlePoint=mat[i][j];

bFind=true;

break;

}

}

}

//Outputthesearchedrowandcolumnandthecorrespondingsaddlepoint

if(!

bFind)

cout<<"Notfound!

"<

else

cout<

//Releasememories

delete[]matCol;

delete[]matRow;

for(i=0;i

delete[]mat[i];

delete[]mat;

return0;

}

标题:

4、链表操作

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   建立一个链表,每个节点包括学生的学号、姓名、性别、年龄。

先输入5个学生的数据,再输入一个年龄,如果链表中有年龄等于此年龄的记录,则删除所有年龄等于此年龄的记录,否则在链表的最后增加一个新节点,学号为180姓名为"aaa",性别为"male"。

输入:

   创建链表时输入5个职工的职工号和工资,学号为大于100且小于200的整数,姓名为长度小于20的字符串,性别为长度小于10的字符串,年龄为大于等于0且小于200的整数。

输出:

按顺序输出链表中的所有数据,每个数据占一行。

输入样例:

101zhangsanmale30

103lisifemale18

105wangwumale25

107maliumale28

109niuqifemale22

28

输出样例:

101

zhangsan

male

30

103

lisi

female

18

105

wangwu

male

25

109

niuqi

female

22

提示:

要求用动态内存分配实现,注意new和delete的使用。

标题:

1.函数重载

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

 设计一菜单程序,利用函数重载实现员工月工资的计算,计算方法如下:

 

(1)管理人员的月工资=月薪-缺勤天数 ×月薪 ÷22;

 

(2)销售人员的月工资=底薪+销售金额×提成比例;

 (3)计件工人的月工资=产品件数 ×每件报酬;

 (4)计时工人的月工资=工作小时×小时报酬;

输入:

职工类别及相关信息。

职工类别:

1表示管理人员;2表示销售人员;3表示计件工人;4表示计时工人;其余字符表示退出。

相关信息:

若为管理人员,则输入月薪和缺勤天数;若为销售人员,则输入底薪、销售金额和提成比例;若为计件工人,则输入产品件数和每件报酬;若为计时工人,则输入工作小时和小时报酬。

输出:

员工月工资。

输入样例:

1      〈--职工类别

5000.01〈--月薪和缺勤天数

输出样例:

4772.73

提示:

1.计算管理人员、销售人员、计件工人、计时工人的月工资的函数原型可以分别设计如下:

   doublegetEarning(doublesalary,intabsenceDays);

   doublegetEarning(doublebaseSalary,doublesalesSum,doublerate);

   doublegetEarning(intworkPieces,doublewagePerPiece);

   doublegetEarning(doublehours,doublewagePerHour);

2.菜单程序设计如下:

   

intmain()

{

   ...

   cout<<"Pleaseselect..."<

   cout<<"1:

Manager."<

   cout<<"2:

SalesMan."<

   cout<<"3:

PiecesWorker."<

   cout<<"4:

Hour-Worker."<

   cout<<"Others:

Quit"<

   cin>>sel;

   switch(sel)

   {

   case1:

       cin>>...;

       cout<

       break;

   case2:

       cin>>...;

       cout<

       break;

   case3:

       cin>>...;

       cout<

       break;

   case4:

       cin>>...;

       cout<

       break;

   default:

        break;

   }

   return0;

}

#include

usingnamespacestd;

doublegetEarning(doublesalary,intabsenceDays)

{

return(salary-salary*absenceDays/22);

}//admin

doublegetEarning(doublebaseSalary,doublesalesSum,doublerate)

{

return(baseSalary+salesSum*rate);

}

doublegetEarning(intworkPieces,doublewagePerPiece)

{

return(workPieces*wagePerPiece);

}

doublegetEarning(doublehours,doublewagePerHour)

{

return(hours*wagePerHour);

}

intmain()

{

intkind=0;

cout<<"Pleaseselect..."<

cout<<"1:

Manager."<

cout<<"2:

SalesMan."<

cout<<"3:

PiecesWorker."<

cout<<"4:

Hour-Worker."<

cout<<"Others:

Quit"<

cin>>kind;

switch(kind)

{

case1:

{

doublesalary;

intabDays;

cin>>salary>>abDays;

cout<

break;

}

case2:

{

doublebase;

doublesalesSum;

doublerate;

cin>>base>>salesSum>>rate;

cout<

break;

}

case3:

{

intworkPieces;

doublewagePerPiece;

cin>>workPieces>>wagePerPiece;

cout<

break;

}

case4:

{

doublehours;

doublewagePerHour;

cin>>hours>>wagePerHour;

cout<

break;

}

default:

break;

}

//cout<

//cout<

//cout<

//cout<

return0;

}

标题:

2.引用传递

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计一个函数,将两个浮点数传入,然后通过引用把其和、差、积传出。

函数原型如下:

voidMath(floata,floatb,float&sum,float&sub,float&pro);

输入:

输入两个浮点数

输出:

输出两个浮点数的和、差、积。

输入样例:

6.52.3

输出样例:

8.84.214.95

#include

usingnamespacestd;

voidMath(floata,floatb,float&sum,float&sub,float&pro)

{

sum=a+b;

sub=a-b;

pro=a*b;

}

intmain()

{

floatsum=0;

floatsub=0;

floatpro=0;

floata=0;

floatb=0;

cin>>a>>b;

Math(a,b,sum,sub,pro);

cout<

return0;

}

标题:

3.函数模板

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   设计一个函数模板,实现两个同类型数据的交换。

   将设计好的函数模板分别实例化为两个整型数交换、两个字符交换的模板函数,调用这些函数并输出运行结果。

输入:

分别输入两个整型数和两个字符

输出:

分别输出两个整型数和两个字符交换的结果

输入样例:

59

输出样例:

95

#include

usingnamespacestd;

template

Tcg(T&a,T&b)

{

Tc;

c=a;

a=b;

b=c;

}

intmain()

{

inta=0;

intb=0;

charc=0;

chard=0;

cin>>a>>b>>c>>d;

cg(a,b);

cg(c,d);

cout<

return0;

}

标题:

4.默认形参值

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计一个求空间两点距离的函数,要求第2个点的默认值为坐标原点。

输入:

两个点的坐标。

输出:

输出第一个点与原点之间的距离及输入的两个点之间的距离。

输入样例:

111

555

输出样例:

1.73205

6.9282

提示:

函数原型可设计如下:

float distance(floatx1,floaty1,floatz1,floatx2=0,floaty2=0,floatz2=0);

#include

#include

usingnamespacestd;

floatdistance(floatx1,floaty1,floatz1,floatx2=0,floaty2=0,floatz2=0)

{

returnsqrt(pow(x1-x2,2)+pow(y1-y2,2)+pow(z1-z2,2));

}

intmain()

{

floatx1=0;

floatx2=0;

floaty1=0;

floaty2=0;

floatz1=0;

floatz2=0;

cin>>x1>>y1>>z1>>x2>>y2>>z2;

cout<

cout<

return0;

}

标题:

类的定义_静态常量

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计并实现一个圆柱类Cylinder,要求:

(1)设计两个double型的私有数据成员:

高度height和底圆半径radius。

(2)设计一个double型的公有静态常量数据成员pi(其值初始化为3.1415926),以及一个获取该常量的公有静态成员函数GetPI。

(3)在构造函数的初始化列表中初始化高度height和底圆半径radius。

(4)设计用于获取半径的成员函数GetRadius、获取高度的成员函数GetHeight、设置半径的成员函数SetRadius、设置高度的成员函数SetHeight。

(5)设计用于计算圆柱体积的成员函数Volume()、计算圆柱表面积的成员函数Area。

 

在main函数中:

根据输入的高度和半径构造圆柱对象,并输出圆柱的基本信息、体积和表面积。

输入:

圆柱的高度和底圆半径

输出:

圆周率pi、圆柱高度、底圆半径、圆柱的体积和表面积

输入样例:

2.01.0

输出样例:

pi=3.14159,height=2,radius=1:

volume=6.28319,area=18.8496

#include

usingnamespacestd;

classCylinder

{

public:

Cylinder(doubleh,doubler):

height(h),radius(r)

{

}

doubleVolume()

{

returnpi*radius*radius*height;

}

doubleArea()

{

return2.0*pi*radius*(radius+height);

}

staticdoubleGetPI()

{

returnpi;

}

doubleGetHeight()

{

returnheight;

}

doubleGetRadius()

{

returnradius;

}

voidSetHeight(doubleh)

{

height=h;

}

voidSetRadius(doubler)

{

radius=r;

}

private:

doubleheight;

doubleradius;

staticconstdoublepi;

};

constdoubleCylinder:

:

pi=3.1415926;

intmain()

{

doubleh,r;

cin>>h>>r;

Cylindercl(h,r);

cout<<"pi="<

:

GetPI()<<",height="<

";

cout<<"volume="<

return0;

}

标题:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1