配色: 字号:
C语言程序设计案例式教程-第3章 运算符与表达式
2022-11-08 | 阅:  转:  |  分享 
  
第3章 运算符与表达式《C语言程序设计案例式教程(第2版)》学习目标/Target学习目标/Target章节概述/ Summary上一章学
习了C语言的基础知识,但是只凭这些基础知识还无法编写C语言程序。例如,在上一章学习的基本数据类型,如同数学中的基本数字,如果想对数
字进行运算,还需要学习运算符与表达式相关的知识。本章将针对C语言的运算符与表达式以及运算符优先级进行详细讲解。目录/Content
s算术运算案例3-1【案例3-1】算术运算掌握算术运算符和赋值运算符的使用,能够使用算术运算符和赋值运算符完成表达式的算术运算和赋
值运算。学习目标案例描述算术运算在日常生活学习工作中都经常会用到,本案例要求编写程序实现简单的算术运算,具体要求如下。(1)从键盘
输入两个数。(2)分别对这两个数执行加、减、乘、除、取模和自增自减运算,并将结果输出至控制台。知识需求在数学中,进行算术运算需要使
用算术运算符,在计算机编程中,要实现算术运算,同样需要使用算术运算符。算术运算完成之后,需要将计算结果赋值给结果变量,赋值需要使用
到赋值运算符。 要实现算术运算,需要使用算术运算符。 要实现赋值运算,需要使用赋值运算符。算术运算符赋值运算符知识讲解运算符是告诉
编译器执行特定算术或逻辑操作的符号,它们针对一个或一个以上的操作数进行运算。1.运算符与表达式知识讲解1.运算符与表达式运算符是用
来操作数据的,因此,这些数据被称为操作数,使用运算符将操作数连接而成的式子称为表达式。(1)表达式主要是由运算符和操作数构成的,不
同运算符构成的表达式作用不同。(2)任何一个表达式都有一个值。知识讲解C语言中的算术运算符与数学中的算术运算符作用是一样的,但其组
成与数学中的算术运算符稍有不同。2.算术运算符与算术表达式知识讲解2.算术运算符与算术表达式根据运算符操作的数据个数,可以将运算符
分为单目运算符、双目运算符等。单目运算符:运算符只操作一个数据,如++、--。双目运算符:运算符操作数据有两个,如+、-、、/。
知识讲解2.算术运算符与算术表达式算术运算示例://假设a=10,b=20,c=3c=a+b //结
果为30a++ //结果为11b=--c //结果为2a%b+c-
- //结果为13①先计算a%b,结果为10。②再计算10+c,结果为13。③再执行c--,表达式执行完毕
,c的值为2。知识讲解2.算术运算符与算术表达式算术运算符在使用时有几点需要注意。算术运算符遵循“先乘除后加减”的原则。1在进行自
增(++)和自减(--)运算时,如果运算符(++或--)放在操作数的前面则是先进行自增或自减运算,再进行其他运算。反之,如果运算符
放在操作数的后面则是先进行其他运算再进行自增或自减运算。2知识讲解2.算术运算符与算术表达式自增自减运算示例:int num1 =
1; int num2 = 2; int res = num1 + num2++;printf("num2=%d" + num2
);printf("res=%d" + res);①运算num1+nun2,变量nun1,num2的值不变。②将第一步运算结果赋值
给变量res,此时res值为3。③num2进行自增,此时其值为3。知识讲解2.算术运算符与算术表达式整数之间相除,结果为整数。如果
除法运算中有浮点数,结果为浮点数。3除法运算示例:3500/10001000 //结果为3000执行顺序:(1)3500/100
0=3(2)31000=3000知识讲解2.算术运算符与算术表达式在进行取模运算时,运算结果的正负取决于被模数(%左边的数)的符
号,与模数(%右边的数)的符号无关。4取模运算示例:(-5) % 3 = -25 % (-3) = 2多学一招运算符的结合性运算符
的结合性:指同一优先级的运算符在表达式中操作的结合方向,即当一个运算对象两侧运算符的优先级别相同时, 运算对象与运算符的结合顺序。
大多数运算符结合方向:自左向右知识讲解3.赋值运算符与赋值表达式赋值运算符的作用是将常量、变量或表达式的值赋给某一个变量。知识讲解
3.赋值运算符与赋值表达式赋值运算符在使用时,需要注意以下两个问题。1在C语言中可以通过一条赋值语句对多个变量进行赋值。为多个变量
连续赋值示例:int x, y, z; x = y = z = 5; //为三个变量同时赋值错误示例:int
x = y = z = 5; //错误知识讲解3.赋值运算符与赋值表达式赋值运算符在使用时,需要注意以下两个
问题。2除“=”以外,其他都是特殊赋值运算符,以“+=”为例。赋值运算示例:int x=2;x+=3;①将x的值和3的执行相加。
②将相加的结果赋值给变量x。案例实现1.案例设计在实现案例时,遵循如下步骤。(1)定义两个变量num1和num2,调用scan
f()函数从键盘输入数据为两个变量赋值。(2)分别使用+、-、、/、%、++和--运算符实现两个变量的相应算术运算。案例实现2.
完整代码本案例中可以实现的效果图如下。代码实现鱼和熊掌不可兼得案例3-2【案例3-2】鱼和熊掌不可兼得掌握关系运算符和条件运算符的
使用,能够使用关系运算符和条件运算符完成表达式的比较运算和条件运算。学习目标案例描述《孟子·告子上》:鱼我所欲也,熊掌亦我所欲也,
二者不可兼得。鱼和熊掌不可兼得通常用于比喻事情无法两全其美。在我们一生当中,常常会遇到两难选择,大而言之,利与义想兼得,小而言之,
纵与读想两全。当我们身处两难抉择时,要学会思考分析,摒弃眼前利益,立足于长远目标。案例描述本案例要求编写一个程序,实现鱼与熊掌的选
择,具体要求如下。(1)从键盘输入两个整数。(2)比较两个数据的大小,如果第一个数较大,在控制台输出“您选择了鱼”;如果第二个数较
大,在控制台输出“您选择了熊掌”。知识需求在计算机程序中比较两个数大小,同样要使用比较运算符,比较运算符在C语言中也称为关系运算符
。除了比较两个数大小,还要对比较结果进行判断,比较结果的判断需要使用条件运算符。 要实现关系运算,需要使用关系运算符。 要实现条件
判断,需要使用条件运算符。关系运算符条件运算符知识讲解关系运算符用于对两个数据进行比较,其结果是一个逻辑值(“真”或“假”),“真
”用非“0”数字来表示,“假”用数字“0”来表示。1.关系运算符与关系表达式知识讲解1.关系运算符与关系表达式关系运算示例:int
a=10,b=20,c=3;a>b //假,值为0a==c //假,值为0 b!=c <= a
//真,值为1知识讲解2.条件运算符与条件表达式条件运算符用于判断条件是否成立,如果条件成立,结果为真,用非0值表
示;如果结果为假,用0表示。C语言提供的条件运算符为?:。表达式1 ? 表达式2 : 表达式3①先计算表达式1。②若表达式1的值为
真(非0),则将表达式2的值作为整个表达式的取值。③若表达式1的值为假(0),将表达式3的值作为整个条件表达式的取值。知识讲解2.
条件运算符与条件表达式条件运算示例:int a = 6, b = 3;a > b ? a b : a + b; //条件
表达式知识讲解2.条件运算符与条件表达式条件运算符需要三个表达式,因此,条件运算符又称为三目运算符。注意“?”和“:”是一对运算符
,不能分开单独使用。条件运算符优先级低于关系运算符,高于赋值运算符。条件运算符可以进行嵌套,结合性为自右向左。案例实现1.案例设计
根据案例需求,案例实现可以遵循以下步骤。010203123定义两个变量num1、num2。调用>运算符比较num1与num2的大小
。如果比较结果为真,输出您选择了熊掌,如果比较结果为假,输出您选择了鱼。案例实现2.完整代码本案例中可以实现的效果图如下。代码实现
优先级案例3-3【案例3-3】优先级(1)掌握逻辑运算符的使用,能够使用逻辑运算符完成表达式的逻辑运算。(2)熟悉运算符的优先级顺
序,能够说出常见运算符优先级排序。学习目标案例描述时间管理四象限法则,可以将所要做的事情按轻重缓急程度做一个优先级排序,优先做重要
且紧急的事情,不重要不紧急的事情排在最后做。→ 有序合理的安排所做事情,才能保证学习生活顺利推进。案例描述在C语言中,各种运算符也
有优先级,如果一个表达式中有多个运算符,则表达式会按照运算符的优先级依次进行运算。在本案例中,假设定义了3个int类型的变量a、b
、c,其值分别是3、4、5,请计算表达式2>5&&2||3<4-!0的值。知识需求 2 > 5 && 2 |
| 3 < 4 - ! 0关系运算符逻辑运算符算术运算符谁先计算? 排优先级知识讲解1.逻辑运算符与逻辑表达式逻辑运算
符用于判断复合条件的真假,其结果仍为“真”或“假”。知识讲解1.逻辑运算符与逻辑表达式逻辑运算示例:int a=10,b=20,c
=0;!a //结果,值为0 a&&b //a和b都为真,结果为真,即值为1 b||c //结果
为真,即为1 !a&&b //结果为假,即值为0 !a||b //结果为真,即值为1优先级:!>&&>||知识讲解
1.逻辑运算符与逻辑表达式逻辑运算符&&和||有“短路”现象。如果“&&”运算符左边的值为假,则右边的表达式就不再进行运算,整个表
达式的结果为假。&&运算符的短路||运算符的短路如果“||”运算符左边的值为真,则右边的表达式就不再进行运算,整个表达式的结果为真
。知识讲解2.运算符优先级在表达式运算中,运算符参与运算的先后顺序,称为运算符优先级。知识讲解2.运算符优先级在表达式运算中,运算
符参与运算的先后顺序,称为运算符优先级。知识讲解2.运算符优先级优先级运算示例一:int a =2;int b = a + 3a
;printf ("%d",b);优先级运算示例二:int a =2;int b = (a+3) a;printf ("%d"
,b);先乘除后加减先执行小括号中的加法运算,相加结果再也a执行相乘运算多学一招运算优先级规则较多,但它们大致可以使用如下口诀概括
:单算移关与,异或逻条赋。运算符优先级口诀 单算移关单目运算符算术运算符按位左移,按位右移关系运算符与按位与异或逻条按位异或按位或
逻辑运算条件运算符赋赋值运算案例实现1.案例设计表达式2>5&&2||3<4-!0的运算顺序如下。左边:2>5结果为假,即0;右边
:3<4结果为假,即0,!0结果为真,即1。第一次完成计算之后,整个表达式变为:0&&2||0-1。左边:0&&2结果为假,即0;
右边:0-1结果为假,即0。第二次计算完成之后,整个表达式变为:0||0。案例实现2.完整代码本案例中可以实现的效果图如下。代码实
现交换案例3-4【案例3-4】交换了解位运算符的作用,能够说出各个位运算符的作用学习目标案例描述假设定义了两个变量:int a,b
。从键盘输入两个整数为变量a、b赋值,在不使用第3个变量的情况下,交换变量a和b的值,并将交换后的a、b变量输出到控制台。知识需求
在计算机中,所有的数据最终都是以二进制形式存储的,对数据操作其实就是对二进制的0和1符号进行操作。二进制二进制知识讲解位运算符位运
算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的。知识讲解位运算符00000110&00001011——
—————00000010示例:将6和11进行与运算,6对应的二进制数为00000110,11对应的二进制数为00001011。运
算过程知识讲解位运算符00000110|00001011———————00001111示例:将6和11进行或运算。运算过程知识讲解
位运算符~ 00000110——————— 11111001示例:将6进行取反运算。运算过程知识讲解位运算符00000110^
00001011——————00001101示例:将6与11进行异或运算。运算过程知识讲解位运算符00001011 <<1
—————00010110示例:将11左移一位,11的二进制形式为00001011。运算过程知识讲解位运算符 00001011
>>1——————— 00000101示例:将11右移一位,11的二进制形式为00001011。运算过程案例实现1.
案例设计(1)^运算符在执行位运算操作时,相同为0,否则为1。(2)在交换a、b变量的值时,可以执行a^b,这个结果是个中间量。(
3)使用a异或a^b结果会得到b,使用b异或这个结果会得到a。案例实现1.案例设计假如a=3,b=5,则它们的交换过程如下所示。a
=00000011^b=00000101结果:00000110a=00000011^00000110结果:00000101=500
000110^a=00000101结果:00000011=3案例实现2.完整代码本案例中可以实现的效果图如下。代码实现有容乃大案例
3-5【案例3-5】有容乃大掌握sizeof运算符的使用,能够使用sizeof运算符计算数据和数据类型所占内存空间。学习目标案例描
述古语有“将军额头能跑马,宰相肚子能撑船”,意在表明心胸宽广之人方能成就大事。人之心胸有宽窄,在C语言中,数据类型容量也各不相同,
本案例要求计算并输出基本数据类型的“容量”大小。知识需求C语言提供了一个运算符sizeof,它可以快速计算出各种数据类型、变量、常
量所占内存的大小。sizeof数据类型变量常量占内存大小知识需求sizeof运算符用于获取某一数据或数据类型在内存中所占的字节数。
sizeof运算符sizeof(数据类型名称) 或 sizeof(变量名称)知识讲解sizeof运算符sizeof运算符应用示例:
sizeof(int); //获取int数据类型所占内存字节数sizeof(char); //获取char类型
指针所占内存字节数int a = 10; //定义int类型变量double d = 2.3; //定义double类型变量sizeof(a); //获取变量a所占内存字节数sizeof(d); //获取变量d所占内存字节数char arr[10]; //定义char类型数组arr,大小为10sizeof(arr); //获取数组arr所占内存字节数案例实现1.案例设计使用sizeof运算符分别计算出各个基本数据类型所占内存大小输出即可。2.完整代码代码实现本案例中可以实现的效果图如下。本章小结本章主要介绍了运算符与表达式的相关知识。1. 介绍了算术运算符、赋值运算符的使用。2. 介绍了关系运算符、条件运算符、逻辑运算符和运算符的优先级。3. 介绍了位运算符、sizeof运算符。通常本章的学习,希望读者能够掌握C语言中各种运算符的使用,为后续学习更高级的编程知识打下坚实基础。本章小结
献花(0)
+1
(本文系籽油荃面原创)