首页 > 其他分享 >嵌入式课程day04-C语言运算符和选择结构

嵌入式课程day04-C语言运算符和选择结构

时间:2024-10-31 17:46:11浏览次数:3  
标签:操作数 int C语言 运算符 && printf day04 表达式

2.3运算符

2.3.1运算符介绍

运算符:具有一定运算规则的符号。

操作数:运算符的操作对象。

~a    --- a 就是~运算符的操作数。 --- 单目运算符: 运算符只有一个操作数

3 + 5 --- 3 5就是+运算符的操作数。--- 双目运算符: 运算符有2个操作数     

表达式1 ? 表达式2 : 表达式3  ---  表达式1 表达式2 表达式3 就是 ?:运算符的操作数。 --- 三目运算符: 运算符有3个操作数 

优先级:()  单目  双目  三目  赋值复合

表达式:可以是常量  变量  操作数和运算符的组合

注:表达式一定有结果 。

2.3.2运算符分类:

赋值运算符  = 

算术运算符: + - * /(除)? %(取余 取模)

系运算符: > < >= <=  ==(等于) !=(不等于)

逻辑运算符: &&  ||  !

其他运算符: ++ --  : += -= ,

位运算符:& | ^ ~ <<  >>

2.4赋值运算符  =

原则:赋值符号的两边类型要一致。

如果不一致,会以左侧为准,尝试将右侧的值转换为左侧的类型,如果类型转换不了报警告或者报错。 (如果两边类型不一致,赋值的时候又不想报错,报警告,就用 强制类型转换)。

强制类型转换:  (转换的数据类型)值

2.5算术运算符:

例: + - * / %

2.5.1除以:/

规则: 如果两边都是整型结果是整型,如果有小数那结果就是小数。

2.5.2取余 取模:%

规则:两边必须都要是整型

m % n 它的结果可能是 0 ~ n-1 中的某一个数。

如果 m % n == 0 情况下,m就是n的倍数   n是m的因数    m能被n整除

如果 m % n != 0 情况下,m不是n的倍数   n不是m的因数  m不能被n整除

2.5.3使用场景:

场景1:偶数  奇数 判断           

场景2: / % 结合 做数据分离

数据分离 :对应位上的数字 = 数据 / 对应位的权重 % 进制数。 

数据分离思想解决问题

现在距离国庆节还有126 4217 0860毫秒,那么是几天几小时几分几秒呢?
1s=1000ms,1分=60s,1时=3600s,1天=86400s

#include<stdio.h>
int main()
{
	long int x=12642170860;
	int y=x/1000;
	printf("是%d天%d小时%d分%d秒",y/86400,y%86400/3600,y%86400%3600/60,y%86400%3600%60);
    return 0;
}

2.6关系运算符

>        <        <=        >=        !=

关系运算符的运算结果:

关系成立——真,关系不成立——假。

例:3>5不成立——假

0=='0'——假

0=='\0'——真

练习:输入一个成绩,判断该成绩是否合格

#include<stdio.h>
int main()
{
    float grade;
    scanf("%f",&grade);
    if(grade>=60)printf("及格");
    printf("不及格");
    return 0;
}

 2.7逻辑运算符

&&        ||        !

2.7.1逻辑与:&&

格式:表达式1&&表达式2。

规则:“全真则真,有假则假”。

结果:真,假

表达式1表达式2表达式1&&表达式2
不用看也不用执行

举例说明

#include<stdio.h>
int main()
{
    int a=1,b=2;
    int c;
    c=(a==2)&&(b=3);
    printf("%d,%d",b,c);
    return 0;
}
//输出2,0

 此题中的表达式a==2结果为假,故b=3不执行。返回b的值3,c的值0;

应用场景:并且、同时。 

练习:如果这个数据是3的倍数同时格式数字是7则输出yes,否则输出no。

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n%3==0&&n%10==7)
    printf("yes");
    else printf("no");
    return 0;
}

输入27,输出yes,输入6,输出no。

2.7.2逻辑或:||

格式:表达式1||表达式2。

规则:有真则真,全假为假。

表达式1表达式2表达式1&&表达式2
不用看也不用执行

 场景:或者,不在某一个范围内

 2.7.3逻辑非:!

格式:!表达式

规则:"真变假,假变真"

表达式!表达式

场景:判断表达式为假的时候,!表达式等价于表达式==0。

练习:!E等价于什么?C

A、E==1

B、E!=1

C、E==0

D、E!=0

标签:操作数,int,C语言,运算符,&&,printf,day04,表达式
From: https://blog.csdn.net/m0_56934903/article/details/143386064

相关文章

  • 重温c语言之,7天开整,就是随便的写写,第一天
    一:转义字符\t是一个字符,在printf里面,只占一个位置;其他什么的抽象字符,用一个'\'+抽象字符就可以出现;\ddd这个是8进制的,可以转成10进制的,之后参考ASCLL码表即可二:枚举类型的函数与数组一样,有下标,都是从0开始的三:数组可以先不在【】这里面填写多少,但是需......
  • C语言学习----3
    #一些无关的小内容这个是作业的一个代码 再次可见printf %d代表对应的数据 #字符串 以上为字符串的大概含义我们用char来对字符以及字符串进行定义 printf中用%s来进行表其中的arr[]是表示数组(里面存放了很多字符)详细看下面的图片arr[]括号里一般放数据的......
  • 共享栈的实现(C语言)
    作业三一、共享栈的ADT1、总体ADT的函数总览voidInit_ShStack(ShStack&S); //1.初始化共享栈boolEmpty_Stack1(ShStackS); //2.1号栈判空boolEmpty_Stack2(ShStackS); //2.2号栈判空voidPush_Stack1(ShStack&S,ElemTypex); //3.1号栈入栈......
  • 3.C语言中scanf 和printf的重点介绍(续10/25篇)
    文章目录一、printf1.1基本用法1.2占位符1.3占位符列举1.4输出格式1.4.1限定宽度1.4.2总显示正负号1.4.3限定小数位数1.4.4输出部分字符串二、scanf2.1基本用法2.2scanf的返回值2.3占位符2.4赋值忽略符总结一、printf1.1基本用法printf()的作用......
  • C语言符号意义大全
    C语言符号意义大全32个关键字及其含义:auto:声明自动变量一般不使用 double:声明双精度变量或函数 int:声明整型变量或函数 struct:声明结构体变量或函数 break:跳出当前循环 else:条件语句否定分支(与if连用) long:声明长整型变量或函数   switch:用于......
  • (C语言)数组
    目录一维数组1>.  定义2>. 数组的下标3>. 数组的初始化4>. 计算数组的大小    1)strlen    2)sizeof二维数组1>. 定义2>. 初始化    1)只有一个{}    2)多个{}变长数组数组定义:为了存放多个相同类型的元素,创建了数组;......
  • CMake 生成器表达式---条件表达式和逻辑运算符
    【写在前面】CMake的生成器表达式用于在构建系统级别上进行条件判断和逻辑运算,它们通常用在目标属性和生成器表达式上下文中。这些表达式允许你根据不同的平台、配置或编译器来定制构建过程。本文引用的文档链接:cmake生成器表达式(7)—CMake3.26.4Documentation【正文......
  • 运算符重载
        运算符重载是C++中的一个重要特性,它允许程序员为自定义类型(类)定义运算符的行为。以下是运算符重载在C++语言中的一些应用:1.**自定义数据类型的运算**:通过运算符重载,可以使自定义类的对象像内置类型一样进行运算。例如,可以重载加法运算符(`+`)来实现两个对象的相加......
  • 明解c语言第四章while语句练习4-6和练习4-7
    就在前几天我学习了一个do语句,接着这几天学习了一个while语句,看完书来写练习4-6和练习4-7感觉一头雾水,可能是今天中午没睡觉的缘故我脑子里空空的,于是对于练习4-6我求助了ai练习4-6:编写一段程序,按照升序显示出小于输入值的所有真偶数ai是这样写的//编写一段程序,按照升序显示......
  • C语言基础
    ifelseifelse后面可以没有花括号,没有的话只能控制一条语句(遇到的第一个分号)可以单独使用if,if后面可以没有else,但是else前面必须有if练习:题目:说出以下代码的执行结果intmain(){inta=10;printf("0");if(a>10);printf("1");elseprintf("4");......