c++作业题文档格式.docx
《c++作业题文档格式.docx》由会员分享,可在线阅读,更多相关《c++作业题文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
123输出:
ErrorData!
从键盘输入任意四个整数,计算其平均值并显示。
再对平均值四舍五入并显示。
1234输出:
2.5
编写一个程序,将字符串“Love译成密码,译码方法采用替换加密法,其加密规则是:
将原来的
字母用字母表中其后面的第N个字母的来替换,N由用户输入。
如果N=3,字母c就用f来替
换,字母y用b来替换。
提示:
(1)分别用4个字符变量来存储’L'
、'
o'
、’V'
和'
e'
。
(2)加密公式为:
如果x为大写字母,密文y为y=((x-'
A'
)+N)%26+'
;
如果x为小写字母,密文y为y=((x-'
a'
其中N为密钥,为一整数。
3
输出:
Oryh注意,其中Oryh是加密后的单词
输入两个角度值x,y,计算如下式子的值。
z=sin(|x|+|y|)/SQRT(|cos(x+y)|)
其中,SQRT表示开方。
如果|cos(x+y)|小于1.0E-5,输出“diVidedbyzero!
。
”程序能连续接收两组输入,给出两组结果。
两组输入可用下列循环实现:
for(inti=0;
i<
2;
i++)
{
1.57079630输出:
0.43175dividedbyzero!
计算e=1+1/1!
+1/2!
+1/3!
+…+1/“!
+•••,当通项1/n!
小于一个很小的正数k(如10e-7)时停止计
算。
正数k由用户输入。
10e-7输出:
2.71828
1.0e-4输出:
3.14139
2输出:
1.41421
利用下列公式求反正弦函数近似值。
arcsin(x)=x+pow(x,3)/(2*3)+1*3*pow(x,5)/(2*4*5)+,其中|x|<
1其中通项公式为:
(2n)!
*pow(x,2n+1)/(pow(2,2n)*pow(n!
2)*(2n+1))结束条件可用|u|<
1.0e-7,其中u为通项。
要点分析:
本题关键是找到通项的递推公式
由前一项计算后一项。
输入:
0.77输出:
0.878841
则称该数为水仙花数。
编一
如果一个三位数的个位数、十位数和百位数的立方和等于该数自身,程序求出所有的水仙花数。
例如153就是一个水仙花数:
153=1人3+5人3+3人3程序运行结果如下:
输出(153后的***为其它的水仙花数,要求输出所有的):
153
***
调试pow
编写程序求斐波那契数列的第n项和前n项之和。
斐波那契数列是形如
0,1,1,2,3,5,8,13,...其通项为:
F[0]=0
F[1]=1
F[n]=F[n-1]+F[n-2]程序运行结果如下:
6输出:
20
编写一个程序,寻找用户输入的几个整数中的最小值。
输入的数值个数。
并假定用户输入的第一个数值指定后面要
520153009700输出:
有一分数序列如下:
2/1,3/2,5/3,8/5,13/8,21/13,
即后一项的分母为前一项的分子,后项的分子为前一项分子与分母之和,求其前
n项之和。
6输出:
10.0071
求a+aa+aaa+aaaa+...例如:
当a=1,n=3当a=5,n=7时,求
…+aa...a(n个),其中a为1〜9之间的整数。
时,求1+11+111之和;
5+55+555+5555+55555+555555+5555555之和。
23输出:
所谓孪生素数是指间隔为2的相邻素数,如最小的孪生素数是3和5,5和7也是。
找出2-k之
间的所有孪生素数,每行打印1对输出。
k由键盘输入(K>
=200,k<
=10000)
6=1*2*3
给一维数组输入7个整数,找出该数组中的最大数。
程序运行结果如下:
234123456342389输出:
234
编写一个用于对整型数组(长度<
10)进行排序的程序,排序方法使用简单的交换排序法
程序运行结果如下(输入的第一个数为的数组中元素的个数):
451234556789输出:
712455689345
利用整型数组计算N!
N比较大,所以不能直接用int等数据类型计算。
50
30414093201713378043612608166064768844377641568960512000000000000
编写一个程序,要求用户输入一个十进制正整数,然后分别转换成为二进制数、进制数输出。
八进制数和十六
程序运行结果如下(输出依次为二进制、八进制和十六进制数):
16输出:
10000
10
恺撒加密法加密规则是:
将原来的小写字母用字母表中其后面的第大写字母按同样规则用小写字母替换,对于字母表中最后的三个字母,可将字母表看成是首未衔接的。
如字母用B来替换,而字母Z用c代替。
编程实现以下功能:
输入一个字符串,将其加密后输出。
3个字母的大写形式来替换,
c就用F来替换,字母y
AMDxyzXYZ输出:
dpgABCabc
所谓回文数是指其各位数字左右对称的整数,例如
12321、789987、1等都是十进制回文数。
请输入回文数起始和结束位置:
100020001001111112211331144115511661177118811991注:
元素之间空一个空格。
五(数组作为参数无法非引用?
编写字符串反转函数mystrrev,该函数的功能为将指定字符串中的字符顺序颠倒排列。
然后再编写主函数验证之。
函数原型为voidmystrrev(charstring[])程序运行结果如下:
Hello,everyone输出:
enoyreve,olleH
编写函数isprime(inta)用来判断变量a是否为素数,若是素数,函数返回1,否则返回0。
调用该函数找出任意给定的n个整数中的素数。
输入(n个整数,输入0表示结束):
9872101010输出(只输出素数):
7101
编写一组求数组中最大最小元素的函数。
该组函数的原型为
intimax(intarray[],intcount);
//求整型数组的最大元素
intimin(intarray[],intcount);
//求整型数组的最小元素
要求同时
其中参数count为数组中的元素个数,函数的返回值即为求得的最大或最小元素之值。
编写出主函数进行验证。
输入(第一个数为数组元素的个数):
5
):
9089304555输出(第一个数为最大值,第二个数为最小值
90
30
课外作业(无需上交)
整副单张扑克牌随机生成
在随机数为1〜13时对应,C?
(梅花,
27〜39时对应,H?
(红桃,heart),
若随机数为1则输岀“CA'
(梅花A),为2则桃K)。
读者可以尝试使用ASCII码值代替花色名称,时代表方块符号,为5时代表梅花符号,为特殊字符可能无法显示。
编写程序,连续调用
编程模拟扑克牌发牌过程。
将去除大小王的
即程序需要连续生成52张扑克牌,按东南西北的顺序一次一张地发给四方牌手,共发在屏幕上输岀这四个牌手的扑克牌。
问题分析:
一副完成的扑克牌生成要比简单生成部分牌张要复杂得多。
我们需要使用四个数据对象分别表示东南西北四家,按照顺序逐一发牌。
整个程序执行期间,都必须保持东南西北四家的牌张记录,因而必须使用数组存储这些数据。
CA(梅花
实现要点:
在随机生成时,不允许出现重复生成的扑克牌。
例如,如果已经发出了A),则再次生成的随机数1必须被抛弃。
八()
编写一个字符串复制函数mystrcpy,将一个字符串复制到另一个字符串中。
Iamsimple.输出:
Iamsimple.
注:
单词之间最多只有一个空格,句点为英文符号
编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,入82668634时,程序应该输出82,668,634。
例如,当用户输
82668634
82,668,634
记一下ascii码表)
用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,其中大、小写字母、数字以及其他字符的个数。
还能分别指出
Iam21yearsold.输出(五个数值依次为大、小写字母、数字、其他字符和总共含有的字符个数1
18
设计点类和圆类。
在二维平面空间上,使用x-y坐标可以确定一个点,确定了圆心坐标和半径可以确定一个圆。
声明一个点类,并使用这个点类的对象为数据成员声明圆类。
标、半径和圆的面积。
输入圆心坐标和半径,输出圆心坐
在Point类中,坐标设为私有成员x,y,公有成员有:
设置坐标,取x坐标,取y坐标,
voidSetPoint(int,int)//intGetX(){returnx;
}//intGetY(){returny;
}//voidPrint()//输出点的坐标。
在Circle类中,坐标设为私有成员Radius和Point类的Center,公有成员有:
voidSetRadius(double)//设置半径,voidSetCenter(Point)//设置圆心坐标,doubleGetRadius()//取半径,
PointGetCenter()//取圆心,
doubleArea()//计算面积,voidPrint()//输出圆心坐标和半径。
编写主函数对两个类进行测试。
Circle类的数据成员Center是Point类的对象,因此对Center的操作可以使用Point类的成员函数进行。
输入(依次为x,yandr):
1009015
输出(依次为圆心坐标、半径和圆的面积):
[100,90]
15
706.858
设计一个完整的Date类,包含属性day,month,year以及对这些属性操作的方法。
实现并测试这个类。
根据类的封装性要求,把day,month,year声明为私有的数据成员。
输入输出函数为
void
init(int,int,int)、voidprint_ymd()、voidprint_mdy()。
1122010
2010-12-1
12-1-2010
编写日期类Date,数据成员年、月、日,数据类型为整型。
编写三个构造函数,并用以下方法初始化函数中数据成员:
(1)第一个构造函数无参数,使用参数初始化表将数据成员赋为固定值创建对象date1)。
1900-1-1(在主函数中
(2)第二个构造函数有3个参数,2个有默认值(月和日)为1。
(在主函数中创建对象
date2、
date3、date4)。
(3)第三个为拷贝构造函数,参数为Date&
型(在主函数中创建对象date5,用date4为其
初始化)。
201154
date1:
1900-1-1date2:
2011-1-1date3:
2011-5-1date4:
2011-5-4date5:
2011-5-4
date3是“日”缺省时
其中,date1是固定值,date2是“月”、“日”缺省时初始化的结果,初始化的结果,date5是用date4初始化的结果。
设计一个Dog类,包含name、age、sex和weight等属性,在有参数的构造函数中对数据成员进行初始化。
公有成员函数有:
GetName()——、GetAge()、GetSex()和GetWeight()可获取名字、年龄、性别和体重。
编写成员函数speak()显示狗的叫声。
编写主函数,输入狗的名字、年龄、性别和体重;
声明Dog对象并用输入的数据通过构造函数初始化对象,通过成员函数获取狗的属性并显示出来。
Tom4m2.4输出:
Dog?
sname:
Tom
sage:
4
ssex:
m
sweight:
2.4
Dogspeak:
Arf!
设计一个Time类,设计多个重载的构造函数,可以设置时间,进行时间的加减运算,按各种可能的格式(24小时制、12小时制)输出时间。
注意:
请考虑设置的时间的合理性(时0-23;
分0-59;
秒0-59)。
12小时制中,12:
00:
00前为AM,12:
00及以后为PM加减运算的加数、减数是一个时间的长度,单位为“时、分、秒”构造函数:
没参数时,设置时间为0时0分0秒;
有参数时,设置成给定的时、分、秒。
输入(第一行为t1的时间,第二行为待加减的时间):
11303051520输出:
t1_1200:
00AMt1_2400:
00t2_1208:
10:
30AMt2_2408:
3004:
45:
50PM16:
5002:
55:
10AM02: