50道C++编程练习题及解答c 编程例题Word下载.docx

上传人:b****6 文档编号:18577430 上传时间:2022-12-28 格式:DOCX 页数:22 大小:19.93KB
下载 相关 举报
50道C++编程练习题及解答c 编程例题Word下载.docx_第1页
第1页 / 共22页
50道C++编程练习题及解答c 编程例题Word下载.docx_第2页
第2页 / 共22页
50道C++编程练习题及解答c 编程例题Word下载.docx_第3页
第3页 / 共22页
50道C++编程练习题及解答c 编程例题Word下载.docx_第4页
第4页 / 共22页
50道C++编程练习题及解答c 编程例题Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

50道C++编程练习题及解答c 编程例题Word下载.docx

《50道C++编程练习题及解答c 编程例题Word下载.docx》由会员分享,可在线阅读,更多相关《50道C++编程练习题及解答c 编程例题Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

50道C++编程练习题及解答c 编程例题Word下载.docx

}

方程无实根\n"

}

3.输入一个成绩,打印响应的等级

{inta;

cin>

a;

if(a>

=90)cout<

A"

elseif(a>

=80)cout<

B"

=70)cout<

C"

=60)cout<

D"

E"

4.输入3个double类型的值,断定这3个值是否可以表示一个三角形的三条边.

{

doublea,b,c;

if(a+b>

c&

&

b+c>

a&

c+a>

b)

可以组成三角形"

else

不可以组成三角形"

5.输入20个数,求其最大.最小和平均值

inti;

inta,max,min,s;

a;

max=min=a;

s=a;

for(i=1;

i<

20;

i++)

{cin>

max)max=a;

if(a<

min)min=a;

s=s+a;

}

max<

"

min<

s/20.0<

6.输入若干个数,设输入的第一个数为后面要输入的数的个数,求平均值及最大值.

inta,m,s=0;

n;

for(inti=1;

i<

i++)

s+=a;

m)m=a;

平均值:

(double)s/n<

最大值:

m<

7.输入若干个数,输入-999表示停止,求平均值及最大值.

iomanip>

cstdlib>

{intn,count,sum,max;

doubleave;

count=0;

n;

sum=0;

max=n;

while(n!

=-999)

{sum=sum+n;

if(n>

max)max=n;

count++;

if(count!

=0)

{ave=static_cast<

double>

(sum)/count;

setiosflags(ios:

:

fixed)<

setprecision

(2);

平均值为:

ave<

最大值为:

8.乞降s=1*1+2*2+3*3+...+100*100

{inti,t;

doubles=0;

=100;

i++)

{t=i*i;

s=s+t;

9.印度国王的嘉奖,乞降s=20+21+22+...+263

{doublet=1,s=0;

for(inti=0;

=63;

{s=s+t;

t=2*t;

s/1.4e8<

10.乞降s=1!

+2!

+3!

+...+10!

{inti;

longt,s;

t=1;

s=0;

=10;

{t=t*i;

11.求e=1+1/1!

+1/2!

+1/3!

+...

doublet,e;

i=1;

e=1;

while(t>

=1e-7)

{t=t/i;

e=e+t;

i=i+1;

e;

12.求PI值,PI/4=1-1/3+1/5-1/7+...

{inti,k;

doublepi,t;

pi=0;

k=1;

while(fabs(t)>

1e-8)

{pi=pi+t;

i=i+2;

k=-k;

t=double(k)/i;

4*pi;

13.求PI值,PI/2=1+1/3+1/3*2/5+1/3*2/5*3/7+...

inti,j;

i=0;

j=1;

1e-18)

j=j+2;

t=t*i/j;

setprecision(17)<

2*pi;

14.输入20个数,统计个中正数.负数和零的个数.

inta,n=0,m=0,s=0;

=20;

{cin>

0)n++;

elseif(a<

0)m++;

elses++;

n<

s;

15.输入若干个整数,盘算个中的奇数之和与偶数之和,假设输入0表示停止.

{inta,n=0,m=0;

while(a!

=0)

{if(a%2==0)n+=a;

elsem+=a;

16.写一函数,盘算x的y次方(假设x.y都为正整数).

intpow(intx,inty)

{ints=1;

=y;

s=s*x;

returns;

17.求水仙花数(一个三位数,其列位数字立方和等于该数字本身)

{inti,a,b,c;

for(i=100;

=999;

i++)

{a=i/100;

b=i/10%10;

c=i%10;

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

for(a=1;

a<

=9;

a++)

for(b=0;

b<

b++)

for(c=0;

c<

c++)

{i=a*100+b*10+c;

18.编写一个函数,肯定一个整数是否为完整数(一个数,等于他的因子之和).用这个函数肯定和打印1到1000之间的所有完整数.

intperfect(intn)

{inti,s=1;

for(i=2;

=n/2;

if(n%i==0)s=s+i;

if(s==n)return1;

elsereturn0;

{intn;

for(n=2;

=1000;

n++)

ifperfect(n)

19.写一函数,求斐波那契数列的第n项.

intfib(intn)

inti,f1,f2,f;

if(n==1||n==2)return1;

f1=1;

f2=1;

for(i=3;

=n;

{f=f1+f2;

f1=f2;

f2=f;

returnf;

20.写一个函数,取一个整数值并返回将此整数的各数字反序的数值

intreverse(intn)

{ints=0;

while(n)

{s=s*10+n%10;

n/=10;

};

21.写一个函数,将一个整数的列位数字的反序打印

voidshow(intn)

{while(n)

{cout<

n%10<

{if(n<

10)cout<

show(n/10);

22.写一个函数,将一个整数的列位数字的按次序打印出来

intk=1,m=n;

while(m>

10)

{k*=10;

m/=10;

n/k<

n%=k;

k/=10;

{inta[10],i=0;

{a[i]=n%10;

i++;

for(intj=i-1;

j>

=0;

j--)

a[j]<

{if(n<

10)cout<

{show(n/10);

cout<

<

n%10;

23.求一个整数的列位数之和的函数

intsum(intn)

{ints=0;

{s+=n%10;

24.写一函数,断定某个数是否素数,以及求1-1000之内的素数

stdlib.h>

boolisprime(intn)

{floatk=sqrt(float(n));

for(inti=2;

=k;

if(n%i==0)returnfalse;

returntrue;

{for(intn=2;

n<

n++)

if(isprime(n))cout<

setw(5)<

25.用筛法求1-1000之内的素数

inti,k,a[1001];

i++)a[i]=1;

floats=sqrt(float(1000));

=s;

if(a[i]==1)

{k=2*i;

while(k<

=1000)

{a[k]=0;

k=k+i;

if(a[i]==1)cout<

i;

26.断定某一年是否闰年的函数

boolIsLeapYear(inty)

{return(y%4==0&

y%100!

=0)||(y%400==0);

27.写一个函数,交流两个整型变量的值

voidswap(int*p,int*q)

{intt;

t=*p;

*p=*q;

*q=t;

voidswap(int&

a,int&

b)

t=a;

a=b;

b=t;

28.求两个数的最大公约数,欧几里德算法(辗转相除法)

intgcd(intm,intn)

{intk;

while(n!

{k=m%n;

m=n;

n=k;

returnm;

while((k=m%n)!

{m=n;

returnn;

{while(m!

=n)

{if(m>

n)m=m-n;

elsen=n-m;

29.求两个数的最小公倍数

intlcm(intm,intn)

{intt,s;

if(m<

n){t=m;

n=t;

s=m;

while(s%n!

=0)s=s+m;

returnm*n/gcd(m,n);

30.百钱买百鸡问题:

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁.母.雏各几何?

intcock,hen,chick;

for(cock=0;

cock<

cock++)

for(hen=0;

hen<

=33;

hen++)

{chick=100-cock-hen;

if(5*cock+3*hen+chick/3.0==100)

setw(4)<

cock<

hen<

chick<

31.编一程序,输入一行字符串,统计个中的小写英文字母的个数.

{chars[100];

cin.getline(s,100);

inti=0,count=0;

while(s[i]!

='

\0'

{if(s[i]>

a'

&

s[i]<

z'

count<

32.编一程序,输入一行字符串,将个中的大写英文字母改为小写,再输出.

inti;

if(s[i]>

A'

Z'

s[i]=s[i]+32;

s<

33.打印杨辉三角形(帕斯卡三角形),打印10行.

{inta[10][10]={0};

10;

{a[i][0]=1;

a[i][i]=1;

for(intj=1;

j<

j++)

a[i][j]=a[i-1][j-1]+a[i-1][j];

{for(intj=0;

=i;

a[i][j];

34.打印一个九九乘法表

{for(inti=1;

=j;

*"

j<

="

setw

(2)<

i*j<

35.掷骰子10000次,统计得到各点数的次数.

{inta[7]={0};

srand(time(0));

i<

=10000;

++i)

++a[1+rand()%6];

=6;

a[i]<

36.编写函数distance,盘算两点(x1,y1)和(x2,y2)之间的距离.

doubledistance(doublex1,doubley1,doublex2,doubley2)

returnsqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

37.写一个程序,进行体操评分,依次输入10名评委所评分数,去除一个最高分和一个最低分,再算出平均分作为选手的得分.

floatmax,min,s,x;

max=0;

min=10;

x;

s=s+x;

if(x<

min)min=x;

if(x>

max)max=x;

s=s-min-max;

s/8;

38.写一函数,将一数组中的元素反转.

voidreverse(inta[],intn)

{for(inti=0;

n/2;

swap(a[i],a[n-i-1]);

39.写一函数,在一个数组中找出最大元素的地位

intSearchMax(inta[],intn)

{intk=0;

if(a[i]>

a[k])k=i;

returnk;

40.找出一个二维数组中的鞍点,即该元素在该行上最大,在该列上最小.

41.写一个字符串拷贝函数

voidstrcpy(char*p,constchar*q)

while(*p++=*q++);

char*strcpy(char*str1,constchar*str2)

char*p=str1;

while(*str1++=*str2++);

returnp;

42.写一个字符串比较函数

intstrcmp(char*str1,constchar*str2)

while(*str1&

*str2&

*str1==*str2)

{str1++;

str2++;

return*str1-*str2;

while(*str1==*str2)

{if(*str1=='

)return0;

str1++;

43.写一个字符串衔接函数

char*strcat(char*str1,char*str2)

while(*str1!

=0)str1++;

44.写一个求字符串长度函数

intstrlen(char*str)

intn=0;

while(*str!

{n++;

str++;

45.写一函数,在一数组里查找某个值.

intsearch(inta[],intn,intkey)

if(a[i]==key)

returni;

return-1;

46.编一程序,求两个矩阵的乘积

47.盘算某日是某年的第几天

boolisLeapYear(inty)//断定某一年是否闰年

return(y%4==0&

intyear,month,day,i,s=0;

inta[13]=(0,31,28,31,30,31,30,31,31,30,31,30,31};

year>

month>

day;

month;

s=s+a[i];

s=s+day;

if(isLeapYear(year)&

month>

2)s++;

s;

48.编写一个关心小学生进修加法的程序,随机产生2个数,让学生输入答案.

intx,y,z;

srand(time(0));

x=rand()%1000;

y=rand()%1

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

当前位置:首页 > 经管营销 > 经济市场

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

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