C++实验.docx
《C++实验.docx》由会员分享,可在线阅读,更多相关《C++实验.docx(9页珍藏版)》请在冰豆网上搜索。
![C++实验.docx](https://file1.bdocx.com/fileroot1/2023-2/7/753f394c-5265-44a0-a748-a765012e0b5d/753f394c-5265-44a0-a748-a765012e0b5d1.gif)
C++实验
字符加密
编写一个程序,将字符串“Love”译成密码,译码方法采用替换加密法,其加密规则是:
将原来的字母用字母表中其后面的第N个字母的来替换,N由用户输入。
如果N=3,字母c就用f来替换,字母y用b来替换。
提示:
(1)分别用4个字符变量来存储'L'、'o'、'v'和'e'。
(2)加密公式为:
如果x为大写字母,密文y为y=((x-'A')+N)%26+'A';
如果x为小写字母,密文y为y=((x-'a')+N)%26+'a';
其中N为密钥,为一整数。
程序运行结果如下:
Pleaseinputthekey:
3
TheoriginalwordisLove
TheencryptedwordisOryh
注意,其中Oryh是加密后的单词。
编程实现以下一个分段函数
编程实现以下分段函数:
当x<0时,y=x+1
当0<=x<1时,y=1
当x>=1时,y=x*x*x
程序的运行结果如下所示:
Pleaseinputx:
1.5
x=1.5,y=x*x*x=3.375
将百分制成绩转化为5分制成绩
编写一个程序,将百分制的学生成绩转换为优秀(5)、良好(4)、中等(3)、及格
(2)和不及格
(1)的5级制成绩。
标准为:
优秀:
100-90分;
良好:
80-89分;
中等:
70-79分;
及格:
60-69分;
不及格:
60分以下。
程序的运行结果如下所示:
Pleaseinputthescore:
83
Beforetransformed,thescoreis83
Aftertransformed,thescoreis4
求圆周率的近似值
编写程序,求圆周率的近似值。
圆周率的近似值=4*(1-1/3+1/5-1/7+1/9-…),精度要求:
计算到括号内的通项小于1.0e-4为止。
程序运行结果如下:
pi=3.14139
统计其阶乘n!
的末尾中0的个数
编写程序,对于用户输入的任意给定的一个正整数n,统计其阶乘n!
的末尾中0的个数。
程序运行结果如下:
Pleaseinputapositivenumber:
60
Thenumberofzerois:
14
编程计算1!
+2!
+3!
+…+10!
编程计算1!
+2!
+3!
+…+10!
。
程序运行结果如下:
1!
+2!
+3!
+...+10!
=4037913
编写程序求斐波那契数列的第n项和前n项之和。
斐波那契数列是形如
0,1,1,2,3,5,8,13,...
其通项为:
F[0]=0
F[1]=1
F[n]=F[n-1]+F[n-2]
程序运行结果如下:
Pleaseinputthenumberofterms:
6
f(6)=8
sum(6)=20
编写程序求反正弦函数近似值。
利用下列公式求反正弦函数近似值。
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为通项。
要点分析:
本题关键是找到通项的递推公式,由前一项计算后一项。
程序运行结果如下:
Pleaseinputx:
0.77
arcsin(0.77)=0.878841
用牛顿迭代法求方程。
用牛顿迭代法求方程:
2*pow(x,3)-4*pow(x,2)+3*x-6=0在1.5附近的根。
假定初值为x[0],则迭代公式为:
x[n+1]=x[n]-f(x[n])/df(x[n])
结束迭代过程的条件为:
|f(x[n+1])|<1.e-9与|x[n+1]-x[n]|<1.e-9同时成立。
df(x[n])表示f(x)取导数后在x[n]处的值。
程序运行结果如下:
x=2
求解猴子吃桃问题。
猴子在第一天摘下若干个桃子,当即就吃了一半,又感觉不过瘾,于是就多吃了一个。
以后每天如此,到第10天想吃时,发现就只剩下了一个桃子。
请编程计算第一天猴子摘的桃子个数.
分析:
用一个数学变量x来描述猴子在某一天所持有的桃子数目,根据题意,猴子前一天所持有的数目是(x+1)*2,由此得到循环的公式,即可求解。
程序运行结果如下:
第一天猴子摘的桃子数为:
1534
编程寻找用户输入的几个整数中的最小值。
编写一个程序,寻找用户输入的几个整数中的最小值。
并假定用户输入的第一个数值指定后面要输入的数值个数。
程序运行结果如下:
Pleastinputsomenumber:
520153009700
Theminimumis:
9
(做到这儿了)有一分数序列,求其前n项之和。
有一分数序列如下:
2/1,3/2,5/3,8/5,13/8,21/13,....
即后一项的分母为前一项的分子,后项的分子为前一项分子与分母之和,求其前n项之和。
程序运行结果如下:
Pleaseinputnumberofterm:
6
Sumofpreceding6termis10.0071
求a+aa+aaa+aaaa+......+aa...a(n个)。
求a+aa+aaa+aaaa+......+aa...a(n个),其中a为1~9之间的整数。
例如:
当a=1,n=3时,求1+11+111之和;
当a=5,n=7时,求5+55+555+5555+55555+555555+5555555之和。
程序运行结果如下:
Pleaseinputaandnumberofterms:
23
2+22+222=246
找出该数组中的最大数。
给一维数组输入7个整数,找出该数组中的最大数。
程序运行结果如下:
Pleaseinputanarraywithsevenelements:
234123456342389
max=234
编写程序计算两个矩阵之和。
编程计算下列两个3*4矩阵之和。
第一个矩阵(A)内容为:
1234
5678
9101112
第二个矩阵(B)内容为:
14710
25811
36912
程序运行结果如下:
A+B=
261014
7111519
12162024
注意:
数字间的间隔为字符'\t'
简单的交换排序法(冒泡排序)。
编写一个用于对整型数组(长度<10)进行排序的程序,排序方法使用简单的交换排序法,输入6个数。
程序运行结果如下:
Pleaseinput6numbers:
451234556789
Theresultis
712455689345
计算n!
利用整型数组计算 n!
程序运行结果如下:
Pleaseinputn:
50
50!
=30414093201713378043612608166064768844377641568960512000000000000
字符串连接。
已知有两个字符串,第一个是abcdefg,第二个字串由用户输入,请实现两个字符串的连接并输出结果。
程序运行结果如下:
Pleaseinputstring:
123x
Theresultis:
abcdefg123x
使用数组来求斐波那挈数列的第n项和前n之和
使用数组来求斐波那挈数列的第n项和前n之和。
数列有下列公式产生:
第0项f[0]=0;
第1项f[1]=1;
第n项f[n]=f[n-1]+f[n-2];
程序运行结果如下:
input:
6
f[6]=8
sum=20
将十进制正整数转换为二进制、八进制和十六进制数并输出。
编写一个程序,要求用户输入一个十进制正整数,然后分别转换成为二进制数、八进制数和十六进制数输出。
程序运行结果如下:
input:
16
BIN:
10000
OCT:
20
HEX:
10
将字符串顺序逆转。
输入10个字符到一维字符数组s中,将字符串置逆。
即s[0]与s[9]互换,s[1]与[8]互换,...,s[4]与s[5]互换,输出置逆后的数组s。
要点分析:
掌握字符数组的存储结构。
用户输入的字符存储到定义好的字符数组后,根据字符数组的存储结构和下标之间的关系将对应元素进行掉换即可。
程序运行结果如下:
请输入10个字符:
abcde12345
置逆后的字符串:
54321edcba
替换加密(恺撒加密法)
恺撒加密法加密规则是:
将原来的小写字母用字母表中其后面的第3个字母的大写形式来替换,大写字母按同样规则用小写字母替换,
对于字母表中最后的三个字母,可将字母表看成是首未衔接的。
如字母c就用F来替换,字母y用B来替换,而字母Z用c代替。
编程实现以下功能:
输入一个字符串,将其加密后输出。
程序运行结果如下:
请输入字符串:
AMDxyzXYZ
加密后的字符串是:
dpgABCabc