每种语言都有自己的一套符号,符号是组成程序的基本单位,它是由若干字符组成的具有一定意义的最小词法单元,如标识符、关键字、运算符、分隔符、常量、注释符等。这里组成符号的字符必须是这种语言字符集中的合法字符,在 C++中规定了一个自己的字符集。
类型是对系统中的实体的一种抽象,它描述了某种实体的基础特性,包括值的表示、存储空间的大小以及对该值的操作。 C++的数据类型包括基本数据类型和构造数据类型两类。构造数据类型又称复合数据类型,它是一种更高级的抽象。当变量被定义为某种类型时会受到系统对该类型的特别保护,确保其值不受非法操作。
C++语言的基本数据类型有如下四种:
在 32 位系统中 (现在普遍是 int32 位),signed 的范围是 (-216 到 215-1),即是-2147483648~+2147483647,unsigned 类型 的 int 范围:0~4294967295 即 (0 到 232-1);
char 为一个字节,所以 char 的 unsigned 的范围是 0 到 255,signed 类型的话就是-128 到 127127(-28->27-1);
- float (%f):float 占用的内存为 4 个字节, 和 int 占用的空间是一样的, 只是保存的方式不同, float 采用的是指数的方式保存数字,精确度会有问题,储存长度大概与 int 相差无几。 (稍微比 int 大)
- double (%lf):double 占用的 8 个字节的内存, 所以表示范围会比 float 更大, double 保存数值的方式也是为指数保存,所以也有精确度的问题,表示的长度大概是 10 的 32 次方。
为了满足各种情况的需要,除了 void 型外,上述的三种类型前面还可以加上修饰符改变原来的含义。
signed 表示有符号
unsigned 表示无符号
long 表示长型
short 表示短型
上述 4 种修饰符都适用于整型和字符型,只有 long 还适用于双精度浮点型。
数据类型规定的存储空间都是按字节算的,其占用的字节数会根据机器字长的不同会有所变化。也就是说,变量所占空间的大小与被定义的类型和机器有关。
大象喝水
【问题描述】
一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r 厘米的小圆桶 (h 和 r 都是整数) 。问大象至少要喝多少桶水才会解渴。
【输入】 输入有一行,包行两个整数,以一个空格分开,分别表示小圆桶的深 h 和底面半径 r,单位都是厘米。
【输出】 输出一行,包含一个整数,表示大象至少要喝水的桶数。
【样例输入】 23 11
【样例输出】 3
【提示】 如果一个圆桶的深为 h 厘米,底面半径为 r 厘米,那么它最多能装 Pi * r * r * h 立方厘米的水。 (设 Pi=3.14159, 1 升 = 1000 毫, 1 毫升 = 1 立方厘米)
【代码解答】
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
double r = 0,v = 0,pi = 3.14159,t = 0,h = 0;
scanf("%lf %lf",&h,&r);
v = pi*r*r*h;
v = v/1000;
t = ceil(20/v);
printf("%.0lf",t);
return 0;
}
计算距离
【问题描述】
太阳光到达地球表面需要 8 分 18 秒,光在真空中的传播速度是宇宙中最快的速度,为 300000000m/s.请问太阳到地球有多远。
【样例输出】 149400000000
【代码解答】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double a = 8,b = 18,c = 0,d = 300000000,e = 0;
a = a*60;
c = a+b;
e = c*d;
printf("%.0lf",e);
return 0;
}
平均分
【问题描述】
已知某班有男同学 x 位,女同学 y 位,x 位男生的平均分为 87,y 位女生的平均分是 85 分,问全体同学的平均分是多少分。
【输入】 两个整数,分别为 x 和 y 的值。
【输出】 一位数可能是整数也可能是浮点数。
【样例输入】 1 1
【样例输出】 86
【代码解答】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double x = 0,y = 0,c = 0;
scanf("%lf %lf",&x,&y);
c = (x * 87 + y * 85) / (x + y);
printf("%.1lf",c);
return 0;
}
长方体的体积
【问题描述】
输入一个长方体的长,宽和高,输出长方体的体积。 (提示:长方体的体积 = 长 * 宽 * 高)
【输入】 一行,包含三个正整数,分别是长方体的长,宽和高;
【输出】 一行,包含一个整数,表示长方体的体积;
【样例输入 1 】
2 3 4
【样例输出 1 】
24
【代码解答】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double a = 0,b = 0,h = 0,c = 0;
scanf("%lf %lf %lf",&a,&b,&h);
c = a*b*h;
printf("%.0lf",c);
return 0;
}
等差数列末项
【问题描述】
描述给出一个等差数列的前两项 a1,a2,求第 n 项是多少。
【输入】 一行,包含三个整数 a1,a2,n 。-100 <= a1,a2 <= 100,0 < n <= 1000 。
【输出】 一个整数,即第 n 项的值。
【样例输入】 1 4 100
【样例输出】 298
【代码解答】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double a1 = 0,a2 = 0,an = 0,d = 0,n = 0;
scanf("%lf %lf %lf",&a1,&a2,&n);
d=a2-a1;
an=a1+(n-1)*d;
printf("%.0lf",an);
return 0;
}
计算多项式的值
【问题描述】
对于多项式 f(x) = ax³ + bx² + cx + d 和给定的 a, b, c, d, x, 计算 f(x) 的值。
【输入】 输入仅一行,包含 5 个实数,分别是 x, 及参数 a 、 b 、 c 、 d 的值,数与数之间以一个空格分开。
【输出】 输出一个实数,即 f(x) 的值,保留到小数点后 7 位。
【样例输入】 2.31 1.2 2 2 3
【样例输出】 33.0838692
【代码解答】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double a = 0,b = 0,c = 0,d = 0,x = 0,j = 0;
scanf("%lf %lf %lf %lf %lf",&x,&a,&b,&c,&d);
j = a*x*x*x+b*x*x+c*x+d;
printf("%.7lf",j);
return 0;
}
铜钱的面积
【问题描述】
古代的铜钱是圆形的,其中中间是一个正方形的镂空,已知圆形的半径和正方形的边长,求铜钱的面积 (圆周率取值 3.14) 。
【输入】 输入圆形的半径和正方形的边长
【输出】 输出铜钱面积,结果保留两位小数
【样例输入】 10 5
【样例输出】 289.00
【代码解答】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double c = 0,f = 0,s = 0,pi = 3.14;
scanf("%lf %lf",&f,&c);
s = pi * (f * f) - c * c;
printf("%.2lf",s);
return 0;
}
球体的体积
【问题描述】
给定你一个球体的半径 r,请你计算球体的体积。
计算球体的公式为 v=(4/3)∗pi∗r∗r∗r 。 pi 取 3.14159 。
注意:有些语言中 (4/3) 无法得到 1.3333……,建议在公式中使用 (4/3.0) 。
【输入格式】 输入一个整数 r
【输出格式】 其中 v 为球体的体积,结果保留三位小数。
【数据范围】 1≤r≤2000
【样例输入】 3
【样例输出】 113.097
【代码解答】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
double r = 0,v = 0,pi = 3.14159;
scanf("%lf",&r);
v = 4/3.0*pi*r*r*r;
printf("%.3lf",v);
return 0;
}
暂无评论