重庆师范大学
教 案 设 计
科 目:C程序设计
课 名:运算符与表达式
姓 名:张 萍
学 号:20090512132
专 业:计算机科学与技术(师范)
班 级:20XX级3班
学 院:计算机与信息科学学院
时 间:20XX年12月20日
科目:C程序设计
日期:20XX年12月20日
课名:运算符与表达式
班级:大一计算机专业学生
授课人:张萍
课时:2课时
课型:新授课
教学方法:讲授法,集体讨论法
教学目标:认知目标—通过学习,识记、理解运算符、表达式;
能力目标—通过学习运算符与表达式,采用并学会自主学习的方法;
情感目标—在学习人工智能知识的过程中,激发起学生们探究自然科学的兴趣。
重点难点:重点—表达式的正确书写;
难点—运算符的优先级及其结合方向。
教学媒体:多媒体投影仪。
教学过程:1、导入新课—由学生熟知的+ - * /符号引出本节课主讲内容—C运算符,并向学
生简要介绍之。(如赋值、算术、逗号等运算符)
时间:3—5min
教师活动:引出C运算符并简要向学生介绍之。
学生活动:认识、了解C运算符。
2、讲授新课—将知识点逐个细讲,再举例分析,让学生熟悉掌握各知识点。
时间:78mim
a、赋值表达式与变量赋初值(8min)
i、给出表达式x=a,由上节课所学内容分析x—变量,a—常量,而“=”
即为赋值符号,从而得出x=a为一赋值表达式。
ii、辨析“=”(赋值号)与“==”(等号)
iii、随堂练习: int a=4;
a=a+2;
printf("a=%d",a);
结果:a=6
iv、在定义变量同时给变量直接赋值——变量赋初值
例:int a=3; char c='a'
b、算术运算符与算数表达式(10min)
i、基本运算符:+ - * / %
ii、两int型相除结果为int型,%符号两端的数据必须为整型;
iii、若参与+ - * /运算的两个数中有一个float型,则结果为double型;
iv、算术表达式:用算术运算符和括号将对象连接起来,符合C规则的式子;
v、优先级:先乘除求余后加减,同级 左结合性 左 右
注:强制类型转换运算符 (10min)
(类型名)(表达式)
i、(double) a (int) (x+y) (float) (5%3)
ii、强制类型转换只是一次性的转换,经强制类型转换后的变量其本身的
值不变。
例:void main()
{ float x;
int i;
x=3.6;
i=(int) x;
prinrf("x=%f,i=%f",x,i);
}
结果: f=3.600000, i=3
iii、(int) x%3 强制类型转换运算优先于求余运算。
c、自增自减运算表达式(12min)
i、运算规则:i++,i-- 先运算,后自变(自增自减)
ii、注意:自增自减运算符只能用于变量,不能用于常量和表达式。
例: main() main()
{ int a=1,b=2; { int a=1,b=2;
a++;b++; ++a;b++;
prinrf("%d,%d",a++,b++); prinrf("%d,%d",a++,++b);
} }
main()
{ int a=1,b=2;
++a;c=b++;
prinrf("%d,%d,%d",a++,++b,c++);
}
结果:2,3 2,3 2,3 ,4
iii、理解i+++j:(i++)+j
iv、函数内部参数的运算顺序是自右向左运算的。
随堂练习:void main(){int i=3; printf("%d,%d",i,i++); }
结果:4,3
引申:赋值转换规则(10min)
i、将实型赋值给整型,只取整数部分;
ii、整型赋值给单、双精度变量时,数值不变; 如23—%f为23.000000
iii、将一个double型赋予float型时,取其前7位有效数字,注意不要溢出。
iv、将int,long int,short int unsigned int long short,原样送,部
分负数会变成较大的整数。
d、复合的赋值运算符(11min)
例:a+=3 a=a+3
a-=3 a=a-3
逗号表达式的运算顺序 x*=y+8 x=x*(y+8)
x%=3 x=x%3
x/=3 x=x/3
注:++i与++i;的区别 前者是赋值表达式,后者是赋值语句;
例:a/=3与a/3的区别 前者是赋值运算,会改变a的值,后者是简单
的算术运算表达式,不改变a的值,只得一表达式的值。
e、逗号运算符与逗号表达式(8min)
i、逗号表达式:用逗号表达式将两个或多个表达式连接起来的式子;
ii、一般形式:(表达式1,表达式2,…,表达式n);
iii、求解过程:先求表达式1,再求表达式2,直到表达式n,整个表达式
的值是表达式n的值。
例:void main()
{
int a,b=1;
a=(b+5,b+=2,++b);
printf("%d",a) ;
}
结果: 4
随堂练习:
int a=2,b=3;
printf("%d,%d",(a,a++),b) ;
结果: 2,3
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论