上接课我们学习了顺序结构(一),今天我们来学习顺序结构(二),好了废话不多说!我们现在开始我们今天的学习!
课程章节介绍 顺序结构(二)
- 字符型
- C语言风格
- ASCII码
- 类型转换
- cmath头文件
数据类型
类型 | 字节数 | 范围 |
char | 1 | -128-127 |
字符类型的变量声明:
char m; //定义变量m为字符型。
char n = 'a'; //定义变量n为字符型,并且将‘a’的值赋予变量n。
【注意】
- 字符型的值只能用单引导起来,不能双引导或其他括号。
- 字符型常量只能是单个字,错误写法:‘abc‘。
- 字符的值可以是任意的单个字符,数字如作为一个字符使用,将不能参加数值运算,如’5‘和是不同的。
输入和输出风格
C++风格
#include <iostream> //当然我们也可以用万能头 <bits/stdc++.h>
using namespace std;
int main(){
int x, y;
cin >> x >> y;
cout << x+y <<endl;
return 0;
}
C风格:
#include <cstdio>
using namespace std;
int main(){
int x, y;
scanf("%d%d",&x,&y);
printf("%d\n",x+y);
return 0;
}
上面就是C++和C语言的输出和输入的风格了;
占位符
占位符 | 说明 |
%d | 一个十进制的整数(decimal),用于int类型。 |
%dn(n是正整数) | 输出一个整数,如果不足n位,前面用空格补齐直到n位。 |
%lld | 一个十进制的长整数(long long decimal),用于long longl类型。 |
%f | 读入或者输出floot类型。 |
%If | 读入或者输出double类型。 |
%.nIf(n是正整数) | 输出一个整数,如果不足n位,前面用0补齐直到n位。 |
%0nd | 输出一个整数,如果不足n位,前面用0补齐直到n位。 |
%c | 一个char类型的字符 |
%s | 一个字符串 |
转义字符
转义字符 | 含义 |
'\n' | 换行 |
'\t' | 水平制表 |
'\b' | 退格 |
'\r' | 回车(不换行) |
'\0' | 空字符 |
'\’' | 单引导 |
'\”' | 双引导 |
'\\' | 一个反斜杠字符 |
'\ddd' | 1-3位八进制数所代表的字符 |
'\xhh' | 1-2位十六进制数所代表的字符 |
代码练一练
实例1:保留小数
本题用scanf和printf完成输入和输出,用输入一个浮点数(double),输出这个浮点数并且保留三位小数。
【输入样例】:1.2345678
【输出样例】:1.235
3 2 1 答案出示
#include <cstdio>
using namespace std;
int main(){
double a;
scanf("%lf", &a);
printf("%.3lf\n" ,a);
return 0;
}
实例Z:数字反转
输入一个小于100且小于1000,同时包含小数点后一位的一个浮点数,例如:123.4,要求把这个数字翻转过来,变成4.321并且输出。要求使用scanf/printf完成此题。
//方法一
#include<cstdio>
using namespace std;
int main(){
double m;
scanf("%lf",&m);
// 获得一个四位整数(强制转换)
int n = int(m*10);
int a,b,c,d;
a = n%10; //获得个位
b = n/10%10; //获得十位
c = n/100%10; //获得百位
d = n/1000; //获得千位
printf("%d.%d%d%d\n"a,b,c,d);
return 0;
}
//方法二
#include<cstdio>
using namespace std;
int main(){
char a,b,c,d;
scanf("%c%c%c.%c", &a,&b,&c,&d);
printf("%c.%c%c%c\n", d,c,b,a);
return 0;
}
解法一:将小数变成整数,再依次获取各个小数。、
解法二:使用%c依次读入字符,再依次输出。
ASCII码
在C++中,当一个字符型的被用户输入进入程序后,例如'a',并不是'a’本身被储存在变量内的,而是一个整数被储存在变量里的。
ASCII码
字符'a' 'A' 'I' '#'等 —————————————————— 整数
ASCII码介绍:
ASCII(American Standard Code for Information lnerchange)是美国信息交换标准代码,发明于1963年,ASCII码是7位代码,足够存储128个不同的值。扩展范围后,足够表示大小写字母,数字和标点符号等。ASCII核心思想:用数字代表字符。
代码练一练(ASCII码)
输入一个大写字母(A-Z) ,输出对应的小写字母
【输入样例】 D
【输出样例】 d
3 2 1 答案出示:
#include<cstdio>
using namespace std;
int main(){
char c;
scanf("%c", &c);
//小写字母的ASCII值比对应的大写字母大32
printf("%c\n",c+32);
return 0;
}
布尔类型
在C++中,布尔类型 (boolean)只有两个值,true(真)和false(假).布尔数据是用来判断真假的。类似一个开关,要么闭合状态,要么断开状态。、
布尔类型变量的定义:
bool isCodingFun = true;
bool isFishTasty = false;
cout<<isCodingFun<<endl; //返回1
cout<<isFishTasty<<endl; //返回0
【注意】
true转换为整型值为1,false转换为整型值为0。
类型转换
1. 混合运算时的类型转换
- 整型、浮点型、字符型数据之间可以混合运算。在这种情况下,需要将不一致的数据类型转换为一致的 数据类型。为了保证精确度,系统在运算时的转换规则是将存储长度较短的运算对象转换为存储长度较 长的转换类型,然后在进行处理,这种转换是系统自动进行的。
- 纵向箭头表示参与计算时一定会进行转换,如float数据类型必先转换为double数据类型,然后与其他 操作数进行运算。
- 横向箭头表示当运算对象为不同数据类型时的转换方向,如int型和double型进行运算,int型直接转换 double型后进行运算。
2. 赋值时的类型转换规则
- 当赋值运算符两侧的数据类型不同时,需进行类型转换(系统自动进行)。
- float、double赋值给int,直接截断小数。
- int、char赋值给float、double,补足有效位进行数据转换。
- char(1字节)赋值给int(4字节),根据ascii码转换。
- long long int转换给int,截断有效字节给int。