资源描述
(完整版)中等职业技术学校c语言电子教案
中等职业技术学校教案
教学单位: 京山县中等职业技术学校
课程名称: C语言学习与应用
任课班级: 计算机应用班
任课教师:
教案书写说明
教案又称课时授课计划,是任课教师的教学实施方案。任课教师应遵循专业教学计划制订的培养目标,以教学大纲为依据、教材为蓝本,在熟悉教材,了解学生的基础上,结合教学实践经验,提前编写设计好每堂课的全部教学活动。教案书写应包括以下内容:
⒈ 课题:授课题(章节)名。
⒉ 课型:分理论讲授课、实验(实训)课、实习(见习)课等。讲授课又分新授课或复习课.
⒊ 教学目的:本课题教学应达到的目的。
⒋ 教学重点:本课题(章节)的教学重点分别列出。
⒌ 教学难点:本课题(章节)的教学难点分别列出。
⒍ 教学方法:指本课题使用的教学方法和手段。
⒎ 课时安排:本课题(章节)总计划课时数。
⒏ 教学内容:本课题(章节)主要内容。
⒐ 作业及实践:包括思考题、讨论题、实验题目、实训题目等。
⒑ 教学后记:授课结束后的教学小结、心得体会等。
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
C语言概述
教 学
目 标
了解C语言出现的历史背景
正确理解C语言特点
熟悉简单C程序结构、特点、执行过程
掌握运行C程序步骤与方法
重 点
难 点
正确理解C语言特点
熟悉简单C程序结构、特点、执行过程
教 学 资
源 准 备
教案、实例
教 学 活 动 流 程 设 计
旁 注
第1章 C语言概述
§1。1 C语言出现的历史背景
1、 程序设计语言的发展
(1) 机器语言:计算机能直接识别的语言。
(2) 汇编语言:助记符编写的语言。
(3) 高级语言:面向对象程序设计语言(如VB程序设计语言、JAVA程序设计语言)和面向过程程序设计语言.
2、C语言出现历史背景
(1)时间:1972 –1973
(2)地点:美国贝尔实验室
(3)目的:开发UNIX操作系统
§1.2 C语言特点
1、 语言简洁、紧凑、灵活
2、 运算符和数据类型丰富
3、 程序设计结构化、模块化
4、 生成目标代码质量高
5、 可移植性好
§1。3 简单C程序介绍
例1。1 第一个程序 Hello,World!
教 学 活 动 流 程 设 计
旁 注
#include <stdio.h>
main()
{
printf(“Hello,World!”);
}
说明:
1、#include 〈stdio。h〉是文件包含编译预处理命令, stdio。h是标准输入输出头文件
1、 main为主函数,每个C程序有且必须有一个主函数,无论其位置在哪,程序总是从main函数开始执行
2、 printf是C语言中的输出函数,双引号中的字符串原样输出
3、 ;分号是C语言中的语句结束标志
例1.2 求两数之和
#include <stdio。h〉
main()
{
int a, b,sum; /* Definate three variables*/
a=123;
b=456;
sum=a+b;
printf(“Sum is %d",sum);
}
说明:
1、%d是输出格式字符,控制输出时的数据类型和格式,表示十进制整数
2、/* */为注释
例1。3 求任意两数之和
#include <stdio.h>
main()
{ int a,b,sum;
scanf(“%d,%d",&a,&b);
sum=add(a,b);
printf(“Sum= %d”,sum);
}
int add(int x, int y)
{ int z;
z=x+y;
return(z);
}
说明:
1、scanf是C语言中的输入函数,从键盘读入两个十进制整数,分别放入变量a和b对应的
地址单元中
2、调用函数add,定义函数add,函数返回值为整型,形参x和y为整型
3、return将z值返回,赋给sum
C语言的格式特点:
v 习惯用小写字母,大小写敏感
v 不使用行号,无程序行概念
v 可使用空行和空格
结构特点:
Ø C程序由函数构成
Ø C程序由语句组成
Ø /* */为注释,不产生编译代码
教 学 活 动 流 程 设 计
旁 注
§ 1.4 C程序的上机步骤
1、 C程序开发步骤
(1) 编辑源程序:扩展名为。c
(2) 编译目标程序:扩展名为.obj
(3) 连接成可执行程序:扩展名为。exe
2、VC++6.0集成开发环境的使用方法
(1)启动VC++6.0,建立一工作区
(2)在此工作区中建立一工程
(3)在此工程中建立一文件(注意扩展名为.c)编辑后执行程序
作业
1、简述C程序的特点;
2、编写一个简单的C程序,在屏幕上显示“I Study C Programming"
板
书
设
计
第一章 C语言设计概述
1、 C语言的历史背景
2、 C语言的特点
3、 简单C程序介绍
4、 C程序的组成
5、 C程序的上机步骤
6、 作业
教
学
后
记
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
算法1
教 学
目 标
算法的表示形式--—-—流程图
C中数据类型的分类
常量与变量
整型数据表示方法、存储形式、分类
重 点
难 点
整型数据在内存中的存放形式
如何解决整数的溢出问题
教 学 资
源 准 备
教案、实例
教 学 活 动 流 程 设 计
旁 注
算法的概念
1、 算法:为解决一个问题而采取的方法和步骤。
2、 程序=算法+数据结构
3、 算法是程序的灵魂
简单算法举例
1、求 1×2 ×3 ×4 ×5
§2。3算法的特性
1)有穷性
2)确定性
3)有0个或多个输入
4)有一个或多个输出
5)有效性
怎样表示一个算法
一、算法的表示形式
1、用自然语言表示
2、用流程图表示
3、用伪代码表示
4、用计算机语言表示
二、流程图:传统流程图、N—S流程图
1、传统流程图的表示方法
2、三种基本结构传统流程图与N-S流程图
教 学 活 动 流 程 设 计
旁 注
一、数据与数据类型
1、数据:程序加工处理的对象。
2、数据类型:具有某种性质数据的集合.
二、C中数据类型
整型
字符型 单精度型
基本类型 浮点型 双精度型
枚举型
数组
C中数据类型 构造类型 结构体
共用体
指针类型
空类型
常量与变量
一、常量
1、定义:在程序运行过程中其值保持不变的量。
2、常量类型
Ø 数值型 整型(123)、实型(12.3)
Ø 字符型 字符型(‘a’)、字符串型(“a")
Ø 符号常量:#define PAI 3.1415926
二、变量
1、定义:在程序运行过程中其值可以改变的量。
2、变量在内存中存放形式:一个变量有一个名字,并在内存中占一定的存储单元,用来存放变量的值。
4、变量的定义格式(变量必须先定义后使用)
类型说明符 变量名1,变量名2,………。。,变量名n;
例:int a,b,c;
3整型数据
一、整型常量的表示方法
1、十进制:123
2、八进制:0123=(123)8
3、十六进制:0x123=(123)16
二、 整型变量
1、整型数据在内存中的存放形式
Ø 在内存中以二进制补码的形式存放,占用2个字节的内存空间
Ø 数的编码:原码、反码、补码
原码:数的二进制编码。
反码:正数等于原码,负数将原码逐位变反(符号位为1)
补码:正数等于原码,负数将原码变反末位加1。
2、整型变量分类
基本型:无符号unsigned int、有符号int
短整型:无符号unsigned short int、有符号short int
长整型:无符号unsigned long int、有符号long int
教 学 活 动 流 程 设 计
旁 注
3、例题(整型数据的溢出问题)
main( )
{ int a,b;
a=32767;
b=a+1;
printf(“%d,%d",a,b);
}
作业
1、简述C程序中有哪些常用的数据类型;
2、P15/3,5
板
书
设
计
算 法
7、 算法的基本概念;
8、 C语言中的数据结构;
9、 常量;
10、 变量;
11、 变量的种类;
12、 例题分析
教
学
后
记
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
浮点型数据
教 学
目 标
浮点型数据与字符型数据的分类、表示方法与存储形式
变量的赋值形式
各种类数值型数据间相互转换的规则与方法
重 点
难 点
灵活掌握各种数据的存储形式
教 学 资
源 准 备
教案、实例
教 学 活 动 流 程 设 计
旁 注
一、浮点型常量的表示方法
1、十进制小数:数字+小数点
例:0。123,123。0,。456
2、指数形式:123×102=123e2=1。23e4
要求:E前必须有数字,E后数字必须为整数.
规范化指数形式:小数点左侧有且仅有一位非零数字。
二、浮点型变量
1、浮点型数据在内存中存放形式
指数形式存放,占用4个字节,如图所示
小数符号
小数
指数符号
指数
例:1.23e4
+
1.23
+
4
结论:小数位数越多,精度越高;指数位数越多,范围越大。
2、浮点型变量分类
单精度:float
双精度:double
长双精度:long double
3、舍入误差:见书中例题。
教 学 活 动 流 程 设 计
旁 注
字符型数据
一、字符常量
1、定义:用一对单引号括起来的一个字符或以\开头的字符序列。
‘ a ‘ , \n (又称转义字符)
2、转义字符(见书中表)
例:\101=1*80+1*82=65即表示字母A
二、字符变量
1、定义格式:char c1,c2;
2、作用:存放一个字符
4、字符串常量
v 定义:用一对双引号括起来的字符序列
v 在内存中存放形式:末尾加串结束标志\0(系统自动加)
例:“HELLO”
H
E
L
L
O
\0
v 字符串常量不能赋给一个字符变量。
例:char c1; /*字符变量*/
c1=”hello" /*赋值错误*/
变量赋初值
一、赋值形式
1、定义变量时赋值
int a=3;
float f=3。56;
char c=’a ’;
2、部分赋值
int a,b,c=5;
3、赋同一个初值
int a=3,b=3,c=3;
教 学 活 动 流 程 设 计
旁 注
浮点型数据与字符型数据的分类、表示方法与存储形式
变量的赋值形式
各种类数值型数据间相互转换的规则与方法
作业
1、P17/1,2
2、P18/3
板
书
设
计
浮点型数据
13、 浮点型常量的表示方法;
14、 浮点型变量的分类(单精度、双精度、长双精度);
15、 常量;
16、 变量;
17、 字符常量;
18、 字符变量;
19、 例题分析;
教
学
后
记
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
简单程序的调试及数学运算符
教 学
目 标
通过上机调试程序掌握各种数据类型的表示方法、存储形式
掌握各种不同数据间混合运算的运算规则
掌握各种运算符的使用方法
通过程序调试正确理解各种表达式的运算结果
重 点
难 点
掌握各种运算符的使用方法
教 学 资
源 准 备
教案、实例、上机操作
教 学 活 动 流 程 设 计
旁 注
上机按要求调试下程序
1、 输入并运行下程序
main()
{int a,b;
a=32767; b=a+1;
printf(“%d,%d\n”,a,b);
}
2、 输入并运行下程序
main()
{char c1,c2;
c1=’a'; c2=’b’;
printf(“%c,%c\n”,c1,c2);
}
1) 将上面printf语句改成printf(“%d,%d\n”,c1,c2);结果?
2) 将char c1,c2;改成int c1,c2;结果?
3) 将c1=’a’; c2=’b’;改成c1=“a”; c2=“b”;结果?
4) 将c1='a'; c2='b';改成将c1=300; c2=400;改成结果?
3、输入并运行下程序
main()
{char c1='a',c2=’b’,c3=’c',c4=’\101’,c5=’\116';
printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“%c%c\n",c4,c5);
}
教 学 活 动 流 程 设 计
旁 注
4、 输入并运行下程序
main()
{int i,j,m,n;
i=8; j=10;
m=++i; n=j++;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
}
1) 将m=++i; n=j++;改成m=i++; n=++j;结果?
2) 将m=++i; n=j++;删除并将printf(“%d,%d,%d,%d\n”,i,j,m,n);改为printf(“%d,%d,%d,%d\n”,i,j,i++,j++);结果?
算术运算符和算术表达式
一、算术运算符和算术表达式
1、基本算术运算符
+(加法或正值运算)1+2 , +100
-(减法或负值运算)1—2 , —100
*(乘法运算符)1*2
/(除法运算符)1/2两整数相除结果为整数。 ½=0
%(模或取余运算符)要求运算符两侧均为整数如5/3=1
2、算术表达式和运算符的优先级与结合性
1)算术表达式的定义:由算术运算符、括号将操作数连接起来 符合C语法规则的式子。
2)优先级与结合性
* / % 高(左至右结合)
+ — 低(左至右结合)
例题:X/(67-(12+Y)*A)判断计算先后顺序?
3、强制类型转换运算符
1)转换格式:(类型名)(表达式)
作用:将表达式转换成所需的格式。
main()
{ float x;int I;
x=3。6;
I=(int)x;
printf(“x=%f,I=%d”,x,I);
}
4、自增、自减运算符
1)++i,— -i(先使i的值加1或减1,再使用i)
2)i++,i--(先使用i,再使i加1或减1)
3)++与— —只能用于变量,不能用于常量或表达式
例:5++ ,(3*8)++错误
4)++与— —结合方向自右向左.
-I++=—(I++)
I=3;printf(“%d,%d",I,I++);
教 学 活 动 流 程 设 计
旁 注
赋值运算符和赋值表达式
一、赋值运算符
1、运算符:为等号“=”
2、与数学运算的区别
• 数学运算符是判断等号两侧的数值是否相等。
• 赋值运算符是将等号右侧的数值赋给左侧。
3、类型转换
1)将实数赋给整数,舍去小数部分。
2) 将整数赋给单双精度变量时,数值不变,但以浮点形式存储到变量中.
3)将一个double赋给float时,截取前7位有效数字.
4)将字符型赋给整型时,无符号时高8位补零,有符号时,高8位补1
5)将一个int short long赋给一个char时,只将低8位赋给char
4、复合赋值运算符
定义:在赋值运算符前加其他运算符
a+=b等价a=a+b
x%=y+3等价x=x%(y+3)
5、赋值表达式
格式:〈变量〉 <赋值运算符> 〈表达式>
作业
1、上机调试课堂上所学的实例;
2、写出上机调试程序时出现的错误及解决方法;
3、P19/4,5
板
书
设
计
程序调试及算术、关系运算符
20、 上机调试课件中的程序;
21、 上机调试例1及例2;
22、 算术运算符和算术表达式;
23、 关系运算符及关系表达式;
24、 理解赋值号与数学中等于号的区别;
教
学
后
记
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
运算符与表达式详解
教 学
目 标
运算符的各类
表达式的种类
算术运算符
自增自减运算
重 点
难 点
算术运算符
自增自减运算
教 学 资
源 准 备
教案、实例、上机操作
教 学 活 动 流 程 设 计
旁 注
运算符与表达式详解
【问题】日常生活中我们会进行各种各样的数据运算.在C语言中将如何表示这些运算呢?
C语言的运算符非常丰富。除控制语句、输入输出语句以外的几乎所有的基本操作都作为运算符处理的。运算符的使用方法也非常灵活,这是C语言的主要特点.C语言运算符一般可分为以下几类:
1.算术运算符 + — * / %
2。关系运算符 > >= 〈 〈= = = !=
3。逻辑运算符 ! & ||
4。位运算符 〈〈 >> ~ | ^ &
5。赋值运算符 = 及其扩展赋值运算符
6.条件运算符 ?:
7。逗号运算符 ,
8.指针运算符 * &
9.求字节数运算符 sizeof
10.类型转换运算符 (类型)
教 学 活 动 流 程 设 计
旁 注
11.分量运算符 . ->
12。下标运算符 [ ]
13。其他 如函数调用运算符 ( )
本节将重点介绍算术运算符、赋值运算符、逗号运算符,其他运算符将在以后各章中陆续介绍。详细的运算符列表见附录。
算术运算符与算术表达式
1.算术运算符
C语言中基本的算术运算符共有5种:
+ (加), — (减), * (乘), / (除),% (取模,或称求余运算符)
C语言规定:
(1) %(取模运算符),仅用于整型变量或整型常量的运算,如:7%3,其值为1。
(2) / (除运算符),当对两个整型的数据相除时结果为整数,如:7/3,其值为2,舍去小数部分,相当于整除操作。
2。算术表达式
(1) 算术表达式定义
由算术运算符、括号以及操作对象组成的符合C语言语法规则的表达式称为算术表达式.如:a+b-c/d*(a—c) 。
(2) 优先级
一个表达式中若有多个运算符混合在一起,则计算的先后次序为先算括号,再根据相应运算符的优先级,高的优先。乘、除、取模运算符的优先级高于加、减运算符的优先级,即先乘、除、取模,后加、减.算术运算符的优先级在所有运算符中是较高的,仅次于括号、单目运算符、类型转换运算符和求字节数运算符。
(3) 结合方向
当一个运算对象两侧的运算符的优先级别不同时,应遵循优先级高的先处理的规则。当一个运算对象两侧的运算符的优先级别相同时,应遵循运算符的结合方向。算术运算符的结合方向是从左至右。
3。自增自减运算符
C语言中,增1运算也可以写为++运算;减1运算也可以写为—-运算.++和——运算是C语言中两个较为独特的单目运算符。它们既可以放在操作数前,也可以放在操作数后,并且操作对象只能是变量,不能是常量或表达式。自增自减运算符的作用是将操作对象的值增加1或减去1.虽然自增自减运算符既可用于前缀运算,也可用于后缀运算,但其意义不同。
i++,i-— /* 表示在使用i值之后将i的值加(减)1 */
++i,--i /* 表示在使用i值之前将i的值加(减)1 */
例如:设i的原值为5,则执行下面的赋值语句:
j=i++; /*先将i的值赋给j,i再自增1,赋值语句执行完后i的值为6,j的
教 学 活 动 流 程 设 计
旁 注
值为5 */
j=++i; /*先将i的值自增1,再赋给j,赋值语句执行完后i的值为6,j的值为6 */
【例】输出下面程序中i的值
/* EX2-3。C */
main()
{
int i=5,j;
j=++i+i++;/*一个前增1使i变成6后才进行加法运算,实际是6+6 */
printf(”%d %d\n",i,j);
j=(++i)+(++i)+(i++);
printf(”%d %d\n”,i,j);
printf("%d %d\n",i+j,j++);
}
运行结果为:
7 12
10 27
38 27
作业:P27/1,2,3 P29/3
板
书
设
计
运算符与表达式详解
25、 运算符的种类;
26、 表达式的种类;
27、 常用的算术运算符;
28、 自增与自减运算
29、 习题分析
教
学
后
记
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
赋值运算符与逗号运算符
教 学
目 标
赋值运算
逗号表达式
复合运算
重 点
难 点
赋值运算符与数学中等号的区别
逗号表达式
教 学 资
源 准 备
教案、实例、上机操作
教 学 活 动 流 程 设 计
旁 注
一、赋值运算
1。赋值运算符
C语言中赋值运算符为“=”,它的作用是将赋值运算符右边表达式或常量的值赋给其左边的变量。例如:
a=5; /* 表示把一个常量5赋给变量a */
x=a+5; /* 表示将表达式a+5的值赋给变量x */
【注意】如果赋值运算符两侧的类型不一致,在赋值时要进行类型转换。我们将在下一节“赋值转换”中给大家作说明。
2.复合赋值运算符
C语言允许在赋值运算符“=”之前加上其他运算符以构成复合的赋值运算符。凡是双目运算符,都可以和赋值运算符一起组合成复合的赋值运算符。在C语言中,可以使用的复合赋值运算符有:
+=,-=,*=,/=,%=,〈〈=,〉〉=,&=,^=,|=
例如:
a+=5; 等价于 a=a+5;
教 学 活 动 流 程 设 计
旁 注
a*=b+5; 等价于 a=a*(b+5);
a%=5; 等价于 a=a%8;
C语言中采用这种复合运算符,一是为了简化程序,使程序精练;二是为了提高编译效率,产生质量较高的目标代码。
3.赋值表达式
(1) 赋值表达式的一般形式为:
(变量) (赋值运算符) (表达式)
其功能是将赋值运算符右边的“表达式”的值赋给赋值符号左边的变量。整个赋值表达式的值就是被赋值的变量的值.例如:
b=4; /* 表示把4赋值给变量b,整个赋值表达式的值为4 */
赋值表达式也可以包含复合的赋值运算符,例如:
a+=a-=a*a;
设a的初值为5,其求解步骤为:
① 先计算表达式a—=a*a的值,它相当于a=a—a*a=5-5*5= -20
② 再计算a+= —20的值,它相当于a=a+(-20)= —20—20= -40
赋值表达式中的“表达式"又可以是一个赋值表达式,例如:
a = ( b = 5 );
括号内的b=5表示一个赋值表达式,其值为5。整个赋值表达式相当于是由b=5和a=b两个赋值表达式组合而成的。因此a的值为变量b的值,也为5。这个赋值表达式的值为变量a的值,也为5。
(2) 优先级
赋值运算符的优先级较低,在所有运算符中,它的优先级仅高于逗号运算符。例如:
a=b+6; /* 由于赋值运算符的优先级低于算术运算符,所以先算b+6再做赋值运算*/
(3) 结合性
赋值表达式按照自右向左的顺序结合,例如:
a = 5 + ( b = 6 );
先做表达式b=6,得到变量b的值为6,表达式的值为6;再做a=5+6,由于赋值运算符的优先级低于算术运算符,所以先算5+6的结果为11,再做a=11的赋值运算。
二、逗号运算符与逗号表达式
1.逗号运算符
C语言提供一种特殊的运算符-逗号运算符。逗号运算符为“,”.用逗号运算符可以将两个表达式连接起来。如:
2+3,2+5
2。逗号表达式
(1) 逗号表达式就是用逗号运算符把两个表达式连接起来所形成的表达式.
其一般形式为:
教 学 活 动 流 程 设 计
旁 注
(表达式1),(表达式2)
逗号表达式的求值过程是:先求表达式1的值,再求表达式2的值,表达式2的值就是整个逗号表达式的值.如上面的表达式先求2+3的值为5,再求2+5的值为7,最后整个逗号表达式的值为表达式2+5的值7。
【例】分析下面程序的运行结果
/* EX2—4.C */
main()
{
int y=3,x=3,z=1;
printf("%d %d\n”,(++x,y++),z+2);
}
运行结果为:
作业
1、 P29/5,6,7,8
2、 上机调试程序运行结果
板
书
设
计
赋值运算符、逗号表达式
30、 赋值运算符
31、 赋值运算与数学中等号的区别
32、 逗号表达式
33、 复合运算
34、 习题讲解
教
学
后
记
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
数据类型转换
教 学
目 标
类型的自动转换
赋值的转换
强制类型转换
重 点
难 点
类型自动转换的规则
教 学 资
源 准 备
教案、实例、上机操作
教 学 活 动 流 程 设 计
旁 注
数据类型转换
C语言中,各种类型的数据可以混合运算。字符型数据和整型数据之间可以通用。不同类型的数据在进行混合运算时,往往需要进行类型转换,将不同类型的数据转换成同种类型的然后进行计算。类型转换有三种方式:类型自动转换;赋值转换和强制类型转换。
一、 类型自动转换
不同类型的数据可以进行混合运算,例如:
10+'a’+2。5*'b'
在进行混合运算时,不同类型的数据首先要转换成同一类型,然后才能进行运算。
自动转换规则为:
(1) 单精度浮点型数据(float)在运算时自动转换成双精度浮点型数据(double).
(2) 字符型数据(char)和短整型数据(short)在运算时自动转换成整型数据(int).
(3) 整型数据(int)和无符号型数据(unsigned)混合运算时,将整型数据转换成无符号型数据.
教 学 活 动 流 程 设 计
旁 注
(4) 整型数据(int)或无符号型数据(unsigned)和长整型数据(long)混合运算时,都转换成长整型数据.
(5) 整型数据(int)、无符号型数据(unsigned)、长整型数据(long)和浮点型数据混合运算时,都转换成浮点型数据。
依次方式类推,转换规则如图2-2:
高 double float
long
unsigned
低 int char,short
图2-2 自动类型转换规则
总之,在自动类型转换时总是按照精度不降低的原则从低级向高级进行转换的。
例如上面例子中给出的表达式10+’a’+2.5*'b',在运算时,先将所有的字符类型数据'a'和'b’转换成整型,再从左向右进行运算。遇到浮点型数据时,将整型数据自动转换为浮点型数据.最后表达式的值为浮点型数据,并且按照浮点型数据的运算规则进行运算.
例如:
设有以下变量定义,并已赋确定的值
char w; int x; float y; double z;
则表达式:w+x+z/y值的数据类型为double
说明:此表达式中y为float类型的数据,所以所有数据都自动转换成浮点类型,并且按照浮点型数据的运算规则进行运算。
二、 赋值转换
如果赋值运算符两侧的类型不一致(但都是数值型或字符型)时,在赋值过程中会进行类型转换.转换的基本原则是:
(1) 当整型数据赋给浮点型变量时,数值上不发生任何变化,但有效位增加。如:
float f;
f=4; /* 内存中变量f的值为4.000000 */
(2) 当单、双精度浮点型数据和整型变量混合运算时,浮点数的小数部分将被舍弃。如:
int x;
x=4。35; /* 内存中变量x的值为4 */
(3) 将字符型数据赋给整型变量时,由于字符型数据在运算时根据其ASCII码值自动转化为整型数据,所以将字符型数据的ASCII码值存储到变量中。如:
int x;
x='a’; /* 内存中变量x的值为65 */
(4) 将有符号的整型数据赋给长整型数据,要进行符号扩展.将无符号的整型数据赋给长整型变量时,只需将高位补0即可。
教 学 活 动 流 程 设 计
旁 注
三、 强制类型转换
可以利用强制类型转换运算符将一个表达式强制转换成所需类型。例如:
(int) a; /* 表示将变量a的类型强制转换为整型 */
(float) (a+b); /* 表示将表达式a+b结果的类型强制转换为浮点型 */
强制类型转换的一般形式如下:
(强制的类型名)(表达式)
作业
P56/1,2,3,4
P58/6
板
书
设
计
数据转换
35、 自动类型转换
36、 赋值转换
37、 强制类型转换
教
学
后
记
京山县中等职业技术学校备课用纸
授课年级
技能
授课班级
计算机应用
授课日期
授课节次
教学课题
习题讲解及第二章知识总结
教 学
目 标
通过习题的讲解,使学生深入理解本章所学的内容
对本章所学知识的总结
重 点
难 点
理解习题
教 学 资
源 准 备
教案、实例、上机操作
教 学 活 动 流 程 设 计
旁 注
习题讲解及第二章知识总结
(1) 表达式应该用括号括起来。例如:
(int)(a+b); /* 表示将表达式a+b结果的类型强制转换成int型 */
(int)a+b; /* 表示将变量a的类型
展开阅读全文