请不要笑。用来适应环境的题目,自然比较简单些。 计算2个整数的和。这两个整数都在1到100之间。
输入只有一行,包括2个整数a, b。之间用一个空格分开。
输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
1 2
3
[基础问题]
#include
#include
using namespace std;
int a , b;
int main()
{
scanf("%d %d",&a,&b);
printf("%d",a+b);
return 0;
}
给定3个整数a、b、c,计算表达式(a+b)×c的值。
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,000 < a,b,c < 10,000)
输出一行,即表达式的值。
2 3 5
25
[信息学奥赛一本通][运算符和表达式]
#include
#include
using namespace std;
int a , b , c;
int main()
{
scanf("%d %d %d",&a,&b,&c);
printf("%d",(a + b) * c);
return 0;
}
给定3个整数a、b、c,计算表达式(a+b)/c的值。
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,000 < a,b,c < 10,000, c不等于0)
输出一行,即表达式的值。
1 1 3
0
[信息学奥赛一本通] [运算符和表达式]
#include
#include
using namespace std;
int a , b , c;
int main()
{
scanf("%d %d %d",&a,&b,&c);
printf("%d",(a + b) / c);
return 0;
}
给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。
一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。
一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
10 3
3 1
[信息学奥赛一本通][运算符和表达式]
#include
#include
using namespace std;
int a , b;
int main()
{
scanf("%d %d",&a,&b);
printf("%d %d",a / b , a % b);
return 0;
}
两个整数a和b分别作为分子和分母,既分数a/b,求它的浮点数值(双精度浮点数,保留小数点后9位)。
输入仅一行,包括两个整数a和b。
输出也仅一行,分数a/b 的浮点数值(双精度浮点数,保留小数点后9位)。
5 7
0.714285714
[信息学奥赛一本通] [运算符和表达式]
#include
#include
using namespace std;
int a , b;
int main()
{
scanf("%d %d",&a,&b);
printf("%.9lf",double(a) / double(b));
return 0;
}
甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
10433 60
0.575%
[信息学奥赛一本通] [常量和变量]
这里千万不要忘记有个%
#include
#include
using namespace std;
int a , b;
int main()
{
scanf("%d %d",&a,&b);
printf("%.3lf%%",((double)(b * 100) / (double)a));
return 0;
}
对于多项式f(x)=ax3+bx2+cx+d和给定的a,b,c,d,x,计算f(x)的值,保留到小数点后7位。
输入仅一行,包含5个实数,分别是x,及参数a、b、c、d的值,每个数都是绝对值不超过100的双精度浮点数。数与数之间以一个空格分开。
输出一个实数,即f(x)的值,保留到小数点后7位。
2.31 1.2 2 2 3
33.0838692
[信息学奥赛一本通] [常量和变量]
#include
#include
#include
using namespace std;
double a , b , c , d , x;
int main()
{
scanf("%lf %lf %lf %lf %lf",&x,&a,&b,&c,&d);
printf("%.7lf",(a * pow(x,3)) + (b * pow(x,2)) + (c * x) + d);
return 0;
}
利用公式 C=5×(F−32)÷9(其中C表示摄氏温度,F表示华氏温度)进行计算转化,输入华氏温度F,输出摄氏温度C,要求精确到小数点后5位。
输入一行,包含一个实数F,表示华氏温度。(F ≥ −459.67)
输出一行,包含一个实数,表示对应的摄氏温度,要求精确到小数点后5位。
41
5.00000
[信息学奥赛一本通] [常量和变量]
#include
#include
using namespace std;
double f;
int main()
{
scanf("%lf",&f);
printf("%.5lf",5 * (f - 32) / 9);
return 0;
}
题目描述
给出圆的半径,求圆的直径、周长和面积。输入圆的半径实数r,输出圆的直径、周长、面积,每个数保留小数点后4位。圆周率取值为3.14159。
输入包含一个实数r(0< r ≤ 10,000),表示圆的半径。
输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。
3.0
6.0000 18.8495 28.2743
[信息学奥赛一本通] [常量和变量]
#include
#include
#include
using namespace std;
double r;
const double pi = 3.14159;
int main()
{
scanf("%lf",&r);
printf("%.4lf %.4lf %.4lf",r * 2 , 2 * pi * r , pi * pow(r,2));
return 0;
}
对于阻值为 r1 和 r2 的电阻,其并联电阻阻值公式计算如下:
输入两个电阻阻抗大小,浮点型。输出并联之后的阻抗大小,结果保留小数点后2位。
两个电阻阻抗大小,浮点型,以一个空格分开。
并联之后的阻抗大小,结果保留小数点后2位。
1 2
0.67
[信息学奥赛一本通] [常量和变量]
#include
#include
using namespace std;
double r1 , r2;
int main()
{
scanf("%lf %lf",&r1,&r2);
printf("%.2lf",1 / ((1 / r1) + (1 / r2)));
return 0;
}
牛牛最近学习了C++入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩 × 20% + 小测成绩 × 30% + 期末考试成绩 × 50%
牛牛想知道,这门课程自己最终能得到多少分。
三个非负整数A、B、C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是100分。
一个整数,即牛牛这门课程的总成绩,满分也是100分。
100 100 80
90
输入样例#1:
100 100 80
输出样例#1:
90
输入样例#2:
60 90 80
输出样例#2:
79
【输入输出样例1说明】
牛牛的作业成绩是100分,小测成绩是100分,期末考试成绩是80分,总成绩是
100×20%+100×30%+80×50%=20+30+40=90
【输入输出样例2说明】
牛牛的作业成绩是60分,小测成绩是90分,期末考试成绩是80分,总成绩是
60×20%+90×30%+80×50%=79。
【数据说明】
对于30%数据,A=B=0。
对于另外30%的数据,A=B=100。
对于100%的数据,0≤A,B,C≤100且A、B、C都是10的整数倍。
【来源】
NOIP2017-普及组复赛第1题
[noip复赛] [基础问题]
#include
#include
using namespace std;
int a , b , c;
int main()
{
scanf("%d %d %d",&a,&b,&c);
printf("%.0lf",(a * 0.2) + (b * 0.3) +(c * 0.5));
return 0;
}
分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
(无)
一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。
(无)
(不提供)
[信息学奥赛一本通][标准数据类型]
#include
#include
using namespace std;
int a;
short b;
int main()
{
printf("%d %d",sizeof(a) , sizeof(b));
return 0;
}
分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
(无)
一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。
(无)
(不提供)
[信息学奥赛一本通][标准数据类型]
#include
#include
using namespace std;
float a;
double b;
int main()
{
printf("%d %d",sizeof(a) , sizeof(b));
return 0;
}
分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
(无)
一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。
(无)
(不提供)
[信息学奥赛一本通] [标准数据类型]
#include
#include
using namespace std;
bool a;
char b;
int main()
{
printf("%d %d",sizeof(a) , sizeof(b));
return 0;
}
输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以使用强制类型转换来实现。
一个单精度浮点数。
一个整数,即向零舍入到整数的结果。
2.3
2
[信息学奥赛一本通][标准数据类型]
#include
#include
using namespace std;
double a;
int main()
{
scanf("%lf",&a);
printf("%d",(int)a);
return 0;
}
从键盘读入一个字符,请计算并输出该字符的ascii码。
比如:'A’的ascii码输出是65,'a’的ascii码输出是97,'0’的ascii码输出是48。
一个字符。
一个整数,代表字符对应的ascii码。
A
65
[字符型]
#include
#include
using namespace std;
char a;
int main()
{
scanf("%c",&a);
printf("%d",(int)a);
return 0;
}
从键盘读入一个整数(ascii码),请计算并输出该ascii码对应的字符。
比如:ascii码65对应的字符是’A’,97对应的字符是’a’,48对应的字符是’0’。
一个整数(值在ascii码表的范围内)
该ascii码对应的字符
65
A
[字符型]
#include
#include
using namespace std;
int a;
int main()
{
scanf("%d",&a);
printf("%c",(char)a);
return 0;
}
将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?
一个整型范围内的整数,即初始时整型变量的值。
一个整数,经过上述过程后得到的结果。
3
1
[信息学奥赛一本通] [标准数据类型]
#include
#include
using namespace std;
int a;
bool b;
int main()
{
scanf("%d",&a);
b = a;
a = b;
printf("%d",a);
return 0;
}
还记得我们曾经输出过的“Hello, World!”吗?它虽然不是本章所涉及的基本数据类型的数据,但我们同样可以用sizeof函数获得它所占用的空间大小。
(无)
一个整数,即“Hello, World!”的大小。
(无)
(不提供)
[信息学奥赛一本通] [标准数据类型]
#include
#include
using namespace std;
int main()
{
printf("%d",sizeof("Hello, World!"));
return 0;
}
读入一个单精度浮点数,保留3位小数输出这个浮点数。
只有一行,一个单精度浮点数。
也只有一行,读入的单精度浮点数。
12.34521
12.345
[信息学奥赛一本通][数据输入输出]
#include
#include
using namespace std;
float a;
int main()
{
scanf("%f",&a);
printf("%.3f",a);
return 0;
}
读入一个双精度浮点数,保留12位小数,输出这个浮点数。
只有一行,一个双精度浮点数。
也只有一行,保留12位小数的浮点数。
3.1415926535798932
3.141592653580
[信息学奥赛一本通] [数据输入输出]
#include
#include
using namespace std;
double a;
int main()
{
scanf("%lf",&a);
printf("%.12lf",a);
return 0;
}
读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。
第一行是一个字符;
第二行是一个整数;
第三行是一个单精度浮点数;
第四行是一个双精度浮点数。
输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
a
12
2.3
3.2
a 12 2.300000 3.200000
[信息学奥赛一本通] [数据输入输出]
#include
#include
using namespace std;
char a;
int b;
float c;
double d;
int main()
{
scanf("%c",&a);
scanf("%d",&b);
scanf("%f",&c);
scanf("%lf",&d);
printf("%c %d %f %lf",a,b,c,d);
return 0;
}
读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。
一个双精度浮点数。
第一行是按“%f”输出的双精度浮点数;
第二行是按“%f”保留5位小数输出的双精度浮点数;
第三行是按“%e”输出的双精度浮点数;
第四行是按“%g”输出的双精度浮点数。
12.3456789
12.345679
12.34568
1.234568e+001
12.3457
[信息学奥赛一本通][数据输入输出]
#include
#include
using namespace std;
double a;
int main()
{
scanf("%lf",&a);
printf("%f\n%.5f\n%e\n%g",a,a,a,a);
return 0;
}
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。
输入只有一行, 包含一个字符。
该字符构成的菱形。
*
*
***
*****
***
*
[信息学奥赛一本通] [数据输入输出]
#include
#include
using namespace std;
char a;
int main()
{
scanf("%c",&a);
printf(" %c \n",a);
printf(" %c%c%c \n",a,a,a);
printf("%c%c%c%c%c\n",a,a,a,a,a);
printf(" %c%c%c \n",a,a,a);
printf(" %c \n",a);
return 0;
}
计算两个双精度浮点数a和b的相除的余数,a和b都是双精度浮点数。这里余数(r)的定义是:a = k × b + r,其中k是整数,0 ≤ r < b。
输入仅一行,包括两个双精度浮点数a和b。
输出也仅一行,a ÷ b的余数。
73.263 0.9973
0.4601
[信息学奥赛一本通] [顺序结构实例]
#include
#include
#include
using namespace std;
double a, b;
int main()
{
scanf("%lf %lf", &a, &b);
// fmod 函数来计算浮点数的余数
cout << fmod(a,b);
//int k = (int)(a / b);
//cout << a - k * b;
return 0;
}
对于半径为 r 的球,其体积的计算公式为V=(4/3)*πr3,这里取 π=3.14。现给定 r,即球半径,类型为double,求球的体积V,保留到小数点后2位。
输入为一个不超过 100 的非负实数,即球半径,类型为double。
输出一个实数,即球的体积,保留到小数点后 2 位。
4
267.95
[信息学奥赛一本通] [顺序结构程序设计]
#include
#include
#include
using namespace std;
const double pi = 3.14;
double r;
int main()
{
scanf("%lf",&r);
printf("%.2lf",(4.0 / 3) * (pi * pow(r,3)));
return 0;
}
输入一个三位自然数,然后把这个数的百位数与个位数对调,输出对调后的数
输入一行,只有一个整数x(100<=x<=999)。
输出只有一行,包括1个整数。
123
321
[基础问题]
#include
#include
using namespace std;
int a;
int main()
{
scanf("%d",&a);
int ge = a % 10;
int shi = a % 100 / 10;
int bai = a / 100;
a = ge * 100 + shi * 10 + bai;
printf("%d",a);
return 0;
}
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出一行,包含一个整数,表示大象至少要喝水的桶数。
23 11
3
[信息学奥赛一本通][顺序结构实例]
#include
#include
#include
using namespace std;
int h , r;
int main()
{
scanf("%d %d",&h,&r);
double total_capacity = 20.0 * 1000.0; // 将总容量转换为毫升
double bucket_volume = M_PI * pow(r, 2) * h; // 计算小圆桶的容积
int minimum_buckets = ceil(total_capacity / bucket_volume); // 计算至少需要的桶数
printf("%d", minimum_buckets);
return 0;
}
已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度,保留到小数点后3位。
第一行是两个实数Xa,Ya,即A的坐标。
第二行是两个实数Xb,Yb,即B的坐标。
输入中所有实数的绝对值均不超过10000。
一个实数,即线段AB的长度,保留到小数点后3位。
1 1
2 2
1.414
[信息学奥赛一本通] [顺序结构实例]
#include
#include
#include
using namespace std;
double x1 , y11 , x2 , y2;
int main()
{
scanf("%lf %lf",&x1,&y11);
scanf("%lf %lf",&x2,&y2);
printf("%.3lf",sqrt(pow(x2-x1,2) + pow(y2-y11,2)));
return 0;
}
平面上有一个三角形,它的三个顶点坐标分别为(x1,y1),(x2,y2),(x3,y3),那么请问这个三角形的面积是多少,精确到小数点后两位。
输入仅一行,包括6个单精度浮点数,分别对应x1,y1,x2,y2,x3,y3。
输出也是一行,输出三角形的面积,精确到小数点后两位。
0 0 4 0 0 3
6.00
[信息学奥赛一本通][顺序结构实例]
#include
#include
int main()
{
double x1,x2,y1,y2,x3,y3;
double a,b,c,p;
scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
p=1.0/2.0*(a+b+c);
printf("%.2lf\n",sqrt(p*(p-a)*(p-b)*(p-c)));
return 0;
}
给出一个等差数列的前两项a1,a2,求第n项是多少。
一行,包含三个整数a1,a2,n。−100 ≤ a1,a2 ≤ 100,0 < n ≤ 1000。
一个整数,即第nn项的值
1 4 100
298
[信息学奥赛一本通][顺序结构实例]
#include
#include
using namespace std;
int a1 , a2 , n , sum;
int main()
{
scanf("%d %d %d",&a1,&a2,&n);
int x = a2 - a1;
for(int i = 3 ; i <= n ; i++){
sum += x;
}
printf("%d",sum + a2);
return 0;
}
按照ab=的格式输入算式,通过计算输出ab的结果。
输入中包括一个表达式,如:a*b= a和b都是int类型的正整数。
结果只有一个正整数,整数在long long范围内。
100*200=
20000
[字符串]
#include
#include
using namespace std;
char c , d ;
int a , b;
int main()
{
scanf("%d%c%d%c",&a,&c,&b,&d);
printf("%d",a * b);
return 0;
}
给定非负整数n,求2n的值,即2的n次方。
一个整数n。0 ≤ n < 31。
一个整数,即2的n次方。
3
8
[信息学奥赛一本通] [顺序结构实例]
#include
#include
#include
using namespace std;
int n;
int main()
{
scanf("%d",&n);
printf("%d",(int)pow(2,n));
return 0;
}
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入仅一行,包括n,x和y(均为整数)。
输出也仅一行,剩下的苹果个数。
10 4 9
7
[信息学奥赛一本通] [顺序结构实例]
这里要多考虑一下就是不满足的情况
#include
#include
#include
using namespace std;
int n , x , y;
int main()
{
scanf("%d %d %d",&n,&x,&y);
//这里要考虑一下不满足时要减一
if(y < x)
printf("%d",n - 1);
else{
int a = y / x != 0 ? (y / x) + 1 : y / x ;
printf("%d",n - a);
}
return 0;
}