华中农业大学C++考试基础练习题

实验一
1 通过日期求某月的天数。
输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。
输入描述
输入两个正整数y和m分别表示年份和月份。
输出描述
如果y和m满足条件:1900<=y<3000,0<m<13,输出该月的天数;否则输出“Input error!”。
输入样例
2010 12
输出样例
31

#include"iostream"
using namespace std;

int main()
{
   
    int y,m;
    cin>>y>>m;
    if (m>0&&m<13&&y>=1900&&y<3000)
    {
   
        int a[12]={
   31,28,31,30,31,30,31,31,30,31,30,31};
        if (y%4==0&&y%100!=0||y%400==0)
            a[1]+=1;
        cout<<a[m-1];
    }
    else
        cout<<"Input error!";

    return 0;
}
  1. 录取研究生。
    题目描述
    某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。
    输入描述
    输入四门课的成绩,成绩均为0~150之间的整数。
    输出描述
    录取结果。(“没有录取”、“自费”、“公费”)
    输入样例
    60 100 130 80
    输出样例
    公费
#include"iostream"
using namespace std;

int  main()
{
   
    int a,b,c,d;
    while(cin>>a>>b>>c>>d&&a>=0&&a<=150&&b>=0&&b<=150&&c>=0&&c<=150&&d>=0&&d<=150)
    {
   
        if (a<60||b<60||c<60||d<60||a+b+c+d<340)
            cout<<"没有录取";
        else if (a+b+c+d<370)
            cout<<"自费";
        else
            cout<<"公费";
    }
    return 0;
}
  1. 骑车与走路。
    题目描述
    在华农校园里,没有自行车,上课办事会很不方便。但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。
    输入描述
    一个整数:为一次办事要行走的距离,单位为米。
    输出描述
    对输入的整数,如果骑车快,输出一行“Bike”;如果走路快,输出一行“Walk”;如果一样快,输出一行“All”。
    输入样例
    【样例输入1】 【样例输入2】
    50 120
    输出样例
    【样例输出1】 【样例输出2】
    Walk Bike
#include"iostream"
using namespace std;

int main()
{
   
    int s;
    double t1,t2;
    cin>>s;
    t1=s/1.2;
    t2=27+23+s/3.0;
    if (t1<t2)
        cout<<"walk"<<endl;
    else if (t1>t2)
        cout<<"bike"<<endl;
    else
        cout<<"All"<<endl;
    return 0;
}

4停车场收费
题目描述
一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。
【提示】
要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:
cout<<fixed<<setprecision(2)<<cost<<endl;
按上面的形式控制输出格式时,需在源程序最开始加上一行:#include
输入描述
输入停车的时间t
输出描述
输出应该收取的停车费用cost,保留小数点后2位
输入样例
3.46
输出样例
5.92

#include"iomanip"
#include"iostream"
using namespace std;

int  main()
{
   
    float t;
    float cost;
    while(cin>>t&&t<24)
    {
   
    if (t<=3)
        cost=5;
    else if (t<=20.5)
        cost=5+(t-3)*2;
    else
        cost=40;
    cout<<fixed<<setprecision(2)<<cost<<endl;
    }
    return 0;
}
  1. 简单计算器
    题目描述
    模拟计算器的功能,能根据用户输入的两个运算数和运算符(’+’、 ‘-’、 ‘’ 或‘/ ’),对两个数进行相应的运算,输出运算结果。注意:除法运算‘/ ’的除数不能为0。
    输入描述
    两个实数a、b和一个运算符号c,它们之间用空格隔开。
    输出描述
    如果能运算,输出a和b的运算结果;如果c为除号,且b为0,输出“除数为0!”;如果c不是’+’、 ‘-’、 ‘
    ’ 或‘/ ’中的运算符号,输出“运算符号错误!”
    输入样例
    4 9 *
    输出样例
    36
#include"iostream"
using namespace std;

int main()
{
   
    float a,b;
    char c;
    cin>>a>>b>>c;
    switch(c)
    {
   
    case '+':
        cout<<a+b<<endl;
        break;
    case '-':
        cout<<a-b<<endl;
        break;
    case '*':
        cout<<a*b<<endl;
        break;
    case '/':
        {
   
            if (b==0)
                cout<<"除数为0!"<<endl;
            else
                {
   
                    cout<<a/b<<endl;
                }
            break;

        }
    default:
        cout<<"运算符号错误!"<<endl;
    }
    return 0;
}

实验二

  1. 数字求和
    题目描述
    给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?
    输入描述
    输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。
    输出描述
    输出一行,给出一个正整数,是5个数中小于a的数的和。
    输入样例
    10 1 2 3 4 11
    输出样例
    10
#include"iostream"
using namespace std;

int main()
{
   
   int a,b[5],i,s;
   while(cin>>a&&a>0&&a<100)
   {
   
       s=0;
       for(i=0;i<5;i++)
       {
   
           cin>>b[i];
           if (b[i]<0||b[i]>100)
           break;
           if (b[i]<a)
           s+=b[i];
       }
       cout<<s<<endl;
   }
   return <
  • 34
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值