C++大学编程题及答案Word格式.docx

上传人:b****5 文档编号:21260875 上传时间:2023-01-29 格式:DOCX 页数:202 大小:77.08KB
下载 相关 举报
C++大学编程题及答案Word格式.docx_第1页
第1页 / 共202页
C++大学编程题及答案Word格式.docx_第2页
第2页 / 共202页
C++大学编程题及答案Word格式.docx_第3页
第3页 / 共202页
C++大学编程题及答案Word格式.docx_第4页
第4页 / 共202页
C++大学编程题及答案Word格式.docx_第5页
第5页 / 共202页
点击查看更多>>
下载资源
资源描述

C++大学编程题及答案Word格式.docx

《C++大学编程题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《C++大学编程题及答案Word格式.docx(202页珍藏版)》请在冰豆网上搜索。

C++大学编程题及答案Word格式.docx

return0;

}

 

/*输入5个百分制成绩,求出总成绩及平均成绩*/

floata,b,c,d,e,sum,ave;

输入5个百分制成绩:

a>

b>

c>

d>

e;

sum=a+b+c+d+e;

ave=sum/5.0f;

总成绩为:

sum<

平均成绩为:

ave<

/*编写程序,输入一个三位正整数,输出各位数字组成的最大值。

例如:

输入“123”,输出“321”。

*/

inta,b,c,max,mid,min,x;

输入一个三位正整数:

a=int(x/100);

b=int((x-a*100)/10);

c=int(x-a*100-b*10);

//分别得出该三位数的每一位上的值,并分别赋给a,b,c

max=a;

if(b>

a)max=b;

if(max<

c)max=c;

//求出三个数的最大值

mid=b;

if(a<

b&

c<

a)mid=a;

c&

b)mid=c;

//求出三个数的中间值

min=a;

if(a>

b)min=b;

if(c<

min)min=c;

//求出三个数的最小值

转换后的形式为:

max<

mid<

min<

/*输入若干个百分制成绩,求出总成绩及平均成绩。

提示:

由于成绩值不可能小于0,因此可将负值作为输入结束的标志*/

floatsum=0,ave,g;

intn;

请输入n个百分制成绩并以一个负数结束输入"

for(n=1;

n=n++)

{

cin>

g;

if(g<

0)break;

//break语句结束循环

sum+=g;

}

ave=sum/n;

endl

<

平均成绩为"

floatsum=0,ave,a,n=1;

输入n个百分制成绩,并以一个负数结束输入"

loop:

a;

0)

{

sum=a+sum;

ave=sum/n/1.0;

n=n++;

gotoloop;

//goto和if组成循环

}

/*输入若干个百分制成绩,输出对应的五分制成绩,输入结束后再分别输出这五个分段的人数。

五分制成绩用字母A、B、C、D和E分别表示百分制成绩的100~90、89~80、79~70、69~60、59~0*/

floatx;

inta=0,b=0,c=0,d=0,e=0;

请输入n个百分制成绩:

for(;

if(x<

if(90<

=100)

{cout<

分对应的等级是:

A"

a+=1;

if(80<

90)

B"

b+=1;

if(70<

80)

C"

c+=1;

if(60<

70)

D"

d+=1;

if(0<

60)

E"

e+=1;

等级为A的人数为:

a<

<

等级为B的人数为:

b<

等级为C的人数为:

c<

等级为D的人数为:

d<

等级为E的人数为:

e<

/*设计一个程序,输出所有的水仙花数。

所谓水仙花数是一个三位数

其各位数字的立方和等于该数本身。

153=1^3+5^3+3^3*/

cmath>

inta,b,c,d;

for(a=100;

=999;

a++)

b=int(a/100);

c=int((a-b*100)/10);

d=int(a-b*100-c*10);

//分别得出三位数三个位上的数

if(a==pow(b,3)+pow(c,3)+pow(d,3))

cout<

为水仙花数"

return0;

/*编写程序,计算100到200之内所有素数的和*/

{

intx,i,sum=0;

for(x=100;

=200;

x++)

for(i=2;

i<

=sqrt(x);

i++)

{if(x%i==0)break;

if(i>

sqrt(x))sum+=x;

100到200以内的素数之和为:

/*编写程序,求出100到200之间的素数,并按每行5个输出。

iomanip>

intx,i;

sqrt(x))cout<

setw(16)<

left<

/*编写程序,按以下公式求出数列的前20项并输出

y=0(n=0)

y=1(n=1)

y=y(n-1)+y(n-2)(n>

=2)*/

intn=1,a,b;

0<

endl<

1<

a=0,b=1;

while(n<

=9)//因为一次性输出“cout<

endl”有两项,所以只要执行9次循环。

a=a+b;

b=a+b;

n+=1;

cout<

/*输入一个整数,输出该整数的所有素数因子。

输入“12”,输出为“2,2,3”*/

intn,c=2;

请输入一个整数:

n;

结果是:

while(n>

c)

if(n%c==0)

{

"

n=n/c;

}

else

{c++;

/*自守数是平方后尾数等于该数自身的自然数。

25*25=62576*76=5776任意输入一个自然数(设不超过3位),判断其是否为自守数并输出,如:

25YES25*25=62511NO11*11=121*/

intx,a,b,c;

输入一个自然数(不超过3位):

if(x<

4)

if(x*x==x)cout<

"

Yes"

*"

="

x*x;

elsecout<

No"

elseif(4<

10)

a=x*x;

if((a-a/10*10)==x)cout<

elseif(10<

32)

b=a-a/100*100;

if(b==x)cout<

elseif(32<

99)

b=(a-a/1000*1000);

c=b-b/100*100;

if(c==x)cout<

/*设计一个程序,求出满足以下条件的最小的n值和s值:

s=1+1/2+1/3+1/4+……+1/n,且s>

=30*/

longdoubles=1;

longintn=2;

while(s<

30)

s=s+(1.0/n);

n++;

s<

最小的n值为:

n<

s的值为:

/*试编写一个加密程序,加密方法是将明文的字母变成其后的第4个字母,字母表首尾相连。

例如,输入明文“China”,输出密文“Glmre”。

非字母符不加密,当输入字符“#”时,程序运行结束。

*/

charc;

请输入需要加密的文字:

for(cin.get(c);

c!

='

#'

cin.get(c))

if(65<

=c&

87)

char(int(c+4));

if(87<

=90)

char(int(c+4-90+64));

if(97<

119)

if(119<

=122)

char(int(c+4-122+96));

65||c>

122)

c;

/*用一下公式求e的近似值(n取10)。

e=1+1/1!

+1/2!

+1/3!

+……+1/n!

*/

doublee=1,s=1;

intn=1;

do

s*=n;

e+=1/s;

11);

e的近似值为:

/*用一下公式求e的近似值(直到最后一项的绝对值小于10^-8为止)。

setprecision(8)<

while(fabs(1/s)>

1e-8);

/*输入一个实数x,用下式求e^x的近似值,知道最后一项的绝对值小于1e-8为止*/

doublee=1,s=1,x,n=1;

输入一个实数x:

do{

e+=(pow(x,n))/s;

while(fabs((pow(x,n))/s)>

e^x的近似值为:

/*求出1~599中能被3整出,且至少有一位数字为5的所有整数。

例如15、51、513均是满足条件的整数*/

intb,s,g,n;

//b表示百位,s表示十位,g表示个位

600;

n++)

if(10<

=n&

=99)

for(n=10;

s=n/10;

g=n-s*10;

if(n%3==0&

(s==5||g==5))

cout<

if(100<

=599)

for(n=100;

b=n/100;

s=n-n/100*100;

g=n-b*100-s*10;

(b==5||s==5||g==5))

/*由于3^2+4^2=5^2,所以称3,4,5为勾股数。

试编程求出100以内的所有勾股数。

inta,b,c;

for(a=1;

=100;

for(b=1;

b++)

for(c=1;

c++)

{

if(c*c==a*a+b*b)

为勾股数!

}

/*求满足以下条件的三位数n:

它除以11(整数相除)所得的商等于n的各位数字的平方和,且其中至少有

两位数字相同。

131除以11的商为11,各位数字的平方和为11,所以它是满足条件的三位数。

intn,b,s,g,a;

for(n=100;

1000;

b=n/100;

s=(n-b*100)/10;

g=n-b*100-s*10;

a=n/11;

if(b==s||b==g||s==g)

if(s*s+b*b+g*g==a)

满足条件"

/*用牛顿迭代法求一元方程2x^3-4x^2+3x-6=0在x=1.5附近的根,要求精度为1e-8。

floatx,y;

for(x=1.5;

y=x;

x=x-(2*pow(x,3)-4*pow(x,2)+3*x-6)/(6*x*x-8*x+3);

if(fabs(y-x)<

1e-8)break;

2x^3-4x^2+3x-6=0在x=1.5附近的根为:

/*在1000以内验证哥德巴赫猜想*/

intprime(inti)

for(intj=2;

j<

=sqrt(i);

j++)

{if(i%j==0)break;

if(j>

sqrt(i))returni;

intn,k,h;

请输入一个大于2的偶数(小于1000):

for(k=2;

k<

=1000;

k++)

for(h=2;

h<

h++)

if(prime(k)+prime(h)==n)

+"

n-k<

/*用二分法求方程x^3-6x-1=0在x=2附近的一个实根,要求迭代精度为1e-8*/

longdoubley1,y2,x0,x1=1,x2=3;

while(fabs(y1)>

=1e-8||fabs(y2)>

=1e-8)

y1=pow(x1,3)-6*x1-1;

y2=pow(x2,3)-6*x2-1;

x0=(x1+x2)/2;

if(y1*y2<

x1=x0;

if(y1*y2>

=0)

x1=x1*2-x2;

x2=x0;

y1"

y1<

y2"

y2<

//直观显示出y1和y2的变化

方程x^3-6x-1=0在x=2附近的一个实根:

x0<

/*计算体重指数并得出相应的评语*/

#include<

math.h>

intmain(void)

floats,t,x;

请输入您的体重(Kg)和身高(m):

t>

s;

if(s<

5||t<

0.5)

cout<

输入的数据无效!

\n"

return1;

x=t/(pow(s,2));

18.5)cout<

不好意思,您有点营养不良!

elseif(18.5<

=x&

=23)cout<

perfect!

完美身材"

唉!

您超重了!

/*编写一个程序,从标准输入读入某职员的工作时间(以小时计)和每小时的工资

数,计算并输出他的:

工资。

若职员月工作时间超过40小时,则超过部分按原工资的1.5倍来

计算。

inthour;

floatreward,pay;

输入工作时间(以小时计):

hour;

输入每小时的工资:

reward;

if(hour<

=40)pay=hour*reward;

elseif(hour>

40)pay=4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1