【C语言基础考研向】06运算符与表达式

文章目录
1.运算符分类
2.算术运算符及表达式
3.关系运算符与关系表达式
4.c语言运算级优先级表
课后习题自测


1.运算符分类

语言提供了13种类型的运算符,如下所示.

(1)算术运算符(+ - * / %) .
(2)关系运算符(>< == >=<= l=) .
(3)逻辑运算符(l && ll) .

(4)位运算符(<< >> ~ I ^ &).
(5)赋值运算符(=及其扩展赋值运算符).
(6)条件运算符(?和:)
(7)逗号运算符(,)
(8)指针运算符(*和&)—讲指针时讲解
(9)求字节数运算符(sizeof) .
(10)强制类型转换运算符((类型)).

(11)分量运算符(. - >) .—讲结构体时讲解
(12)下标运算符([ ]) . ----讲数组时讲解
(13)其他(如函数调用运算符() ). —讲函数时讲解


2.算术运算符及表达式

算术运算符包含+、一、、/和%,当一个表达式中同时出现这5种运算符时,先进行乘()、除(/)、取余(%),取余也称取模,后进行加(+)、减(-),也就是乘、除、取余运算符的优先级高于加、减运算符.

只有的情况:
(1) %运算符只适用于整形数

#举例
10%3=3
6%4=1

(2) / 运算时,只有两边的操作数都是整型的情况下,才执行整除运算,其他情况下执行浮点型数除法。

算术表达式:
由算术运算符组成的式子称为算术表达式,表达式一定有一个值。


3.关系运算符与关系表达式

关系运算符

关系运算符>、<、= =、>=、<=、!=依次为大于、小于、是否等于、大于等于、小于等于和不等于。

关系表达式

由关系运算符组成的表达式称为关系表达式。关系表达式的值只有真和假,对应的值为1和0。由于C语言中没有布尔类型,所以在C语言中0值代表假,非0值即为真。

例如,关系表达式3>4为假,因此整体值为0,而关系表达式5>2为真,因此整体值为1。关系运算符的优先级低于算术运算符,运算符的优先级的详细情况见最后。

在工作中,很多程序员容易不小心将两个等号写成一个等号,因此当判断整型变量i是否等于3时,我们可以写为3= =i,即把常量写在前面而把变量写在后面。这是因为当不小心将两个等号写为一个等号时,变量在前面就会导致编译不通,从而快速发现错误〈这种写法属于华为公司内部的一条编程规范)。

同时,在编写程序时,如果我们需要判断三个数是否相等,那么绝对不可以写为if(5= =5= =5),这种写法的值无论何时都为假,为什么?因为首先5= =5得到的结果为1,,然后1= =5得到的结果为0。如果要判断三个变量a、 b、c是否相等,那么不能写为a= =b= =c,而应写为a= =b &&b= =c。


4.c语言运算级优先级表

在这里插入图片描述
在这里插入图片描述

注意:

结合方向要注意,优先级2和14和条件运算符的结合方向是从右到左的

课后习题自测

1.算术运算符包含+、-、*、/和%,乘、除、取余运算符的优先级高于加、减运算符
A.正确 B.错误

答案
A

2.%取余(也称为取模运算)可以用于浮点数
A正确 B错误

答案:B
解释:取模运算只能用于整型数,不能用于浮点数

3.关系运算符的优先级高于算术运算符A正确B错误
答案:B
解释:关系运算符优先级是低于算术运算符的,记住这个对于初试大题编写是必须的

4.代码编写int a=5; if(3<a<10)这种编写方式是否正确
A 正确 B错误

答案:B
解释:在程序中是错误的.首先,无论a是大于3还是小于3,对于3<a这个表达式只有1或O两种结果.由于1和0都是小于10的,所以无论a的值为多少,这个表达式的值始终为真,因此在判断变量a是否大于3且同时小于10时,要写成a>3&& a<10,这才是正确的写法.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringCloud】微服务框架后端部署详细过程记录20240119

前言&#xff1a;前两天公司接到客户提供的一个微服务框架&#xff0c;导师让我在本地部署验证一下该框架的可用性&#xff0c;借此机会记录一下微服务项目的一个基本部署流程&#xff0c;仅供学习参考&#xff0c;如有不足还请指正&#xff01; 文件结构 提供的压缩文件共包含…

NVIDIA 大模型 RAG 分享笔记

文章目录 大语言模型在垂直领域落地的三个挑战&#xff1a;什么是 RAG以及为什么能解决大预言模型所带来的的这三个问题RAG 不是一项技术而是整体的 Pipeline非参数化 &#xff1a;数据库部分加载到数据库中检索阶段 提升检索效率的技术检索前&#xff1a;对query做处理use que…

开源项目汇总:机器学习前沿探索 | 开源专题 No.60

facebookresearch/xformers Stars: 6.0k License: NOASSERTION xFormers 是一个加速 Transformer 研究的工具包&#xff0c;主要功能如下&#xff1a; 可自定义构建模块&#xff1a;无需样板代码即可使用的独立/可定制化构建模块。这些组件与领域无关&#xff0c;被视觉、NLP…

MS2358——96KHz、24bit 音频 ADC

产品简述 MS2358 是带有采样速率 8kHz-96kHz 的立体声音频模数 转换器&#xff0c;适合于面向消费者的专业音频系统。 MS2358 通过使用增强型双位 Δ - ∑ 技术来实现其高精度 的特点。 MS2358 支持单端的模拟输入&#xff0c;所以不需要外部器 件&#xff0c;非常适…

基于docker创建nginx容器

docker一键安装可以参考我这个博客&#xff1a;一键安装docker 1.创建基础容器 docker run -p280:280 --name nginx -d nginx创建挂载到容器的宿主机文件夹 mkdir -p /home/000nginx-ebrms-ftp/html mkdir -p /home/000nginx-ebrms-ftp/logs mkdir -p /home/000nginx-ebrms-f…

C++ Linux动态库的编译和调用

一、C动态库编译 采用g编译C动态库&#xff0c;命令如下&#xff1a; g -fPIC -shared -o 动态库名 cpp文件名1.1 关于fPIC选项 首先了解动态库的载入时重定位。 一般linux的可执行文件都是elf格式&#xff08;一种二进制文件格式&#xff09;&#xff0c;在可执行文件的头部包…

C++进阶(五)二叉搜索树

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、二叉搜索树概念二、二叉搜索树操作三、二叉搜索树的实现四、二叉搜索树的应用五、二叉搜索…

Maxwell介绍

一、介绍 介绍&#xff1a;它读取MySQL binlog并将数据更改作为JSON写入Kafka、Kinesis和其他流媒体平台&#xff08;目前支持&#xff1a;kafka、RabbitMQ、Redis、file、Kinesis、Nats、Google Cloud Pub/Sub、Google Cloud Bigquery、SNS&#xff09; 版本&#xff1a;从v1.…

electron-builder打包过程中报错的处理

electron在使用electron-builder打包过程中需要用到四个包&#xff0c;但是由于内网的网络限制&#xff0c;下载不下来&#xff0c;会导致报错。下面即为具体的包&#xff1a; 通过镜像 https://registry.npmmirror.com/ https://registry.npmmirror.com/ 去下载相关的资…

智慧公厕:利用物联网、云计算和人工智能实现智能化管理与控制

智慧公厕是指利用传感感知、物联网、互联网、大数据、云计算、自动化控制等先进技术&#xff0c;实现对公厕的智能化管理与控制。通过以上高精尖的信息技术手段&#xff0c;可以实时监测厕所内人体活动状态、人体存在状态、空气质量情况、环境变化情况、设施设备运行状态等信息…

CentOS 7上安装Anaconda 详细教程

目录 1. 下载Anaconda安装脚本2. 校验数据完整性&#xff08;可选&#xff09;3. 运行安装脚本4. 遵循安装指南5. 选择安装位置6. 初始化Anaconda7. 激活安装8. 测试安装9. 更新Anaconda10. 使用Anaconda 1. 下载Anaconda安装脚本 首先需要从Anaconda的官方网站下载最新的Anac…

模型Model:字符串列表模型QStringListModel

一、QStringListModel &#xff08;1&#xff09;功能&#xff1a;处理字符串列表的数据模型&#xff0c;可作为QListView的数据模型&#xff0c;在界面上显示和编辑字符串列表。 二、QStringListModel 类中的函数 1)、 QStringListModel(QObject *parent Q_NULLPTR) //构造函…