C++经典编程练习题.docx

上传人:b****4 文档编号:26879271 上传时间:2023-06-23 格式:DOCX 页数:15 大小:17.45KB
下载 相关 举报
C++经典编程练习题.docx_第1页
第1页 / 共15页
C++经典编程练习题.docx_第2页
第2页 / 共15页
C++经典编程练习题.docx_第3页
第3页 / 共15页
C++经典编程练习题.docx_第4页
第4页 / 共15页
C++经典编程练习题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C++经典编程练习题.docx

《C++经典编程练习题.docx》由会员分享,可在线阅读,更多相关《C++经典编程练习题.docx(15页珍藏版)》请在冰豆网上搜索。

C++经典编程练习题.docx

C++经典编程练习题

C++经典编程例题

(1)

1、(已验证!

)计算铁路运费。

已知从甲地到乙地,每张票托运行李不超过50公斤时,按每公斤0.13元,超过50公斤,超过部分按每公斤0.2元计算。

输入行李重量w,计算运费y.

#include

usingnamespacestd;

voidmain()

{

floatmoney=0,weight;

cout<<"请输入货物重量(单位:

千克):

";

cin>>weight;

if(weight<0)

cout<<”数据错误!

”<

if(weight<=50)

money=weight*0.13;

elseif(weight>50)

money=50*0.13+(weight-50)*0.2;

cout<<"\n总费用是:

"<

}

 

2、(已验证!

)根据一元二次方程a*x*x+b*x+c=0求解方程。

输入a、b、c的值,求x1、x2的实根.

#include

#include

usingnamespacestd;

voidmain()

{

   doublea,b,c,p,x1,x2,D;

   cout<<"请输入3个数:

"<

   cout<<"a=";

   cin>>a;

   cout<<"b=";

   cin>>b;

   cout<<"c=";

   cin>>c;

   cout<<"方程为:

"<

   D=b*b-4*a*c;

   if(D<0)

          cout<<"方程无解!

"<

   if(D==0)

   {

   p=-b/(2*a);

   x1=p+sqrt(D)/(2*a);

   cout<<"方程有两个相同的实根。

"<

   cout<<"x1=x2="<

   }

   if(D>0)

   {

   p=-b/(2*a);

   x1=p+sqrt(D)/(2*a);

   x2=p-sqrt(D)/(2*a);

    cout<<"方程有两个不同的实根。

"<

   cout<<"x1="<

   }

}

 

3、(已验证!

)分别使用for和while求n!

.注解n!

=1*2*3*...*n,n由键盘输入。

For:

#include

usingnamespacestd;

voidmain()

{

   inti,n,s;

   s=1;

   cout<<"inputn:

";

   cin>>n;

   for(i=1;i<=n;i++)

   s=i*s;

   cout<

}

 

While:

#include

usingnamespacestd;

voidmain()

{

   inti,n,s;

   s=1;

   i=1;

   cout<<"inputn:

";

   cin>>n;

   while(i<=n)

   {

   s=i*s;

   ++i;

   }

   cout<

}

 

4、(已验证!

)百钱买百鸡。

1只公鸡5元,1只母鸡3元,3只小鸡1元,现有100元钱要买100只鸡,有什么解法。

分别使用三重循环和二重循环来解.

鸡翁,鸡婆,鸡雏各:

12、4、84只

鸡翁,鸡婆,鸡雏各:

8、11、81只

鸡翁,鸡婆,鸡雏各:

4、18、78只

鸡翁,鸡婆,鸡雏各:

0、25、75只

(1).三重循环:

#include

usingnamespacestd;

voidmain()

{

   constintcock=20,hen=33,chicken=100;    

    intc,h,ck;

    for(c=0;c<=cock;c++){

      for(h=0;h<=hen;h++){

         for(ck=0;ck<=chicken;ck++){

             if(((c+h+ck)==100)&&((c*5+h*3+ck/3)==100)&&((ck%3)==0))

               cout<<"鸡翁,鸡婆,鸡雏各:

"<

              }    

                }                   

                   }

}

 

(2).两重循环:

#include

usingnamespacestd;

voidmain()

{

   intc,h,ck;

    for(h=0;h<33;h++)

      for(ck=0;ck<100;ck++){

         c=100-h-ck;

         if(5*c+h*3+ck/3==100&&ck%3==0&&h+ck<=100)

         cout<<"鸡翁,鸡婆,鸡雏各:

"<

}

}

 

5、(已验证!

)求所有水仙花数。

所谓水仙花数是指三位数,其各位数立方和等于该数。

如153=1*1*1+5*5*5+3*3*3.        (153370371407)

#include

usingnamespacestd;

voidmain()

{

    inta,b,c,d;

    for(d=100;d<1000;d++)

     {

       a=d/100;//分解出百位

       b=d/10%10;//分解出十位

       c=d%10;//分解出个位

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

          {

       cout<

          }

     }

       cout<

}

 

6、(已验证!

)解数学灯迷。

有以下算式  ABCD-CDC=ABC,其中ABCD均为一位非负整数,求ABCD的值。

(1098)

#include

usingnamespacestd;

voidmain()

{

    inta,b,c,d,e;

    for(e=1000;e<10000;e++)

    {

     a=e/1000;

     b=e/100%10;

     c=e/10%10;

     d=e%10;

     if(e-(c*100+d*10+c)==a*100+b*10+c)

        {

               cout<

       }

    }

       cout<

}

 

7、(已验证!

)从键盘输入一个整数,判断此数是否为回文数。

所谓回文数就是从左到右读与从右到左读是一样的数。

如12321、7887等。

#include

usingnamespacestd;

boolifn(intx)

{

         intm=0,n;

         n=x;

         while(n)

         {

                   m=m*10+n%10;

                   n=n/10;}

         if(m==x)

                   returntrue;

         if(m!

=x)

                   returnfalse;

}

voidmain()

{

         inta;

    cout<<"输入一个数:

";

         cin>>a;

         if(ifn(a))

     cout<

"<

     else

     cout<

"<

}

 

8、(已验证!

)使用函数计算y=2*x+3,输入x,求y的值。

#include

usingnamespacestd;

floaty(intx)

{

    return2*x+3;

}

voidmain()

{

  intx;

  cout<<"输入X:

";

  cin>>x;

  cout<<"Y="<

}

 

9、(已验证!

)使用递归函数,求99+97+95+...+3+1之和。

(和是2500。

#include

usingnamespacestd;

intsum(longn,longm)

{

   if(n==m)

       return(m);

   else

       return(m+sum(n,m-2));

}

voidmain()

{

   intn,m;

   cout<<"输入范围:

(n~m):

"<

   cout<<"n=";

   cin>>n;

   cout<<"m=";

   cin>>m;

   cout<<"从"<

"<

}

 

10、(已验证!

)已知杨辉三角

1

1  1

1  2  1

1  3  3  1

1  4  6  4  1

1  5  10105  1

1  6  1520156  1

.输出前13行的值.

#include

usingnamespacestd;

voidmain()

{

  inta[11],i,j;

  a[1]=1;

  for(i=1;i<=13;i++)

  {

   a[i]=1;

   for(j=i-1;j>=2;j--)

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

   for(j=1;j<=i;j++)

    cout<

    cout<<"\n";

  }

}

11、(已验证!

)约瑟夫问题:

n个小孩围成一圈做游戏,给定一个数m,现从s个小孩开始,顺时计数,每数到m,该小孩出列,然后从下个小孩重新数数,数到m时,该小孩出列,如果反复,直到所以小孩出列。

(太复杂不会考的!

#include

usingnamespacestd;

intmain()

{

    intN,M;

    cout<<"请输入N,M"<

    cin>>N>>M;

    int*a=newint[N];

    for(inti=0;i

         {

        a[i]=i+1;

    }

    intcountN=0;

    intcountM=0;

    for(i=0;;i++)

         {

      if(a[i%N]!

=-1)

         {

      countM++;

    }

     if(countM==M)

          {

       cout<

       a[i%N]=-1;

       countN++;

       countM=0;

     }

     if(countN==N)

          {

       break;

     }

    }       

    deletea;

    return0;

}

 

字符串编程:

1、  (已验证!

)输入一个字符串,反向输出其字符,如输入是"abcdef",则反向输出"fedcba".

(1)、利用string流:

#include

#include

usingnamespacestd;

stringrstring(strings)

{

if(s.length()==1)

returns;

else

{

charc=s[s.length()-1];

returnc+rstring(s.substr(0,s.length()-1));

}

}

voidmain()

{

stringstr;

cout<<"输入一个字符串:

"<

cin>>str;

cout<

}

(2)、数组倒序输出(很简单):

#include

usingnamespacestd;

voidmain()

{

charstr[180];

intl;

cout<<"输入一个字符串:

"<

cin>>str;

l=strlen(str);

cout<

";

for(inti=l-1;i>=0;i--)

cout<

cout<

}

2、(已验证!

)将输入字符串中所有的'C'去掉,输出其他字符。

#include

usingnamespacestd;

voidmain()

{

charstr[180];

intl;

cout<<"输入一个字符串:

"<

cin>>str;

l=strlen(str);

cout<<"过滤后为:

";

for(inti=0;i

if(str[i]!

='c'&&str[i]!

='C')

cout<

cout<

}

 

3、(已验证!

)输入字符串,判断此字符串是否为回文,如"abcd",正数为"abcd",反数为"dcba",不是回文,而"aba",正数是"aba",反数也是"aba",是回文。

#include

usingnamespacestd;

voidmain()

{

       charstr[180],l;

       inti,t=0;

    cout<<"输入一个字符串:

";

       cin>>str;

       l=strlen(str);

       for(i=0;i

    if(str[i]==str[l-i-1])

    {

           t=1;

           break;

    }

     if(t==0)

        cout<

"<

     else

     cout<

"<

}

 

欢迎您的下载,

资料仅供参考!

 

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

 

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

当前位置:首页 > PPT模板 > 其它模板

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

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