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


目录

MT1101 带参数的宏II

(1)题目 请编写一个简单程序,把f(x)=x*(x-1)定义成带参数的宏,从键盘输入a,b,将a+b的和作为宏实参计算并输出结果。


格式

1
2
3
4
5
6
输入格式:
输入整型,空格分隔。


输出格式:
输出为实型

样例1

1
2
3
4
5
输入:
3 5

输出:
56.000000

(2)参考代码

1
2
3
4
5
6
7
8
9
#include<stdio.h>
#define f(x) ((x)*((x)-1))
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%lf\n", (double)f(a+b));
    return 0; 
}

MT1102 长方体

(1)题目 将长方体体积计算公式定义为宏。在主函数中输入长方体长、宽、高求体积。不考虑不合理的输入或是溢出等特殊情况。


格式

1
2
3
4
5
6
输入格式:
输入为实型(正数),空格分隔。


输出格式:
输出为实型

样例1

1
2
3
4
5
输入:
3 4 5

输出:
60.000000

(2)参考代码

1
2
3
4
5
6
7
8
9
#include<stdio.h>
#define VOLUME(x, y, z) ((x)*(y)*(z))
int main() 
{
    double x, y, z;
    scanf("%lf %lf %lf", &x, &y, &z);
    printf("%lf\n", VOLUME(x, y, z));
    return 0; 
}

MT1103 球体积

(1)题目 将球体积计算公式定义为宏。在主函数中输入半径求体积。


格式

1
2
3
4
5
6
输入格式:
输入为实型 


输出格式:
输出为实型

样例1

1
2
3
4
5
输入:
3.5

输出:
179.594228

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include<stdio.h>
#define PI 3.14159
#define VOLUME(r) (4.0/3.0*PI*(r)*(r)*(r))
int main() 
{
    double r;
    scanf("%lf", &r);
    printf("%lf\n", VOLUME(r));
    return 0; 
}

MT1104 三角形

(1)题目

在这里插入图片描述


格式

1
2
3
4
5
输入格式:
 输入为实型

输出格式: 
输出为实型

样例1

1
2
3
4
5
输入格式: 
3 4 5

输出格式: 
6.000000

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include <math.h>
#define Area(a, b ,c, s) (sqrt((s)*((s)-(a))*((s)-(b))*((s)-(c))))
int main() 
{ 
    double a, b, c, s;
    scanf("%lf %lf %lf", &a, &b, &c);
    s = (a + b + c) / 2;
    if (a+b>c && a+c>b && b+c>a)
    {
        printf("%lf", Area(a, b, c, s));
    }
    else
    {
        printf("%d", -1);
    }
    return 0; 
}

MT1105 英寸英尺英里

(1)题目 定义关于长度的宏,英寸/厘米、英尺/米、英里/公里,计算英制与公制单位转换,在主函数中输入数据输出计算结果。假定1英寸=2.54厘米、1英尺=0.31米、1英里=1.61公里。


格式

1
2
3
4
5
6
输入格式:
输入英寸、英尺、英里为实型,空格分隔。


输出格式:
输出厘米、米、公里为实型,空格分隔。保留2位小数。

样例1

1
2
3
4
5
输入:
1 1 1

输出:
2.54 0.31 1.61 

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#include<stdio.h>
#define INCH_cm(x) ((x) * 2.54)
#define FEET_m(x) ((x) * 0.31)
#define MILE_km(x) ((x) * 1.61)
int main() 
{
    double a, b, c;
    scanf("%lf %lf %lf", &a, &b, &c);
    printf("%.2lf %.2lf %.2lf\n", INCH_cm(a), FEET_m(b), MILE_km(c));
    return 0; 
}

MT1106 盎司磅

(1)题目 定义关于重量的宏,盎司/克、磅/公斤,计算美制单位与公制转换,在主函数中输入数据输出计算结果。


格式

1
2
3
4
5
输入格式:
输入盎司、磅为实型,空格分隔

输出格式:
输出克、公斤实型,空格分隔。保留2位小数。

样例1

1
2
3
4
5
输入格式:
1 1

输出格式: 
28.35 0.45

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include<stdio.h>
#define oz_g(oz) ((oz)*28.35)
#define lb_kg(lb) ((lb)*0.45)
int main() 
{ 
    double oz, lb;
    scanf("%lf %lf", &oz, &lb);
    printf("%.2lf %.2lf", oz_g(oz), lb_kg(lb));
    return 0; 
}

MT1107 加仑/升

(1)题目 定义关于容量的宏,加仑/升,计算单位转换,在主函数中输入数据输出计算结果。


格式

1
2
3
4
5
6
输入格式:
输入加仑为实型。


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

样例1

1
2
3
4
5
输入:
1

输出:
3.79 

(2)参考代码

1
2
3
4
5
6
7
8
9
#include<stdio.h>
#define GALLON_LITRE(x) ((x) * 3.79)
int main() 
{
    double x;
    scanf("%lf", &x);
    printf("%.2lf\n", GALLON_LITRE(x));
    return 0; 
}

MT1108 保留小数

(1)题目 将一个浮点型K数保留n(1≤n≤5)位小数(四舍五入)的算法定义为宏。在主函数中输入数据输出计算结果。


格式

1
2
3
4
5
6
输入格式:
输入k为实型,n为整数,空格分隔。


输出格式:
输出为实型

样例1

1
2
3
4
5
输入:
3.1415926 3 

输出:
3.142

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#include<stdio.h>
#define ROUND_UP(k, n) printf("%.*lf", (n), (k))
int main() 
{
    double k;
    int n;
    scanf("%lf %d", &k, &n);
    ROUND_UP(k, n);
    return 0; 
}

MT1109 和10相比

(1)题目 请编写一个简单程序,输入一个整数,和10比较,输出比较结果


格式

1
2
3
4
5
6
输入格式:
输入整型 


输出格式:
输出…大于或者等于或者小于10 

样例1

1
2
3
4
5
输入:
1

输出:
1小于10 

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
int main() 
{
    int x;
    scanf("%d", &x);
    if (x > 10)
    {
        printf("%d大于10", x);
    }
    else if (x < 10)
    {
        printf("%d小于10", x);
    }
    else
    {
        printf("%d等于10", x);
    }
    return 0; 
}

MT1110 最小值

(1)题目 输入a,b两个整数,输出他们之间的最小值


格式

1
2
3
4
5
6
输入格式:
输入2个整数用空格分隔


输出格式:
输出为整型

样例1

1
2
3
4
5
输入:
2 8 

输出:
2

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include<stdio.h>
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    if (a > b)
    {
        printf("%d", b);
    }
    else
    {
        printf("%d", a);
    }
    return 0; 
}

MT1111最大值

(1)题目 输入a,b两个整数,输出他们之间的最大值


格式

1
2
3
4
5
6
输入格式:
输入2个整数用空格分隔


输出格式:
输出为整型

样例1

1
2
3
4
5
输入:
2 8

输出:
8

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include<stdio.h>
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    if (a > b)
    {
        printf("%d", a);
    }
    else
    {
        printf("%d", b);
    }
    return 0; 
}

MT1112 中庸之道

(1)题目 请编写一个简单程序,输入3个整数,比较他们的大小,输出中间的那个数


格式

1
2
3
4
5
6
输入格式:
输入整型,空格分隔


输出格式:
输出整型 

样例1

1
2
3
4
5
输入:
1 5 3

输出:
3

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
int main() 
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if ((a > b && b > c) || (a < b && b < c))
    {
        printf("%d", b);
    }
    else if((c > a && a > b) || (c < a && a < b))
    {
        printf("%d", a);
    }
    else
    {
        printf("%d", c);
    }
    return 0; 
}

MT1113 三人同行

(1)题目 三人同行,输入他们的年龄,输出最年长者的年龄


格式

1
2
3
4
5
输入格式: 
输入整型,空格分隔

输出格式: 
输出整型

样例1

1
2
3
4
5
输入格式:
 1 66 70

输出格式: 
70

(2)参考代码

1
2
3
4
5
6
7
8
9
#include<stdio.h>
#define max(x, y) ((x)>(y)?(x):(y))
int main() 
{ 
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%d", max(max(a, b), max(a, c)));
    return 0; 
}

MT1114 偶数还是奇数

(1)题目 请编写一个简单程序,检查一个正整数是偶数还是奇数,如果是偶数输出Y,否则输出N。(不考虑0)


格式

1
2
3
4
5
6
输入格式:
输入整型 


输出格式:
输出Y或者N

样例1

1
2
3
4
5
输入:
4

输出:
Y

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include<stdio.h>
int main() 
{
    int x;
    scanf("%d", &x);
    if (x % 2 == 0)
    {
        printf("Y");
    }
    else
    {
        printf("N");
    }
    return 0; 
}

MT1115 小于m的偶数

(1)题目 判断n是否为小于m的偶数,不考虑0,负数或者其他特殊情况。


格式

1
2
3
4
5
6
输入格式:
输入为整型n、m,空格分隔


输出格式:
是则输出YES否则输出NO

样例1

1
2
3
4
5
输入:
3 6

输出:
NO

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include<stdio.h>
int main() 
{
    int n, m;
    scanf("%d %d", &n, &m);
    if (n < m && n % 2 == 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1116 正整数

(1)题目 判断n是否为两位数的正整数


格式

1
2
3
4
5
6
输入格式:
输入为整型n


输出格式:
是则输出YES否则输出NO

样例1

1
2
3
4
5
输入:
11

输出:
YES

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
int main() 
{
    int x;
    scanf("%d", &x);
    if ((x >= 10) && (x <= 99))
    {
        if (x >= 0)
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1117 两个负数

(1)题目 判断x、y、z中是否有两个负数。


格式

1
2
3
4
5
6
输入格式:
输入为整型x、y、z,空格分隔


输出格式:
是则输出YES否则输出NO

样例1

1
2
3
4
5
输入:
1 2 3

输出:
NO

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include<stdio.h>
int main() 
{
    int x, y, z;
    scanf("%d %d %d", &x, &y, &z);
    if ((x<0 && y<0) || (x<0 && z<0) || (z<0 && y<0))
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1118 等差数列

(1)题目 判断a、b、c是否为一个等差数列中的连续三项。


格式

1
2
3
4
5
输入格式: 
输入为整型a、b、c,空格分隔

输出格式: 
是则输出YES否则输出NO

样例1

1
2
3
4
5
输入格式: 
1 2 3

输出格式: 
YES

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include<stdio.h>
int main() 
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if ((c-b) == (b-a))
    {
        printf("YES\n");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1119 大小写的转换

(1)题目 请编写一个简单程序,实现输入字符大小写的转换。其他非法输入(非字母的输入)则原样输出。


格式

1
2
3
4
5
6
输入格式:
输入字符型 


输出格式:
输出字符型 

样例1

1
2
3
4
5
输入:
A

输出:
a

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<stdio.h>
#include<ctype.h>
int main() 
{
    char str;
    scanf("%c", &str);
    if (isalpha(str))
    {
        if (str>=65&&str<=90)
        {
            str += 32;
            printf("%c", str);
        }
        else
        {
            str -= 32;
            printf("%c", str);
        }
    }
    else
    {
        printf("%c", str);
    }
    return 0; 
}

MT1120 老师的评语

(1)题目 请编写一个简单程序,输入学生成绩等级ABCD,输出相应的评语“Excellent” 、 “Well done" 、 “You passed"、“Better luck nexttime"。非法输入时候则输出“Invalid grade"


格式

1
2
3
4
5
输入格式: 
输入字符型

输出格式: 
输入字符评语

样例1

1
2
3
4
5
输入格式:
 A

输出格式: 
Excellent

(2)参考代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<stdio.h>
int main() 
{ 
    char level;
    scanf("%c", &level);
    if (level == 'A')
    { 
        printf("Excellent");
    }
    else if (level == 'B')
    {
        printf("Well done");
    }
    else if (level == 'C')
    {
        printf("You passed");
    }
    else if (level == 'D')
    {
        printf("Better luck next time");
    }
    else
    {
        printf("Invalid grade");    
    }
    return 0; 
}