课前回顾 数据类型 基本类型 构造类型 指针类型 空类型 常量与变量 常量及常量的类型 变量 标识符及有关规定 变量声明格式 赋值运算符.

Slides:



Advertisements
Similar presentations
第6章 基本的程序语句 6.1 基本数据类型及取值范围 6.2 标识符、变量和常量 6.3 基本运算符、表达式及运算的优先级
Advertisements

第三章 数据的使用.
没有规矩,不成方圆。.
第二章 基本数据类型及运算 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式.
第3章 运算符、表达式与语句 本章导读 1、算术运算符和算术表达式 2、关系运算符与关系表达式 3、逻辑运算符与逻辑表达式
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第三章 C语言基础 学习目标: 熟练掌握:C语言的基本数据类型、运算符及表达式 掌握:常见的输入、输出函数使用方法;
第3章 顺序结构程序设计 本章要点: 格式化输出函数──printf() 格式输入函数——scanf() 字符输出函数——putchar()
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
数据类型 第3章 3.1 C数据类型概述 3.2 常量 3.3 变量 3.4 基本输入与输出.
第3章 C语言的基本语句 和程序结构设计.
基础篇 基础知识 —C语言程序设计 学习目标 掌握C语言中三种常见的基本类型及其使用方法 掌握常见的算术运算符和表达式的使用
走进编程 程序的顺序结构(二).
第2章 数据类型与数据运算.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
C语言程序设计 第四章 顺序程序设计.
C语言是结构化程序设计语言,提供了功能丰富的控制语句,本章开始陆续介绍C语言的控制语句:顺序结构、选择结构和循环结构。本章主要介绍三种结构化设计的基本概念,格式输入输出函数printf()和scanf(),字符输入输出函数putchar()和getchar()等内容,要求重点掌握顺序结构设计的基本思想及程序编写方法,熟练掌握常见输入、输出库函数的调用。
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第四章 C 语言中的输入和输出.
Chap 3 分支结构 3.1 统计输入的一批字符中各类字符的数量 3.2 查询自动售货机中商品的价格 3.3 分支结构程序设计.
第三单元 数据的输入、赋值处理与输出 从现在开始,将详细讲述C语言的方方面面。第一章中的所有疑惑,都将一一消灭。
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
C语言程序设计基础 刘新国.
C程序设计 第三章 简单的c程序——顺序结构
第二章 Java语言基础.
第2章 数据类型、运算符和表达式.
程序设计基础 谭浩强 著 清华大学出版社.
C语言大学实用教程 第三章 简单的C程序设计 西南财经大学经济信息工程学院 刘家芬
目录 3.1结构化程序设计 3.2传统流程图及N-S结构化流程图 3.3C语句概述 3.4赋值语句 3.5数据输入输出函数调用语句
3 数据类型、运算符 和表达式.
第二章 数据类型、运算符与表达式.
第三章 数据类型、运算符与表达式.
第4章 顺序程序设计.
第三章 顺序结构程序设计 计算机科学学院.
第4章 PHP流程控制语句.
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
C语言程序设计.
C程序设计.
第9章 位 运 算.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第九节 赋值运算符和赋值表达式.
C语言程序设计 李祥 QQ:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
第四章 C 语言中的输入和输出.
学习目标 1、了解基本运算符 2、运算符优先级.
2.6 字符型数据 一、 字符常量 1、字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。
C程序设计 实验二 数据类型、运算符和表达式 第6讲
第二章 Java基本语法 讲师:复凡.
程序设计基础A(C语言) 第一章 C语言概述 主讲教师: 许 康
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
复习 标签(label)、文本框(text)控件 按钮:点击事件
基本知识 数据类型、变量、常量、运算符.
数据表示 第 2 讲.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
鸡兔同笼(续) ——选择结构.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
顺序结构程序设计 ——关于“字符串”和数值.
第9章 位 运 算.
第二章 简单数据类型 §2.1 数据类型概述 §2.2 变量和常量 §2.3 简单数据类型 §2.4 简单数据类型的相互转换
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

课前回顾 数据类型 基本类型 构造类型 指针类型 空类型 常量与变量 常量及常量的类型 变量 标识符及有关规定 变量声明格式 赋值运算符

第四次课 运算符和表达式

本节学习目标 语句 算术运算符 赋值运算符 关系运算符 逻辑运算符 顺序结构

C语句概述

C语句概述 一个c程序可以有若干个源程序文件组成 一个源文件可以有若干个函数和预处理命令以及全局变量声明部分组成 一个函数有函数首部和函数体组成 函数体由数据声明和执行语句组成 C语句分为 5类 控制语句 函数调用语句 表达式语句 空语句 复合语句

C语句概述 (一)控制语句 完成一定的控制功能 1 if() ~else 条件语句 6 break 间断语句 (一)控制语句 完成一定的控制功能 1 if() ~else 条件语句 6 break 间断语句 2 for()~ 循环语句 7 switch() 开关语句 3 while()~循环语句 8 goto 转向语句 4 do ~while();循环语句 9 return 返回语句 5 continue 继续语句

例: C语句概述 (二)函数调用语句 有一个函数调用加一个分号构成一个语句 Printf(“This is a C statement.”); 例:

C语句概述 (三)表达式语句 有一个表达式加一个分号构成一个语句 a = 3 ; 例: 分号 赋值表达式 表达式语句 + =

C语句概述 (四)空语句 只有一个分号的语句 (什么也不做) 用来做流程的转向点 用来作为循环语句中的循环体 ;

C语句概述 (五)复合语句 用一对{}括起来的语句 { z=x+y; t=z/100; printf(“%f”,t); } 例:

运算符和表达式 什么是运算符 什么是表达式? 能作用于数据上的符号 代表作用于数据上的一种特定操作 运算符与操作数的有效结合。 例如:a+b,5*6,a/8等

运算符类型 算术 逻辑 关系 位 一元、二元运算符都是算术运算符 用于对包含关系运算符的表达式 进行合并或取非 测试两个变量或一个变量和一个 常量之间的关系 位 将数字按位进行计算

算术运算符 一元运算符 操作 二元运算符 - 一元减 + 加 ++ 递增 减 -- 递减 * 乘 % 模 / 整除或除法

“/”的用法 #include <stdio.h> void main() { int i=5; printf("%d\n",i/3); printf("%f\n",5/3.0); }

算术运算符的优先级 算术运算符中,(-)求负运算级别最高,(*、/、%)次之,(+、-)最后。 在相同优先级中,-(取负)这一级按从右到左的顺序结合;其余的算术运算符按从左到右的顺序结合.

算术运算符的优先级(续) 考虑下面的例子: - 4 + 3*-6/2-5+5 - 4+3*[-6]/2-5+5 - 4 + 3*-6/2-5+5 - 4+3*[-6]/2-5+5 - 4+[-18/2]-5+5 - [4+-9]-5+5 - [-5]-5+5 - -5

请注意… 不要写出别人看不懂的也 不知道系统会怎样执行程 序 在调用函数时,实参数的求值顺序,C标准并无统 一规定。 例如:i的初值为3,如果有下面的函数调用: printf(″%d,%d″,i,i++) 在有的系统中,从左至右求值,输出“3,3”。在多数系统中对函数参数的求值顺序是自右而左,printf函数输出的是“4,3”。以上这种写法不宜提倡, 最好改写成 j = i++; printf("%d, %d", j,i) 不要写出别人看不懂的也 不知道系统会怎样执行程 序

课堂练习 1.已有定义语句: int a=1,b=2,c=3;float d=4;以下能正确表示数学式 的C语言表达式. A) a/(b+c)*d ; B)a/(b+c)*1/d; C)a/(c+b)/d; D)a/d/(b+c) 2.求表达式 3.6/6+1/2+55%10的计算结果;

++和—用法 使用方法: 概念: 前置用法 ++a、--a ++和—是一种在本身的前提下+1和-1的操作。 后置用法 a++、a— ++与—的运算方向是“从右到左” 概念: ++和—是一种在本身的前提下+1和-1的操作。 例如:a++、++a代表a=a+1; A--、--a代表a=a-1

++的用法举例 ++用法的例子 设A=1 A++,++A 执行后 A=2; B=A++ 执行后 B=1,A=2;

++和—举例 例题 设a=3,c=2; 1.求b=(a++)-c的值 b=3-2 b=1;a=3+1=4; 2.求b=(++a)-c的值

课堂练习 设a=3,c=2; 1.求b=(a--)-c的值 b=? ;a=?; 2.求b=(--a)-c的值 b=? ;a=?; 3求b=(++a)-(--a)的值 b=?;a=?; 4求b=(++a)-(--a)+a--的值 b=?;a=?;

赋值运算符 一般格式: 变量名=表达式 例如:a=5,a=b;a=2*6,a=a+b 例如:a=b=c=10 多重赋值:

赋值语句 赋值语句是由赋值表达式加上一个分号构成 例:a=100 赋值表达式 a=100; 赋值语句 条件中不能含有赋值符号,但是赋值表达式可以 包含于条件表达式中 例:if(a=b) t=a; 错误 if((a=b)>0) t=a; 正确

复合赋值 格式: 说明: a+=5, a=a+5 a-=5 a=a-5 a*=5 a=a*5 a/=5 a=a/5 A%=5 a=a%5 变量名 双目运算符 = 表达式 赋值运算的顺序:从右到左

课堂练习 a=8时;求下列表达式的值 a+=a-=a*=a-5

赋值语句 问题:c语言中的赋值语句于其他高级语言的赋值语句有什么不同点? 2:其他大多数高级语言没有“赋值表达式”这一概念.

关系运算符和逻辑运算符2-1 用于测试两个变量或一个变量和一个常量之间的关系 运算符 关系运算 > 大于 >= 大于等于 < 小于 <= 小于等于 == 等于 != 不等于 高 低

关系运算举例 当a=3,b=4,c=5时 a<b的值为1 a>b的值为0 a>=c的值为0 (a>b)!=c的值为1

课堂练习 当a=3,b=4,c=5时 (a<b)+c的值是多少?

逻辑运算符用于对包含关系运算符的表达式进行合并或取非 关系运算符和逻辑运算符2-2 逻辑运算符用于对包含关系运算符的表达式进行合并或取非 运算符 逻辑运算 && 与 || 或 ! 非 示例:if ((a>10) && (a<20)) 使用逻辑运算符的表达式,返回 0 表示假,返回 1 表示真

逻辑与运算符--&&

课堂练习 求下列表达式的答案 1.(2>2)&&(4>2) 2.(2>=2)&&(5>2)

逻辑或运算符--|| 用于只要一个条件为‘真’就返回 ‘真’的情况.

课堂练习 求下列表达式的答案 1.(2>2)||(4>2) 2.(3>1)||(1>2)

逻辑非运算符--! 把判断的结果取反 只有一个操作数

!> 算术运算 > 关系运算 > && > || > 赋值运算 运算符之间的优先级别 !> 算术运算 > 关系运算 > && > || > 赋值运算

2*3+4/2>3 AND 3<5 OR 10<9 运算符之间的优先级范例 2*3+4/2>3 AND 3<5 OR 10<9 首先计算 算术运算符 计算如下: [2*3+4/2]>3 AND 3<5 OR 10<9 True [[2*3]+[4/2]]>3 AND 3<5 OR 10<9 True OR False [6+2]>3 AND 3<5 OR 10<9 [True AND True] OR False [8>3] AND 3<5 OR 10<9 True AND True OR False 最后计算逻辑运算符 比较运算符,计算总左到右进行

课堂练习 10*3%6*6+5-2&&(2*2+6/3>1||2>8) 12%3/2+3*6>10&&!真||!真

将数字转换成等价的二进制形式后再处理数据(按位表示法) 位运算符 将数字转换成等价的二进制形式后再处理数据(按位表示法) 运算符 描述 按位与 ( x & y) 如果两个操作数的相应位均为 1,则该位的结果值为 1 按位或 ( x | y) 如果两个操作数的相应位有一个为 1,则该位的结果值为 1 按位取反 ( ~x) 将操作数按位取反 (0 到 1 和 1 到 0) 按位异或 ( x^y) 如果参加运算的两个操作数的相应位同号,则结果为 0,异号则为 1

位运算符(续) 操作数 位操作 位表达式 数字 10 & 15 1010 & 1111 1010 10 10 | 15 1010 | 1111 1111 15 10 ^ 15 1010 ^ 1111 0101 5 ~ 10 ~1010 -11 位运算符将数字视为二进制值,并按位进行相 应运算,运算完成后再重新转换为数字

逗号运算符和逗号表达式 如:3+5,6+8 一般形式: 表达式1,表达式2 逗号运算符:将两个表达式连接起来,又称为“顺序求 值运算符” 逗号表达式 的值为14 逗号运算符:将两个表达式连接起来,又称为“顺序求 值运算符” 如:3+5,6+8 一般形式: 表达式1,表达式2 求解过程: 先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。

逗号运算符和逗号表达式 例:逗号表达式a=3*5,a*4 分析:赋值运算符的优先级别高于逗号运算符, 因 此应先求解a=3*5。 a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。 例:逗号表达式a=3*5,a*4 分析:赋值运算符的优先级别高于逗号运算符, 因 此应先求解a=3*5。 一个逗号表达式又可以与另一个表达式组成一 个新的逗号表达式 如:(a=3*5,a*4) a+5先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。

逗号运算符和逗号表达式 逗号表达式的一般形式可以扩展为 它的值为表达式n的值。 表达式1,表达式2,表达式3,……,表达式n 赋值表达式,将一个逗号表达式的值赋给x,x的值等于18 逗号运算符是所有运算符中级别最低的 例: ① x=(a=3,6*3) ② x=a=3,6*3 逗号表达式,包括一个赋值表达式和一个算术表达式,x的值为3,整个逗号表达式的值为18。

逗号运算符和逗号表达式 注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。 “a,b,c”并不是一个逗号表达式,它是printf函数的3个参数 注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。 如: printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c) “(a,b,c)”是一个逗号表达式,它的值等于c的值。

混合运算与数据转换 运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型 char ch; int i; float f; double d; result=(ch/i)+(f*d)-(f+i); int double float double

数据强制转换 转换格式 (数据类型)表达式

范例 #include <stdio.h> void main() { double a=3.784; printf("%d\n",(int)a); }

顺序结构 printf()输出函数 scanf()输入函数 putchar()函数 getchar()函数

printf ()函数 作用:在标准输出设备(显示器)控制台上显示数据 语法格式: printf (“格式控制符 ”, 参数列表); 需要由“ ”括起来。由文本字符和空格、格式命令和非打印字符组成 都需要一个格式命令-与参数列表需要在数量、类型和顺序上匹配

Printf()函数的例题(printf04.c) #include <stdio.h> void main() { printf("静以修身,\n 俭以养德。\n 非淡泊无以明志;\n %s\n","非宁静无以致远!!!"); }

格式控制符由三类项目中的一项或多项组成: printf ()函数 格式控制符由三类项目中的一项或多项组成: 文本字符:由可打印字符组成 格式命令: 以 % 符号开始,随后紧跟与数据项相应的格式代码 非打印字符:包括制表符、空格和新行

文本与空格(text04.c) 范例: #include <stdio.h> void main() { printf(" 谋事在人, 成事在天"); }

常用的格式控制符 %d —以带符号的十进制形式输出整数 %o: 以八进制无符号形式输出整数 %x: 以十六进制无符号形式输出整数

常用的格式控制符 %u:以无符号十进制形式输出整数 %c:以字符形式输出,只输出一个字符 %s:输出字符串 %f:以小数形式输出单,双精度数,隐含输出六位小数 %e:以指数形式输出实数 %g:选用%f或%e格式中输出宽度较短的一种格式,不输 出无意义的0

格式控制符(form04.c) 范例 #include <stdio.h> void main() { int number_1=65; char number_2='b'; printf("number_1=%d\n",number_1); printf("number_1=%c\n",number_1); printf("number_2=%c\n",number_2); printf("number_2=%d\n",number_2);}

格式控制符例2(ex0301.c) #include<stdio.h> int main() { unsigned int a=65535; int b=-2; printf("a=%d,%o,%x,%u\n",a,a,a,a); printf("b=%d,%o,%x,%u\n",b,b,b,b); }

格式符的修饰符(P.44-图2.7): 前缀修饰(P.46) 域宽 精度(域宽与精度说明格式:m.n) 长度修正符(l,h等)

常见的格式符的修饰符 “-” 修饰符 数据项在范围内向左对齐,从范围最左侧的位置开始输出数据项 域宽修饰符 可以用于浮点型、双精度型和字符数组型(字符串)。 范围宽度修饰符是一个整数,定义了数据项的最大范围宽度。

常见的格式符的修饰符(续) 精度修饰符 修饰符示例(modifier04.c) 可以用在浮点型、双精度型或字符数组型(字符串)中。如果用在浮点型或双精度型数据中,数字字符串表示小数右侧最多可输出的数字位数 注意:见P.45图2.8下方描述 修饰符示例(modifier04.c)

课后思考…… P.46-表2.9下方问题

输出的数据可以是常量、变量和表达式,但必须与格式控制符一一对应。 Printf()函数注意事项(一) 输出的数据可以是常量、变量和表达式,但必须与格式控制符一一对应。 #include <stdio.h> void main() { int i=5; float j=3.5; printf("%c,%d,%f,%lf\n",'a',i,j,i*j); }

printf()函数注意事项(二)(modifier042.c) #include <stdio.h> void main() { int f=5; float d=3.5; printf("%c,f=%d,d=%f,%lf\n",'a',f,d,f*d); } %d,%f,%e,%c,%s,一般为小写。而其它的d,f,s,c等字符作为普通字符处理。

printf()函数注意事项(三) 除了X,E,G外,其他各式字符必须用小写。 可以在printf函数中的“格式控制”字符串中包含转义字符。 一个格式说明必须以“%”开头,以9个格式字符之一为结束,中间可以插入附加格式字符。 想输出%,则应该在格式控制字符串中用连续两个%表示

printf()函数注意事项(四) Printf()中输出表达式的运算顺序,见书中P.47例2.13

非打印字符(转义字符) \n——换行 \t——制表符键(右移四个字节的位置)

定义一个字符型变量a=‘b’;请在屏幕上输出b: 课堂练习 定义一个字符型变量a=‘b’;请在屏幕上输出b: 方法1: Printf(“b”); 方法2: Printf(“%c”,a);

scanf()函数 作用:从外部输入设备(键盘)接受数据(具体的说,它是按照格式参数的要求,从终端上把数据传送到地址参数所指定的内存空间中) 语法格式 scanf("control string ", argument list); 控制字符串 地址列表 请注意:printf()语句中的使用的格式极其语法同样适用与scanf()语句(参阅P.48-52) 在输入数据时,格式说明字段中的格式码以及长度修饰符所指定的类型必须与地址参数的类型一致(例2.14) 是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址

使用scanf函数时应注意的问题 : (1)scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。 (2) 如果在“格式控制”字符串中除了格式说明以外还有其他字符, 则在输入数据时在对应位置应输入与这些字符相同的字符。 (3) 在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入(P.53-例2.20,2.21) (4) 在输入数据时,遇以下情况时认为该数据结束。 ① 遇空格,或按“回车”或“跳格”(Tab)键; ② 按指定的宽度结束,如“%3d”,只取3列; ③ 遇非法输入。【例2.22-2.23】

单字符输出函数putchar() 作用:向屏幕的光标处输出一个字符。 格式 单个字符 转义序列 字符变量 putchar (参数);

putchar()示例 #include <stdio.h> void main() { char ch_1='9'; putchar('B'); putchar('o'); putchar('y'); putchar('\t'); putchar(ch_1); putchar('\n');}

字符输入函数getchar() 作用:从系统输入一个字符。 语法格式: getchar ( ); ()没有任何参数

getchar()示例(getchar04.c) #include <stdio.h> void main() { char ch; ch=getchar(); putchar(ch); putchar('\n'); }

课后作业 写出下列问题的程序: 输入一个小写字母,将其以大写的形式输出。 计算圆的面积并输出它的值. 要求:(1)用读入方式给半径r(实型变量)输入值.    (2)求值后,对小数点后第三位数进行四舍五入

课后作业(选) 编写程序,设计一个学生成绩管理的功能菜单,菜单功能包括,A学生信息录入;B学生成绩统计;C学生成绩查询;D退出;