校园网计算机二级C语言教案(综合)_第1页
校园网计算机二级C语言教案(综合)_第2页
校园网计算机二级C语言教案(综合)_第3页
校园网计算机二级C语言教案(综合)_第4页
校园网计算机二级C语言教案(综合)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

校园网计算机二级C语言培训教案

第一章C语言的基础知识

教学课时:

本章考点:

考点考核几率分值

C语言的概述20%1〜2

标识符、常量和变量100%2〜7

算术运算符及算术表达式(难点)80%2〜5

赋值运算符及赋值表达式80%2〜5

自加自减运算、逗号表达式(难点)100%2〜4

位运算(难点)80%1〜2

教学内容

一、对C语言的初步认识

通过讲解以下这个简单的C程序例子,让学生对C程序有个大致了解

main()

{

inta,b,c;

a=10;

b=20;

c—a+b,

printf("%d",c);

)

注:

(1)C程序中有且仅有一个main函数,程序从main函数开始执行,并且在main函数中结

束。

(2)用“{}”括起来的部分称为“函数体”,“{”和必须成对出现,表示开始和结束。

(3)main。函数的格式:

main()

(

函数体

1

(4)变量先定义,后赞用。

(5)printf为C语言的屏幕输出函数,注意写法。

(6)书写程序时应遵循的规则:语句中的不同单词至少且必须加一个空格以示间隔,若已

有明显的间隔符,也可不再加空格来间隔;最好一个语句占一行。

二、标识符

1、标识符命名规则

(1)只能包含字母、数字和下划线

(2)第一个字符必须是字母或下划线

(3)C语言是大小写敏感的,如grade和Grade是两个不同的标识符。

2、标识符分类

(I)关键字:已经事先定义好了,程序远不能再将它们另做它用。参看教材附录二,记住

常用的关键字(如ini、if、do、break%case>char等)。

(2)预定义标识符:在C语言系统中已经使用了的标一;只符(如prinlf.scanf.define,include

等)。预定义标识符可用作用户标识符。

(3)用户标识符:根据用户需要定义的标识符。用户标识符不能是关键字。

注:标识符要求学生必须掌握,可以参考P11的习题进行讲解。

三、常量与变量

1、常量

在程序的运行过程中,其值不发生改变的量。

2、常量分类

(1)直接常量

直接常量又包括整型常量(如12、-3、0)、实型常量(如4.6、・1.23、1.2E+3)和字符常量

(如A、6)。

(2)符号常量

符号常量在使用之前必须先定义,其一般形式为:

#define符号常量标识符常量值

通过以下两个实现功能相同(求圆面积)的程序,给学生解释使用与不使用符号常量两者的

区别。

程序1:程序2:

#dcfincR5inain()

#definePI3.14159(

main()floatarea;

(inir;

floatarea;r=5;

area=PI*R*R;area=3.14159*r*r;

printf("%f.area);printf("%f,area);

}}

注:习惯上符号常量的标识符用大写字母。符号常量的值在其作用域内不能被改变。

3、变量

在程序的运行过程中,其值可以改变的量。

4、变量的定义

变量定义的•般形式为:

类型说明符变量名;

注:变量名是合法的标识符,但不可以是关键字;允许在一个类型说明符后,定义多个相同

类型的变量,各变量名之间用逗号间隔,最后一个变量名之后必须以号结尾;一般变量的

定义放在函数体的开头部分。

可以通过以下例子的讲解,使学生进一步掌握变量的定义与使用。

main()

{

inta,b,c;

a=15;

b=20;

c=b-a;

printf("%d",c);

}

四、数制转换

1、十进制一二、八、十六进制

转换方法:将十进制数除以基数(二进制基数为2、八进制基数为8、十六进制基数为16),

并记录余数,若商不为0,则继续用商除以基数,并记录余数,直到商为0,余数倒排列写下来,

即为转换后的二进制或八迸制或十六进制。

注意:在转换过程中,余数为。也要记录下来,很多学生在做题时,忽略了余数0。

通过以下3个例子的讲解,使得学生对十进制转换成二、八、十六进制的方法进一步掌握。

(36)io=(100100)2(39)io=(47N(27)10=(1B)16

2L36081397f16|27B

2L180814416]11

2L9100

2|_40

2L20

2111

0

2、二、八、十六进制一►十进制

转换方法:技位展开,对应位乘以权值(权值即为基数的n次箱,n从。开始),最后将所

有乘积相加,所得结果即为十进制数。

(10101)2=()10(67)8=()io(1A2)16=()IO

432

(10101)2=1X2+0X2+lX2+OX2'+1X20=(21),0

(67)s=6X8'+7X8°=(55),0

8,8°

2

(1A2)16=1X16+AX16'+2X16°=(418)i0

3、八、十六进制一►二进制

转换方法:八进制(或十六进制)数的每一位数字用三位(或四位)二进制数表示,最后将

对应的二进制数依次写下来,即为二进制数。

注:八进制数7、6、5、4、3、2、1、0对应的三位二进制数分别为111、110、101、100、

011、010、001和000。十六进制数F、E、D、C、B、A、9、8、7、6、5、4、3、2、1、0对应的

四位二进制数分别为1111、1110、1101、1100、1011、1010、1001、1000、0111、0110、0101、

0100、0011、0010、0001和0000。

(642)8=()2(3B5C)16=()2

(642)«=(110100010)2(3B5C)i6=(001i101101011100)2

1/oo\ioooi1//|o^i^O^YlOO

给学生思考时间,如何将二进制转换成八进制、十六进制?

五、整数和实数

1、整型常量分类

(1)八进制整型常量

以数字0开头,其中由数字。〜7组成,如023、076等。

(2)十进制整型常量

最常用的常量,由数字0〜9组成,如15、345、-38等。

(3)十六进制整型常量

以Ox或0X开头,由数字0-9、字母a-f(或大写A-P)组成,如0x7c、0X4AB等。

注:整型常量没有二进制的。

2、整型变量分类

(1)短整型变量

类型说明符为:[signed]shor〔[inU,占用2个字节,取值范围为-32768〜32767。

(2)基本整型变量

类型说明符为:[signed]int,占用4个字节,取值范围为-2147483648〜2147483647。

(3)长整型变量

类型说明符为:[signed]long[int],占用4个字节,取值范围与基本整型变量相同。

(4)无符号短整型变量

类型说明符为:unsignedshort(int|»占用2个字节,取值范围为0—65535。

(5)无符号基本整型变量

类型说明符为:unsigned[int],占用4个字节,取值范围为0-4294967295。

(6)无符号长整型变量

类型说明符为:unsignedlong[int],占用4个字节,取值范围同无符号基本整型变量相同。

注:整型变量的各种类型,在编程中一定要注意,不要让一个整型变量超出该类型的取值范

围,以免发生溢出错误。可引导学生自己推出每种变量的表示范围。

3、实型常量

(1)小数形式

小数点前或后可以没有数字,但不能同时没有数字。参考教材P18的例子。

(2)指数形式

可以参考口诀:"E前E后必有数,E后必须为整数”,讲解P18指数形式的例子。

4、实型变量

实型变量分为:单精度实型(float)和双精度实型(double)。float占用4个字节,double

占用8个字节。

六、整数在内存中的存储形式

对于整型数据,在内存中都是以补码形式存储的。用补码存储一个有符号整数,最高位(最

左边的一位)存放符号,正数最高位为0,负数最高位为1。计算规则如下:

正整数:原码=反码=补码。

负整数:

反码二原码除符号位(符号位为1)以外,数值部分按位取反

补码=反码的末位加1

注:无符号整数表示的都是正数,所以其中最高位不再存放符号。在二级C考试中,只需要

记住无符号整数65535表示成有符号整数7,无符号整数65534表示成有符号整数-2,其他依次

类推。

以下例子是历年考试中出现过的,通过讲解让学生掌握无符号数和有符号数的区别。

main()

(

unsignedinta;

intb=-l;

a=b;

printf("%uM,a);

}

七、算术运算和赋值运算

1、算术运算符(+、一、・、/、%)

(1)/:5/2=25.0/2=2.55/2.0=2.55.072.0=2.5

(2)%:5%2=1-5%2=-15%-2=1

注:这五种算术运算符以/和舟为主,进行除运算时,注意两边都为整数的情况;“父运算符

左右两边必须为整数,余数的符号同被除数的符号相同。

2、算术运算符的优先级

(*、/、%)>(+、—)

3、算术表达式的计算

根据优先级的高低决定计算顺序。

通过讲解以下表达式的计算过程,使学生掌握算术运算符的优先级。

4*5+8*2%4+12/5=22

4、赋值运算符(=、+=、-=、*=、/=)

赋值运算的一般格式为:变量=表达式

(1)+=a+=6<=>a=a+6

(2)-=a-=6a=a-6

(3)*=a*=6<=>a=a*6

(4)/=a/=6<=>a=a/6

注:任意一种赋值运算符的左侧必须为变量,不能是表达式和常量;整个赋值表达式的值是

最左边变量的值。当赋值运算符左右两边类型不一样,系统会自定进行类型转换。

八、强制类型转换

强制类型转换的格式为:(类型名)表达式

注:在二级C考试中,经常考强制类型的转换格式,尤其是一对小括号的位置。

九、自加、自减运算符

1、自加、自减运算符(++、-)

自加、自减运算符的运算对象只能是变量,运算符可在变量的前面,也可以在变量的后面,

形如i++、++i、i-、一io

2、自加、自减的运算规则

自加:i++先用i的值参与运算,再使i的值加lo

自加:++i先使i的值加1,再让i参与运算。

自减:i-先用i的值参与运算,再使i的值减lo

自减:一i先使i的值减1,再让i参与运算。

注:自加、自减运算是一个难点,可以参考以下例子进行详细讲解,便于学生掌握。

main()

{intm=011,n=11;

printf("%d,%d\n",++m,n++);/*输出结具为:10,11*/

printf("%d,%d\n",—m,n—);/*输出结具为:9,12*/

1

3、自加、自减运算的注意事项

(1)只能和变量结合,如(i++)++是不合法的。

(2)运算结合方向是从右到左。

注:参照教材最后附录三,为学生讲解优先级和结合性,完成对表达式“-x++”的分析。

十、逗号运算符及逗号表达式

1、逗号运算符(,)

在逗号表达式中,逗号运算符具有从左向右的结合性,最后一个表达式的值是整个逗号表达

式的值。

2、要和变量多余的情况区别开(参考P24、例2)

注:为学生讲解,将P24、例2中的最后一条语句改为Mprintf(M%d\n",a1,a2);n的情况,

使得学生注意逗号运算与变量多余的区别,这是二级C考试中,经常会出错的。

3、优先级别(重点讲解P24、例3)

在所有运算符中,逗号运算符优先级最低。

十一、C语言中的语句

1、表达式语句

表达式;

2、空语句

3、复合语句

{语句1;语句2;…语句n;}

十二、注释

C语句中有两种注释方法:

(1)//:只能注释一行

(2)/*•••*/:可注释多行,在“/*”和“*/”之间的都属于注释部分。

注:注释在程序运行时,不执行,第二种注释需要注意,在二级C考试中出现过,参考教材

P26,第4题。

十三、字符数据

1、字符常量分类

(1)一般字符常量

用一对单引号括起来的单个字符,如TV、H、5。

(2)转义字符常量

在一对单引号内,以开头,后跟一个字符,或1〜3位八进制数。另外也可以是1〜2

位的十六进制数,但必须以“\x”开头(在这里,一定注意x不能是大写的X)。

注:在二级C考试中,转义字符是必考的,可以参考P28,例1。更要注意后跟的1〜

3位八进制数不能以数字0开头。

2、字符变量

定义字符变量的格式为:char变量名;

注:字符型数据在内存中占1个字节。

3、字符型数据参与运算

采用其ASCII码进行运算。

注:字符型数据可以按和输出,注意这两者区别。参考P29,第3题。

十四、位运算

1、位运算符(~、«.>>、&、3|)

2、位运算注意事项

(1)对象只能是整数或字符型数据。

(2)进行位运算前,一定要先将数据转换成二进制数。

(3)各个位运算符的优先级

注:字符型数据参与位运算时,采用其ASCII码进行运算。

3、位运算的规则

(1)0变1,1变。。

(2)«:avvi表示a向左移动i位,右补0。

⑶》:a»i表示a向右移动i位,左补符号位。

(4)&:a&ba、b对应的二进制位,同时为1,则结果即为1,否则为0。

(5)|:a|ba、b对应的二进制位,只要有一个为1,则结果即为1,否则为0。

(6)A:aAba、b对应的二进制位,相同为0,不同为1。

注:在没有舍去数据的时候,<〈左移一位表示乘以2;»右移一位表示除以2。两个相同的

数进行按位异或「〉,结果为0。在历年考试中出现过类似的题,参考P31、例2,学生只要记

住该规则,就可节省过多的做题时间。其次要掌握“&”和“I”,可以参考P31,例1进行讲解。

第二章数据输出与输入

教学课时:

本章考点:

考点考核几率分值

printf函数(难点)100%3〜4

putchar函数60%1-2

scanf函数(难点)100%3〜4

getchar函数60%1〜2

教学内容

一、数据输出函数printf

1prinlf函数的一般格式:

printf(格式输出控制,输出列表)

(1)格式输出控制:需用一对双引号括起来,双引号内包含“格式说明"和'‘普通字符”

两部分。

(2)输出列表:需要输出的数据,多个数据之间用逗号隔开。

2、格式说明

“格式说明”由“%”和格式字符组成,如%(1,%c,更多格式说明请参考P34,表2-1。它

的作用是把输出数据转换为指定格式输出。

注:在printf函数中,若格式说明的个数少于输出项的个数,多余的输出项则忽略不输出,

这是二级C考试中经常出现的题目,可参考P34,例2进行讲解。

3、普通字符

普通字符会原样输出,转义字符需要输出对应的字符。

注:printf函数输出数据时,学生做题很容易忽略普通字符的输出。在二级C考试中,这

类题目常出现,可以通过以下例子进行讲解。

main。

{

inta,b;

a=10;

b=15;

printf("a+b=%d",a+b);

)

4、数据输出实例(已知inta=66;floatb=123.56;)

通过以下各输出语句,讲解输出函数的各种格式。

(1)printf("%d",a);66

(2)printf("%3d",a);□66

(3)printf(M%-3d",a);66口

(4)printf("%f',b);123.560000

(5)prinlf("%7.2r,b);□123.56

(6)printf("%-7.2f;b);123.56D

(6)printf("%c",a);B

(7)printf(”%x",a);42

5、putchar函数

格大为:putchar(c)

这里的c只能是字符型变量或字符型常量,即puichar函数只能输出字符型数据。

二、数据输入函数scanf

1、scanf函数的一般格式:

scanf(格式输入控制,输入数据列表)

格式输入控制与printf函数的格式输出控制相同。输入数据列表必须是一个或者是多个合法

的地址。

注:输入函数是一个难点,学生一般掌握的情况不是很好,建议老师讲解时放慢速度,

2、scanf函数的注意事项

(1)输入数值型数据时,各数值间的分隔符可以是:空格、Tab、回车。

(2)输入字符型数据时,空格、Tab,回车都会被认为是字符,而不是分隔符。

(3)“格式输入控制”中的普通字符,在输入数据时一定要原样输入。

(4)跳过输入数据,在%和格式字符之间加一个“*二

注:以上注意事项,在二级C考试题目中经常出现,可以通过以下数据输入实例,进行讲解。

3、数据输入实例(已知charcl,c2;intc,d,e;)

(1)scanf("%d%d%d\&c,&d,&e);

输入:5〈空格>6〈空格>7〈回车〉

输入:5<Tab>6<Tab>7〈回车>

输入:5c回车,

6〈回车〉

7〈回车)〃以上三种输入方式,c、d、e的值分别都为5、6、7。

(2)scanf("%d,%d,%d”,&c,&d,&e);

输入:5,6,7v回车〉

若输入第一个数据后,使用了任意一种分隔符,则只确定输入了c的值为5,d和c为本身

的初始值,若没有初始值,则为不定值。

注:在C语言中,没有指定值的任何类型的变量,在输出时为不定值。

(3)scanf(tt%d%*d%d%d,,,&c,&d,&e);

输入:2〈空格>3〈空格>4〈空格>5〈回车,〃c、d、e的值分别为2、4、5

(4)scanf(,'%c%*c%*c%c'\&cI,&c2);

输入:av空格〉b4V回车〉〃cl、c2的值分别为a、4

(5)scanf("%2d%d%d”,&c,&d,&c);

输入:123〈空格>456〈回车>He、d、e的值分别为12、3、456

(6)scanf("%d",&c,&d,&e);

输入:1〈空格>2〈空格>3<回车>〃c的值为1、d、e为不定值

4、getchar函数

格式为:getchar()

该函数称为输入字符型数据的函数,只能用来接收一人字符型数据。

注:在输入字符型数据时,空格、Tab、回车都属于字符。在二级C考试中经常出现该类题

目,可以参考以下例子,进行讲解。

main()

(

chard,c2,c3,c4;

c1=getchar(;;

c2=getchar();

c3=getchar(;;

c4=getchar(;;

printf("%c%c%c%c",d,c2,c3,c4);

)

运行程序时,输入:a<空格,b<空格>5〈问车〉

第三章选择结构

教学课时:

本章考点:

考点考核几率分值

关系运算符及关系表达式60%1〜3

逻辑运算符及逻辑表达式60%1-3

if语句

100%3〜5

嵌套的if语句(难点)

条件表达式、switch语句(难点)100%2〜5

goto语句100%1-2

教学内容

一、关系运算与逻辑运算

I、关系运算符

>、>=、<^<=、==、!=。

2、关系运算符的优先级别

(>、>=、<、<=)>(==、!=)

3、关系表达式

关系表达式的运算结果有两个:0和1,0代表“假”,1代表“真”。

4、逻辑运算符

&&、|h!

5、逻辑运算符的优先级别

!>&&>||

6、逻辑表达式

逻辑表达式的运算结果有两个:0和1,0代表“假北非0代表“真二

汪:“&&”和“II”存在“短路”现象。&&运算符左边的表达式的值为“假,则小冉计算&&

运算符右边的表达式的值;II运算符左边的表达式的值为“真二也不再计算II右边的表达式的

值。可以参考P45,第2题、第6题进行讲解。在二级C考试中,经常考计算关系和逻辑表达式

的值。在计算的过程中,要注意运算优先级:!>算术运算〉关系运算〉&&>||>赋值运算。

二、if语句

1、简单的if语句

格式为:

if(表达式)语句

注:在二级C考试中,经常考查简单的if语句。当表达式成立时,默认只有一条执行语句,

可以通过以下例子进行讲解。

main()

(

int3—10,b—50,c—30;

if(a>b)a=b,b=c;c=a;

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

)

2、if…else语句

格式为:

if(表达式)

语句1

else

语句2

3、多分支if…else…if

格式为:

if(表达式1)

语句1

elseif(表达式2)

语句2

elseiff表达式3)

语句3

•••

else

语句n

注:if语句中表达式可以是任意合法的表达式(在二级C考试中,经常用赋值语句作为if

语句的表达式)。语句如果是复合语句必须用“{}”将语句括起来,否则会出错,可以参考以下

例子进行讲解。

main()

(

inta=0,b=0,c=0,d=0;

if(a=1)b=1;c=2;

elsed=3;

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

)

4、嵌套if结构中的eke和if的配对原则

else总是和离它最近的且不带else的if配对,可以参考以卜例子进行讲解。

#inckidc<stdio.h>

main()

{intx=l,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

else

printf("%d,",++y);

printf("%d\n",x++);

)

三、条件表达式、switch语句、goto语句

1、条件表达式

基本格式为:

表达式1?表达式2:表达式3

可以通过以下例子进行讲解,便于学生对条件表达式的分析和理解。

main()

{

intx,a=2,b=5;

x=(a<b)?a:b;

printf(,,%d\n",x);

)

注:在嵌套的条件表达式中,运算从右向左计算,可以参考P56、第5题进行讲解。

2、switch语句

基本格式为:

switch(表达式)

{

case常量表达式1:语句1;break;

case常量表达式2:语句2;break;

case常量表达式n:语句n:break;

default:语句n+1;break;

)

switch语句注意事项:

(I)switch、case、break>default都是关键字。

(2)default语句至多有一个,但位置可以放在任何case之前。

(3)表达式的值只能是整型或字符型。

注:switch语句中,注意在case的语句块后加break语句和不加break语句的区别,在二

级C考试中,经常考查该类题。另外,考查default语句的执行(只有所有case后的常量表达

式都不成立时,才执行default后的语句)。可以参考P56,.第4题进行重点讲解。

3、goto语句

无条件转向goto语句,格式为:goto语句标号;

第四章循环结构

教学课时:

本章考点:

考点考核几率分值

while语句100%2〜3

do--while语句100%2〜3

for语句(难点)100%5〜7

循环结构的嵌套(难点)100%4〜6

break语句(难点)70%2〜3

continue语句(难点)50%2〜3

教学内容

一、while语句

while语句的一般形式为:

while(表达式)

{

循环体语句

while循环结构的执行过程:先计算表达式(循环条件)的值,若结果为“真”(非0),执

行循环体语句;然后再次计算表达式的值,重复上述过程,直到表达式的值为"假”(0)时,结

束循环,流程控制转到循环结构的下一条语句。

while循环结构的注意事项:

(1)while循环结构的特点是“先判断,后执行二如果表达式的值一开始就为“假”,则循

环体一次也不执行。

(2)循环体内中,如果包含两个或两个以上的语句,必须用花括号括起来,以更合语句的

形式出现。

(3)循环体内一定要有改变循环条件的语句,使循环趋向于结束,以免形成“死循环”。

注:可以通过P59、例1进行详细讲解,便于学生掌握while循环结构。

二、do…whiIe语句

do…while语句的形式为:

do

循环体语句

while(表达式);

do…while循环结构的执行过程:先执行一次循环体语句,然后计算表达式(循环条件)的

值。若结果为“真”(非0),则再次执行循环体,再计算表达式的值,如此重复下去,直到表达

式的值为“假”(0)时,循环结束,流程控制转到循环结构的下一条语句。

do,•,while循环结构的注意事项:

(1)循环体包含两个或两个以上的语句时,必须用花括号括起来,以复合语句形式出现。

(2)循环体内一定要有改变循环条件的语句,使循环趋向于结束,以免形成“死循环”。

三、for语句

for语句的形式为:

for(表达式1浓达式2;表达式3)

{

循环体语句

}

for循环结构的执行过程:先执行表达式1,赋初值;再执行表达式2,计算表达式2的值,

结果为“真”(非.()),执行循环体语句:循环体语句执行完毕,返回表达式3,让循环变量发生

变化,再判断表达式2的值。如此循环重复下去,直到表达式2的值为"假”(0)时,循环结束,

流程控制转到循环结构的下一条语句。

for循环结构的注意事项:

(1)关键字for的三个表达式允许部分或全部省略,但其中的两个分号(;;)不能省略。

(2)当省略表达式3时、应该在循环体有修改循环变量的值的语句,以保证循环能够正常

结束。

(3)当表达式2或三个表达式全部省略时,应该在循环体内设置相应的语句来结束循环,

否则程序始终认为判断条件成立,循环将无终止地执行下云,即形成死循环。

(4)循环体包含两个或两个以上的语句时,必须用花括号括起来,以复合语句形式出现。

汪:可以参考P59、例1,为学生讲解以上三种循环结构以及它们之间的关系。

四、循环结构的嵌套

任意一种循环结构中又套有循环结构,称为循环的嵌套。

循环结构的嵌套是一个难点,建议通过以下求阶乘的和(s=l!+2!+3!+…n!,n由键盘输入),

重点来讲解。另外,可参考P69,第3题进行讲解,便于学生会分析嵌套程序的执行。

main()

inti.j,n;

longsum,p;/*定义变量sum、p为长整型变量*/

scanf("%d",&n);

tbr(sum=0,i=1;i<=n;i++)

p=l,

j=l;

do

p=p*j;/*求i的阶乘

}whilc(++j<=i);

sum+=p:/*把i的阶乘累加到sum中*/

)

printf("\nsum=%ld\n",sum);

)

五、break语句和continue语句

1、break语句

break语句的一般形式:

break;

该语句的功能是:使执行从包含它的最内层循环或switch语句中跳出,转到switch结构或

该循环结构外的下•条语旬执行。这将导致包含它的最内层循环(while、for、do…while)或switch

语句的终止。

使用break语句的注意事项:

(I)break语句只能用于switch结构或循环结构中。在循环结构中应用时通常与if语句

配合使用。

(2)在嵌套的循环结构中使用时,break语句只能跳出(或终止)包含它的最内层循环。而

不能同时跳出(或终止)多层循环。

以下程序涉及在嵌套结构中,使用了break语句,建议重点讲解。

#include<stdio.h>

main()

{

intx=l,y=0,a=0,b=0;

switch(x)

(

case1:

switch(y)

{

case0:a++;break;

caseI:b++:break;

I

case2:a++;b++;break;

case3:a++;b++;

)

printfC'a=%d.b=%d\n",a,b);/*输出结果为:a=2,b=1*/

}

2、continue语句

continue语句的一般形式:

continue;

该语句的功能是:结束本次循环,使得包含它的循环(while、do…while、for)开始下一次

循环。

使用continue语句的注意事项:

(1)8nlimie语句只能用于循环结构中,通常也要有if'语句配合使用。

(2)continue语句只能结束本次循环,而不是终止整个循环的执行。

(3)在循环结构中,一旦conlinuc语句执行,即使该语句后有其他语句也不再执行,而是

跳转到循环条件,再次判断条件是否成立。

注:continue语句是个难点,在二级C考试中经常出现。可以参考P69、第1题和第2题进

行详细讲解。

第五章函数

教学课时:

本章考点:

考点考核几率分值

函数的定义与返回值80%1~3

库函数60%1-2

函数调用及形参与实参之间的数据传递(难点)100%2~4

函数的声明60%0-1

教学内容:

一、函数的定义

1、函数定义

功能单一旦独立的程序模块,用了•完成特定的任务并根据需要返回一个确定的值。

2、函数定义的格式

返回值类型函数名(类型1形参名1[,类型2形参名2|-)

{

说明部分

语句部分

3、注意事项

(I)函数返回值类型名缺省时,返回值类型默认为int,无返回值时类型是void。

(2)函数名和形参名是用户标识符,后面的括号“()”不能省。

(3)一对花括号中的内容为函数体,包含两部分:说明部分和语句部分。

(4)函数不能嵌套定义。

二、函数返回值

1、return语句

基本格式为:return(表达式);

2、使用return语句的注意事项

(I)表达式可以不加括号。

(2)表达式的类型应和函数定义返回值的类型一致。

(3)如果有多个return语句,则只有第一个起作用,因为一旦遇到return语句就会结束当

前函数的运行。

注:此处可参考教材P76的求矩形面积的例子、例1以及下面的例子来讲解各个函数的定义。

intmax(inta,intb)

intc;

if(a>b)c=a;

eIsec=b;

returnc;

)

三、库函数

1、include命令行

一般格式为:#inchide<头文件名.h>或/include”头文件名.h"

2、注意事项

(1)include命令行必须以符号开头。

(2)系统提供了的头文件以.h作为文件的后缀。

(3)include命令行是C语言的预处理命令,所以不用在语句的结尾加”;二

例如,在程序中要引用数学函数,则在程序开头要加上:include"math.h"o

3、库函数的调用形式

函数名(实参);

库函数的调用可以以两种形式出现:

(1)在表达式中调用,如y=cos(x);。

(2)作为独立的语句完成某种操作,如:printf("Iamateacher");.

此处可引入下面的例子来讲解库函数的应用。

例如,若有代数式尸匚函(其中e仅代表自然对数的底数,不是变量),则表示该代数式

的C语言表达式是:sqrt(fabs(pow(n,x)+exp(x)))。

解析:在C语言中,计算平方根应使用sqrt()函数,计算n的x次方应使用pow()函数(第1

个参数是n,第2个参数是x);计算自然数e的x次方应使用exp()函数,计算绝对值使用fabs()

函数。本题的代数式首先应计算n、和根据前面介绍应该分别为pow(n.x)和cxp(x),然后计算

它们的和pow(n,x)+exp(x),接着是这个和的绝对值fabs(pow(n,x)+exp(x)),最后对这个绝无■值开

平方,所以最终结果应是sqrt(fabs(pow(n,x)+exp(x)))0

注:带领学生完成教材P77的课后习题。

四、函数调用

1、函数调用的形式

函数名(实参);

2、函数调用注意事项

(1)不写返回值类型和实参类型。

(2)实参可以是常量、变量、表达式、函数调用。

(3)参数传递方向:实参一形参(单向)。

(4)若函数返回值类型是void,则函数调用不能出现在表达式中,不能赋值给变量。

注:函数调用以及参数的传递,初学者很难理解,所以多举一些例子详细讲解函数调用和参

数传递的过程。在此可以参考教材P78、例1、例2和P79、例3来详细讲解函数的调用。

通过下面的程序(即P82、例1)讲解函数参数的传递,注意讲解形参变化而实参不变。

voidswap(intx.inty)

{

intt;

t=x;

温馨提示

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

评论

0/150

提交评论