那些很重要吧 关注:11贴子:374

陪你到世界的终结●各种变态编程题目

只看楼主收藏回复

1楼
陶陶摘苹果
Time Limit:1000MS Memory Limit:65536K
Total Submit:437 Accepted:256
Description
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
Input
输入包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
Output
输出文件包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
Sample Input
100 200 150 140 129 134 167 198 200 111 110
Sample Output
5
Sample Result:



1楼2011-03-18 21:23回复
    答案
    #include <stdio.h>
    int main()
    {
    int a[100],b,i,h,sum=0;
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    scanf("%d",&b);
    h=b+30;
    for(i=0;i<10;i++)
    {
    if(h>=a[i])
    sum++;
    }
    printf("%d\n",sum);
    return 0;
    }
    


    2楼2011-03-18 21:24
    回复

      3楼
      奖金发放
      Time Limit:1000MS Memory Limit:65536K
      Total Submit:318 Accepted:192
      Description
      企业每个月发放的奖金根据当月利润进行提成。利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000<I≤200000)时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;200000<I≤400000时,低于20万元的部分仍按上述办法提成(下同)。高于20万的部分按5%提成;400000<I≤600000时,高于40万元的部分按3%提成;600000<I≤1000000时,高于60万元的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。
      现在请你编写一段程序,读取一年中每个月的利润,计算并输出这一年内的应发奖金总额。
      Input
      输入数据一共有12行,每一行都是一个正整数,其中第i(1≤i≤12)行的整数表示第i个月的利润(以元为单位)。每个整数都不超过2000000。
      Output
      输出只有一行,即该企业在这一年内应该发放的奖金总额(以元为单位),要求精确到小数点后两位。
      Sample Input
      400000 106000 50000 580000 620000 1030000 1700000 122000 640000 76000 60000 540000
      Sample Output
      


      3楼2011-03-18 21:25
      回复
        #include<stdio.h>
        int main()
        {
        int a[20],i;
        float b,c;
        for("i=0;i<12;i++)
        scanf("%d",&a[i]);
        for("i=0;i<12;i++)
        {
        if(a[i]<=100000)
        b=a[i]*0.1;
        else if(a[i]>100000&&a[i]<=200000) b=10000+(a[i]-100000)*0.75;
        else if(a[i]>200000&&a[i]<=400000) b=10000+7500+(a[i]-
        


        4楼2011-03-18 21:25
        回复
          #include<stdio.h>
          void main()
          {
                int a[20],i;
                float b,c;
                for(i=0;i<12;i++)
                scanf("%d",&a[i]);
                for(i=0;i<12;i++)
                {     if(a[i]<=100000)
                     b=a[i]*0.1;
                     else if(a[i]>100000&&a[i]<=200000) b=10000+(a[i]-100000)*0.075;
                     else if(a[i]>200000&&a[i]<=400000) b=10000+7500+(a[i]-200000)*0.05;
                     else if(a[i]>400000&&a[i]<=600000) b=10000+7500+10000+(a[i]-400000)*0.03;
                     else if(a[i]>600000&&a[i]<=1000000) b=10000+7500+10000+6000+(a[i]-600000)*0.015;
                     else b=10000+7500+10000+6000+3000+(a[i]-1000000)*0.01;
                }
                printf("%.2f\n",b);
          }


          5楼2011-03-24 16:51
          回复
            #include<stdio.h>
            void main()
            {
                  int a[20],i;
                  float b,sum=0.00;
                  for(i=0;i<12;i++)
                  scanf("%d",&a[i]);
                  for(i=0;i<12;i++)
                  {     if(a[i]<=100000)
                       b=a[i]*0.1;
                       else if(a[i]>100000&&a[i]<=200000) b=10000+(a[i]-100000)*0.075;
                       else if(a[i]>200000&&a[i]<=400000) b=1000+7500+(a[i]-200000)*0.05;
                       else if(a[i]>400000&&a[i]<=600000) b=10000+7500+10000+(a[i]-400000)*0.03;
                       else if(a[i]>600000&&a[i]<=1000000) b=10000+7500+10000+6000+(a[i]-600000)*0.015;
                       else b=10000+7500+10000+6000+6000+(a[i]-1000000)*0.01;
                       sum=sum+b;
                  }
                  printf("%.2f\n",sum);
            }


            6楼2011-03-24 17:29
            回复
              =======================C++==========================
              1)     阅读并分析以下程序的输出结果。
              ①     #include <iostream>
              ②     using namespace std;
              ③     int add (int x,int y)
              ④     {
              ⑤         return (x+y);
              ⑥     }
              ⑦     void main()
              ⑧     {
              ⑨         int x,i;
              ⑩         cout<<"x1="<<add(4,8)<<endl;
              ⑪         cout<<"x2="<<add(3,add(1,2))<<endl;
              ⑫         x=0;
              ⑬         for (i=1;i<=6;i++)
              ⑭             x=add(x,i);
              ⑮         cout<<"x3="<<x<<endl;
              ⑯         cout<<"x4="<<add(add(add(add(add(1,1),1),1),1),1)<<endl;
              ⑰         cout<<"x5="<<add(add(add(add(add(1,2),3),4),5),6)<<endl;
              ⑱     }
              ⑲       分析此程序的输出结果为:
              


              7楼2011-03-29 10:54
              回复
                2)     分析如下两个递归函数:
                #include <iostream>
                using namespace std;
                void f1(int n)
                {
                     if (n>1) f1(n/2);
                     cout<<n%2;
                }
                void f2(int n)
                {
                     if (n>0)
                     {
                         char t=n%10+65;
                         cout<<t<<'\t';
                         f2(n/10);
                     }
                }
                void main()
                {
                     int m=19;
                     f1(m);
                     cout<<endl;
                     f2(12709);
                     cout<<endl;
                }
                ① 分析并判断程序的输出结果:
                ② 分析:若将f2中if 语句中的“char t=n%10+65;cout<<t<<'\t';
                ”与其后的“f2(n/10);”顺序互换一下,程序的输出结果又是什么?
                


                8楼2011-03-29 10:55
                回复
                  分析下述程序执行后的输出结果,注意其中对“文件级”作用域全局变量以及对“函数级”作用域的局部变量的使用区别:
                  #include <iostream>
                  #include <iomanip>
                  using namespace std;
                  int k=888;
                  char c='T';
                  void f1()
                  {
                       int i=31;
                       float k=3.1;
                       cout<<"f1:k,c,i=>"<<setw(6)<<k;
                       cout<<setw(6)<<c<<setw(6)<<i<<endl;
                  }
                  void f2()
                  {
                       int i=52;
                       double c=5.2;
                       cout<<"f2:k,c,i=>"<<setw(6)<<k;
                       cout<<setw(6)<<c<<setw(6)<<i<<endl;
                  }
                  void main()
                  {
                       cout<<"main:k,c=>"<<setw(6)<<k;
                       cout<<setw(6)<<c<<endl;
                       f1();
                       f2();
                  }
                  以上程序的输出结果是:
                  


                  9楼2011-03-29 10:55
                  回复
                    4)阅读并分析以下程序,注意全局变量g,具有static存储类别的局部变量x:
                    #include <iostream>
                    #include <iomanip>
                    using namespace std;
                    int g=321;
                    void display(int g ,int x, int y)
                    {
                         cout<<"g="<<setw(3)<<g
                             <<", x="<<setw(3)<<x
                             <<", y="<<setw(3)<<y<<endl;
                    }
                    void f()
                    {
                         static int x=123;
                         int y=123;
                         g+=2;
                         x+=2;
                         y+=2;
                         cout<<"in f:";
                         display(g,x,y);
                    }
                    void main()
                    {
                         int x=-66, y=555;
                         cout<<"main1:";
                         display(g,x,y);
                         y=y+8;
                         f();
                         cout<<"main2:";
                         display(g,x,y);
                         g=g+5;
                         f();
                    }
                    以上程序的输出结果是:
                    


                    10楼2011-03-29 10:55
                    回复
                      5)编写一个将x进制正整数n化为10进制数并输出结果的函数,具有如下原型:
                      void ChgTo10(char a[],int x);
                      参数a中放的是x进制正整数的各位数字字符,试将其化为10进制整数并输出,编写主函数对其进行调用以验证其正确性。


                      11楼2011-03-29 10:56
                      回复
                        1).    阅读并分析程序,写出程序输出结果:
                        #include <iostream>
                        using namespace std;
                        void main()
                        {
                             int a[10]={10,11,12};
                             int *p=a,*q=&a[9];
                             *(p+3)=13;
                             *(q-5)=*(p+3)+1;
                             for (int i=5;i<10;i++)
                                 *(p+i)=80+i;
                             cout<<"*(p+2)="<<*(p+2)<<endl;
                             cout<<"*(&a[8])="<<*(&a[8])<<endl;
                             for (i=3;i<8;i++)
                                 cout<<*(a+i)<<"   ";
                             cout<<"\nq-a="<<q-a<<endl;
                             cout<<"q-p="<<q-p<<endl;
                             while(q>&a[4])
                                 cout<<*q--<<"   ";
                             cout<<"\nq-a="<<q-a<<endl;
                        


                        12楼2011-03-29 10:56
                        回复
                          鸡兔同笼I
                          Time Limit:1000MS   Memory Limit:65536K
                          Total Submit:681 Accepted:277
                          Description
                          一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物?
                          Input
                          第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a(a<32768)。
                          Output
                          输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开。
                          如果没有满足要求的答案,则输出两个0。
                          Sample Input
                          2
                          3
                          20
                          Sample Output
                          0 0
                          5 10
                          Sample Result:
                          


                          13楼2011-03-29 11:33
                          回复
                            成绩评定
                            Time Limit:1000MS   Memory Limit:65536K
                            Total Submit:540 Accepted:276
                            Description
                            现在有若干个同学的期末考试成绩,我们需要根据下面的规则根据每个同学考试成绩所在的分数段对其成绩进行评定,请编写程序完成这个任务。成绩评定规则如下:
                            若成绩在100分和90分(含100分和90分)之间,则判定为“A”;
                            若成绩在90分和80分(含80分)之间,则判定为“B”;
                            若成绩在80分和60分(含60分)之间,则判定为“C”;
                            若成绩在60分以下0分以上(含0分),则判定为“D”;
                            否则无法判定,给出错误提示。
                            Input
                            第一行是一个整数n,表示需要评定的成绩的个数。
                            接下来有n行输入,每行都是一个浮点数,表示某个同学的成绩。
                            Output
                            对应于每个同学的成绩,输出一行表示判定结果,对于无法判定的成绩,输出一行“Invalid”。
                            Sample Input
                            4
                            84
                            128
                            45.3
                            97
                            Sample Output
                            B
                            Invalid
                            D
                            A
                            Sample Result:
                            


                            14楼2011-03-29 11:34
                            回复
                              鸡兔同笼II
                              Time Limit:1000MS   Memory Limit:65536K
                              Total Submit:696 Accepted:237
                              Description
                              笼子中有若干只鸡和若干只兔子,现在只知道笼子中总共有a个头和b只脚(a和b都是非负整数),请你编写一个程序计算笼子中分别有多少只鸡和多少只兔。笼子中鸡的数量和兔的数量都必须是一个非负整数,否则就是无效答案。
                              Input
                              输入只有一行,包括两个非负整数,分别表示笼中头的数量a和脚的数量b。
                              Output
                              输出也只有一行,包括用空格分开的两个整数,分别表示笼中鸡的数量和兔的数量。若为无效答案则输出一行“Error”。
                              Sample Input
                              21 58
                              Sample Output
                              13 8
                              Sample Result:
                              


                              15楼2011-03-29 11:34
                              回复