1.3编程基础之算术表达式与顺序执行

本文档集合了多个编程基础题目,涵盖了从简单的加法运算到复杂的数学计算、数据处理和算法应用,如A+B问题、乘法计算、除法运算、分数计算、多项式求值、温度转换、几何计算、电阻并联、浮点数操作、球体体积、反向输出数字、大象喝水问题、苹果与虫子问题、线段长度、三角形面积、等差数列、乘法问题以及指数计算等,旨在通过实例介绍编程基本操作和问题解决技巧。
摘要由CSDN通过智能技术生成

01:A+B问题

描述
在大部分的在线题库中,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。
A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。
现在请你解决这一问题。
输入
一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。
输出
一个整数,即A+B的值。保证结果在整型范围内。
样例输入
1 2
样例输出
3

#include<iostream>
using namespace std;
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	printf("%d",a+b);
    return 0;
}

02:计算(a+b)*c的值

描述
给定3个整数a、b、c,计算表达式(a+b)*c的值。
输入
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。
(-10,000 < a,b,c < 10,000)
输出
输出一行,即表达式的值
样例输入
2 3 5
样例输出
25

#include<iostream>
using namespace std;
int main()
{
	int a,b,c;
	scanf("%d %d %d",&a,&b,&c);
	printf("%d",(a+b)*c);
    return 0;
}

03:计算(a+b)/c的值

描述
给定3个整数a、b、c,计算表达式(a+b)/c的值,/是整除运算。
输入
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,000 < a,b,c < 10,000, c不等于0)
输出
输出一行,即表达式的值。
样例输入
1 1 3
样例输出
0

#include<iostream>
using namespace std;
int main()
{
	int a,b,c;
	scanf("%d %d %d",&a,&b,&c);
	printf("%d",(a+b)/c);
    return 0;
}

04:带余除法

描述
给定被除数和除数,求整数商及余数。
此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。看看程序运行结果与数学上的定义有什么不同?
输入
一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。
输出
一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
样例输入
10 3
样例输出
3 1

#include<iostream>
using namespace std;
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	printf("%d %d",int(a/b),a-int(a/b)*b);
    return 0;
}

05:计算分数的浮点数值

描述
两个整数a和b分别作为分子和分母,既分数 a/b ,求它的浮点数值(双精度浮点数,保留小数点后9位)
输入
输入仅一行,包括两个整数a和b(b不为0)
输出
输出也仅一行,分数 a/b 的浮点数值(双精度浮点数,保留小数点后9位)
样例输入
5 7
样例输出
0.714285714

#include<iostream>
using namespace std;
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	double c=a*1.0/b;
	printf("%.9lf",c);
    return 0;
}

06:甲流疫情死亡率

描述
甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。
输入
输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。
输出
输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。
样例输入
10433 60
样例输出
0.575%
提示
输出%可以使用printf(“%%”);

#include<iostream>
using namespace std;
int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	double c=100*b*1.0/a;
	printf("%.3lf%%",c);
    return 0;
}

07:计算多项式的值

描述
对于多项式f(x) = ax3 + bx2 + cx + d 和给定的a, b, c, d, x,计算f(x)的值。
输入
输入仅一行,包含5个实数,分别是x,及参数a、b、c、d的值,每个数都是绝对值不超过100的双精度浮点数。数与数之间以一个空格分开。
输出
输出一个实数,即f(x)的值,保留到小数点后7位。
样例输入
2.31 1.2 2 2 3
样例输出
33.0838692

#include<iostream>
using namespace std;
int main()
{
	double a,b,c,d,x;
	scanf("%lf %lf %lf %lf %lf",&x,&a,&b,&c,&d);
	double f=a*x*x*x+b*x*x+c*x+d;
	printf("%.7lf",f);
	return 0; 
}

08:温度表达转化

描述
利用公式 C = 5 * (F-32) / 9 (其中C表示摄氏温度,F表示华氏温度) 进行计算转化。
输入
输入一行,包含一个实数f,表示华氏温度。(f >= -459.67)
输出
输出一行,包含一个实数,表示对应的摄氏温度,要求精确到小数点后5位。
样例输入
41
样例输出
5.00000

#include<iostream>
using namespace std;
int main()
{
	double a;
	scanf("%lf",&a);
	double f=5*(a-32)/9;
	printf("%.5lf",f);
	return 0; 
}

09:与圆相关的计算

描述
给出圆的半径,求圆的直径、周长和面积。
输入
输入包含一个实数r(0 < r <= 10,000),表示圆的半径。
输出
输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。
样例输入
3.0
样例输出
6.0000 18.8495 28.2743
提示
如果圆的半径是r,那么圆的直径、周长、面积分别是2r、2 pi* r、pi* r * r,其中约定pi=3.14159。
可以使用printf("%.4lf", …)实现保留小数点后4位。

#include<iostream>
using namespace std;
int main()
{
	double a;
	scanf("%lf",&a);
	double pi=3.14159;
	double b=2*a,c=2*pi*a,d=pi*a*a;
	printf("%.4lf %.4lf %.4lf",b,c,d);
	return 0;
}

10:计算并联电阻的阻值

总时间限制: 1000ms 内存限制: 65536kB
描述
对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下:R = 1/(1/r1 + 1/r2)
输入
两个电阻阻抗大小,浮点型,以一个空格分开。
输出
并联之后的阻抗大小,结果保留小数点后2位
样例输入
1 2
样例输出
0.67
提示
计算过程使用float类型

#include<iostream>
using namespace std;
int main()
{
	float a,b;
	scanf("%f %f",&a,&b);
	float c=1/(1/a+1/b);
	printf("%.2f",c);
	return 0;
}

11:计算浮点数相除的余数

描述
计算两个双精度浮点数a和b的相除的余数,a和b都是正数的。这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b。
输入
输入仅一行,包括两个双精度浮点数a和b。
输出
输出也仅一行,a÷b的余数
样例输入
73.263 0.9973
样例输出
0.4601
提示
注意:输出时小数尾部没有多余的0,可以用下面这种格式:
double x;
x = 1.33;
printf("%g", x);

#include<iostream>
using namespace std;
int main()
{
	double a,b,d;
	scanf("%lf %lf",&a,&b);
	int c=a/b;
	d=a-c*b;
	printf("%g",d);
	return 0;
}

12:计算球的体积

描述
对于半径为r的球,其体积的计算公式为V=4/3*πr3,这里取π= 3.14。
现给定r,求V。
输入
输入为一个不超过100的非负实数,即球半径,类型为double。
输出
输出一个实数,即球的体积,保留到小数点后2位。
样例输入
4
样例输出
267.95

#include<iostream>
using namespace std;
int main()
{
	double a;scanf("%lf",&a);
	double b=a*a*a*4*3.14/3;
    printf("%.2f",b);
    return 0;
}

13:反向输出一个三位数

描述
将一个三位数反向输出。
输入
一个三位数n。
输出
反向输出n。
样例输入
100
样例输出
001

#include<iostream>
using namespace std;
int main()
{
	int n,a,b,c;scanf("%d",&n);
	a=n/100;b=(n-a*100)/10;
	c=n-100*a-10*b;
	printf("%d%d%d",c,b,a);
	return 0;
}

14:大象喝水

查看提交统计提问
总时间限制: 1000ms 内存限制: 65536kB
描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。

输入
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。
输出
输出一行,包含一个整数,表示大象至少要喝水的桶数。
样例输入
23 11
样例输出
3

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int h,r;scanf("%d %d",&h,&r);
	double b=3.14159*r*r*h/1000;
	double c=20/b;
	printf("%d",(int)(ceil(c)));
    return 0;
}

15:苹果和虫子

描述
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入
输入仅一行,包括n,x和y(均为整数)。输入数据保证y <= n * x。
输出
输出也仅一行,剩下的苹果个数
样例输入
10 4 9
样例输出
7

#include<iostream>
using namespace std;
int main()
{
	int n,x,y;
	scanf("%d %d %d",&n,&x,&y);
	int p=y/x;
	if(y%x==0)
	{printf("%d",n-p);}
	else{printf("%d",n-p-1);}
    return 0;
}

16:计算线段长度

描述
已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度。
输入
共两行。
第一行是两个实数Xa,Ya,即A的坐标。
第二行是两个实数Xb,Yb,即B的坐标。
输入中所有实数的绝对值均不超过10000。
输出
一个实数,即线段AB的长度,保留到小数点后3位。
样例输入
1 1
2 2
样例输出
1.414

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	double x1,y1,x2,y2;
	scanf("%lf %lf",&x1,&y1);
	scanf("%lf %lf",&x2,&y2);
	double x0=(x1-x2)*(x1-x2);
	double y0=(y1-y2)*(y1-y2);
	double m=sqrt(x0+y0);
	printf("%.3lf",m);
    return 0;
}

17:计算三角形面积

描述
平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少。
输入
输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。
输出
输出也是一行,输出三角形的面积,精确到小数点后两位。
样例输入
0 0 4 0 0 3
样例输出
6.00

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	float x1,y1,x2,y2,x3,y3;
	scanf("%f %f",&x1,&y1);
	scanf("%f %f",&x2,&y2);
	scanf("%f %f",&x3,&y3);
	float a1=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
	float b1=(x1-x3)*(x1-x3)+(y1-y3)*(y1-y3);
	float c1=(x2-x3)*(x2-x3)+(y2-y3)*(y2-y3);
	float a=sqrt(a1);
	float b=sqrt(b1);
	float c=sqrt(c1);
	float p=(a+b+c)/2;
	float m=p*(p-a)*(p-b)*(p-c);
	float s=sqrt(m);
	printf("%.2f",s);
    return 0;
}

18:等差数列末项计算

描述
给出一个等差数列的前两项a1,a2,求第n项是多少。
输入
一行,包含三个整数a1,a​2,n。-100 <= a1,a​2 <= 100,0 < n <= 1000。
输出
一个整数,即第n项的值。
样例输入
1 4 100
样例输出
298

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int x1,x2,x3,s;
	scanf("%d %d %d",&x1,&x2,&x3);
	int a=x2-x1;
	if(x3==1) s=x1;
	else{s=x1+(x3-1)*a;}
	printf("%d",s);
    return 0;
}

19:A*B问题

描述
输入两个正整数A和B,求A * B。
输入
一行,包含两个正整数A和B,中间用单个空格隔开。1 <= A,B <= 50000。
输出
一个整数,即A * B的值。
样例输入
3 4
样例输出
12

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	long long x1,x2;
	cin>>x1>>x2;
	long long a=x2*x1;
	cout<<a;
    return 0;
}

20:计算2的幂

描述
给定非负整数n,求2n。
输入
一个整数n。0 <= n < 31。
输出
一个整数,即2的n次方。
样例输入
3
样例输出
8

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int n;scanf("%d",&n);int s=1;
	for(int i=0;i<n;i++)
	{s*=2;}
	printf("%d",s);
    return 0;
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值