算法竞赛入门【码蹄集新手村600题】(MT1120-1140)C语言

算法竞赛入门【码蹄集新手村600题】(MT1120-1140)C语言

  • 目录
    • [MT1121 小码哥考完咯](#MT1121 小码哥考完咯)
    • MT1122阶梯IF-ELSE
    • [MT1123 元音](#MT1123 元音)
    • [MT1124 罗马数字](#MT1124 罗马数字)
    • [MT1125 几月份](#MT1125 几月份)
    • [MT1126 十二生肖](#MT1126 十二生肖)
    • [MT1127 小码哥的属相](#MT1127 小码哥的属相)
    • [MT1128 骰子的反面](#MT1128 骰子的反面)
    • [MT1129 小码哥玩骰子](#MT1129 小码哥玩骰子)
    • [MT1130 骰子里面的数学](#MT1130 骰子里面的数学)
    • [MT1131 字符判断](#MT1131 字符判断)
    • [MT1132 人民币大写数字](#MT1132 人民币大写数字)
    • [MT1133 小码哥打车](#MT1133 小码哥打车)
    • [MT1134 简单计算](#MT1134 简单计算)
    • [MT1135 时间转换](#MT1135 时间转换)
    • [MT1136 时间也能加](#MT1136 时间也能加)
    • [MT1137 闰年](#MT1137 闰年)
    • [MT1138 第几天](#MT1138 第几天)
    • [MT1139 11或13](#MT1139 11或13)
    • [MT1140 数字7](#MT1140 数字7)

码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist


目录

MT1121 小码哥考完咯

(1)题目

小码哥考完咯,你是她的老师,请使用switch语句编写一个程序,输出她的分数对应的成绩等级ABCDF。使用以下分级标准:A=90-100,B=80-89,C=70-79,D=60-69,F=0-59。不考虑负数或者其他特殊情况。本题要求使用switch语句。


格式

输入格式:
输入为整型


输出格式:
输出为字符型

样例1

输入:
99

输出:
A

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{
    int grade;
    scanf("%d", &grade);
    grade = grade / 10;
    switch(grade)
    {
    case 10:
        printf("A");
        break;
    case 9:
        printf("A");
        break;
    case 8:
        printf("B");
        break;
    case 7:
        printf("C");
        break;
    case 6:
        printf("D");
        break;
    default :
        printf("F");
    }
    return 0; 
}

MT1122阶梯IF-ELSE

(1)题目

小码哥考完咯,你是她的老师,请编写一个程序,输出她的分数对应的成绩等级ABCDF。使用以下分级标准:A=90-100,B=80-89,C=70-79,D=60-69,F=0-59不考虑负数或者其他特殊情况。本题要求使用阶梯IF-ELSE语句,不得使用switch。


格式

输入格式:
输入为整型


输出格式:
输出为整型

样例1

输入:
100

输出:
A

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int x;
    scanf("%d", &x);
    if (x <= 100 && x >= 90)
    {
        printf("A");
    }
    else if (x <= 89 && x >= 80)
    {
        printf("B");
    }
    else if (x <= 79 && x >= 70)
    {
        printf("C");
    }
    else if (x <= 69 && x >= 60)
    {
        printf("D");
    }
    else if (x <= 59 && x >= 0)
    {
        printf("F");
    }
    else
    {
        printf("Error");
    }
    return 0; 
}

MT1123 元音

(1)题目

请编写一个简单程序,检查输入字符是否为元音


格式

输入格式:
输入字符型 


输出格式:
输出Y或者N

样例1

输入:
A

输出:
Y

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    char letter;
    scanf("%c", &letter);
    if (letter == 'A' || letter == 'a')
    {
        printf("Y");
    }
    else if (letter == 'B' || letter == 'b')
    {
        printf("Y");
    }
    else if (letter == 'E' || letter == 'e')
    {
        printf("Y");
    }
    else if (letter == 'I' || letter == 'i')
    {
        printf("Y");
    }
    else if (letter == 'O' || letter == 'o')
    {
        printf("Y");
    }
    else if (letter == 'U' || letter == 'u')
    {
        printf("Y");
    }
    else
    {
        printf("N");
    }
    return 0; 
}

MT1124 罗马数字

(1)题目

编一个程序,输入一个整数(1~9),输出对应大写罗马数字。不考虑非法的不合理的输入等特殊情况。


格式

输入格式:
输入整型


输出格式:
输出字符串

样例1

输入:
4

输出:
Ⅳ

(2)参考代码

c 复制代码
// 将您的键盘输入法设置为标准的键盘。

// 按出字母 v 。

// 按出键盘上的您需要的数字。

#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n == 1)
    {
        printf("I");
    }
    else if (n == 2)
    {
        printf("II");
    }
    else if (n == 3)
    {
        printf("III");
    }
    else if (n == 4)
    {
        printf("IV");
    }
    else if (n == 5)
    {
        printf("V");
    }
    else if (n == 6)
    {
        printf("VI");
    }
    else if (n == 7)
    {
        printf("VII");
    }
    else if (n == 8)
    {
        printf("VIII");
    }
    else
    {
        printf("IX");
    }
    return 0; 
}

MT1125 几月份

(1)题目

编一个程序,输入该月的英文月名,小写,输出对应月份号。不考虑非法的不合理的输入等特殊情况。


格式

输入格式: 
输入字符串

输出格式: 
输出整型

样例1

输入格式:
 april

输出格式:
 4

(2)参考代码

c 复制代码
#include<stdio.h>
#include<string.h>
int main() 
{ 
    char a[20];
    gets(a);
    if (strcmp(a, "january") == 0)
    {
        printf("1");
    }
    else if (strcmp(a, "february") == 0)
    {
        printf("2");
    }
    else if (strcmp(a, "march") == 0)
    {
        printf("3");
    }
    else if (strcmp(a, "april") == 0)
    {
        printf("4");
    }
    else if (strcmp(a, "may") == 0)
    {
        printf("5");
    }
    else if (strcmp(a, "june") == 0)
    {
        printf("6");
    }
    else if (strcmp(a, "july") == 0)
    {
        printf("7");
    }
    else if (strcmp(a, "august") == 0)
    {
        printf("8");
    }
    else if (strcmp(a, "september") == 0)
    {
        printf("9");
    }
    else if (strcmp(a, "october") == 0)
    {
        printf("10");
    }
    else if (strcmp(a, "november") == 0)
    {
        printf("11");
    }
    else if (strcmp(a, "december") == 0)
    {
        printf("12");
    }
    return 0; 
}

MT1126 十二生肖

(1)题目

编一个程序,输入一个整数(1~12),输出对应十二生肖,鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪的拼音(小写)。不考虑非法的不合理的输入等特殊情况。


格式

输入格式: 
输入整型

输出格式: 
输出字符串

样例1

输入格式: 
4

输出格式: 
tu

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n == 1)
    {
        printf("shu");
    }
    else if (n == 2)
    {
        printf("niu");
    }
    else if (n == 3)
    {
        printf("hu");
    }
    else if (n == 4)
    {
        printf("tu");
    }
    else if (n == 5)
    {
        printf("long");
    }
    else if (n == 6)
    {
        printf("she");
    }
    else if (n == 7)
    {
        printf("ma");
    }
    else if (n == 8)
    {
        printf("yang");
    }
    else if (n == 9)
    {
        printf("hou");
    }
    else if (n == 10)
    {
        printf("ji");
    }
    else if (n == 11)
    {
        printf("gou");
    }
    else if (n == 12)
    {
        printf("zhu");
    }
    return 0; 
}

MT1127 小码哥的属相

(1)题目

输入小码哥的生日年份(1900~2050),计算输出小码哥的属相生肖("rat", "ox", "tiger", "rabbit", "dragon", "snake", "horse", "sheep", "monkey", "rooster", "dog", "pig")。不考虑非法输入等特殊情况。


格式

输入格式:
输入整型


输出格式:
输出字符串

样例1

输入:
1900

输出:
rat

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    n = n % 12;
    if (n == 0)
    {
        printf("monkey");
    }
    else if (n == 1)
    {
        printf("rooster");
    }
    else if (n == 2)
    {
        printf("dog");
    }
    else if (n == 3)
    {
        printf("pig");
    }
    else if (n == 4)
    {
        printf("rat");
    }
    else if (n == 5)
    {
        printf("ox");
    }
    else if (n == 6)
    {
        printf("tiger");
    }
    else if (n == 7)
    {
        printf("rabbit");
    }
    else if (n == 8)
    {
        printf("dragon");
    }
    else if (n == 9)
    {
        printf("snake");
    }
    else if (n == 10)
    {
        printf("horse");
    }
    else if (n == 11)
    {
        printf("sheep");
    }
    return 0; 
}

MT1128 骰子的反面

(1)题目

小码哥抛出一个六面骰子。每个面上都印有一个数字,数字在1到6之间。输入正面的数字,输出对面的数字。 其他情况输出-1。


格式

输入格式:
输入为整型


输出格式:
输出为整型

样例1

输入:
6

输出:
1

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n == 1)
    {
        printf("6");
    }
    else if (n == 2)
    {
        printf("5");
    }
    else if (n == 3)
    {
        printf("4");
    }
    else if (n == 4)
    {
        printf("3");
    }
    else if (n == 5)
    {
        printf("2");
    }
    else if (n == 6)
    {
        printf("1");
    }
    else
    {
        printf("-1");
    }
    return 0; 
}

MT1129 小码哥玩骰子

(1)题目

小码哥抛出一个六面骰子。每个面上都印有一个数字,数字在1到6之间。输入正面的数字,请猜测对面的数字并输出两数之和。


格式

输入格式:
输入为整型


输出格式:
输出为整型

样例1

输入:
5

输出:
7

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n == 1)
    {
        printf("%d", 1+6);
    }
    else if (n == 2)
    {
        printf("%d", 2+5);
    }
    else if (n == 3)
    {
        printf("%d", 3+4);
    }
    else if (n == 4)
    {
        printf("%d", 3+4);
    }
    else if (n == 5)
    {
        printf("%d", 2+5);
    }
    else if (n == 6)
    {
        printf("%d", 6+1);
    }
    return 0; 
}

MT1130 骰子里面的数学

(1)题目

小码哥抛出一个六面骰子。每个面上都印有一个数字,数字在1到6之间。输入正面的数字,请猜测对面的数字并输出两数之差。


格式

输入格式:
输入为整型


输出格式:
输出为整型

样例1

输入:
5

输出:
3

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n == 1)
    {
        printf("%d", 1-6);
    }
    else if (n == 2)
    {
        printf("%d", 2-5);
    }
    else if (n == 3)
    {
        printf("%d", 3-4);
    }
    else if (n == 4)
    {
        printf("%d", 4-3);
    }
    else if (n == 5)
    {
        printf("%d", 5-2);
    }
    else if (n == 6)
    {
        printf("%d", 6-1);
    }
    return 0; 
}

MT1131 字符判断

(1)题目

输入一个字符,判断是数字字符、大写字母、小写字母、算术运算符、关系运算符、逻辑运算符,还是其他字符,分别输出"Number","Capital letter","Lowercase letter","Arithmetic operators", "Relational operators", "Logical operators", "Other character"。


格式

输入格式:
输入一个字符


输出格式:
输出字符

样例1

输入:
A

输出:
Capital letter

备注

算术运算符: + - * /
关系运算符: = > <
逻辑运算符: ! & | ^

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    char str = '0';
    scanf("%c", &str);
    if ((int)str >= 48 && (int)str <= 57)
    {
        printf("Number");
    }
    else if ((int)str >= 65 && (int)str <= 90)
    {
        printf("Capital letter");
    }
    else if ((int)str >= 97 && (int)str <= 122)
    {
        printf("Lowercase letter");
    }
    else if ((int)str >= 60 && (int)str <= 62)
    {
        printf("Relational operators");
    }
    else if (str == '+' || str == '-' || str == '*' || str == '/')
    {
        printf("Arithmetic operators");
    }
    else if (str == '!' || str == '&' || str == '|' || str == '^')
    {
        printf("Logical operators");
    }
    else
    {
        printf("Other character");
    }
    return 0; 
}

MT1132 人民币大写数字

(1)题目

输入一个金额,输出对应的人民币大写数字(零壹贰叁肆伍陆柒捌玖拾)。不考虑负数等不合理的输入。


格式

输入格式:
输入为整型(<100)


输出格式:
输出字符

样例1

输入:
35

输出:
叁拾伍元整

(2)参考代码

c 复制代码
#include<stdio.h>
void Capital(int n)
{
    if (n == 0)
    {
        printf("零");
    }
    else if (n == 1)
    {
        printf("壹");
    }
    else if (n == 2)
    {
        printf("贰");
    }
    else if (n == 3)
    {
        printf("叁");
    }
    else if (n == 4)
    {
        printf("肆");
    }
    else if (n == 5)
    {
        printf("伍");
    }
    else if (n == 6)
    {
        printf("陆");
    }
    else if (n == 7)
    {
        printf("柒");
    }
    else if (n == 8)
    {
        printf("捌");
    }
    else if (n == 9)
    {
        printf("玖");
    }
    else if (n == 10)
    {
        printf("拾");
    }
}
int main() 
{ 
    int num = 0;
    scanf("%d", &num);
    if (num <= 10)
    {
        Capital(num);
        printf("元整");
    }
    else
    {
        Capital(num/10);
        printf("拾");
        num = num % 10;
        if (num == 0)
        {
            printf("元整");
        }
        else
        {
            Capital(num);
            printf("元整");
        }
    }
    return 0; 
}

MT1133 小码哥打车

(1)题目

小码哥在缅因州打车,那里只有Yellow cab,5个迈(Mile)以内收费10美元,里程大于5个迈小于等于10个迈的部分每个迈收费2美元,里程大于10个迈的部分每个迈收费2.5美元。不考虑负数,0或者其他特殊情况。


格式

输入格式:
输入为整型


输出格式:
输出为实型,保留2位小数

样例1

输入:
5

输出:
10.00

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    double cost = 0;
    scanf("%d", &n);
    if (n <= 5)
    {
        cost = 10;
        printf("%.2lf", cost);
    }
    else if (n <= 10)
    {
        cost = 10 + 2 * (n - 5);
        printf("%.2lf", cost);
    }
    else
    {
        cost = 20 + 2.5 * (n - 10);
        printf("%.2lf", cost);
    }
    return 0; 
}

MT1134 简单计算

(1)题目

编写一个模拟简单计算器的程序,计算表达式:a op b的值,要求 a、op、b从盘输入。其中a、b(作除数时不能为0)为数值,op为运算符+、-、*、/。本题不考虑非法输入等特殊情况。


格式

输入格式:
输入数据和运算符


输出格式:
输出为实型

样例1

输入:
3+5

输出:
8.000000

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    double a, b;
    char op;
    scanf("%lf%c%lf", &a, &op, &b);

    if (op == '+')
    {
        printf("%lf\n", a + b);
    }
    else if (op == '-')
    {
        printf("%lf\n", a - b);
    }
    else if (op == '*')
    {
        printf("%lf\n", a * b);
    }
    else if (op == '/')
    {
        printf("%lf\n", a / b);
    }
    return 0; 
}

MT1135 时间转换

(1)题目

编写一个程序,输入24小时制的时间,然后以12小时的形式显示时间。不考虑负数或者其他特殊情况。注意不要把中午12:00显示为00:00,应该是12:0OPM。凌晨00:00则是12:00AM。


格式

输入格式: 
输入为整型,冒号分隔

输出格式: 
输出为整型,冒号分隔,以两位数的形式显示时间并加上后缀AM或者PM。

样例1

输入格式:
 8:7

输出格式: 
08:07AM

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int hour, minute;
    scanf("%d:%d", &hour, &minute);
    if (hour <= 12 && hour > 0)
    {
        if (hour == 12)
        {
            printf("%0*d:%0*dPM", 2, hour, 2, minute);
        }
        else
        {
            printf("%0*d:%0*dAM", 2, hour, 2, minute);
        }
    }
    else
    {
        if (hour == 0)
        {
            hour = 12;
            printf("%0*d:%0*dAM", 2, hour, 2, minute);
        }
        else
        {
            printf("%0*d:%0*dPM", 2, hour, 2, minute);
        }
    }
    return 0; 
}

MT1136 时间也能加

(1)题目

分两行输入两组时分秒,空格分隔,编写一个函数,把对应的时和时相加,分和分相加,秒和秒相加,输出结果。结果也是时分秒,要满足时间规律,比如秒的范围是0~59。不考虑不合理的输入等特殊情况。


格式

输入格式: 
分两行输入两组时分秒,空格分隔,整型。

输出格式: 
输出整型,空格分隔。

样例1

输入格式:
1 2 3
4 5 6

输出格式: 
5 7 9

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int a[3], b[3], c[3];
    for (int i=0;i<3;i++)
    {
        scanf("%d", &a[i]);
    }
    for (int i=0;i<3;i++)
    {
        scanf("%d", &b[i]);
    }
    for (int i=0;i<3;i++)
    {
        c[i] = a[i] + b[i];
        if (c[i] > 59)
        {
            c[i] = c[i] - 60;
            c[i-1] = c[i-1] + 1;
        }
    }
    for (int i=0;i<3;i++)
    {
        printf("%d ", c[i]);
    }
    return 0; 
}

MT1137 闰年

(1)题目

请编写一个简单程序,判断输入的年份是不是闰年。输入公元后的年份。


格式

输入格式: 
输入整型

输出格式: 
输出Y或者N

样例1

输入格式: 
2021

输出格式:
 N

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n % 4 == 0 && n % 100 != 0)
    {
        printf("Y");
    }
    else if (n % 400 == 0)
    {
        printf("Y");
    }
    else
    {
        printf("N");
    }
    return 0; 
}

MT1138 第几天

(1)题目

输入日期(YYYY-M-D),然后输出它是一年中的第几天。不考虑负数或者其他特殊情况。


格式

输入格式:
输入为整型


输出格式:
输出为整型

样例1

输入:
2013-6-17

输出:
168

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int a, b, c;
    scanf("%d-%d-%d", &a, &b, &c);
    if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0)
    {
        printf("%d\n", 30 * (b - 1) + b / 2 + c - 1);
    }
    else
    {
        if (b == 1)
        {
            printf("%d\n", 30 * (b - 1) + b / 2 + c);
        }
        else
        {
            printf("%d\n", 30 * (b - 1) + b / 2 + c - 2);
        }
        
    }
    return 0; 
}

MT1139 11或13

(1)题目

输入正整数N,判断它是否可被11或13整除,输出YES或者NO。


格式

输入格式:
输入正整数N


输出格式:
输出YES或者NO

样例1

输入:
13

输出:
YES

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if ((n % 11 == 0 || n % 13 == 0) && n != 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1140 数字7

(1)题目

输入一个整数N,判断它是不是整数7的和、差之类的。(比如某数等于7+7, 或者7-7,或者7-7-7+7+7...)是则输出YES否则或者NO。


格式

输入格式:
输入为整型


输出格式:
输出为YES或者NO

样例1

输入:
14

输出:
YES

(2)参考代码

c 复制代码
#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n % 7 == 0 || n == 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

相关推荐
猪猪虾的业余生活6 分钟前
Qt 驾校考试系统项目实现
开发语言·qt
香菇滑稽之谈8 分钟前
责任链模式的C++实现示例
开发语言·c++·设计模式·责任链模式
蜕变的土豆15 分钟前
二、重学C++—C语言核心
c语言·c++
LiDAR点云19 分钟前
Matlab中快速查找元素索引号
数据结构·算法·matlab
CYRUS_STUDIO27 分钟前
安卓逆向魔改版 Base64 算法还原
android·算法·逆向
风莫寻30 分钟前
【Troubleshot】Qt 长按按键 keyPressEvent keyReleaseEvent 自动重复问题
开发语言·qt
ZC·Shou30 分钟前
Rust 之一 基本环境搭建、各组件工具的文档、源码、配置
开发语言·rust·cargo·rustc·rustup·clippy·rustfmt
Hello.Reader31 分钟前
深入理解 Rust 中的模式匹配语法
开发语言·rust
最胖的小仙女36 分钟前
通过动态获取后端数据判断输入的值打小
开发语言·前端·javascript
阿波拉41 分钟前
AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas’问题解决
开发语言·python