算法竞赛入门【码蹄集新手村600题】(MT1001-1020)
- 目录
- MT1001 程序设计入门
- MT1002 输入和输出整型数据
- MT1003 整数运算
- MT1004 求余
- MT1005 输入和输出实型数据
- MT1006 实型数运算
- MT1007 平均分
- MT1008 圆球等的相关运算
- MT1009 公式计算
- MT1010 输入和输出字符型数据
- MT1011 字符和整数
- MT1012 各种类型长
- MT1013 关键字long
- MT1014 日期
- MT1015 输入分隔符
- MT1016 宽度与对齐
- MT1017 左右对齐
- MT1018 输入宽度
- MT1019 宽度精度
- MT1020 %s格式符
目录
MT1001 程序设计入门
(1)题目
欢迎来到程序设计的世界,请编写一个简单程序,输出2行字符,第一行为“This is my first program!”,第二行为“Coding is fun!”
格式
输入格式:
无
输出格式:
第一行为“This is my first program!”,第二行为“Coding is fun!”
样例1
输入:
无
输出:
This is my first program!
Coding is fun!
(2)参考代码
#include<stdio.h>
int main()
{
printf("This is my first program!\nCoding is fun!");
return 0;
}
MT1002 输入和输出整型数据
(1)题目
请编写一个简单程序,用户输入一个整数存储在变量中,并输出在屏幕上。
格式
输入格式:
一个整型数据
输出格式:
输出You entered:刚才输入的整型数据
样例1
输入:
3
输出:
You entered:3
(2)参考代码
#include<stdio.h>
int main()
{
int num;
scanf("%d", &num);
printf("You entered:%d", num);
return 0;
}
MT1003 整数运算
(1)题目
请编写一个简单程序,用户输入2个整型数据存储在变量中,并输出他们的和与差。
格式
输入格式:
2个整型数据,用逗号分隔
输出格式:
输出分两行,分别输出他们的和与差
样例1
输入:
3,5
输出:
3+5=8
3-5=-2
(2)参考代码
#include<stdio.h>
int main()
{
int a, b;
scanf("%d,%d", &a, &b);
printf("%d+%d=%d\n", a, b, a+b);
printf("%d-%d=%d", a, b, a-b);
return 0;
}
MT1004 求余
(1)题目
请编写一个简单程序,用户输入2组整型数据存储在变量中,并输出两组数相除的余数。(不考虑除数为0)
格式
输入格式:
输入2组整型数据,用空格分隔
输出格式:
输出分两行,分别输出两组数相除的余数
样例1
输入格式:
8 2
-9 7
输出格式:
8%2=0
-9%7=-2
(2)参考代码
#include<stdio.h>
int main()
{
int a, b, x, y;
scanf("%d %d", &a, &b);
scanf("%d %d", &x, &y);
printf("%d%%%d=%d\n", a, b, a%b);
printf("%d%%%d=%d\n", x, y, x%y);
return 0;
}
MT1005 输入和输出实型数据
(1)题目
请编写一个简单程序,用户输入一个float型数据和一个double型数据,存储在变量中,并输出在屏幕上。
格式
输入格式:
第一个是float型数据,第二个是double型数据,用空格分隔
输出格式:
输出You entered:… and …(…处依序输出刚才输入的数据),第一个float型数据保留2位小数,第二个double型数据保留3位小数
样例1
输入格式:
3.1234 4.5
输出格式:
You entered:3.12 and 4.500
(2)参考代码
#include<stdio.h>
int main()
{
float a;
double b;
scanf("%f %lf", &a, &b);
printf("You entered:%.2f and %.3lf", a, b);
return 0;
}
MT1006 实型数运算
(1)题目
请编写一个简单程序,用户输入2个实型数据存储在变量中,并输出他们的乘积与商。(本题不考虑除数为0的情况)
格式
输入格式:
2个实型数据,用空格分隔
输出格式:
输出分两行,分别输出他们的乘积与商
样例1
输入:
3.1 4.2
输出:
3.100000*4.200000=13.020000
3.100000/4.200000=0.738095
(2)参考代码
#include<stdio.h>
int main()
{
double a, b;
scanf("%lf %lf", &a, &b);
printf("%lf*%lf=%lf\n", a, b, a*b);
printf("%lf/%lf=%lf", a, b, a/b);
return 0;
}
MT1007 平均分
(1)题目
输入一名学生的C++、python和C语言成绩,输出总分和和平均分。不考虑不合理的输入或是溢出等特殊情况。
格式
输入格式:
输入为实型,空格分隔
输出格式:
输出为实型,保留6位小数
样例1
输入:
95 87.5 66
输出:
248.500000
82.833333
(2)参考代码
#include<stdio.h>
int main()
{
double c_plus, python, c;
scanf("%lf %lf %lf", &c_plus, &python, &c);
double sum = c_plus + python + c;
double ave = sum / 3;
printf("%.6lf\n%.6lf", sum, ave);
return 0;
}
MT1008 圆球等的相关运算
(1)题目
请编写一个简单程序,输入半径和高,输出圆周长,圆面积,球面积,球体积,圆柱体积。(PI = 3.1415926)
格式
输入格式:
输入为double型
输出格式:
分行输出,保留2位小数
样例1
输入:
1.5 3
输出:
9.42
7.07
28.27
14.14
21.21
(2)参考代码
#include<stdio.h>
int main()
{
double PI = 3.1415926;
double radius, high;
scanf("%lf %lf", &radius, &high);
printf("%.2lf\n%.2lf\n%.2lf\n%.2lf\n%.2lf", 2*PI*radius, PI*radius*radius, 4*PI*radius*radius, 4.0/3.0*PI*radius*radius*radius, PI*radius*radius*high);
return 0;
}
MT1009 公式计算
(1)题目
计算公式
(1/2)∗(a∗x+(a+x)/(4∗a))
格式
输入格式:
输入为整型x,a,空格分隔
输出格式:
输出为实型,保留2位小数
样例1
输入:
1 1
输出:
0.75
(2)参考代码
#include<stdio.h>
int main()
{
double x, a, result;
scanf("%lf %lf", &x, &a);
result = (1.0/2.0) * (a*x+(a+x)/(4.0*a));
printf("%.2lf", result);
return 0;
}
MT1010 输入和输出字符型数据
(1)题目
请编写一个简单程序,用户输入2个的字符型数据存储在变量中,并分别以字符形式和整数形式输出在屏幕上。
格式
输入格式:
2个的字符型数据,用逗号分隔
输出格式:
输出两行The ASCII code of… is … (…处依次输出刚才输入的数据字符形式和整数形式)
样例1
输入:
A,B
输出:
The ASCII code of A is 65
The ASCII code of B is 66
(2)参考代码
#include<stdio.h>
int main()
{
char character1, character2;
scanf("%c,%c", &character1, &character2);
printf("The ASCII code of %c is %d\n", character1, character1);
printf("The ASCII code of %c is %d ", character2, character2);
return 0;
}
MT1011 字符和整数
(1)题目
输出X、65的字符、十进制数据形式
格式
输入格式:
无
输出格式:
输出字符、十进制整数,空格分隔
样例1
输入:
无
输出:
X 88
A 65
(2)参考代码
#include<stdio.h>
int main()
{
char character = 'X';
int integer = 65;
printf("%c %d\n%c %d", character, character, integer, integer);
return 0;
}
MT1012 各种类型长
(1)题目
请编写一个简单程序,输出int、float、double和char的大小。
格式
输入格式:
无
输出格式:
输出分4行,分别输出int、float、double和char的大小
样例1
输入:
无
输出:
Size of int: 4 bytes
Size of float: 4 bytes
Size of double: 8 bytes
Size of char: 1 byte
(2)参考代码
#include<stdio.h>
int main()
{
printf("Size of int: %d bytes\n", sizeof(int));
printf("Size of float: %d bytes\n", sizeof(float));
printf("Size of double: %d bytes\n", sizeof(double));
printf("Size of char: %d byte\n", sizeof(char));
return 0;
}
MT1013 关键字long
(1)题目
请编写一个简单程序,输出int、long int、long long int、double和long double的大小。
格式
输入格式:
无
输出格式:
输出分5行,分别输出int、long int、long long int、double和long double的大小
样例1
输入:
无
输出:
Size of int = 4 bytes
Size of long int = 8 bytes
Size of long long int = 8 bytes
Size of double = 8 bytes
(2)参考代码
#include<stdio.h>
int main()
{
printf("Size of int = %d bytes\n", sizeof(int));
printf("Size of long int = %d bytes\n", sizeof(long int));
printf("Size of long long int = %d bytes\n", sizeof(long long int));
printf("Size of double = %d bytes\n", sizeof(double));
printf("Size of long double = %d bytes\n", sizeof(long double));
return 0;
}
MT1014 日期
(1)题目
编写一个程序,以月/日/年(mm/dd/yyyy)的形式输入日期(其中月,日为1-2位整数,年为1-4位整数),然后以yyyymmdd的形式显示(其中月,日为2位整数,年为4位整数)。不考虑不合理的输入或是溢出等特殊情况。
格式
输入格式:
输入为整型
输出格式:
输出为整型
样例1
输入格式:
4/1/2019
输出格式:
20190401
(2)参考代码
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d/%d/%d", &a, &b, &c);
printf("%0*d%0*d%0*d",4, c, 2, a, 2, b);
return 0;
}
MT1015 输入分隔符
(1)题目
输入“a=22,b=b,c=14,d=d”给变量a、b、c、d,然后再输出他们。
格式
输入格式:
a=22,b=b,c=14,d=d
输出格式:
空格分隔
样例1
输入:
a=22,b=b,c=14,d=d
输出:
22 b 14 d
(2)参考代码
#include<stdio.h>
int main()
{
int a, c;
char b, d;
scanf("a=%d,b=%c,c=%d,d=%c", &a, &b, &c, &d);
printf("%d %c %d %c", a, b, c, d);
return 0;
}
MT1016 宽度与对齐
(1)题目
输出455、-123、987654,宽度为5,分别左对齐和右对齐
格式
输入格式:
无
输出格式:
输出为整型,空格分隔。每个数的输出占一行
样例1
输入:
无
输出:
455 455
-123 -123
987654 987654
(2)参考代码
#include<stdio.h>
int main()
{
int a = 455;
int b = -123;
long int c = 987654;
printf("%-5d %5d\n", a, a);
printf("%-5d %5d\n", b, b);
printf("%-5d %5d\n", c, c);
return 0;
}
MT1017 左右对齐
(1)题目
输出3.1415926、22.3456,宽度为14,精度为6,分别左对齐和右对齐。
格式
输入格式:
无
输出格式:
输出为实型,空格分隔。每个数的输出占一行。
样例1
输入:
无
输出:
3.141593 3.141593
22.345600 22.345600
(2)参考代码
#include<stdio.h>
int main()
{
double a = 3.1415926;
double b = 22.3456;
printf("%-14.6lf %14.6lf\n", a, a);
printf("%-14.6lf %14.6lf\n", b, b);
return 0;
}
MT1018 输入宽度
(1)题目
输入123456789给变量a1、a2、a3,宽度为3,然后输出a1、a2、a3,空格分隔。
格式
输入格式:
123456789
输出格式:
输出为整型,空格分隔。
样例1
输入:
123456789
复制
输出:
123 456 789
(2)参考代码
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%3d%3d%3d", &a, &b, &c);
printf("%d %d %d\n", a, b, c);
return 0;
}
MT1019 宽度精度
(1)题目
输出18.16054、17.676767,宽度和精度由输入决定,右对齐。
格式
输入格式:
输入为宽度和精度整型,空格分隔。
输出格式:
输出为实型,空格分隔。
样例1
输入格式:
6 3
输出格式:
18.161 17.677
(2)参考代码
#include<stdio.h>
int main()
{
int m, n;
scanf("%d %d", &m, &n);
printf("%*.*lf %*.*lf", m, n, 18.16054, m, n, 17.676767);
return 0;
}
MT1020 %s格式符
(1)题目
输入字符串,然后输出前3个字符,要求占6列,右对齐。
格式
输入格式:
输入字符串
输出格式:
输出字符串
样例1
输入:
Wendy
输出:
Wen
(2)参考代码
#include<stdio.h>
int main()
{
char arr[10];
// scanf("%s", &arr);
gets(arr);
printf("%6.3s", arr);
return 0;
}