C基础学习笔记——01-C基础第05天(运算符和流程结构语句)
在学习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,转载请注明出处。
posted on 2020-06-01 20:29 Alliswell_WP 阅读(233) 评论(2) 编辑 收藏 举报