c++编程初学者练习题以及解析汇报代码文档格式.docx
《c++编程初学者练习题以及解析汇报代码文档格式.docx》由会员分享,可在线阅读,更多相关《c++编程初学者练习题以及解析汇报代码文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
+x3/3!
+…+xn/n!
。
n取20。
假定f1=1,f2=1;
fn=fn-1+fn-2。
输出前50项的值,且要求每行输出5个值。
判断一个数是否为素数
输出2-1000中的素数及个数。
且要求每行输出8个素数。
输入两个整数,求最大公约数和最小公倍数。
输入一个非0的一位整数x,输入一个整数n。
输出n位整数xxx…x。
输入n、a。
求sn=a+aa+aaa+a…a,其中a是一个非0的一位整数。
输入任意的正整数,将其各位分离出来;
求它是几位数,求各位上数字的和,求其逆值。
一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3。
求1000以所有的完数,每行5个。
用迭代法求x=a的平方根。
求平方根的迭代公式为xn+1=0.5(xn+a/xn)。
要求前后两次求出的x的差的绝对值小于1e-5为止。
用牛顿迭代法求方程在1.5附近的根2x3-4x2+3x-6=0
用二分法求上面的方程在(-10,10)之间的根。
打印形状为直角三角形的九九乘法表。
百马百担问题。
有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大中小马多少匹,共有多少组解?
数列1,2,2,3,3,3,4,4,4,4,5,……
问第100是多少?
*1.3求任意一个整数的十位上的数字。
1.4输入三个实数,判断能否构成三角形;
若能,再说明是何种类型的三角形。
1.5输入任意的a,b,c求一元二次方程ax*x+bx+c=0的根。
*1.6将百分制成绩转换为五级制成绩
1.7输入年月日,判断它是该年的第多少天。
*1.8假定2007年的一月一日是星期三,求2009年的4月20日是星期几。
1.9我国古代著名的子定理也称信点兵。
用现代语言讲是:
有一个数,用3除余2,用5除余3,用7除余2,求满足条件的最小数。
*2.1求一个整数的各个数位上的数字之和并反序输出。
2.2求1+2+3+……前n项的和。
*2.3求1-3+5-7+……的前100项的和。
2.4求1+(1+2)+(1+2+3)+(1+2+3+4)+……的前n项的和
*2.5求n!
2.6求1!
+2!
+3!
+……+n!
2.7求1!
-3!
+5!
-7!
+……前n项的和
*2.8求1*2+2*3+3*4+……前n项的和
*2.9从键盘输入一个整数,判断它是否为素数
2.10求3到1000之间的所有素数的和。
2.11验证哥德巴赫猜想:
一个大于2的偶数总可以分解成两个素数的和。
*2.12设s=1+1/2+1/3+…+1/n,求与8最接近的s的值及与之对应的n值。
2.13假定2007年的一月一日是星期三,打印出该年的日历(仿照台历或挂历样式)
3.1鸡兔同笼一共有40只脚,求鸡兔各有多少只,总共有多少种组合。
*3.2换零钱.把一元钱全兑换成硬币(1分2分5分),有多少种兑换方法
/*
//输入3个数,求最大数。
#include<
iostream.h>
voidmain()
{
inta,b,c,max;
cout<
"
请输入三个整数。
;
cin>
>
a>
b>
c;
if(a>
b)
max=a;
else
if(b>
c)
max=b;
else
max=c;
cout<
a<
"
b<
c<
三个数中"
max<
最大!
\n"
}
*/
//将百分制成绩转换成五级制成绩。
while
(1)
floatscore;
请输入学生成绩"
score;
if(score>
100)
输入有误\n"
endl;
else
if(score>
90)
优\n"
80)
良\n"
70)
中\n"
if(score>
=60)
及格\n"
不及格,要努力!
//信点兵:
intx,a;
for(x=0;
x<
100;
x++)
if
((x%3==2)&
&
(x%5==3)&
(x%7==2))
{
x;
break;
}
//求1+2+3+…+100
intx,sum=0;
for(x=1;
=100;
sum+=x;
sum;
}*/
//另一种方法
intsum;
sum=(1+100)*(100/2);
sum<
*/
//求1-2+3-4+…-100
intx,sum=0,sum1=0,sum2=0;
x++,x++)
sum1+=x;
for(x=-2;
x>
=-100;
x--,x--)
sum2+=x;
sum=sum1+sum2;
1+3+5…+98="
sum1<
//正数之和
-2-4-6…-100="
sum2<
//负数之和
1-2+3-4…-100="
//总和
//求1+1/2+1/3+…+1/100
floatn,m,sum=0;
for(n=1;
n<
n++)
m=1/n;
1/"
="
'
\t'
m<
sum+=m;
1/1+…+"
*****************************************\n"
1/1+…+1/100="
//求输入n,求n!
longfact(intn)//例用递归调用求n的阶乘。
if(n==0)
return1;
return
fact(n-1)*n;
intx,y,n;
请输入一个整数:
fact(x);
//求1!
longdoublefact(intn)
if(n==0)return1;
returnfact(n-1)*n;
intx,y,sum=0;
=10;
fact(x);
y=fact(x);
sum+=y;
x!
y<
1!
+…10!
//求1+1/2!
longdoublex,y,m,n,sum1=0,sum2=0;
//x控制循环,y接收阶乘值,m接收1/n!
值,n待求阶乘的数,
//sum1接收阶乘之和,sum2接收阶乘分之一的和。
//该数为n,即最大数。
n;
=n;
m=1/y;
!
*"
sum1+=y;
sum2+=m;
****************************************************\n"
+…+"
1/1!
****************************************************\n\n"
//if(m<
1E-5)break;
//控制结束。
//若将此句移动for()语句前呢?
//用公式求ex=1+x+x2/2!
//假定f1=1,f2=1;
fn=f(n-1)+f(n-2)。
//此程序运算速度非常慢,效率太低,应想法改进。
longfibo(intn);
inta;
longf;
a;
//用a来接受50的输入。
intn;
for(n=1;
=a;
fibo(n);
f=fibo(n);
f("
)="
f<
if(n%5==0)
longfibo(intn)
if(n==1)