县职业技术教育学校C语言电子教案_第1页
县职业技术教育学校C语言电子教案_第2页
县职业技术教育学校C语言电子教案_第3页
县职业技术教育学校C语言电子教案_第4页
县职业技术教育学校C语言电子教案_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XX县职业技术教育学校

授课年级16级授课班级XXXI、2授课日期授课节次

教学课题C语言概述

了解C语言出现的历史背景

教学

正确理解C语言特点

熟悉简单C程序结构、特点、执行过程

目标掌握运行C程序步骤与方法

正确理解C语言特点

重点

难点熟悉简单C程序结构、特点、执行过程

教学资

教案、实例

源准备

教学活动流程设计旁注

第1章C语言概述

§1.1C语言出现的历史背景

1、程序设计语言的发展

(1)机器语言:计算机能直接识别的语言。

(2)汇编语言:助记符编写的语言。

(3)高级语言:面向对象程序设计语言(如VB程序设计语言、JAVA程序设计语言)和

面向过程程序设计语言。

2、C语言出现历史背景

(1)时间:1972-1973

(2)地点:美国贝尔实验室

(3)目的:开发UNIX操作系统

§1.2C语言特点

1、语言简洁、紧凑、灵活

2、运算符和数据类型丰富

3、程序设计结构化、模块化

4、生成目标代码质量高

5、可移植性好

§1.3简单C程序介绍

例1.1第一个程序Hello,World!

教学活动流程设计旁注

ttinclude<stdio.h>

main()

(

printf("Hello,World!");

}

说明:

1、ttinclude<stdio.h>是文件包含编译预处理命令,stdio.h是标准输入输出头文件

1、main为主函数,每个C程序有且必须有一个主函数,无论其位置在哪,程序总是从main

函数开始执行

2、printf是C语言中的输出函数,双引号中的字符串原样输出

3、;分号是C语言中的语句结束标志

例1.2求两数之和

ttinclude<stdio.h>

main()

{

inta,b,sum;/*Definatethreevariables*/

a=123;

b=456;

sum=a+b;

printf("Sumis%d”,sum);

}

说明:

1、%d是输出格式字符,控制输出时的数据类型和格式,表示十进制整数

2、/**/为注释

例1.3求任意两数之和

ttinclude<stdio.h>

main()

{inta,b,sum;

scanf("%d,%d",&a,&b);

sum=add(a,b);

printf("Sum=%d",sum);

}

intadd(intx,inty)

{intz;

z=x+y;

return(z);

}

说明:

1、scanf是C语言中的输入函数,从键盘读入两个十进制整数,分别放入变量a和b对应

地址单元中

2、调用函数add,定义函数add,函数返回值为整型,形参x和y为整型

3、return将z值返回,赋给sum

C语言的格式特点:

习惯用小写字母,大小写敏感

不使用行号,无程序行概念

可使用空行和空格

结构特点:

>C程序由函数构成

>C程序由语句组成

>/**/为注释,不产生编译代码

教学活动流程设计旁注

§1.4C程序的上机步骤

1、C程序开发步骤

(1)编辑源程序:扩展名为.c

(2)编译目标程序:扩展名为.obj

(3)连接成可执行程序:扩展名为.exe

2、VC++6.0集成开发环境的使用方法

(1)启动VC++6.0,建立一工作区

(2)在此工作区中建立一工程

(3)在此工程中建立一文件(注意扩展名为.c)编辑后执行程序

作业

1>简述C程序的特点;

2、编写一个简单的C程序,在屏幕上显示“1StudyCProgramming”

第一章C语言设计概述

1、C语言的历史背景

板2、C语言的特点

书3、简单C程序介绍

设4、C程序的组成

计5、C程序的上机步骤

6、作业

XX县职业技术教育学校

XXXI、2

授课年级16级授课班级授课日期授课节次

教学课题算法1

教学

算法的表示形式—流程图

C中数据类型的分类

常量与变量

目标整型数据表示方法、存储形式、分类

整型数据在内存中的存放形式

重点

如何解决整数的溢出问题

难点

教学资

教案、实例

源准备

教学活动流程设计旁注

算法的概念

1、算法:为解决一个问题而采取的方法和步骤。

2、程序=算法+数据结构

3、算法是程序的灵魂

简单算法举例

1、求1X2X3X4X5

§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”)

>符号常量:#definePAI3.1415926

二、变量

1、定义:在程序运行过程中其值可以改变的量。

2、变量在内存中存放形式:一个变量有一个名字,并在内存中占一定的存储单元,用来存

放变量的值。

4、变量的定义格式(变量必须先定义后使用)

类型说明符变量名1,变量名2,.....,变量名n;

例:inta,b,c;

3整型数据

一、整型常量的表示方法

1、十进制:123

2、八进制:0123=(123)8

3、十六进制:0x123=(123)16

二、整型变量

1、整型数据在内存中的存放形式

>在内存中以二进制补码的形式存放,占用2个字节的内存空间

>数的编码:原码、反码、补码

原码:数的二进制编码。

反码:正数等于原码,负数将原码逐位变反(符号位为1)

补码:正数等于原码,负数将原码变反末位加1。

2、整型变量分类

基本型:无符号unsignedint>有符号int

短整型:无符号unsignedshortint>有符号shortint

长整型:无符号unsignedlongint、有符号longint

教学活动流程设计旁注

3、例题(整型数据的溢出问题)

main()

{inta,b;

a=32767;

b=a+l;

printf("%d,%d”,a,b);

)

作业

1、简述C程序中有哪些常用的数据类型;

2、P153,5

算法

7、算法的基本概念;

板8、C语言中的数据结构;

书9、常量;

设10、变量;

11、变量的种类;

12、例题分析

XX县职业技术教育学校

授课年级16级授课班级XXXI、2授课日期授课节次

教学课题浮点型数据

教学

浮点型数据与字符型数据的分类、表示方法与存储形式

变量的赋值形式

各种类数值型数据间相互转换的规则与方法

目标

重点

灵活掌握各种数据的存储形式

难点

教学资

教案、实例

源准备

教学活动流程设计旁注

一、浮点型常量的表示方法

1、十进制小数:数字+小数点

例:0.123,123.0,.456

2、指数形式:123X102=123e2=l.23e4

要求:E前必须有数字,E后数字必须为整数。

规范化指数形式:小数点左侧有且仅有一位非零数字。

二、浮点型变量

1、浮点型数据在内存中存放形式

指数形式存放,占用4个字节,如图所示

小数符号小数指数符号指数

例:1.23e4

+1.23+4

结论:小数位数越多,精度越高;1旨数位数越多,范围越大。

2、浮点型变量分类

单精度:float

双精度:double

长双精度:longdouble

3、舍入误差:见书中例题。

教学活动流程设计旁注

字符型数据

一、字符常量

1、定义:用一对单引号括起来的一个字符或以'开头的字符序列。

'a,,\n(又称转义字符)

2、转义字符(见书中表)

例:、101=1*80+1*82=65即表示字母A

二、字符变量

1、定义格式:charcl,c2;

2、作用:存放一个字符

4、字符串常量

定义:用一对双引号括起来的字符序列

❖在内存中存放形式:末尾加串结束标志\0(系统自动加)

例:“HELLO”

HELL0\0

❖字符串常量不能赋给一个字符变量。

例:charcl;/*字符变量*/

cl="hello"/*赋值错误*/

变量赋初值

一、赋值形式

1、定义变量时赋值

inta=3;

floatf=3.56;

charc='a';

2、部分赋值

inta,b,c=5;

3、赋同一个初值

inta=3,b=3,c=3;

教学活动流程设计旁注

浮点型数据与字符型数据的分类、表示方法与存储形式

变量的赋值形式

各种类数值型数据间相互转换的规则与方法

作业

1、P17/l,2

2、P弊

浮点型数据

13、浮点型常量的表示方法;

板14、浮点型变量的分类(单精度、双精度、长双精度);

书15、常量;

设16、变量;

17、字符常量;

18、字符变量;

19>例题分析;

XX县职业技术教育学校

授课年级16级授课班级XXXI2授课日期授课节次

教学课题简单程序的调试及数学运算符

教学通过上机调试程序掌握各种数据类型的表示方法、存储形式

掌握各种不同数据间混合运算的运算规则

掌握各种运算符的使用方法

通过程序调试正确理解各种表达式的运算结果

目标

重点掌握各种运算符的使用方法

难点

教学资

教案、实例、上机操作

源准备

教学活动流程设计旁注

上机按要求调试下程序

1、输入并运行下程序

main()

{inta,b;

a=32767;b=a+l;

printf("%d,%d\n”,a,b);

)

2、输入并运行下程序

main()

{charcl,c2;

cl='a';c2='b';

printf("%c,%c\n”,cl,c2);

)

1)将上面printf语句改成printf(a%d,%d\nv,cl,c2);结果?

2)将charcl,c2;改成intcl,c2;结果?

3)将cl='a?;c2='b';改成cl=“a";c2=“b";结果?

4)将cl='a';c2='b';改成将cl=300;c2=400;改成结果?

3、输入并运行下程序

main()

{charcl='a',c2='b',c3='c',c4='\1O1',c5='\116?;

printf(aa%cb%c\tc%c\tabc\n?,,cl,c2,c3);

printf(a%c%c\nw,c4,c5);

)

教学活动流程设计旁注

4、输入并运行下程序

main()

{inti,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

-(减法或负值运算)-2,-100

*(乘法运算符)1*2

/(除法运算符)1/2两整数相除结果为整数。公0

%(模或取余运算符)要求运算符两侧均为整数如5/3=1

2、算术表达式和运算符的优先级与结合性

1)算术表达式的定义:由算术运算符、括号将操作数连接起来符合C语法规则的式

子。

2)优先级与结合性

*/%IWJ(左至右结合)

+-低(左至右结合)

例题:X/(67-(12+Y)*A)判断计算先后顺序?

3、强制类型转换运算符

1)转换格式:(类型名)(表达式)

作用:将表达式转换成所需的格式。

main()

{floatx;intI;

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)++与--结合方向自右向左。

-1++=-(1++)

1=3;printf("%d,%d”,I,I++);

教学活动流程设计旁注

赋值运算符和赋值表达式

一、赋值运算符

1、运算符:为等号“二”

2、与数学运算的区别

•数学运算符是判断等号两侧的数值是否相等。

•赋值运算符是将等号右侧的数值赋给左侧。

3、类型转换

1)将实数赋给整数,舍去小数部分。

2)将整数赋给单双精度变量时,数值不变,但以浮点形式存储到变量中。

3)将一个double赋给float时,截取前7位有效数字。

4)将字符型赋给整型时,无符号时高8位补零,有符号时,高8位补1

5)将一个intshortlong赋给一个char时,只将低8位赋给char

4、复合赋值运算符

定义:在赋值运算符前加其他运算符

a+=b等价a=a+b

x%=y+3等价x=x%(y+3)

5、赋值表达式

格式:〈变量〉〈赋值运算符》〈表达式〉

作业

1、上机调试课堂上所学的实例;

2、写出上机调试程序时出现的错误及解决方法;

3、P1945

程序调试及算术、关系运算符

20、上机调试课件中的程序;

板21、上机调试例1及例2;

书22、算术运算符和算术表达式;

设23、关系运算符及关系表达式;

计24、理解赋值号与数学中等于号的区别;

XX县职业技术教育学校

授课年级16级授课班级xxxi、2授课日期授课节次

教学课题运算符与表达式详解

教学运算符的各类

表达式的种类

算术运算符

自增自减运算

目标

重点算术运算符

自增自减运算

难点

教学资

教案、实例、上机操作

源准备

教学活动流程设计旁注

运算符与表达式详解

【问题】日常生活中我们会进行各种各样的数据运算。在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()

{

inti=5,j;

j=++i+i++;/*一个前增1使i变成6后才进行加法运算,实际是6+6*/

printf(,z%d%d\n〃,i,j);

j=(++i)+(++i)+(i++);

printf(,z%d%d\n〃,i,j);

printf(,z%d%d\n”,i+j,j++);

}

运行结果为:

712

1027

3827

作业:P2〃l,2,3P29/3

运算符与表达式详解

25、运算符的种类;

板26、表达式的种类;

书27、常用的算术运算符;

设28、自增与自减运算

计29、习题分析

XX县职业技术教育学校

授课年级16级授课班级XXXI2授课日期授课节次

教学课题赋值运算符与逗号运算符

教学

赋值运算

逗号表达式

复合运算

目标

赋值运算符与数学中等号的区别

重点

逗号表达式

难点

教学资

教案、实例、上机操作

源准备

教学活动流程设计旁注

一、赋值运算

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=ll的赋值运算。

二、逗号运算符与逗号表达式

1.逗号运算符

C语言提供一种特殊的运算符一逗号运算符。逗号运算符为“,”。用逗号运算符可以将

两个表达式连接起来。如:

2+3,2+5

2.逗号表达式

(1)逗号表达式就是用逗号运算符把两个表达式连接起来所形成的表达式。

其一般形式为:

教学活动流程设计旁注

(表达式1),(表达式2)

逗号表达式的求值过程是:先求表达式1的值,再求表达式2的值,表达式2的值就

是整个逗号表达式的值。如上面的表达式先求2+3的值为5,再求2+5的值为7,最后整个

逗号表达式的值为表达式2+5的值7o

【例】分析下面程序的运行结果

/*EX2-4.C*/

main()

{

inty=3,x=3,z=l;

printf(,z%d%d\n〃,(++x,y++),z+2);

}

运行结果为:

作业

1>P295,6,7,8

2、上机调试程序运行结果

赋值运算符、逗号表达式

30、赋值运算符

板31、赋值运算与数学中等号的区别

书32、逗号表达式

设33、复合运算

计34、习题讲解

XX县职业技术教育学校

XXXI、2

授课年级16级授课班级授课日期授课节次

教学课题数据类型转换

教学

类型的自动转换

赋值的转换

强制类型转换

目标

重点类型自动转换的规则

难点

教学资

教案、实例、上机操作

源准备

教学活动流程设计旁注

数据类型转换

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------

!t

;long

!t

;unsigned

1t

低intvetar,short

图2-2自动类型转换规则

总之,在自动类型转换时总是按照精度不降低的原则从低级向高级进行转换的。

例如上面例子中给出的表达式10+'a'+2.5*'b',在运算时,先将所有的字符类型数据

'a'和'b'转换成整型,再从左向右进行运算。遇到浮点型数据时,将整型数据自动转换为

浮点型数据。最后表达式的值为浮点型数据,并且按照浮点型数据的运算规则进行运算。

例如:

设有以下变量定义,并已赋确定的值

charw;intx;floaty;doublez;

则表达式:w+x+z/y值的数据类型为double

说明:此表达式中y为float类型的数据,所以所有数据都自动转换成浮点类型,并

且按照浮点型数据的运算规则进行运算。

二、赋值转换

如果赋值运算符两侧的类型不一致(但都是数值型或字符型)时,在赋值过程中会进

行类型转换。转换的基本原则是:

(1)当整型数据赋给浮点型变量时,数值上不发生任何变化,但有效位增加。如:

floatf;

f=4;/*内存中变量f的值为4.000000*/

(2)当单、双精度浮点型数据和整型变量混合运算时,浮点数的小数部分将被舍弃。

如:

intx;

x=4.35;/*内存中变量x的值为4*/

(3)将字符型数据赋给整型变量时,由于字符型数据在运算时根据其ASCII码值自动

转化为整型数据,所以将字符型数据的ASCII码值存储到变量中。如:

intx;

x='a';/*内存中变量x的值为65*/

(4)将有符号的整型数据赋给长整型数据,要进行符号扩展。将无符号的整型数据赋

给长整型变量时,只需将高位补0即可。

教学活动流程设计旁注

三、强制类型转换

可以利用强制类型转换运算符将一个表达式强制转换成所需类型。例如:

(int)a;/*表示将变量a的类型强制转换为整型*/

(float)(a+b);/*表示将表达式a+b结果的类型强制转换为浮点型*/

强制类型转换的一般形式如下:

(强制的类型名)(表达式)

作业

P56/l,2,3,4

P58/6

数据转换

35、自动类型转换

板36、赋值转换

书37、强制类型转换

XX县职业技术教育学校

XXXI、2

授课年级16级授课班级授课日期授课节次

教学课题习题讲解及第二章知识总结

教学

通过习题的讲解,使学生深入理解本章所学的内容

对本章所学知识的总结

目标

重点理解习题

难点

教学资

教案、实例、上机操作

源准备

教学活动流程设计旁注

习题讲解及第二章知识总结

(1)表达式应该用括号括起来。例如:

(int)(a+b);/*表示将表达式a+b结果的类型强制转换成int型*/

(int)a+b;/*表示将变量a的类型强制转换成int型后,再进行运算*/

(2)经强制类型转换后,得到的是一个所需类型的中间变量,原来变量的类型并没有

发生任何变化。

【例11分析下面程序的运行结果

/*EX2-5.C*/

main()

{

inta;

floatb=2.5;

a=(int)b;

printf("a=%d,b=%f〃,a,b);

}

运行结果为:

a=2,b=2.500000

教学活动流程设计旁注

【例2】分析下面程序的运行结果

/*EX2-6.C*/

main()

1

intx,y;

x=50;

y=(x=x-5,x/5);

printf(〃y=%d〃,y);

}

运行结果为:

Y=9

【分析】因为x的初始值为50,减5后变为45,45除5为9赋给y。

【例3】写出下面程序的运行结果。

/*EX2-7.C*/

main()

S

inti=2,j=3,k,n,m;

k=i+j;printfC%d,z,k);

k=k+l;printf(zz%d,z,k);

n=k*3;printf(〃%d〃,n);

m=n%j;printfC%dz,,m);

m=m-i;printf(〃%d〃,m);

n=k/j;printf(〃%d〃,n);

j

运行结果为:

56180-22

【分析】整型数据不管进行什么样的算术运算得出的结果仍为整型数据。

【例4】分析下面程序的运行结果。

/*EX2-8.C*/

main()

intm,n,k;

m=5;n=10;

k=(一m)+(一n);

printf(〃m=%d,n=%d,k=%d\n〃,m,n,k);

m=5,n=10;

k=(m-)+(n一);

教学活动流程设计旁注

printf("m=%d,n=%d,k=%d\n”,m,n,k);

}

运行结果为:

m=4,n=9,k=13

m=4,n=9,k=15

【本章小结】

本章主要介绍了C语言中有关数据与数据计算的基本概念和规则。重点讲解了以下几

个方面的内容:

(1)c语言的数据类型有四类:基本类型、构造类型、指针类型和空类型。

(2)基本数据类型包括整型、实型、字符型三种。它们的表示方法、数据的取值范围

和数值的有效位各有特点。

作业

上机调试本次课所讲的所有习题

习题讲解及本章知识总结

38、上机调试课件中的程序;

板39、上机调试例1及例4;

书3、深入理解习题中所讲到的知识点

XX县职业技术教育学校

XXXI、2

授课年级16级授课班级授课日期授课节次

教学课题C语言的基本语句

表达式语句

教学

函数语句

控制语句

复合语句

目标空语句

重点各种语句的结构和特点

难点

教学资

教案、实例、上机操作

源准备

教学活动流程设计旁注

简单程序设计

在C语言中,程序结构一般分为顺序结构、选择结构、循环结构。本章节主要介绍的

是:顺序程序结构、赋值语句、基本的输入/输出函数、格式控制符等。

顺序结构是最简单的也是最基本的程序结构,其特点是语句按书写的顺序依次执行。

顺序结构主要由简单语句、复合语句及简单输入输出函数构成的语句组成。printf与

putchar是输出函数,scanf与getchar是输入函数,它们既有相同点也有不同点。

一、C语言语句

C语言中语句的作用是向计算机系统发出操作命令,从而完成一定的操作任务。

C语句可分为以下5种类型,下面我们进行简单介绍。

教学活动流程设计旁注

1.表达式语句

由表达式组成的语句称为表达式语句,其作用是计算表达式值或改变变量值。它的一

般形式是:

表达式;

即在表达式的末尾加上分号,就变成了表达式语句。最典型的例子是,由赋值表达式

构成一个赋值语句。如:

x=5

是赋值表达式,而

x=5;

是一个赋值语句。注意:分号是C语言中语句的标志,一个语句必须要有分号,没有

分号,则一定不是语句。表达式能构成语句是C语言的一个重要特色。

2.函数调用语句

由一个函数调用加上一个分号构成函数调用语句,其作用是完成特定的功能。它的一

般形式是:

函数名(参数列表);

例如:

printf(〃goodby!\n〃);/*调用库函数,输出字符串*/

3.控制语句

控制语句用于完成一定的控制功能,以实现程序的各种结构方式。C语言有9种控制

语句,可分为三类:

(1)条件判断语句:

if语句、switch语句

(2)转向语句:

break语句、continue语句、goto语句、return语句

(3)循环语句:

for语句、while语句、do-while语句

4.复合语句

复合语句是用花括号将若干语句组合在一起,又称分程序,在语法上相当于一条语句。

例如下面是一个复合语句:

{i++;

printf(〃%d\n〃,i);

}

注意:复合语句中最后一个语句的分号不能省略不写。

5.空语句

只有一个分号的语句称为空语句。它的一般形式是:

空语句是什么也不执行的语句,常用于循环语句中的循环体,表示循环体什么都不做。

例如:

while(getchar()!二'\n)

;/*空语句*/

教学活动流程设计旁注

该循环的功能是:直到从键盘上键入回车才退出循环。这里的循环体是空语句。

作业

1、试列出C语言中常见的语句有哪些?

2、P69/2,5,8

C程序中的各种语句

40、表达式语句;

板41、函数语句;

书42>复合语句;

设43、空语句;

44、控制语句

XX县职业技术教育学校

XXXI、2

授课年级16级授课班级授课日期授课节次

教学课题程序结构

教学

认识程序设计的三种基本结构

顺序结构

目标

重点顺序结构

难点

教学资

教案、实例、上机操作

源准备

教学活动流程设计旁注

程序结构

一、程序结构简介

在C语言中,程序结构一般分为顺序结构、选择结构、循环结构。任何复杂的程序都

是由这三种基本结构组成。

【弓1例】简单的程序结构。

main()

(

intx,y,z;/*定义三个整型变量,是C语言中的声明部分*/

x=123;y=234;/*以下语句是C语言中的语句,是执行部分*/

z=x-y;

printf(〃x-y=%d\n〃,z);

)

该程序的作用是求两个整数x和y的差z。第3行是定义变量x、y、z是整型(int)变

量。第4行是两个赋值语句,使x、y的值分别为123和234o第5行也是赋值语句,使z

的值等于x-y。第6行是进行输出,输出变量z的值。因此该程序的输出信息是:

x-y=-lll

教学活动流程设计旁注

【引例】由多个函数构成的程序结构。

main()/*主函数*/

(

intx,y,z;/*声明部分,定义变量的类型*/

scanf(,z%d,%d/z,&x,&y);/*通过输入函数,给变量x、y赋值*/

z=min(x,y);/*调用min函数,将函数值赋给变量z*/

printf(〃min二%d\n〃,z);/*输出变量z的值*/

}

intmin(inta,intb)/*定义一个min的函数,函数值为整型,虚参a和b是整型*/

(

intc;/*函数min中的声明部分*/

if(a>b)c=b;

elsec=a;

return(c);/*将变量c的值通过返回语句带回调用处*/

}

本程序包含两个函数:主函数main和被调用函数min。min函数的作用是将a和b中

较小的数赋给变量c,并通过返回语句return将c的值返回给主函数main。程序运行时,

先由scanf()函数从键盘上读取两个整型数据,如从键盘上输入2,7/(/表示回车键),此

时x被赋值2,y被赋值7,然后执行第5语句,对min函数进行调用,调用的结果是将较

小的数2赋给变量c,通过return语句将函数值赋给变量z。第6行语句输出z的值2。因

此程序输出的信息是:

min=2

从上面的两个例子看出:一个C程序可以由若干个源程序文件组成,其结构如图3T

所示。

二、顺序结构

顺序结构是程序设计中最简单、最基本的结构,其特点_________L__________

是程序运行时,按语句书写的次序依次执行,其结构如图3-2

所示。A

在图中,执行完A框所指定的操作后,必接着执行B框

所指定的操作。顺序结构通常是由简单语句、复合语句及输

入输出函数语句组成。B

【例】分析下面程序结构

/*EX3-1.C*/

r

ftinclude<stdio.h>

main()

(

inta,b,c;

scanf(〃%d,%d〃,&a,&b);

教学活动流程设计旁注

c=a+b;

printf(〃\nc=%d\n〃,c);

)

上述程序显然是顺序结构,其语句执行的次序

如图所示。

从例3-1可以看出,顺序结构的程序框架如下:

#开头的编译预处理命令行

main()

{

局部变量声明语句;

可执行语句序列;

)

;/*空语句*/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论