c++练习题源代码Word格式文档下载.docx
《c++练习题源代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c++练习题源代码Word格式文档下载.docx(51页珍藏版)》请在冰豆网上搜索。
![c++练习题源代码Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/7/54f9a0a1-2dcb-4526-b7bc-1acd34706f36/54f9a0a1-2dcb-4526-b7bc-1acd34706f361.gif)
1、字符串输入输出时限:
3000ms
内存限制:
10000K
总时限:
编写一个简单的控制台应用程序,先输入姓名,如“John”,再输
描述:
出问候语,如“Hello,John!
”。
输入:
John
输出:
Hello,John!
输入样例:
输出样例:
1、使用string类定义字符串对象,需包含头文件<
;
2、使用cin和提取符>
从键盘输入数据,使用cout和插入符<
输出结
提示:
果到屏幕,需包含头文件<
3、注意使用名称空间std。
2、求3个数的平均值时限:
从键盘上输入3个浮点数,求这3个数的平均值。
3个浮点数
3个数的平均值
1.51.61.3
1.46667
1、用usingnamespacestd;
明确名字空间
2、用cin对象,采用>
运算符输入数据
3、用cout对象,采用<
运算符输出数据#include<
usingnamespacestd;
floatx1,x2,x3;
cin>
x1>
x2>
x3;
cout<
(x1+x2+x3)/3<
endl;
3、求鞍点时限:
输入一个二维矩阵,找出其中所有鞍点。
如果矩阵有鞍点,则输出鞍点的信息:
行号、列号、值;
如果没有鞍点,则输出“Notfound!
所谓“鞍点”,是指满足以下条件的矩阵中的一个数:
在它所在的行上最小、所在列上最大。
该题中假设矩阵中任意两个数互不相等。
输入数据有多行:
第一行是矩阵的行数m和列数n
从第二行起共包含m行,每行包含n个数,为矩阵的一行数据
如果矩阵有鞍点,输出鞍点的信息,包括:
所在行、所在列、值
如果没有鞍点,输出Notfound!
34
11235647
12456690
16773418
2016
1、要求用动态内存分配来完成,可用new和delete实现;
2、屏幕输出只有2016(加回车换行),不能有其它信息。
//SaddlePoint.cpp:
定义控制台应用程序的入口点。
//Bufferstosavethemaximum
//Bufferstosavetheminimum
matRow=newint[nMaxRow];
elementineachrow
matCol=newint[nMaxCol];
elementineachcolumn
//
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<
nMaxRow;
i++)
mat[i]=newint[nMaxCol];
//Inputtheelements
Pleaseinputtheelements:
for(j=0;
j<
nMaxCol;
j++)
mat[i][j];
//Findtheminimumelementineachrow
for(i=0;
intnMin=mat[i][0];
for(j=1;
if(mat[i][j]<
nMin)nMin=mat[i][j];
matRow[i]=nMin;
//Findthemaximumelementineachcolumnfor(j=0;
intnMax=mat[0][j];
for(i=1;
if(mat[i][j]>
nMax)nMax=mat[i][j];
matCol[j]=nMax;
//Findthesaddlepoint
nMaxRow&
&
!
bFind;
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
nTargetRow<
nTargetCol<
nSaddlePoint<
//Releasememoriesdelete[]matCol;
delete[]matRow;
delete[]mat[i];
delete[]mat;
return0;
4、链表操作时限:
建立一个链表,每个节点包括学生的学号、姓名、性别、年龄。
先输入5个学生的数据,再输入一个年龄,如果链表中有年龄等于此年龄
的记录,则删除所有年龄等于此年龄的记录,否则在链表的最后增加一个新节点,学号为180姓名为"
aaa"
,性别为"
male"
。
创建链表时输入5个职工的职工号和工资,学号为大于100且小于
200的整数,姓名为长度小于20的字符串,性别为长度小于10的字符串,年龄为大于等于0且小于200的整数。
按顺序输出链表中的所有数据,每个数据占一行。
101zhangsanmale30103lisifemale18
105wangwumale25
107maliumale28
109niuqifemale2228
101
zhangsanmale
30
103
lisifemale
18
105
wangwumale25
109
niuqifemale22
要求用动态内存分配实现,注意new和delete的使用。
1.函数重载
时限:
设计一菜单程序,利用函数重载实现员工月工资的计算,计算方法如下:
(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.菜单程序设计如下:
...
Pleaseselect..."
1:
Manager."
2:
SalesMan."
3:
PiecesWorker."
4:
Hour-Worker."
Others:
Quit"
sel;
switch(sel)
{
case1:
cin>
;
cout<
getEarning(. );
break;
case2:
case3: