第三章 运算符与表达式Pro

news2024/11/27 18:24:50

三、运算符与表达式

 C语言一共有34个运算符,记这些运算符时从以下几个方面记:

        运算符的书写形式;

        运算符的运算规则;(两个整数相除,结果为整数)

        所能进行的操作数;(取余运算符%,操作数只能是整数

        优先级和结合性;

        a+b*c   //要考虑优先级问题

        

考点一       算术运算符

  1. 两个整数相除的结果为整数。
    5/3=1,1.0/2.0=0.5      //整数除法为整数    小数除法为小数
  2. %要求参加运算的运算对象为整数,结果也是整数。
    8%3,结果为2
    -8%3,结果为-2
    被除数是正结果为正,被除数为负,结果为负
  3. *不能省略
  4. 理解和掌握%10为截取个位
                        /10为截掉个位
    分解整数用的比较多

        考点二        赋值运算符与表达式(3钟)

  1. 赋值运算符: = ,优先级倒数第二(逗号倒一)
  2. 赋值运算符左侧必须为变量,不能为常量或表达式,区别于数学式;
  3. 右结合;
int x,y,z;//定义

x= y=z=3;//赋值

int x=y=z=3;   X  //定义要逐个定义逐个赋值


带数据类型的叫做定义
不带数据类型的叫做 使用

4、区分赋值运算和逗号运算x=3,y=5; x=(3,y=50);

5、复合赋值运算符:y+=y*=3+6;等价于y = y* (3+6);

++(--)只能是变量,不能是常量,表达式       可以是混合运算
 

2019 .已知int y=10:则执行y+=y-=y-y;后y的值是()

A.10        B.20        C.30        D.40

#include <stdio.h>
void main()
{
    int a = 10;
    a +=a -= a-a;
    printf("a = %d", a);
}

2018. 设有语句 int a=3; 则执行了 a*=a+=a-2; 后为()
A.3        B.4        C.16        D.9

#include <stdio.h>
void main()
{
    int a = 3;
    a *=a += a-2;
    printf("a = %d", a);
}

        

        考点三        关系与逻辑运算符等价形式

  1. > < >= <= == !=
  2. 优先级:< <= > >= ——  ==    !=
    算术运算符 → 关系运算符赋值→ 赋值
  3. 关系表达式的值为一个逻辑值,即“真”用“1”表示或“假”用“0”表示。

int x=4,y; y=2<x<6;则y值?

#include <stdio.h>
void main()
{
    int x=4,y;
    y=2<x<6;
    printf("%d",y);
}
  1. ! && ||
  2. 优先级:!&&||
    ! 算术运算符 关系运算符 &&   || 赋值
  3. 知识点
    运算时:所有非0值(包括负数)均“真”,0表示“假”
    结果:真为1,假为0

 2)若变量c为char型,能正确判断c为大写字母的表达式写法:

#include <stdio.h>
void main()
{
    char c;
    scanf("%c",&c);
    if (c >= 'A' && c <= 'Z') {
        printf("你输入的是大写字母");
    }else{
        printf("你输入的是小写字母");
    }
}

 

判断c为小写的程序段

#include <stdio.h>
void main()
{
    char c;
    scanf("%c",&c);
    if ((c >= 'a') && (c <= 'z')) {
        printf("你输入的是小写字母");
    }else{
        printf("你输入的不是小写字母");
    }
}

 

2019.以下关于逻辑运算符两侧运算对象的叙述正确的是( )

A.只能是整数0或1

B.只能是整数0或非0

C.只能是整数0或正整数

D.可以是任意合法表达式

 2019 .若有int x=1,y=2,z;则表达式z=(x==y)的值是

A.0        B.1        C.true        D.flase

#include <stdio.h>
void main()
{
    int x=1,y=2;
    int z=(x==y);
    printf("%d",z);
}

    

         考点四        短路规则

  1. a&&b :有假则假,全真才真。
    求解——如a为真,才判断b的值;如a为假则不再判断b;
  2. allb:有真则真,全假才假。
    求解——如a为假,才判断b的值;如a为真则不再判断b;
  3. 注意:优先级在短路规则中失效!

若a=3,b=1;执行a++1l--b后,a,b的值?

#include <stdio.h>
void main()
{
  int a=3,b=1;
  if(a++||--b){
      printf("%d%d",a,b);
        }
    }

      

例:a = 2; b = 3; c = 4a>1|| b++ >2 ||c--!=0

#include <stdio.h>
void main()
{
  int a=2, b=3,c=4;
  if(a>1||b++>2||c--!=0){     //遇真则真 全假才假   a>1 成立为1 不继续往下执行
      printf("a=%d \nb=%d\nc=%d",a,b,c);
        }
    }

       

 例: a=1,b=2,c=3,d=4,m=1,n=1(m=a>b)&&(n=c>d) m=?,n=?

已知整型变量m,n,a,b,c,d的值都是0,则执行(m=a==b) || (n=c==d);后m与n的值分别为()。

#include <stdio.h>
void main()
{
  int m=0, n=0,a=0,b=0,c=0,d=0;
  if((m=a==b)||(n=c==d)){
      printf("m=%d \nn=%d",m,n);
        }
    }

 已知w=1,x=2,y=3,z=4,a=5,b=6;则执行语句(a=w>x)&&(b=y>z)后, a,b的值为( )。

#include <stdio.h>
void main()
{
  int w=1,x=2,y=3,z=4,a=5,b=6;
  if((a=w>x)&&(b=y==z)){
      printf("a=%d \nb=%d",a,b);
        }
    }

        

        考点五        条件运算符

  1. 表达式1? 表达式2:表达式3
  2. 优先级比赋值运算符,逗号运算符高
  3. 右结合
  4. a> b?a:c> d?c:d 
  5. 正确区分表达式1、2、3
    +x=y+2?y++:y-=3;
    b?a:c>d?c:d
    +a>b? (max=a):(max=b);

若x=1,y=2;则表达式x++>=y?1:2的值为( )。

#include <stdio.h>
void main()
{
    int x=1,y=2;
    if(x++>=y?1:2){
      printf("x=%d \ny=%d",x,y);
        }
}

2018,已知a=1,b=2,c=3,d=4,x=5,则语句x=(a>b?a:c<d?c:d);执行后x的值为()。

#include <stdio.h>
void main()
{
    int a=1,b=2,c=3,d=4,x=5;
    if(x=(a>b?a:c<d?c:d)){
      printf("x=%d",x);
    }

    }

     

        考点六        逗号运算符

  1. 表达式1,表达式2,....,表达式n.
  2. 求解过程为:先求解表达式1,再求解表达式2,后求解表达式n。
  3. 逗号表达式的值是最后一个表达式的值.
  4. 优先级最低,具有左结合性。

        考点七        位运算

  1. &(按位)   |(按位)  ^(按位异或)   :相同为0,不同为1
    ~ (按位取反)<<(左移位)>>(右移位)
  2. 只能是整型数据或字符型数据,不能实型数据;
  3. 字节内的二进制位进行的操作;
  4. 运算对象一律按二进制补码参加运算,并按位进行运算;
    转换成二进制补码,进行位运算,根据要求转换进指数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试题:Java反射和new效率对比,差距有多大?

文章目录 一、基础概念二、new 对象和反射创建对象的效率对比所以下面我们来探讨一下为什么这么大差别?总结起来有下面几个原因 三、反射和new 的使用场景反射的部分使用场景new对象和反射的区别 一、基础概念 Java中&#xff0c;一般我们创建一个对象可能会选择new一下个实例…

回顾vmware 补充细节

安装好esxi后怎么直接在DCUI界面&#xff08;直接控制台用户界面&#xff09;进入命令行页面 在该界面使用 ALT F1 进入 ALT 退出 I界面&#xff08;直接控制台用户界面&#xff09;用户需要在机房直连服务器上才可以看到该界面 VSphere 在老的CPU是不支持的 三种方式访…

调试神器--Rlog

概述 在现代软件开发中&#xff0c;日志记录系统是不可或缺的一部分。它不仅可以帮助开发人员在应用程序中定位和解决问题&#xff0c;还可以用于监控、性能分析、安全审计等方面。本文将介绍日志记录系统的基本概念、重要性以及如何构建一个高效的日志记录系统。 为什么需要…

AI时代Excel数据分析提升之道

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

Oculus经验记录

它的Unity插件以前的版本V39跟V40有问题。V40最奇葩&#xff0c;inputOVR组件中几乎什么都没有&#xff0c;V39还好&#xff0c;只是OVRcameraRG无法拖动倒inputOVR组件上&#xff0c;因类型差一点点&#xff08;这个我记得以前自己遇到过&#xff0c;有解决的记录&#xff0c;…

洗眼镜超声波清洗机品牌哪个值得买?眼镜超声波清洗机推荐

现在大部分人都离不开眼镜来辅助我们看远处的东西&#xff0c;不单单是眼镜&#xff0c;现在墨镜的使用量也很大&#xff0c;墨镜可以再太阳大的时候遮挡一下视线&#xff0c;近视眼镜可以辅助那些有近视眼的朋友看到更远处的地方。随着眼镜使用量越来越大&#xff0c;也有很多…

WSL Ubuntu 22.04.2 LTS 安装paddlepaddle-gpu==2.5.1踩坑日记

环境是wsl的conda环境。 使用conda安装paddlepaddle-gpu: conda install paddlepaddle-gpu2.5.1 cudatoolkit11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 等待安装... 报错处理&#xff1a; (1)PreconditionNotMetError: Cannot lo…

虹科分享 | 2023Gartner®终端安全发展规律周期:AMTD引领未来

导语&#xff1a;在2023年Gartner终端安全发展规律周期中&#xff0c;自动移动目标防御&#xff08;AMTD&#xff09;崭露头角&#xff0c;虹科Morphisec被誉为AMTD领域的样本供应商。该周期呈现出终端安全领域的最新创新&#xff0c;旨在帮助安全领导者更好地规划、采纳和实施…

我与COSCon的故事【时光的故事】

曾经 2019年的时候&#xff0c;我还在日本读研究生&#xff0c;做一些物联网 (Internet of Things, IoT) 网络中的底层P2P (Peer to Peer) 通讯仿真模拟。这个方向是新来的Nguyen老师的新方向&#xff0c;它跟计算机强相关&#xff0c;但是很小众&#xff0c;实验室里也没有前辈…

汽车数据安全事件频发,用户如何保护隐私信息?

面对日益增多的汽车数据安全事件&#xff0c;对于广大用户来说&#xff0c;有没有既廉价又安全的解决方案&#xff1f; 频发的汽车数据安全事件 随着汽车“新四化”大潮的来临&#xff0c;汽车用户从电动化、网联化、智能化、共享化中切实体验到了越来越多的便利&#xff0c;各…

spark stream入门案例:netcat准实时处理wordCount(scala 编程)

目录 案例需求 代码 结果 解析 案例需求&#xff1a; 使用netcat工具向9999端口不断的发送数据&#xff0c;通过SparkStreaming读取端口数据并统计不同单词出现的次数 -- 1. Spark从socket中获取数据&#xff1a;一行一行的获取 -- 2. Driver程序执行时&#xff0c…

用CRM系统实现销售目标的步骤

每个销售都要有自己的目标计划&#xff0c;在定销售计划时要把握方面问题&#xff0c;一个严格执行&#xff0c;另一个是可控。明确销售目标后&#xff0c;合理分配时间&#xff0c;运用销售基本工作方法严格把控销售进度。那我们该如何用CRM销售管理系统实现销售目标&#xff…

js面向对象(工厂模式、构造函数模式、原型模式、原型和原型链)

1.封装 2. 工厂模式 function createCar(color, style){let obj new Object();obj.color color;obj.style style;return obj;}var car1 createCar("red","car1");var car2 createCar("green","car2"); 3. 构造函数模式 // 创建…

Mybatis-Plus3.x的使用

MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为 简化开发、提高效率而生。 一、引入 创建步骤&#xff1a; 1.创建Spring Boot工程 2.添加依赖 引入 Spring Boot Starter 父工程&am…

小程序开发平台源码系统+内容付费小程序功能 带完整的搭建教程

来喽来喽&#xff01;今天来给大家分享的是一款小程序开发平台源码系统&#xff0c;这款小程序开发平台的功能很多&#xff0c;本文主要给大家介绍一下内容付费小程序功能。以下是部分核心代码&#xff1a; 系统主要功能如下&#xff1a; 知识付费系统开发的优势。一是提高获取…

《永远的爱犬》The forever dog英文版

爱狗人士必读经典&#xff0c;主页左下角有英文版下载方式 手机可阅读

C++标准模板(STL)- 类型支持 (数值极限,traps,tinyness_before)

数值极限 std::numeric_limits 定义于头文件 <limits> 定义于头文件 <limits> template< class T > class numeric_limits; numeric_limits 类模板提供查询各种算术类型属性的标准化方式&#xff08;例如 int 类型的最大可能值是 std::numeric_limits&l…

ESD静电电压监控系统的作用是什么

ESD静电电压监控系统的作用是实时监测生产环境中的静电电压&#xff0c;及时检测和预防ESD静电电压过高的情况&#xff0c;保护设备和产品的质量&#xff0c;确保生产过程的安全和稳定。 具体来说&#xff0c;ESD静电电压监控系统可以实现以下功能&#xff1a; 实时监测静电电压…

华为云应用中间件DCS系列—Redis实现(社交APP)实时评论

云服务、API、SDK&#xff0c;调试&#xff0c;查看&#xff0c;我都行 阅读短文您可以学习到&#xff1a;应用中间件系列之Redis实现&#xff08;社交APP&#xff09;实时评论 1 什么是DEVKIT 华为云开发者插件&#xff08;Huawei Cloud Toolkit&#xff09;&#xff0…

[科研琐事] 安装服务器的二三事

1. 机柜参数 宽度&#xff1a;一般机器都是符合的&#xff1b; 深度&#xff1a;对应服务器最长的那个边&#xff1b; 厚度&#xff08;高度&#xff09;&#xff1a;1/2/3/4U&#xff0c;就是机柜上写的刻度数字&#xff0c;1U1.75英寸。 1U4.45cm 2U4.45cm * 2 3U4.45cm * …