大一三十道C++期末题doc.docx
- 文档编号:27211933
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:21
- 大小:18.98KB
大一三十道C++期末题doc.docx
《大一三十道C++期末题doc.docx》由会员分享,可在线阅读,更多相关《大一三十道C++期末题doc.docx(21页珍藏版)》请在冰豆网上搜索。
大一三十道C++期末题doc
C++期末复习题及参考答案
1.题目:
求多项式1!
+2!
+3!
+......+15!
的值并
存入变量out中.
#include
intmain()
(
intf=1,sum=0,i;
for(i=1;i<=15;i++)(
f*=i;
sum+=f;
}
cout«SUM<
return0;
}
2.题目:
求1至200之间的所有质数,将质数和存入变量sum中.
#includeintmain()
(
intsum=0,i,j;
for(i=2;i<=200;i++)
{
for(j=2;jv=i;j++)
(
if(i%j==O)
break;
)
if(j>=i)
(sum+=i;
cout«l«"cout<
cout«"sum="«SUM<
return0;
)
3.题目:
用while循环编程,求自然数1至100之间各奇数平方和sum。
#include
intmain()
(
inta=1,s,sum=0;
while(a<=100)s=(a*a);
sum+=s;
a+=2;
}
cout«"sum="«SUM<
return0;
}
4.题目:
判断一个数23437是否是素数(要求程序中设置一
个参数flag,flag为1代表是素数,为0代表不是)
#include
#include
intmain()
(
intp=23437,s,j,flag;
s=int(sqrt(p));
for(j=1;j<=s;j++)(
if(p%j==0)
break;
}
if(j>s)
(
flag=1;
cout«"flag="«FLAG«"\T"<<"23437是素数"<
}
else
(
flag=0;
cout«"flag="«FLAG«"\T"<<"23437不是素数"<
}
return0;
5.题目:
已知一个数m(=252)求各位数字之和
#include
intmain()
(
intm=252,a,sum=0;
do
(
a=m%10;
sum+=a;
m/=10;
}while(a>0);
cout«"各位数的和sum="«SUM 6.题目: 将1・100之间奇数顺序累加存入n中,直到其和等于或大于200为止 #include intmain() ( intn=0,i=1; while(n<200)( n+=i; i+=2; } cout«""«N< return0; } 7.题目: 用“辗转相除方法”计算两个数x,y的最大公约 数 include intmain() ( intx,y,t,r; coutvv”请输入两个正数: ”; cin»x»y; if(x while((r=x%y)! =O) ( x=y; y=r; } coutvv”最大公约数为: "vvYv return0; } 8.题目: 已知三个数a,b,c,按由小到大的顺序存入a,b,c中并输出。 #include intmain() ( floata,b,c,t,x,y; cout«H输入三个数‘V cin»a»b»c; if(a>b) ( t=a;a=b;b=t; if(cx=c;c=b;b=a;a=x; } elseif(c (y=b;b=c;c=y; } cout«A«" return0; } 9.题目: 已知n,计算n以内的所有素数之和sum。 #include intmain() ( intn,sum=0,iJ; cout«n请输入正整数n: ”v cin»n; for(i=2;iv=n;i++) ( for(j=2;jv=i;j++) ( if(i%j==0) break; } if(j>=i) sum+=i; } cout«"n以内所有素数和sum="«SUM ) 10.题目: 打印水仙花数及个数n(水仙花数是三位数,每位数字的立方和等于这个数本身示例见图1)o #include intmain() ( intij,k,m,n,a=0; cout«,冰仙花数: ”; for(i=1;i<=9;i++) for(j=0;jv=9;j++) for(k=0;kv=9;k++) ( m=i*i*i+j*j*j+k*k*k; n=i*100+j*10+k; if(m==n)cout«N«" a++; cout< cout«"水仙花个数: "«A< return0; } 11.题目: 找出1-200之间的完数及个数n(完数是一个数的因 子之和是这个数本身。 例如6=1+2+3)o #include intmain() ( cout«"1~200内的完数: ”v inti,j,n=0; for(i=2;i<=200;i++) ( intsum=0; for(j=1;j ( if(i%j==0) sum+=j; } if(sum==i) ( cout«l«" n++; ) ) cout< cout«N< return0; } 12.题目: 编写一个C++函数max,输入参数为3个实数,输出为其中的最大数。 #include floatmain() ( doublea,b,c,x; cout«"输入三个实数: a,b,c"< cin»a»b»c; if(a x=b; else x=a; if(x x=c; coutvv”最大的为: "«X 13.题目: 编写一个函数: intisSushu(intn),判断n是否是素数。 #include #include intisSushu(intn); intmain() ( intx,n; coutvv”请输入一个正整数: n”v cin»n; x=isSushu(n); if(x==1) coutvv”是素数”v else coutvv”不是素数”v return0; intisSushu(intn)( ints,i,flag=O; if(n>=2) ( s=int(sqrt(n)); for(i=2;iv=s;i++) ( if(n%i==O) break; } if(i>s) flag=1;return(flag); ///14.题目: 从键盘中分别给两个整形变量x和y赋值为20和10,通过编程使它们的值交换,然后输出交换以后的x和y的值。 15.题目: 利用switch语句将输入的百分制成绩转换成相应的等级。 成绩等级 100〜90优秀 89〜80良好 79〜70中等 69〜60及格 59-0不及格 #include intmain() ( doublescore; cout«"请输入百分制分数: ”v cin»score; if(0<=score&&score<=100) switch(int(score)/10) ( case10: case9: cout«SCORE«"优秀”v break; case8: cout«SCORE«"良好”v break; case7: cout«SCORE«"中等”vbreak; case6: cout«SCORE«"及格”v break; default: cout«SCORE«"不及格"v ) else coutvv”分数有误”v return0; } 16.题目: 输入一个自然数num,将该数的每一位数字按反序输出digitalo 例如: 输入123456,输出654321o(要求输入123456) #include main() { unsignedlongintnum,digital=0,i=1; coutvv”输入一个自然数: ”v cin»num; while(num/i! =0) digital=((num/i)%10); i*=10; cout< } cout< return0; } 17.题目: 利用循环语句输出“九九乘法表”。 #include intmain() ( cout«"\t\t\t\t九九乘法表”V cout«"\t\t\t\t"< inti,j; for(i=1;i<=9;i++) {for(j=1;jv=9;j++) coutvvlvv”X”vvJvv”=”vvl*Jvv”\「; cout< ) return0; 18.题目: 利用for循环和break语句实现: 从键盘上输入若 干个(小于10个)正整数,直到输入负数为止, 计算并输出已输入的正整数之和。 (要求输入: 10,3,9,27,12,-5) #include intmain() ( coutvv”请输入: 10,3,9,27,12,・5。 数字之间以空格分开”v inti,a,add=0; for(i=1;i<=10;i++) ( cin»a; if(a>=0) add+=a; else break; ) cout<<"所有正整数之和为: "< return0; ) 19.题目: 利用for循环和continue语句实现: 输出100-200之间所有能够被8整除的所有整数。 #include intmain() ( inti; cout«"100〜200之间能被8整除的说有整数: ”v for(i=100;iv=200;i++) ( if(i%8==0) cout«l«" else continue; } cout< return0; } 20.题目: 输入x,计算sin(x)o计算公式如图片1所示. 当第n项的绝对值小于1e-8时结束,x为弧度,并调用 标准函数sin(x)与求出值进行比较。 (要求输入3.14) #include #include intmain() ( intn=1; doublex,sinx=0,t; coutvv”输入X的值(弧度制): "< cin»x; t=x; while(fabs(t)>=1e-8)//tabs: 取绝对值。 ( sinx+=t; t=・t*(x*x)/((n+1)*(n+2)); n+=2; } cout«'编程求得sin("«X«")="«SINX< cout«"调用标准函数求得sin("«X«")="«SIN(X) ) 21.题目: 从键盘上输入a、b、c,计算并输出一元二次方程的解。 #include #include intmain()doublea,b,c,x1,x2,k;cout<<"输入二元方程系数: a,b,c" k=b*b-4*a*c; if(k>=0) ( x1=(-b+sqrt(k))/(2*a); x2=(-b-sqrt(k))/(2*a); cout«"x1="«X1<<"\T"«"X2="«X2<}else cout<<"方程无解" 22.题目: 某百货公司为了促销,采用购物打折的优惠办法。 每位顾客一次购物: (1)在1000元及以上者,按九折优惠 (2)在2000元及以上者,按八折优惠 (3)在3000元及以上者,按七折优惠 (4)在4000元及以上者,按六折优惠 #include intmain() ( intmoney; cout«"输入购物金额(整数)(元): "< cin»money; if(money>=0) switch(money/1000) { caseO: cout«"不优惠n«"\t"«"金额为: "< break; case1: cout«"九折优惠金额为: "< break; case2: coutvv”八折优惠”vv”\t”vv”金额为: "< break; case3: coutvv”七折优惠金额为: "< break; case4: cout«"六折优惠金额为: "< break; default: cout«"六折优惠金额为: "v ) else coutvv”数据有误”V cout< return0; 23.题目: 计算PI的近似值,直到最后一项的绝对值小于如图片1 所示的值为止,近似公式如图片2所示.(此处暂时按10-8计算) #include #include intmain() ( intn=1,i=1; doublet=1,P『0; while(fabs(t)>=1e-8) ( i=-i; n+=2; Pl+=4*t; t=i*(double (1)/n); } cout«"PI="«PI< return0; } 24.题目: 根据输入的总行数,输出三角星号。 如果输入5,则输出如下图形: * *** ***** ******* ********* (请输入5) #include intmain() ( intn,i,j; cout«"请输入星形三角行数: ”v cin»n; for(i=1;i<=n;i++) ( for(j=1;jv=n+i-1;j++) ( if(j<=n-i) cout«H”; else coutvv”*”; ) cout 25.题目: 鸡、兔共40只,有脚88只,问鸡、兔各多少只。 求解的结果分别存放在变量ji和tu中。 #include intmain() ( intji,tu; cout«n鸡的个数\t”vv”兔的个数\t”v for(ji=1;jiv=40;ji++) for(tu=1;tu<=40;tu++) ( if(ji+tu==40&&ji*2+tu*4==88) coutvvJlvv”\T”vvTUvreturn0; ) 26.题目: 输入一个年份,判断该年是否是闰年。 #include intmain() ( intyear; cout«"输入一个年份: ”v cin»year; if((year%4==0&&year%100! =0)11year%400==0) cout«"该年为闰年”v else cout«"该年不是闰年”v return0; 27.题目: 根据x的值,计算分段函数y的值。 y的计算公式见课本P40例题2.5所示。 #include #include intmain() ( doublex5y; cout«"输入x: "< cin»x; if(x<0) y=fabs(x); elseif(x<10) y=exp(x)*sin(x); elseif(x<20) y=pow(x,3); else y=(3+2*x)*log(x); cout«"y="«Y< return0; } 28.题目: 从键盘上输入一个三角形中三条边a、b、c的长度,请利用下列公式求出三角形的面积。 (注意: 要求程序保证输入的三角形的三条边中的任意两条边大于第三条边) 求面积公式如图片1所示,其中s=(a+b+c)/2o #include #include intmain() ( doublea,b,c,s,area; cout«n输入三角形三条边: ”v cin»a»b»c; if(a+b>c&&b+c>a&&a+c>b) ( s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); cout«"三角形面积area="«AREA< ) else cout«n三角形不存在”v return0; 29.题目: 某定义一个C++函数doublefac(int),实现求一个正整数的阶乘。 #include doublefac(intn); intmain() ( intn; cout«n输入正整数n: ”v cin»n; cout«FAC(N)< return0; } doublefac(intk)intj,s=1; for(j=1;jv=k;j++) S*=j;return(s); 30.题目: 编程求用户输入的两个双精度实数x与y的和(存放在变量he中)、积(存放在变量ji中)。 #include intmain() ( doublex,y,he,ji; cout«"if输入两个数x,y: "< cin»x»y; he=x+y; ji=x*y; cout«"x,y的和(he)为"vvHEv cout«"x,y的积(ji)为“vvJIv return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大一 三十 C+ 期末 doc