江西理工大学信息工程学院教案
C语言程序设计(A)
课程名称:C语言程序设计(A) 教学内容:数据类型、运算符与表达式、
教材章节: 第3章 授课学时:2学时?
教学目的:
理解运算符的优先级和结合性的意义
理解整数除法和浮点数除法的区别,注意细节造成的数据误差
理解程序中为什么要有宏定义
能够调用常用的数学函数
掌握运算符的即学即用,具备简单的编程能力
教学内容(3.4~3.5节): 是否重、难点
算术运算符、赋值运算符 掌握 重点
自增自减运算符 了解 难点
关系运算符、逻辑运算符 掌握 重点
不同数据类型之间的相互转换 了解 难点
经典算法,简单编程应用 掌握 重点
教学设计:
1.关系运算和逻辑运算
1)关系运算符: (大于) >=(大于等于) ==(等于) !=(不等于)
优先级
在以上六个关系运算符中,前四个运算符(、>=)的优先级相同,后两个运算符(==、!=)的优先级也相同,但前四个的优先级高于后两个。
如:a>=b!=b<=3其求解过程等价于(a>=b)!=(b<=3)。
他们的结合方向是从左至右。
特别要注意的是,在C程序中,表示“等于”的运算符是“==”,而非“=”。 “=”号是赋值运算符,这点初学者很容易搞错用错,请记牢各自的语义。
2)逻辑运算符:!(逻辑非 ) &&(逻辑与) ||(逻辑或)
三种逻辑运算符的优先级由高到低依次为: !、 &&、||
逻辑值的判断
C语言编译系统在求逻辑表达式运算结果时,以数值0代表“假”,以1代表“真”。但在判断一个逻辑量时是以是否“非0”来判断“真”或“假”。即如果表达式的值是非0就被认为是“真”,否则就被认为是“假”。
例如: 'b ' &&' d'
因为'b '和' d'是一个字符常量,其值非0,编译系统将其作“真”值处理,因而逻辑表达式'b ' &&' d'的值为真,即结果为1。
逻辑表达式的求解技巧
实际上,在逻辑表达式的求解过程中,并非所有的逻辑运算符都会被执行,只有在必须执行下一个逻辑运算符才能得出表达式的值时,才执行该运算符。
例如:
a&&b 当a为假时,系统已经可以确定该表达式的值为0,因而不会判断b。
a||b 当a为真时,系统已经可以确定该表达式的值为1,因而不会判断b。
应用:分析生活中的趣味现象,通过设计关系表达式和逻辑表达式来完成现实生活问题的求解。比如,谁在第几排、谁获奖、谁是小偷这样的趣味题来启法学生利用计算机解决问题的思维方法。
如:全班同学排成6排。A,B,C,D,E,F等6人分别站在第1排到第6排。已知A不在第1排,A与B前后相邻,C在D前面,E在B的前两排,C在F后的第4排。问A,B,C,D,E,F各在哪一排。
给几分钟时间让学生写出逻辑表达式,即学即用以帮助学生将理论与实际联系起来。
2. 强调运算符的优先级和结合性
通过例题求解来验证运算符的优先级和结合性,强调基本的语法规则和细节,以便学生关注这方面的学习,从而掌握基本的语言要素和语法规则。
3.自增自减运算
自增自减运算是本章的难点,通过举例来帮助学生理解运算。
例:设 int i=4;求下列表达式的值。
4*i++ 先执行4*i=16,再执行i=i+1 ,i=5
4*++i 先执行i=i+1 ,i=5,再执行4*i=20
强调自增(自减)运算符放在变量前和变量后不影响变量本身的值,而是影响参与运算的表达式的值。
经典算法:数字拆分算法
通过经典算法讲解,提高学生基本知识的应用能力,学会即学即用,初步具备问题分析和程序编写能力。
作业与实验:
登录课程中心/portal,完成理论作业。
在校园网登录编程俱乐部/,完成上机实验作业。
考核要求:
数据类型的定义、数据的存储和表示
常量、变量
运算符、优先级、结合性
表达式的求值