物协 C Gateway Course 23.10.5-7 参考笔记
1.运算符
1.1算数运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。
算术运算符通常适用于数字类型的操作数,例如int、float、double等。下面是一些使用算术运算符的示例:
int a = 5, b = 7;
int c = a + b; // c为12
int d = a - b; // d为-2
int e = a * b; // e为35
int f = b / a; // f为1
int g = b % a; // g为2
i++ 先用再加
++i 先加再用
1.2关系运算符
关系运算符在C语言中主要用于从两个值(通常是数值)之间创建布尔表达式,返回的结果是真或假。下面是一些常见的关系运算符:。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
int a = 5, b = 7;
int c = a > b; // c为0
int d = a < b; // d为1
int e = a >= b; // e为0
int f = a <= b; // f为1
int g = a == b; // g为0
int h = a != b; // h为1
1.3逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
逻辑运算符的操作数可以是任何类型的表达式,但是它们通常用于布尔表达式的计算。下面是一些示例
与(&&): 如果两个操作数都非零,则条件为真。
或(||): 如果两个操作数中有任意一个非零,则条件为真。
非(!): 如果条件为真则逻辑非运算符将使其为假。
int a = 5, b = 7;
int x = (a > 0) && (b > 0); // x为1
int y = (a < 0) || (b < 0); // y为0
int z = !(a > 0); // z为0
2.选择结构
2.1if(…) {…}
1.if (表达式) {语句;}
表达式:
a,用非 0 值表示真,用 0 表示假;
b,if(flag) 相当于 if(flag!=0);
c,浮点数无法与 0 比较,只能用近似的值比较;例: 1e-6 等于1x10的-6次方可以看成0来使用;
2.用于单分支选择结构;
3.如含有交叉关系,使用并列的if语句;
例1:输出两个整数中的最大值
#include <stdio.h>
void main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
if(a>b)
{
printf("max = %d\n",a);
}
if(a<b)
{
printf("max = %d\n",b);
}
}
2.2if(…) {…} else {…}
- 一般形式:
if(表达式) {语句1; } else { 语句2;}
- 用于双分支控制的条件语句;
- 用于非此即彼的关系时;
- 零件优良差
- 可嵌套
#include<stdio.h>
int main(){
float size;
printf("请输入零件尺寸\n");
scanf("%f",&size);
if(size >= 9.8 && size <= 10.2)
{
printf("零件的质量为优");
}else
{
if(size >= 9.6 && size < 9.8||size >= 10.2 && size < 10.4)
{
printf("零件的质量为良");
}else
{if(size >= 9.4 && size < 9.6 || size > 10.4 && size <= 10.6)
{
printf("零件的质量为差");
}else
{
printf("零件的质量为不合格");
}
}
}
return 0;
}
2.3if(…) {…} else if(…) {…}
- 一般形式:
if(表达式1) { 语句1;}
else if(表达式2) {语句2;}
…
else if(表达式n){语句n;}
else{语句n+1;} - 用于多分支的控制的条件语句;
判断字符
#include <stdio.h>
void main()
{
char ch;
printf("请输入一个字符:");
ch = getchar();/*getchar、putchar专门用于字符输入输出;
getchar()写法上要写为 变量 = getchar();
putchar()用法为putchar(变量);
putchar('\n')输出一个控制符;
putchar('字母/字符');输出字母/字符;
*/
if(ch<=31)
{
printf("这是一个控制字符或通讯专用字符!\n");
}
else if(ch >= '0' && ch <= '9')
{
printf("这是一个数字!\n");
}
else if(ch >= 'A' && ch <= 'Z')
{
printf("这是一个大写字母!\n");
}
else if(ch >= 'a' && ch <= 'z')
{
printf("这是一个小写字母!\n");
}
else
{
printf("这是其他字符!\n");
}
}
2.4 switch case
2.4.1.基本语法结构
switch(整型常量/整型变量/整型表达式){
case var1:
break;
case var2:
break;
case var2:
break;
default:
break;
}
2.4.2.为何要用switch case
switch
语句也是一种分支语句,常常用于多分支的情况。这种多分支,一般指的是很多很多分支,而且判定条件主要以整型为主,部分情况用if else来书写过于复杂
例题:输入数字输出对应的周几
#include <stdio.h>
int main(){
int day = 0;
printf("请输入周几的阿拉伯数字:");
scanf("%d",&day);
switch (day) {
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期七\n");
break;
case 0:
printf("退出\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
return 0;
}
2.4.3何为case
case
本质是进行判定功能,与switch
里面的语句相比较,如果相同,则执行语句,不相同则找下一个case
比较,直至所有case
语句都不与switch
相同,此时执行default
语句
case
决定了从哪开始执行语句,所以说case
是判定功能
2.4.3何为break
break
本质是执行分支功能
如果将上述例题中的break删去,则运行结果为:
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5CUozumi%5CAppData%5CRoaming%5CTypora%
5Ctypora-user-images%5Cimage-20231007222317620.png&pos_id=img-Wg779zfF-1696688989033)
以发现当没有break
时,会继续执行下一条case
语句,当遇到break
时,不再执行。
switch
语句是没有任何功能的,真正使得switch
结构实现类似if else
功能的是由于case
和break
语句的配合。
2.4.4规定
switch
语句必须是整型常量/整型变量/整型表达式
case
语句必须是整型常量/整型常量表达式,类似const
修饰的常量称为只读变量也不可以
2.4.5 default
作用:当所有的case
语句都不与switch
语句匹配时,这时执行default
语句。强烈建议写在最后!!!
switch
语句是没有任何功能的,真正使得switch
结构实现类似if else
功能的是由于case
和break
语句的配合。
2.4.4规定
switch
语句必须是整型常量/整型变量/整型表达式
case
语句必须是整型常量/整型常量表达式,类似const
修饰的常量称为只读变量也不可以
2.4.5 default
作用:当所有的case
语句都不与switch
语句匹配时,这时执行default
语句。强烈建议写在最后!!!
default
语句的位置是非常自由的