2.简单程序设计

1.A+B问题【1.3编程基础之算术表达式与顺序执行01】 大部分的在线题库,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。

A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。现在请你解决这一问题。

输入:
一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。
输出:
一个整数,即A+B的值。保证结果在整型范围内。
样例输入:
1 2
样例输出:
3

#include
using namespace std;
int main()
{
    int a,b,c;
    cin>>a>>b;
    c=a+b;
    cout<<c<<endl;
    return 0;
 } 

2.计算(a+b)*c的值【1.3编程基础之算术表达式与顺序执行02】

给定3个整数a、b、c,计算表达式(a+b)*c的值。

输入:
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。
(-10,000 输出:
输出一行,即表达式的值
样例输入:
2 3 5
样例输出:
25

#include
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c;
    d=(a+b)*c;
    cout<<d<<endl;
    return 0;
 } 

3.计算(a+b)/c的值【1.3编程基础之算术表达式与顺序执行03】

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

#include
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c;
    d=(a+b)/c;
    cout<<d<<endl;
    return 0;
 } 

4.带余除法【1.3编程基础之算术表达式与顺序执行04】

给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。
输入:
一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。
输出:
一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
样例输入:
10 3
样例输出:
3 1

#include
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b;
    c=a/b;
    cout<<c<<endl;
    d=a%b;
    cout<<d<<endl;
    return 0;
 } 
 

5.计算分数的浮点数值【1.3编程基础之算术表达式与顺序执行05】

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

#include
#include
using namespace std;
int  main()
{
    double a,b;    //必须是double类型,int会出错
    double c;
    cin>>a>>b;
    c=a/b;
    //cout<
    printf("c=%.9lf\n",c);    //%.9lf是double型,保留小数点后9位
    return 0;
 } 

1.甲流疫情死亡率【1.3编程基础之算术表达式与顺序执行06】

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

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

2.计算多项式的值【1.3编程基础之算术表达式与顺序执行07】

对于多项式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
using namespace std;
int main()
{
	double a,b,c,d,x,y;
	cin>>x>>a>>b>>c>>d;	//与scanf结果一样,但这个语句简单 
	//scanf("%lf %lf %lf %lf %lf",&x,&a,&b,&c,&d);
	y=a*pow(x,3)+b*pow(x,2)+c*x+d;
	printf("%.7lf",y);
	return 0;
 } 

3.温度表达转化【1.3编程基础之算术表达式与顺序执行08】

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

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

4.与圆相关的计算【1.3编程基础之算术表达式与顺序执行09】

给出圆的半径,求圆的直径、周长和面积。输入圆的半径实数r,输出圆的直径、周长、面积,每个数保留小数点后4位。
输入:
输入包含一个实数r(0 < r <= 10,000),表示圆的半径。
输出:
输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。
样例输入:
3.0
样例输出:
6.0000 18.8495 28.2743

#include
#include	//含setprecision的声明 
#include		//含pow声明 
using namespace std;
int main()
{
	double r,a,l,s,pi=3.14159;
	cin>>r;
	a=2*r;
	l=pi*a;
	s=pi*pow(r,2);
	//printf("%.4lf %.4lf %.4lf",a,l,s);
	cout<<fixed<<setprecision(4)<<a<<" "<<l<<" "<<s<<endl;
	return 0;
 } 

5.计算并联电阻的阻值【1.3编程基础之算术表达式与顺序执行10】

对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下:R = 1/(1/r1 + 1/r2)。输入两个电阻阻抗大小,浮点型。输出并联之后的阻抗大小,结果保留小数点后2位。
输入:
两个电阻阻抗大小,浮点型,以一个空格分开。
输出:
并联之后的阻抗大小,结果保留小数点后2位
样例输入:
1 2
样例输出:
0.67

#include
#include
using namespace std;
int main()
{
	float r1,r2,r;
	cin>>r1>>r2;
	r=1/(1/r1+1/r2);
	//cout<
	printf("%.2f",r);		//与cout一样效果 
}

1.整型数据类型存储空间大小【1.2编程基础之变量定义、赋值及转换01】

分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
输入:
无。
输出:
一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

 #include
using namespace std;
int main()
{
	int a;
	short b;
	cout<<sizeof(a)<<" "<<sizeof(b)<<endl;
	return 0;
	
}

2.浮点型数据类型存储空间大小【1.2编程基础之变量定义、赋值及转换02】

分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。
输入:
无。
输出:
一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

#include
using namespace std;
int main()
{
	float a;
	double b;
	cout<<sizeof(a)<<" "<<sizeof(b)<<endl;
	return 0;
 } 

3.其他数据类型存储空间大小【1.2编程基础之变量定义、赋值及转换03】

分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。

输入:
无。
输出:
一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。

#include
using namespace std;
int main()
{
	bool a;
	char b;
	cout<<sizeof(a)<<" "<<sizeof(b)<<endl;
}

4.浮点数向零舍入【1.2编程基础之变量定义、赋值及转换06】

输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以#使用强制类型转换来实现。

输入: 输出:
一个单精度浮点数。 一个整数,即向零舍入到整数的结果。
样例输入:
2.3
样例输出:
2

#include
using namespace std;
int main()
{
    float a;
    cin>>a;
    cout<<int(a);    
    //直接强制转换成整型即可,要用floor不对(负数答案不对)
    return 0;
}

5.打印ASCII码【1.2编程基础之变量定义、赋值及转换07】

输入一个除空格以外的可见字符(保证在函数scanf中可使用格式说明符%c读入),输出其ASCII码。

输入:
一个除空格以外的可见字符。
输出:
一个十进制整数,即该字符的ASCII码。
样例输入:
A
样例输出:
65

#include
using namespace std;
int main()
{
    char a;
    scanf("%c",&a);
    printf("%d",a);
    return 0;
}

6.打印字符【1.2编程基础之变量定义、赋值及转换08】

输入一个整数,即字符的ASCII码,保证存在对应的可见字符。输出相对应的字符。

输入:
一个整数,即字符的ASCII码,保证存在对应的可见字符。
输出:
一行,包含相应的字符。
样例输入:
65
样例输出:
A

#include
using namespace std;
int main()
{
    int a;
    cin>>a;
    char b=a;
    cout<<b<<endl;
    return 0;
}

7.整型与布尔型的转换【1.2编程基础之变量定义、赋值及转换09】

将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?

输入:
一个整型范围内的整数,即初始时整型变量的值。
输出:
一个整数,经过上述过程后得到的结果。
样例输入:
3
样例输出:
1

#include
using namespace std;
int main()
{
    int a;
    bool b;
    cin>>a;
    b=a;
    cout<<int(b);
    return 0;
}

8.Hello,World!的大小【1.2编程基础之变量定义、赋值及转换10】

在上一章里,我们曾经输出过的“Hello, World!”吗?它虽然不是本章所涉及的基本数据类型的数据,但我们同样可以用sizeof函数获得它所占用的空间大小。
输入:
无。
输出:
一个整数,即“Hello, World!”的大小。

#include
using namespace std;
int main()
{
    printf("%d",sizeof("Hello,World!"));
    return 0;
}

1.输出保留3位小数的浮点数【1.1编程基础之输入输出04】

读入一个单精度浮点数,保留3位小数输出这个浮点数。

输入:
只有一行,一个单精度浮点数。
输出:
也只有一行,读入的单精度浮点数。
样例输入:
12.34521
样例输出:
12.345

#include    //cin和cout只能调用iostream库
using namespace std;
int main()
{
    float a;
    scanf("%f",&a);
    printf("%.3f",a);
    return 0;
} 

2.输出保留12位小数的浮点数【1.1编程基础之输入输出05】

读入一个双精度浮点数,保留12位小数,输出这个浮点数。

输入:
只有一行,一个双精度浮点数。
输出:
也只有一行,保留12位小数的浮点数。
样例输入:
3.1415926535798932
样例输出:
3.141592653580

#include
using namespace std;
int main()
{
    double a;
    scanf("%lf",&a);
    printf("%.12lf",a);
    return 0;
} 
 

3.空格分隔输出【1.1编程基础之输入输出06】

读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。
输入:
第一行是一个字符;
第二行是一个整数;
第三行是一个单精度浮点数;
第四行是一个双精度浮点数。
输出:
输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。
样例输入: 样例输出:
a a 12 2.300000 3.200000
12
2.3
3.2

#include
using namespace std;
int main()
{
    char a;
    int b;
    float c;
    double d;
    scanf("%c\n%d\n%f\n%lf",&a,&b,&c,&d);    //最后一个不用加换行符
    printf("%c %d %.6f %.6lf",a,b,c,d);
    return 0;
}

4.输出浮点数【1.1编程基础之输入输出07】

读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。

输入:
一个双精度浮点数。
输出:
第一行是按“%f”输出的双精度浮点数;
第二行是按“%f”保留5位小数输出的双精度浮点数;
第三行是按“%e”输出的双精度浮点数;
第四行是按“%g”输出的双精度浮点数。
样例输入:
12.3456789
样例输出:
12.345679
12.34568
1.234568e+001
12.3457

#include
using namespace std;
int main()
{
    double a;
    scanf("%lf",&a);
    
    printf("%f\n",a);
    printf("%.5f\n",a);
    printf("%e\n",a);
    printf("%g",a);
    //printf("%f\n%.5f\n%e\n%g",a);
    //这个结果是错误的
    return 0;
} 

5.字符菱形【1.1编程基础之输入输出09】

给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。

输入:
输入只有一行, 包含一个字符。
输出:
该字符构成的菱形。
样例输入:
*
样例输出:
*




*
#include
using namespace std;
int main()
{
    char a;
    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",a);
    return 0;
}

1.计算浮点数相除的余【1.3编程基础之算术表达式与顺序执行11】

 计算两个双精度浮点数a和b的相除的余数,a和b都是双精度浮点数。这里余数(r)的定义是:a=k*b+r,其中k是整数,0<=r

输入:
输入仅一行,包括两个双精度浮点数a和b。
输出:
输出也仅一行,a÷b的余数
样例输入:
73.263 0.9973
样例输出:
0.4601

#include
#include
using namespace std;
int main()
{
    double a,b,r;
    int k;
    scanf("%lf%lf",&a,&b);
    k=a/b;
    r=a-(k*b);
    printf("%.4lf",r);
    return 0;
}

2.计算球的体积【1.3编程基础之算术表达式与顺序执行12】

对于半径为r的球,其体积的计算公式为V=4/3*πr3,这里取π=3.14。现给定r,即球半径,类型为double,求球的体积V,保留到小数点后2位。

输入:
输入为一个不超过100的非负实数,即球半径,类型为double。
输出:
输出一个实数,即球的体积,保留到小数点后2位。
样例输入:
4
样例输出:
267.95

#include
#include
#include
#define pi 3.14
using namespace std;
int main()
{
    double r,v;
    cin>>r;
    v=(4*pi*pow(r,3))/3;
    printf("%.2lf",v);
    return 0;
} 

3.反向输出一个三位数【1.3编程基础之算术表达式与顺序执行13】

将一个三位数反向输出,例如输入358,反向输出853。

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

#include
#include
using namespace std;
int main()
{
    int x,a,b,c,n;
    cin>>x;
    a=x/100;    //百位
    b=(x/10)%10;    //十位
    c=x%10;        //个位
    n=c*100+b*10+a;
    cout<<n<<endl;
    return 0;
} 

4.大象喝水查【1.3编程基础之算术表达式与顺序执行14】

 一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。

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

#include
#include
#include
using namespace std;
int main()
{
    int h,r;
    double x,y,pi=3.14;
    cin>>h>>r;
    x=(pi*pow(r,2)*h)/1000;
    y=20/x;
    cout<<ceil(y)<<endl;    //ceil向上取整
    return 0;
}

5.计算线段长度【1.3编程基础之算术表达式与顺序执行16】

已知线段的两个端点的坐标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
#include
using namespace std;
int main()
{
    double x1,x2,y1,y2,l;
    cin>>x1>>y1;
    cin>>x2>>y2;
    l=sqrt(pow(y1-y2,2)+pow(x1-x2,2));
    cout<<fixed<<setprecision(3)<<l<<endl;
    return 0;
}

6.计算三角形面积【1.3编程基础之算术表达式与顺序执行18】

平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少,精确到小数点后两位。

输入:
输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。
输出:
输出也是一行,输出三角形的面积,精确到小数点后两位。
样例输入:
0 0 4 0 0 3
样例输出:
6.00

#include
#include
#include
#include
using namespace std;
int main()
{
    double x1,y1,x2,y2,x3,y3;
    double l1,l2,l3,p,s;
    cin>>x1>>y1>>x2>>y2>>x3>>y3;
    l1=sqrt(pow(y1-y2,2)+pow(x1-x2,2));
    l2=sqrt(pow(y1-y3,2)+pow(x1-x3,2));
    l3=sqrt(pow(y2-y3,2)+pow(x2-x3,2));
    p=(l1+l2+l3)/2;
    s=sqrt(p*(p-l1)*(p-l2)*(p-l3));
    cout<<fixed<<setprecision(2)<<s<<endl;
    return 0;
}

7.A*B问题【1.3编程基础之算术表达式与顺序执行19】

输入两个正整数A和B,求A*B的值。注意乘积的范围和数据类型的选择。

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

#include
using namespace std;
int main()
{
    long long a,b,s;
    cin>>a>>b;
    s=a*b;
    cout<<s<<endl;
    return 0;
}
 

8.计算2的幂【1.3编程基础之算术表达式与顺序执行20】

给定非负整数n,求2^n的值,即2的n次方。

输入:
一个整数n。0 <= n < 31。
输出:
一个整数,即2的n次方。
样例输入:
3
样例输出:
8

#include
#include
using namespace std;
int main()
{
    int n,s;
    cin>>n;
    s=pow(2,n);
    cout<<s<<endl;
    return 0;
} 

9.苹果和虫子【1.3编程基础之算术表达式与顺序执行15】

你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

输入:
输入仅一行,包括n,x和y(均为整数)。
输出:
输出也仅一行,剩下的苹果个数
样例输入:
10 4 9
样例输出:
7

#include
#include
#include
using namespace std;
int main()
{
    double n,x,y,s;    //int型会出错
    cin>>n>>x>>y;
    s=n-ceil(y/x);
    cout<<s<<endl;
    return 0;
}

10.求三角形面积【1.3编程基础之算术表达式与顺序执行17】

给定三条线段的长度,判断这三条线段是否能够构成三角形。如果能够构成,则计算其面积。

输入:
输入只有一行,包含三个浮点数,分别表示三角形三边的边长,数与数之间以一个空格分开。
输出:
对于可以构成三角形的情况,输出三角形的面积,保留4位小数。
对于不能构成三角形的情况, 输出“Data Error”。
样例输入:
3 4 5
样例输出:
6.0000

#include
#include
using namespace std;
int main()
{
    double a,b,c,p,s;
    scanf("%lf%lf%lf",&a,&b,&c);    //输入三边长度
    p=(a+b+c)/2;    //海伦公式
    
    if(a+b<=c||b+c<=a||a+c<=b)
        printf("Data Error\n");
    else
    {
        s=sqrt(p*(p-a)*(p-b)*(p-c));
        printf("%.4lf\n",s);
    }
    return 0;
} 

你可能感兴趣的:(C++)