在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。
01-C基础第05天(运算符和流程结构语句)
目录:
一、运算符(运算符优先级)
二、程序流程结构(break语句、continue语句、goto语句)
三、练习(九九乘法表、等腰三角星星、猜数字)
一、运算符
1、运算符
算术运算符【+ - * / % ++(自增) --(自减)】
2、赋值运算符
3、比较运算符
C 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。
4、逻辑运算符
5、运算符优先级
优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 |
1 | [] | 数组下标 | 数组名[常量表达式] | 左到右 | -- |
() | 圆括号 | (表达式)/函数名(形参表) | -- | ||
. | 成员选择(对象) | 对象.成员名 | -- | ||
-> | 成员选择(指针) | 对象指针->成员名 | -- | ||
| |||||
2 | - | 负号运算符 | -表达式 | 右到左 | 单目运算符 |
~ | 按位取反运算符 | ~表达式 | |||
++ | 自增运算符 | ++变量名/变量名++ | |||
-- | 自减运算符 | --变量名/变量名-- | |||
* | 取值运算符 | *指针变量 | |||
& | 取地址运算符 | &变量名 | |||
! | 逻辑非运算符 | !表达式 | |||
(类型) | 强制类型转换 | (数据类型)表达式 | -- | ||
sizeof | 长度运算符 | sizeof(表达式) | -- | ||
| |||||
3 | / | 除 | 表达式/表达式 | 左到右 | 双目运算符 |
* | 乘 | 表达式*表达式 | |||
% | 余数(取模) | 整型表达式%整型表达式 | |||
4 | + | 加 | 表达式+表达式 | 左到右 | 双目运算符 |
- | 减 | 表达式-表达式 | |||
5 | << | 左移 | 变量<<表达式 | 左到右 | 双目运算符 |
>> | 右移 | 变量>>表达式 | |||
| |||||
6 | > | 大于 | 表达式>表达式 | 左到右 | 双目运算符 |
>= | 大于等于 | 表达式>=表达式 | |||
< | 小于 | 表达式<表达式 | |||
<= | 小于等于 | 表达式<=表达式 | |||
7 | == | 等于 | 表达式==表达式 | 左到右 | 双目运算符 |
!= | 不等于 | 表达式!= 表达式 | |||
| |||||
8 | & | 按位与 | 表达式&表达式 | 左到右 | 双目运算符 |
9 | ^ | 按位异或 | 表达式^表达式 | 左到右 | 双目运算符 |
10 | | | 按位或 | 表达式|表达式 | 左到右 | 双目运算符 |
11 | && | 逻辑与 | 表达式&&表达式 | 左到右 | 双目运算符 |
12 | || | 逻辑或 | 表达式||表达式 | 左到右 | 双目运算符 |
| |||||
13 | ?: | 条件运算符 | 表达式1? 表达式2: 表达式3 | 右到左 | 三目运算符 |
| |||||
14 | = | 赋值运算符 | 变量=表达式 | 右到左 | -- |
/= | 除后赋值 | 变量/=表达式 | -- | ||
*= | 乘后赋值 | 变量*=表达式 | -- | ||
%= | 取模后赋值 | 变量%=表达式 | -- | ||
+= | 加后赋值 | 变量+=表达式 | -- | ||
-= | 减后赋值 | 变量-=表达式 | -- | ||
<<= | 左移后赋值 | 变量<<=表达式 | -- | ||
>>= | 右移后赋值 | 变量>>=表达式 | -- | ||
&= | 按位与后赋值 | 变量&=表达式 | -- | ||
^= | 按位异或后赋值 | 变量^=表达式 | -- | ||
|= | 按位或后赋值 | 变量|=表达式 | -- | ||
| |||||
15 | , | 逗号运算符 | 表达式,表达式,… | 左到右 | -- |
6、类型转换
转换的方法有两种:
(1)自动转换(隐式转换):遵循一定的规则,由编译系统自动完成。
(2)强制类型转换:把表达式的运算结果强制转换成所需的数据类型。
类型转换的原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。
二、程序流程结构
C语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。
(1)顺序结构:程序按顺序执行,不发生跳转。
(2)选择结构:依据是否满足条件,有选择的执行相应功能。
(3)循环结构:依据条件是否满足,循环多次执行某段代码。
注意区别三个语句
1) break语句
在switch条件语句和循环语句中都可以使用break语句:
(1)当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
(2)当它出现在循环语句中,作用是跳出当前内循环语句,执行后面的代码。
(3)当它出现在嵌套循环语句中,跳出最近的内循环语句,执行后面的代码。
2)continue语句
在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用continue语句。
3)goto语句
(无条件跳转,尽量少用)
三、练习
练习:九九乘法表
1 #define _CRT_SECURE_NO_WARNINGS
2 #include<stdio.h>
3 #include<string.h>
4 #include<stdlib.h>
5
6 int main()
7 {
8 int i, j;
9 for (i = 1; i <= 9; i++)
10 {
11 for (j = 1; j <= i; j++)
12 {
13 printf("%d*%d=%d\t", j, i, i*j);
14 }
15 printf("\n");
16 }
17
18
19 system("pause");
20 return EXIT_SUCCESS;
21 }
注意:此处的printf("%d*%d=%d\t", j, i, i*j);第一列才是1*1,1*2....
练习:等腰三角星星
1 #define _CRT_SECURE_NO_WARNINGS
2 #include<stdio.h>
3 #include<string.h>
4 #include<stdlib.h>
5
6 int main()
7 {
8
9 int row;
10 printf("输入行数:\n");
11 scanf("%d", &row);
12 for (int i = 1; i <= row; i++)
13 {
14 for (int j = 1; j <= row - i; j++)
15 {
16 printf(" ");
17 }
18 for (int k = 1; k <= i * 2 - 1; k++)
19 {
20 printf("*");
21 }
22 printf("\n");
23
24 }
25
26 system("pause");
27 return EXIT_SUCCESS;
28 }
练习:猜数字
1 #define _CRT_SECURE_NO_WARNINGS
2 #include <time.h>
3 #include<stdio.h>
4 #include<string.h>
5 #include<stdlib.h>
6
7 int main()
8 {
9 //加入随机数种子
10 srand((unsigned int)time(NULL));
11 int num = rand()%100+1;//1-100
12 int value;
13 while (1)//for(;;)
14 {
15 scanf("%d", &value);
16 if (value > num)
17 printf("您输入的数太大了\n");
18 else if (value < num)
19 printf("您输入的数太小了\n");
20 else
21 {
22 printf("恭喜您!中奖啦~\n");
23 break;
24 }
25 }
26
27
28 system("pause");
29 return EXIT_SUCCESS;
30 }
在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。
标签:语句,左到,01,05,--,运算符,int,表达式 From: https://blog.51cto.com/u_15405812/5833121