05C++数据类型
一、单精度实数float
教学视频A
例程1:金字塔的底是正方形,侧面由四个大小相等的等腰三角形构成。试编一程序,输入底和高,输出三角形的面积。
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int a,h;
float s;
cout<<"a,h=";
cin>>a>>h;
s=a*h/2.0;
cout<<"s="<<s<<endl;
return 0;
}
英汉小词典
float [floʊt] 实数、浮点数
练习:
1、世界著名计算机科学家、美国国家科学院院士,美国艺术与科学院院士、中国科学院院士中国科学院院士姚期智因在计算机理论方面的基础性贡献,2000年获得美国计算机学会颁发的( )。
A.金鸡奖 B.诺贝尔奖 C.菲尔兹奖 D.图灵奖
2、阅读程序写结果
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int ans;
float n;
cin>>n;
n*=100;
n+=0.5;
ans=n;
cout<<ans<<endl;
return 0;
}
输入:0.628
ans和n输出:
3、完善程序。
尼克非常喜欢喝妈妈煮的糖水,但糖吃多了会影响健康。现在有糖20%的糖水15克,问再加多少水,糖水中的含糖量会变为15%。
1 /*
2 3、完善程序。
3 尼克非常喜欢喝妈妈煮的糖水,但糖吃多了会影响健康。
4 现在有糖20%的糖水15克,问再加多少水,糖水中的含糖量会变为15%。
5 */
6
7 #include <iostream> //包含输入输出流头文件iostream
8 using namespace std; //指明程序 使用命名空间std(标准)
9 int main()
10 {
11 float tang,shui,tangshui;
12 tang=15*0.2; //先求出糖水中含糖多少克,加水后糖不变
13 tangshui=tang/0.15;
14 shui= ;
15 cout<<"应加水:"<< <<"克"<<endl;
16 return 0;
17 }
二、整除及整除求余运算符的应用
教学视频A
"%"在C++中是整除求余的运算符,又叫模运算符。
例程1:试编一程序,输入一个两位数,交换十位与个位上的数字,并输出。
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int n,ge,shi;
cout<<"请输入一个两位数:";
cin>>n;
shi=n/10; //整除取商赋值给shi
ge=n%10; //求余运算符(模运算符) ,用10整除求余值并赋值给ge。
n=ge*10+shi; //对余数乘10,再加上商并赋给n。
cout<<n<<endl;
return 0;
}
练习:
1、C++中,315%2的运算结果是( )。
A.315 B.-157 C.1 D.-1
2、阅读程序写变量a、b、c、d的结果
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int a,b,c,d;
cin>>a>>b;
c=a/b; //整除取商赋值给c
d=a%b; //求余运算符(模运算符) ,用b整除求余值并赋值给d。
cout<<a<<'/'<<b<<'=';
cout<<c<<"......"<<d<<endl;
return 0;
}
3、完善程序。
输入一个三位数,输出它的各个数位之和。
1 /*
2 完善程序
3 输入一个三位数,输出它的各个数位之和。
4 */
5
6 #include <iostream> //包含输入输出流头文件iostream
7 using namespace std; //指明程序 使用命名空间std(标准)
8 int main()
9 {
10 int n,ge,shi,bai,he;
11 cout<<"请输入一个三位数:";
12 ;
13 ge=n%10; //求出个位数
14 shi=(n/10)%10; //求出十位数
15 bai= ; //求出百位数
16 he=ge+shi+bai;
17 cout<<"各个数位之和是:"<<he<<endl;
18 return 0;
19 }
三、ASCII码与字符型
教学视频A
计算机中的所有数据在存储和运算时都是用二进制数表示,而具体用哪些二进制数字表示,每个人都可以约定自己的一套编码。大家如果想要互相通信而不造成混乱,那么就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码(美国标准信息交换代码)。标准ASCII码(基础ASCII码)使用指定的7位二进制数组合来表示128种可能的字符。基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符。虽然标准 ASCII 码是 7 位编码,但由于计算机基本处理单位为字节( 1byte = 8bit ),所以一般仍以一个字节来存放一个 ASCII 字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为 0 (在数据传输时可用作奇偶校验位)。
字符 | ASCII值 | 字符 | ASCII值 |
---|---|---|---|
空格 | 32 | 0 | 48 |
9 | 57 | A | 65 |
Z | 90 | a | 97 |
z | 122 |
将一个字符常量存放到内存单元时,实际上并不是把该字符本身存放到内存单元中,而是将该字符相应的ASCII码存放到存储单元中。如下图,字符变量k的值为'A'。
既然字符数据是以ASCII码存储的,它的存储形式就与整数的存储形式类似。这样,C++中字符型数据和整型数据之间就可以互相通用。一个字符数据可以赋给一个整型变量,反之,一个整型数据可以赋给一个字符变量。对字符数据进行算术运算,其实对它们的ASCII码进行算术运算。
字符型数据,只能包含一个字符,用一对单撇号括起来,如'+'、'b'、'8'、'#'等,用关键字char定义字符型变量。
例程:试编一程序,输入一个小写字母,输出其大写字母。
注:字符'A'的ASCII码是65,字符'a'的ASCII码是97,两者的差值为32。
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
char n;
cout<<"输入a~z:";
cin>>n;
n=n-32;
cout<<n<<endl;
return 0;
}
在程序支行中值不会发生变化的量称为常量,如,'a'是字符型常量,20为整型常量,7.6为实型常量。
参考阅读:
(1)AscII码值详解
(2)ASCII百度百科
练习:
(1)为了显示本国的语言,不同国家和地区制定了不同的标准,扩充了( ),如GB_2312字符集是目前最常用的汉字编码标准。
A.ASCII码 B.补码 C.汉字编码 D.BCD码
(2)阅读程序写出变量ch和n结果
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
char ch;
int n;
cin>>ch;
n=ch;
cout<<ch<<' '<<n<<endl; //两个单引号之间有且只有一个空格
return 0;
}
输入:A
输出:
(3)完善程序。
1 /*
2 3、完善程序。
3 输入一个字母,输出它的前一个字母,它自己和后一个字母,如输入b,则输出abc。
4 */
5
6 #include <iostream> //包含输入输出流头文件iostream
7 using namespace std; //指明程序 使用命名空间std(标准)
8 int main()
9 {
10 char ch1,ch2,ch3;
11 cin>>ch2;
12 ch1=ch2-1;
13 ;
14 cout<<ch1<<ch2<< <<endl;
15 return 0;
16 }
四、 数据类型.转换
1. 数据类型
类型名 | 类型声明 | 解释说明 |
---|---|---|
整型 | int | -2147483648 到 2147483647 的范围的整数 |
长整形 | long long | 比上面大很多很多,这里装不下,具体搜索 |
字符型 | char | 赋值只能是一个字符,比如 'A',必须用单引号,双表示字符串不是字符 |
浮点型 | float | 也叫实型或小数型,38位以内的小数,只保留6为有效数字 |
-
其实还有很多类型,暂时先理解这几个,后续用到的再单独讲解;
// 字符型,切记是单引号 char ch = 'a';
// 长整形
long long b = 100000000000000000;
// 浮点型,只能六位
float c = 3.1415926;
cout << b << endl;
cout << ch << endl;
cout << c << endl;
return 0;
### 2. 类型转换
- 这里我们只探讨整数和小数之间的转换,其它的放到以后;
- 类型转换分为两种:隐式转换和强制转换;
```c++
// 两边都是整数,结果也是整数:1
cout << 8 / 5 << endl;
// 两边有一边是浮点,结果是浮点:1.6
cout << 8.0 / 5 << endl;
// 强制转换浮点,float()是转换函数,将整数转换成浮点数,8叫做参数
cout << float(8) / 5 << endl;
// 强制转换整型
cout << int(3.14 * 5.25) << endl;
3. 保留小数点
-
首先要引入相关库:
-
其次使用 setprecision(n) 函数 来设置保留小数点的位数;
// 输出保留的小数点 // fixed可以在缺少的位数补零,这样就精确保证2位 cout << fixed << setprecision(2) << 3.1415926;
五、C++数据类型小结
1、C++的基本数据类型包括:
-整型(Integer Types):int、short、long、long long等。
-浮点型(Floating-Point Types):float、double、long double等。
-字符型(Character Types):char。
-布尔型(Boolean Type):bool。
-无值类型(Void Type):void。
2、拓展阅读
(1)C++基础知识|数据类型