DAY3
【3】赋值运算符
=:赋值运算符
左值 = 右值; 把右值赋值给左值
左值,是既可以作为左值也可以作为右值的量
右值,只能作为右值的量
混合赋值运算符:
a+=1 | a=a+1 |
a-=1 | a=a-1 |
a*=1 | a=a*1 |
a/=2 | a=a/2 |
【4】关系运算符
非真即假,非0即1
0假,1真
在C语言中非0即为真
== | 判断左右两个操作数是否相等 |
!= | 不等于 |
a>b | 判断a是否大于b |
a | 判断a是否小于b |
a>=b | 判断a是否大于等于b |
a | 判断a是否小于等于b |
练习:
1、终端输入两个数,判断两数是否相等
if(表达式成立)
{
执行代码块的内容;
}
2、终端输入一个三位数,输出该数个位+十位+百位的结果
3、终端输入一个四位数,输出该数个位、十位、百位和千位的结果
【5】逻辑运算符
逻辑运算的结果非0即1,非真即假
&& | 逻辑与,两个操作数都为真结果才是真, 有一个操作数为假结果就是假 |
|| | 逻辑或,两个操作数都为假结果才是假 一个操作数为真结果就是真 |
! | 逻辑非, |
逻辑短路现象
逻辑与运算,如果左侧表达式的值为假,右侧的表达式不会执行,逻辑与运算的结果为0/假
逻辑或运算,如果左侧表达式的值为真,右侧的表达式不会执行,逻辑与运算的结果为1/真
练习:
1、终端输入一个数,判断该数是否在区间[12,54]中。a>=12和a
【6】条件运算符
C语言中的唯一一个三目运算符
表达式1?表达式2:表达式3
先执行表达式1,如果表达式1成立,执行表达式2,如果表达式1不成立,执行表达式3。
练习:
1、终端输入两个数,使用条件运算符,输出两个数中较大的数。
【7】逗号运算符
(表达式1,表达式2,表达式3·····表达式n)
每个表达式都会执行,取最右侧表达式的结果,
【8】位运算符
一般都使用无符号数进行位运算
对二进制进行运算的
& | 按位与,两个二进制位都为1结果为1 有一个为0结果就是0 |
| | 按位或,两个二进制位都是0结果位0 有一个位1结果就是1 |
^ | 按位异或,同0异1 |
~ | 按位取反,1变0,0变1 |
>> | 按位右移,高位补0 |
按位左移,低位补0 |
0000 1001
&0000 1000 =0000 1000 = 8
0000 1001
| 0000 1000 = 0000 1001 = 9
0000 1001
^0000 1000 = 0000 0001 = 1
~0000 1001 = 1111 0110 = 118
0000 1001>>3 = 0000 0001 = 1
0000 1001
练习:
1、求unsigned char类型数值0x1的数,
如果没有特殊声明,bit从右向左从0开始,
2、有一个unsigned char类型的数据a,把他的第六个bit位置为1。
a|=(0x1 a = a | 0x1???? ???? | 0100 0000 0x1
?1?? ????
3、有一个unsigned char类型的数据a,把他的第六个bit位置为0。
a&=~(0x1???? ???? & 1011 1111 ~(0x1
?0?? ????
【9】sizeof运算符
sizeof求数据的大小。
sizeof(数据); sizeof括号里面放什么,就求什么的大小。
【10】运算符优先级
单算移关于
异或逻条赋
加括号,括号的优先级最高
vim的自动补全
在家目录下,cd .vim
cd snippets
vim c.snippets
找到main的行,隐藏的使用l打开 ,添加内容,再保存退出
DAY4
一、C语言的结构
- 顺序结构,代码从上到下执行
- 分支结构/选择结构
- 循环结构
二、分支结构
【1】if单分支结构
if(表达式)
{
表达式成立执行的代码块;
}
【2】双分支结构
if(表达式)
{
表达式成立执行的代码块;
}
else
{
表达式不成立执行的代码块;
}
【3】多分支结构
【4】嵌套if
练习:
- 终端输入一个数,判断是否是偶数
- 终端输入一个数,判断是否是7的倍数
- 终端输入年份,判断是否是闰年,能被四整除但是不能被100整除或者能被400整除的叫闰年。
4.终端输入一个[100,999]之间的数,判断是否是是否是水仙花数,
(水仙花数:个位*个位*个位+十位*十位*十位+百位*百位*百位=数本身)
5.终端输入学生成绩,输出成绩等级,[100,90]A,(90,80]B,(80,70]C,(70,60]D,(60,0]不及格。
6.狗的前两年每一年相当于人类的10.5岁,之后每增加一年就增加一岁,终端输入狗的年龄,输出该相当于人的多少岁
7. 终端输入一个数,判断是否是3的倍数,如果是3的倍数再判断是否是5的倍数
作业:
- 整理思维导图
- 终端输入年份,判断是否是闰年,在闰年的基础上判断是否是超级闰年,能被400整除的是超级闰年
- 终端输入三条边,判断是否能构成三角形(判断两边之和大于第三边),在能构成三角形的基础上判断三角形的类型(等边,等腰和直角)
- 从终端输入一个字符:如果是大写的 转换成小写,如果是小写的 转换成大写,如果是 0-9 按照 %d 输出对应整型的 0-9,其他字符 转换成 #并输出。