简单的算术运算和表达式

合集下载

c语言程序设计第三章运算符与表达式

c语言程序设计第三章运算符与表达式

第三章运算符和表达式3.1 运算符和表达式概述使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。

用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。

另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。

根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类:(1) 单目(一元)运算符:只连接一个操作数的运算符。

(2) 双目(二元)运算符:带有两个操作数的运算符。

(3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。

C语言中的表达式可以分为三类:(1) 单个常量或者单个变量是最简单的表达式。

(2) 带有运算符的表达式。

(3) 函数调用。

任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。

所以运算对象、运算符和运算结果是运算的三大要素。

3.2 算术运算符和算术表达式一、基本算术运算符和简单算术表达式1. 基本算术运算符C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。

2. 简单算术表达式当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。

简单算术表达式的基本形式:data1 op data2。

data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。

假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。

3. 基本算术运算符使用说明(1) +、-、*,/既可以连接整型数据,也可以连接实型数据。

当参与这4个运算符的运算对象都是整型数据时,得到整型数据运算结果;否则表示浮点运算。

例如,int a=15,b=2;则a*b等于30,而a/b等于7;a*2.0等于30.0,而a/2.0等于7.5。

C语言程序设计 简单的算术运算和表达式(3.1.2)--3.1节-3.5节

C语言程序设计 简单的算术运算和表达式(3.1.2)--3.1节-3.5节

13
printf("area = %f\n", area);
14 }
【例题解析】本题用宏常量代替了程序中多次出现的常数,提高了程序的可读性和可维
护性。
【例 3.5】使用 const 常量定义,编程从键盘输入圆的半径 r,计算并输出圆的周长和面
积。
1 #include <stdio.h>
2 main()
a)(s
b)(s
c)
,s=
1பைடு நூலகம்2
(a
b
c)
试编程从键盘输入 a,b,c 的值(假设 a,b,c 的值可以保证其构成一个三角形),计算
并输出三角形的面积。
程序如下:
1 #include <stdio.h>
2 #include <math.h>
3 main()
4{
5
float a, b, c, s, area;
3{
4
const double pi = 3.14159; /* 定义实型的const常量pi */
5
double r;
6
double circum;
7
double area;
8
printf("Input r:");
9
scanf("%lf", &r);
10
circum = 2 * pi * r;
11
6
printf("(float)(m/2) = %f\n", (float)(m/2));
7
printf("(float)m/2 = %f\n", (float)m/2);

22常用的运算符和表达式讲解

22常用的运算符和表达式讲解

1、关系运算符
(1)C语言提供6种关系运算符:
<, <=, >, >=,
==, !=
小于,小于等于,大于,大于等于,等于,不等于
(2)优先级(运算次序) 系统规定:<,<=,>,>=优先级为6;
==,!=优先级为7。 2、关系表达式 关系表达式:用关系运算符将两个表达式连接起来, 进行关系运算的表达式。 注:关系表达式的值显然应该是逻辑值(“真”或 “假”),整数“1”为“真”,“0”为“假”。
分析:x1<x2成立,所以x1<x2的值为1,导致 1<x3成立,所以它的值为1。
例2:设x1=1,x2=2,x3=3,表达式(x1<x2)+x3是 关系表达式吗?它的值是多少呢? main() {
int x1=1,x2=2,x3=3; printf("%d\n",((x1<x2)+x3)); getch( ); }
2、算术表达式和运算符的优先级和结合性 (1)算术表达式:算术表达式是由算术运算符连接常 量、变量、函数而成的式子。 注:单个常量、变量也是表达式。如: a 3 A+3 sin(x) (x+y)*x-(a+b)/d
(2)运算符的优先级:C语言中,运算符的运 算优先级共分为15级,1级最高,15级最低,优 先级较高的先于优先级较低的进行运算,优先级 相同时,则按运算符的结合性规定的结合方向处 理。(运算符的优先级见附录3)
(2)运算符+ +、- -在变量的后面,表示变量 先参加表达式的运算,然后再加1或减1。 (3)+ +、- -只影响它所在表达式的值; (4)无论+ +、- -在变量前或在变量后,它所 在的表达式计算结束后,它的值已经加上或减 去1了。

运算符、布尔运算、表达式、标准函数

运算符、布尔运算、表达式、标准函数

运算符、布尔运算、表达式、标准函数hb007 发表于 2006-3-22 19:24:26一、运算符1、算术运算符例如:4 +5 = 9 8 - 3 = 52 *3 = 6 12 * 24 = 4085 / 2 = 2.5 34 / 12 = 2.83 5 div 2 = 2 123 div 4 = 30 5 mod 2 = 1 12 mod 5 = 22、逻辑运算符它们的运算真值表如下:3、关系运算符例如:设a,b为标准数据类型的变量,则:a=b 如果a等于b结果为真,否则为假。

a<>b 如果a不等于b结果为真,否则为假。

a<b 如果a小于b结果为真,否则为假。

a>b 如果a大于b结果为真,否则为假。

a<=b 如果a小于等于b结果为真,否则为假。

a>=b 如果a在于等于b结果为真,否则为假。

例如:5=5 结果为真。

5=10 结果为假。

false<true 结果为真。

false>true 结果为假。

'A'<'C' 结果为真。

12.5>-8 结果为真。

24>=21 结果为真。

10.3<10 结果为假。

二、运算符的优先级三、布尔运算要判断“X>Y”是否成立,其结果不是一个算术量(即数值),而是“成立”或“不成立”,也可以用“真”表示“成立”,用“假”表示“不成立”,也就是说,它的结果是一个逻辑值(“真”或者“假”)。

逻辑运算又叫布尔运算。

布尔(Bool)是英国数学家的名字,他首先提出对二值变量进行逻辑运算的代数,称为布尔代数。

1、布尔常量Pascal语言中“真”用true表示,“假”用False表示。

所以布尔类型只有true与false两个常量。

2、布尔型符号常量(boolean)在程序的说明部分,可以定义布尔符号常量。

如:constt=true;f=false;执行部分就可以用t代表true,用f 代表false。

第3章 简单的算术运算

第3章  简单的算术运算

要学蜜蜂采百花,问遍百家成行家
赋值运算符
变量
Height = 177.5; Weight = 78; Gender = 'm'; x = a+b; w = sin(a)+sin(b); y = i++ -j;
表达式;
作用是将一个数据(或表达式的值)赋给一个变量。 注意:赋值符号左边只能是变量。
要学蜜蜂采百花,问遍百家成行家
要学蜜蜂采百花,问遍百家成行家
算术运算符和算术表达式
算术
++
一元
num++ num=num+1 ++num --num 前缀 num++ num-后缀
-二元
num-- num=num-1
要学蜜蜂采百花,问遍百家成行家
17
表达式
num2 = ++num1;
如何计算
num1 = num1 + 1; num2 = num1; num2 = num1; num1 = num1 + 1; num1 = num1 - 1; num2 = num1; num2 = num1; num1 = num1 - 1;
结果 (num1=5)
num2 = 6; num1 = 6; num2 = 5; num1 = 6; num2 = 4; num1 = 4; num2 = 5; num1 = 4;
num2 = num1++;
num2 = --num1;
num2 = num1--;
要学蜜蜂采百花,问遍百家成行家
18
m = n; m = n++; n++;

计算机等级考试 二级C语言讲义 第二讲 运算符和表达式

计算机等级考试 二级C语言讲义 第二讲 运算符和表达式

第二讲主要内容运算符表达式一.运算符1.算术运算符和算术表达式C语言的运算符具有不同的优先级,而且还有一个特点,就是它的结合性。

在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。

这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。

C运算符简介C语言的运算符可分为以下几类:1.算术运算符:用于各类数值运算。

包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符:用于比较运算。

包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符:用于逻辑运算。

包括与(&&)、或(||)、非(!)三种。

4.赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

5.逗号运算符:用于把若干表达式组合成一个表达式(,)。

6.指针运算符:用于取内容(*)和取地址(&)二种运算。

7.求字节数运算符:用于计算数据类型所占的字节数(sizeof)。

8.特殊运算符:有括号(),下标[],成员(→,.)等几种。

9.条件运算符:这是一个三目运算符,用于条件求值(?:)。

10.位操作运算符:参与运算的量,按二进制位进行运算。

包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

1.1算术运算符和算术表达式1.基本的算术运算符●加法运算符“+”:加法运算符为双目运算符,即应有两个量参与加法运算。

如a+b,4+8等。

具有左结合性。

●减法运算符“-”:减法运算符为双目运算符。

运算符和表达式

运算符和表达式

运算符和表达式上课到这一课相隔了好长一段时间,这些日子里收到不少网友的来信支持和鼓励,要求尽快完成余下的部分。

出门在外的人不得不先为吃饭而努力,似乎这也成为我的借口,以后每晚抽空打一些吧这样大家也就可以不用隔太久就能看到一些新东西。

或许我的笔记并不是很正确,但我尽量的保证每课的实验都会亲自做一次,包括硬件的部分,已求不会误人子弟。

随着访问量不断的增加,网站已启用了的国际域名,在这里我感谢各位一直支持磁动力工作室的朋友,更要感激身在远方一直默默支持我的女友。

明浩2003-7-14 晚呵,费话少说了。

上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧。

这个语句就是typedef,这是个很好用的语句,但我自己却不常用它,通常我定义变量的数据类型时都是使用标准的关键字,这样别人可以很方便的研读你的程序。

如果你是个DELPHI编程爱好者或是程序员,你对变量的定义也许习惯了DELPHI的关键字,如int类型常会用关键字Integer来定义,在用C51时你还想用回这个的话,你可以这样写:typedef int integer;integer a,b;这两句在编译时,其实是先把integer定义为int,在以后的语句中遇到integer就用int置换,integer就等于int,所以a,b也就被定义为int。

typedef不能直接用来定义变量,它只是对已有的数据类型作一个名字上的置换,并不是产生一个新的数据类型。

下面两句就是一个错误的例子:typedef int integer;integer = 100;使用typedef可以有方便程序的移植和简化较长的数据类型定义。

用typedef还可以定义结构类型,这一点在后面详细解说结构类型时再一并说明。

typedef的语法是typedef 已有的数据类型新的数据类型名运算符就是完成某种特定运算的符号。

运算符按其表达式中与运算符的关系可分为单目运算符,双目运算符和三目运算符。

2.数据的运算

2.数据的运算

例 自增运算
_______________________________ 其中,c=a++;与下列两条语句等价: c=a;
#include "stdio.h" a=a+1; void main() 先使用a的原值赋给c,再使a的值增1变成4 { int a=3,b=4,c,d; _______________________________ c=a++; d=++b; 其中,d=++b;与下列两条语句等价: printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); b=b+1; } d=b;
自增,自减运算符++ 自增,自减运算符++ -作用: 变量值加1或减1 作用:使变量值加1或减1 值加 种类: 种类: --i (先执行i+1或i-1,再使用i 先执行i 前置 ++i, --i (程序的运行结果为: 再使用i值) 先执行 +1或 i++,i-- (a=4,b=5,c=3,d=5 i+1或i-1) 先使用i 再执行i 后置 i++,i-先使用i值,再执行 +1或
C 运 算 符
学习运算符应注意:
运算符功能 与运算量关系
要求运算量个数 要求运算量类型
运算符优先级别 结合方向 结果的类型
一.算术运算符和表达式 算术运算符和表达式
基本算术运算符: + - * / % 结合方向:从左向右 优先级: ---->* / % -----> + 说明:
"-"可为单目运算符,负号运算符结合方向自右至左 优先级高于+ - * / % 两整数相除,结果为整数.若有负数,向零取整. %要求两侧均为整型数据,结果为余数部分,余数的符号 与被除数一致
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计
第3章 简单的算术运算 和表达式
本章学习内容
算术运算符 增1和减1运算符 宏常量与 const常量 表达式与赋值中的自动类型转换 强制类型转换运算符 常用的标准数学函数
2020/5/19
2/51
运算符( Operator )
详见附录C
常见的运算符 –算术运算符 –赋值运算符 –强制类型转换 –关系运算符 –逻辑运算符 –增1和减1 –位运算符
Example: 2.5 + 6 – 2 * 2 = ?4.5
2.5 + 6 – 4
8.5 – 4
4.5
2020/5/19
16/51
算术表达式 (Arithmetic Expression)
巧妙使用圆括号改变运算顺序 –从内往外运算
Example:
(9–(3+2))*3=?
2020/5/19
17/51
2020/5/19
INVALID!
an integer
13/51
算术表达式 (Arithmetic Expression)
当算术表达式包含两个或两个以上的算术 运算符时 ◘ 首先要确定运算顺序 ◘ 所有的运算符都有一个优先级( Order of Precedence )
2020/5/19
14/51
2020/5/19
3/51
3.1C运算符和表达式 (Operator and Expression)
何谓运算符和操作数?
Example:
W+Z
操作数 (Operand)
2020/5/19
运算符 (Operator)
操作数 (Operand)
4/51
3.1.1算术运算符和表达式
Arithmetic Operators
Addition (+)
Modulus (%)
Subtraction (-)
Division (/)
Multiplication (*)
2020/5/19
5/51
除法(Division)
W / Z Example:
整数除法 (Integer Division) W and Z are integers
2020/5/19
7/51
实数除法(Floating Division)
Example: 11.0 / 5 = 2.2
a float
an integer
the result is a float
2020/5/19
8/51
求余(Modulus)
It returns the remainder that occurs after performing the division of 2 operands
浮点数除法 (Floating Division) W or Z or both are floats
2020/5/19
6/51
整数除法(Integer Division)
Example: 11 / 5 = 2
an integer an integer
the result is
also an integer
Rule: – Operands must be integers
2020/5/19
9/51
求余(Modulus)
Example: 11 % 5 = 1
an integer
result
2
the result is the
5 11
remainder of 11来自510remainder
1
an integer
2020/5/19
22/51
变量的赋值
简单赋值(Simple Assignment):
变量 = 表达式 ;
多重赋值(Multiple Assignment):
变量1 = 变量2 = 表达式 ;
2020/5/19
23/51
3.1.2复合的赋值运算符 (Combined Assignment Operators)
2020/5/19
19/51
算术混合运算
2020/5/19
20/51
【例3.1】计算并输出一个三位整 数的个位、十位和百位数字之和
关键是如何分离个位、十位和百位数字?
153 % 10 = 3 153 / 100 = 1
153 - 1*100 = 53
53 / 10 = 5
2020/5/19
21/51
算术表达式 (Arithmetic Expression)
优先级(Order of Precedence)
High: * / % Low: + -
不同优先级时的运算顺序:
——从高到低
相同优先级时的运算顺序:
——算术运算符为左结合(从左到右)
2020/5/19
15/51
算术表达式 (Arithmetic Expression)
2020/5/19
10/51
求余(Modulus)
-11 Example: % 5 = -1
an integer
result
-2 5 -11
the result is the remainder of -11/5
-10
remainder
-1
an integer
2020/5/19
11/51
求余(Modulus)
算术表达式 (Arithmetic Expression)
Example:
( 9 – (–34 + 25) ) * 3 = ?1?2 ( 9 – ( 3 + 2 ) ) * 3 = 12
2020/5/19
18/51
赋值语句 (Assignment Statement)
三种赋值形式:
Simple——简单赋值 Multiple——多重赋值 Shorthand——简写的复合赋值
11 Example: % -5 = 1
an integer
result
-2 -5 11
the result is the remainder of 11/-5
10
remainder
1
an integer
2020/5/19
12/51
求余(Modulus)
Example:
11.0 % 5 = ?
a float
【例3.1】计算并输出一个三位整 数的个位、十位和百位数字之和
#include <stdio.h> main() {
int x = 153, b0, b1, b2, sum; b2 = x / 100; b1 = (x - b2 * 100) / 10; b0 = x % 10; sum = b2 + b1 + b0; printf("b2=%d, b1=%d, b0=%d, sum=%d\n", b2, b1, b0, sum); }
相关文档
最新文档