东华大学2020考研计算机复试准备上机题解析答案_进阶篇(1-30)

前言

提交代码:
选择C++编程语言,因为有的时候会用到C++的一些方便的头文件什么的,还有我编写代码是有一部分是纯C的,因为做题来讲C的scanf和printf很方便。

发布文章安排:
我会抽时间发文章的,看时间安排了,现在时间有点紧吧。马上过年了。过完年要开始准备准备其他东西了

解题解法质量:
关于我的解法和代码的精简程度,我是以当时做题的心态来解题的,由于当时急着刷完所有题目,所以难免会有一些题应该有其他更优的解法,我却用了比较暴力一点的,毕竟当时的劳动强度有点大,抓进度来着,如果有更好的解法,欢迎联系我,或者直接评论,共同学习,共同进步!

联系方式:

如果有问题交流咨询,可以加入QQ群:673852347

其他未尽事宜,还望海涵!

1 求长方形的面积和周长

作者: Hu Yongjian 时间限制: 1S 章节: 顺序结构

问题描述 :

求一个长方形的面积S及周长P。面积的公式为S = a × b,周长的公式P=2*(a+b),其中a代表长方形的长,b代表长方形的宽。

输入说明 :

你的程序需要从标准输入设备(通常为键盘)中读入两个整数:一个整数a(0 ≤a < 10000),代表长方形的长;一个整数b(0 ≤ b < 10000),代表长方形的宽;在a和b之间有一个空格;在行首和行尾没有多余的空格。

输出说明 :

你的程序需要向标准输出文件(通常为启动该程序的终端)输出对应的答案。答案占一行,其中包含两个整数,即长方行的面积和周长,中间以一个空格分隔。在行首和行尾不要输出多余的空格。

输入范例 :

40 5
输出范例 :

200 90

AC代码:

#include<stdio.h>//东华我来喽!
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d %d\n",a*b,2*(a+b));
    return 0;
}

2 数列和

作者: Hu Yongjian 时间限制: 1S 章节: 顺序结构

问题描述 :

尝试求从1+2+…+N这N个自然数的和。

输入说明 :

你的程序需要从标准输入设备(通常为键盘)中读入一个整数N(1 ≤ N < 10,000);在行首和行尾没有多余的空格。在所有数据的前后,以及两组数据之间都没有多余的空行。

输出说明 :

对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的终端)输出对应的答案,其中仅有一个整数,即题目描述中的数列之和。在行首和行尾不要输出多余的空格。

输入范例 :

10
输出范例 :

55

AC代码:

#include<stdio.h>//东华我来喽!
int main()
{
    int N;
    scanf("%d",&N);
    printf("%d\n",N*(N+1)/2);
    return 0;
}

3 解方程

作者: 江宝钏 时间限制: 1S 章节: 顺序结构

问题描述 :

编写程序:输入a、b后,输出一元一次方程2ax+3*b-5=0的解。

输入说明 :

整数a b

输出说明 :

x 保留1位小数

输入范例 :

1 2

输出范例 :

-0.5

AC代码:

#include<stdio.h>//东华我来喽!
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%0.1f\n",(5-3*b)/2.0/a);
    return 0;
}

4 一个月的天数

作者: Turbo 时间限制: 1S 章节: 分支结构

问题描述 :

输入年和月,输出该月有几天。
输入说明 :

输入两个整数,中间以空格分隔,第一个整数表示年,第二个整数表示月。
输出说明 :

输出该年该月的天数,输出时,行首与行尾均无空格,仅输出一个整数。
输入范例 :

2000 2
输出范例 :

29

AC代码:

#include<stdio.h>//东华我来喽!判断瑞年先
int main()
{
    int a,b;
    int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    scanf("%d%d",&a,&b);
    if( (a%100!=0 && a%4==0) || (a%400==0) )month[2]++;
    printf("%d\n",month[b]);
    return 0;
}

5 银行存款到期日

作者: Turbo 时间限制: 1S 章节: 分支结构

问题描述 :

银行存款有3个月、6个月定期等。从键盘输入一个日期(即为存款日期)以及定期的时间长度(单位为月,输入的时间长度可为小于等于60的任意正整数),请编程输出该定期存款的到期日期。 下面以3个月定期为例,说明定期的概念。

比如:

输入2014年4月30日,则到期日是2014年7月30日;

输入2014年3月31日,则到期日是2014年6月30日(6月没有31日,所以30日就到期);

输入2014年11月30日,则到期日是2015年2月28日;

输入2015年11月30日,则到期日是2016年2月29日。

输入说明 :

共输入4个整数,中间以空格分隔,第一个整数表示年,第二个整数表示月,第三个整数表示日,第四个整数表示定期长度(单位为月)。

输出说明 :

输出到期日期,共输出三个整数,中间以一个空格分隔,行首与行尾均无空格。

输入范例 :

2014 4 30 3
输出范例 :

2014 7 30

AC代码:
判断到几月份到期就行。如果到期那月明明没有31日,则要输出当前最大的日子。

#include<stdio.h>//东华我来喽!判断瑞年先
int main()
{
    int yy,mm,dd,time;
    int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    scanf("%d%d%d%d",&yy,&mm,&dd,&time);
    mm+=time;
    while(mm>12)      //可能存在月数大于1年,所以用while比较稳妥
    {
        mm-=12;
        yy++;
    }
    if( (yy%100!=0 && yy%4==0) || (yy%400==0) )month[2]++;
    printf("%d %d %d\n",yy,mm,dd<month[mm]?dd:month[mm]);
    return 0;
}

(交流技术,分享经验:编程交流Q群:673852347

发布了18 篇原创文章 · 获赞 2 · 访问量 183

猜你喜欢

转载自blog.csdn.net/zhou_hao_ran/article/details/104031914
今日推荐