C语言程序设计教案内容.docx

上传人:b****6 文档编号:4716276 上传时间:2022-12-07 格式:DOCX 页数:190 大小:69.58KB
下载 相关 举报
C语言程序设计教案内容.docx_第1页
第1页 / 共190页
C语言程序设计教案内容.docx_第2页
第2页 / 共190页
C语言程序设计教案内容.docx_第3页
第3页 / 共190页
C语言程序设计教案内容.docx_第4页
第4页 / 共190页
C语言程序设计教案内容.docx_第5页
第5页 / 共190页
点击查看更多>>
下载资源
资源描述

C语言程序设计教案内容.docx

《C语言程序设计教案内容.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教案内容.docx(190页珍藏版)》请在冰豆网上搜索。

C语言程序设计教案内容.docx

C语言程序设计教案内容

C语言概述

【教学目的】

使学生对计算机语言有一定的认识,激发学生学习程序设计的兴趣。

【教学重点】

程序设计中的若干术语。

【教学难点】

理解程序设计中的若干术语。

【教学方法】

讲授式、讨论式、案例分析式。

【新课内容】

1、计算机语言

2、计算机程序设计

什么是程序?

为了解决某一特定问题用某一种计算机语言编写的指令序列称为程序。

什么是程序设计?

程序是程序设计的结果,在执行程序前必须先排定程序,排定以时间为进程必须完成的各种操作叫程序设计。

用高级语言进行程序设计时要注意以下三个概念:

语法,每种计算机语言都有自己的语法规则。

语义,即某一语法成分的含义。

  

语用,即正确使用语言。

3、C语言的由来

规模较大,难以实现

无数据类型

接近硬件,但过于简单,功能有限

用其编写了UNIX操作系统

功能更强大,面向对象

功能更强大,面向对象

4、C语言的特点

语言简洁、紧凑,使用灵活

运算符丰富

丰富的数据类型

结构化的控制语句

语法限制不严格

能进行位操作

语言生成的代码质量高

可移植性好

具有预处理功能

5、简单C程序介绍

main()

{inta,b,sum;

a=123;

b=456;

sum=a+b;

printf("Sumis%d\n",sum);

}

intmax(intx,inty)

{intz;

if(x>=y)z=x;

elsez=y;

return(z);

}

main()

{inta,b,c;

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

c=max(a,b);

printf(”max=%d\n",c);

}

6、作业 

说明C语言的由来。

算法

【教学目的】

使学生对计算机算法有一定的认识,激发学生学习程序设计的兴趣。

【教学重点】

NS图的基本知识

【教学难点】

算法的特性与设计

【教学方法】

讲授式、讨论式、案例分析式。

【新课内容】

1、算法的概念

广义地说,为解决一个问题采取的方法和步骤。

计算机算法分类

数值算法

求方程的根

求函数的定积分

非数值算法

图书检索

人事管理

2、简单算法举例

求闰年的算法

求素数的算法

3、算法的特性

有穷性

算法要包含有限的步骤

确定性

每一步必须明确

有零个或多个输入

需要从外界获取必要的信息

有一个或多个输出

需要把求得得解进行输出

有效性

每一步都能有效地执行

4、算法的表示方法

设计算法

自然语言

传统流程图

改进的流程图

N-S图(盒图)

伪代码

实现算法

计算机语言

传统流程图

优点:

描绘直观,容易掌握

缺点:

对流程线没有严格控制

三种基本结构

N-S图(盒图)

I.Nassi和B.Shneiderman提出

取消流程线,不能任意转移控制

使用N-S符号设计出来的程序必然是结构化程序

容易表示嵌套关系

容易确定局部和全局数据的作用域

N-S的基本符号

3.6PDL(过程设计语言—伪码)

用结构化程序设计语言的语法控制框架,在内部却可灵活使用自然语言来表示各种操作

比流程图更灵活,可以使用普通的正文编辑程序进行修改

可以作为注释直接插在源程序中,提高文档质量

有自动处理程序存在,可以自动生成程序代码

缺点:

不如图形工具直观

BEGIN

inputm,n

ifm

m%nr

whiler≠0

{nm

rn

m%nr}

printn

END

计算机语言

BEGIN

inputm,n

ifm

m%nr

whiler≠0

{nm

rn

m%nr}

printn

END

main()

{intm,n,r,t;

scanf(“%d,%d”,&m,&n);

if(m

r=m%n;

while(r!

=0)

{m=n;n=r;r=m%n;}

printf(“n=%d”,n);

}

4、结构化程序设计方法

原理:

用三种基本控制结构,通过组合和嵌套可实现任何单入口、单出口的程序。

方法:

自顶向下

逐步细化

模块化

5、作业

画简单程序的NS图和PDL代码。

数据类型

【教学目的】

使学生对程序设计数据类型的较全面而深入的掌握。

【教学重点】

数据类型的存储空间、长度

【教学难点】

常量与变量的概念

【教学方法】

讲授式、讨论式、读书指导案例分析式。

【新课内容】

1、基本类型

整型

字符型

实型(浮点型)

单精度、双精度

构造类型

数组类型

结构体类型

共用体类型

指针类型

空类型

2、常量与变量

符号常量

用一个标识符代表一个常量

#definePI3.14159

main()

{floatr,s,area;

scanf("%f",&r);

s=2*PI*r;

area=PI*r*r;

printf("s=%7.2f,area=%7.2f",s,area);

}

变量的概念

程序运行过程中其值可以改变的量,系统为程序中的每一个变量开辟一个存储单元,如:

main()

{inta,b;

a=2;printf("a=%d\n",a);

b=4;printf(“b=%d\n",b);

}

变量名

标识符:

用来标识变量名、符号常量名、数组名、函数名、文件名的有效字符序列。

关键字

预定义标识符

用户定义标识符

字母或下划线开头,后跟字母、数字和下划线组成。

变量要先定义后使用

3、整型常量

三种形式表示:

十进制:

如123-600

八进制:

以0开始,如0123

十六进制:

以0x开始,如0x123

main()

{inta=0123;

printf(“a=%d\n”,a);}

整型变量

分类

int整型

shortint(或short)短整型

longint(或long)长整型

unsignedint无符号整型

unsignedshort无符号短整型

unsignedlong无符号长整型

各类型数据长度、取值范围

所占位数取值范围

int16-32768~32767

short16-32768~32767

long32-21亿~21亿

unsignedint160~65535

unsignedshort160~65535

unsignedlong320~42亿

4、整型变量的定义

所有的变量需先定义类型

inta,b,c;/*指定a,b,c为整型变量*/

unsignedcount;/*指定lower为无符号整型变量*/

longs;

有些变量可以预先设置初值:

inta=0,b,c;/*指定a,b,c为整型变量,a的初值为0*/

inta=0,b=0,c=0;/*指定a,b,c为整型变量,a、b、c的初值为0*/

5、整型数据的溢出

main()

{inta,b;

a=32767;

b=a+1;

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

}

main()

{inta=70000;

printf(“a=%d\n”,a);

}

整型常量的类型

main()

{unsigneda;

a=-1u;

printf(“a=%u\n”,a);

}

6、作业

计算正方形面积

浮点等数据类型

【教学目的】

使学生对程序设计数据类型的较全面而深入的掌握。

【教学重点】

数据类型的存储空间、长度

【教学难点】

常量与变量的概念

【教学方法】

讲授式、讨论式、读书指导案例分析式。

【新课内容】

1、实型常量

小数形式:

如123.0.1230.012.5

指数形式:

如123e2123E2

main()

{floata;

a=123e3;

printf(“a=%e\n”,a);

}

实型变量

1、分类所占位数取值范围

float单精度32-3.4*10-38~3.4*1038

double双精度64-1.7*10-308~1.7*10308

longdouble长双精度128-1.2*10-4932~1.2*104932

2、变量的定义

floatx,y;/*指定x,y为单精度实型变量*/

doublez;/*指定z为双精度实型变量*/

3、字符型常量

单引号括起来的一个字符。

如:

'a'

字符常量可以象整数一样参与运算。

字符常量还有另外一种形式

——转义字符形式。

转义字符功能转义字符功能

\a响铃\\反斜杠字符

\b退一格\'单引号字符

\f走纸换页\"双引号字符

\n换行\?

问号

\r回车\ooo1~3位8进制数代表的字符

\t横向跳格\xhh1~2位16进制数代表的字符

4、字符变量

变量的定义

charc1,c2;/*指定c1,c2为字符型变量*/

2、字符型数据的存储

以ASCII码存储,存储形式与整型一样,可以和整数进行运算

main()

{charc1,c2;

c1=‘a’;c2=‘b’;

c1=c1-32;c2=c2-32;

printf(“%c,%c\n”,c1,c2);

printf(“%d,%d\n”,c1,c2);

}

字符数据在内存中的存储形式及使用方法

main()

{charc1,c2;

c1=97;c2=98;

printf(“%c,%c\n”,c1,c2);

printf(“%d,%d\n”,c1,c2);

c2=c2+1;

printf(“%c,%d\n”,c2,c2);

5、字符串常量

双引号括起来的字符序列。

如"Howareyou","0"等

字符串在存储时末尾被自动加上字符'\0'

字符常量与只包含一个字符的字符串常量的区别

例:

不属于字符常量的是

‘A’

“B”

‘\n’

‘\x72’

例:

合法的字符常量是

“abc”

‘\x43’

‘ab’

“\0”

例:

字符串“ab\n\012\\\””的长度是

3

4

6

12

变量赋初值

例:

inta=3;

floatb=2.5;

charc=‘a’;

例:

inta,b,c=5;

7、作业

计算圆的面积,PI=3.14159

各类数据间的混合运算

【教学目的】

掌握各种数据间混合计算类型转换的方法。

【教学重点】

强制类型转换

【教学难点】

转换优先级次序

【教学方法】

讲授式、讨论式、读书指导、案例分析式。

【新课内容】

1、C语言允许数据值从一种类型转换成另一种类型。

在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。

转换的规则按图所示。

高doublefloat

long

unsigned

低intchar,short

说明:

横向向左的箭头表示当运算对象为不同类横向向左的箭头表示必定的转换,如字符型(char)数据和短整型(short)数据必定先转换成整型(int),以提高运算精度。

纵向的箭头表示当运算对象为不同类型时转换的方向型时转换的方向。

数据总是由低级别向高级别转换。

算术运算符和算术表达式

基本算术运算符

运算符的优先级和结合性

自增、自减运算符

算术运算符

+(加法运算或正号运算符)

-(减法运算或负号运算符)

*(乘法运算符)

/(除法运算符)

%(求余运算符,或称模运算符)

例:

5%3结果:

2

2、运算符的优先级和结合性

算术表达式

用算术运算符和括号将运算量连接起来的式子称为算术表达式。

运算符有优先级和结合性

在求表达式的值时,要按照优先级的高低依次计算

如果运算符两侧优先级相同,则按规定的结合方向进行。

结合性

例:

main()

{intm=7,n=5;

floata=49,b=10,x;

x=m/2+n*a/b+1/2;

printf(“x=%f\n”,x);

3、C语言提供一种“强制类型转换”运算符,将一个类型的变量强制转换为另一种类型。

一般形式为:

(类型标识符)(表达式)

例如:

k=(int)((int)x+(float)i)/*得到整型数*/

(float)(x=85)/*得实型单精度数*/

例:

main()

{floatx=3.6;

inta;

a=(int)x;

printf(“x=%f,a=%d\n”,x,a);

}

例:

main()

{floatx=2.6,y=3.5,z;

inta;

z=(int)x+y;

a=(int)(x+y);

printf(“z=%f,a=%d\n”,a,z);

}

4、作业

P66 3.93.10

各运算符

【教学目的】

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

【教学重点】

++与――运算符的使用

【教学难点】

复合赋值运算符

【教学方法】

讲授式、讨论式、读书指导、案例分析式。

【新课内容】

1、自增、自减运算符

++运算符的作用是使变量的值增1。

--运算符的作用是使变量的值减1。

常见的用法有:

++i,--i在使用i前,使i的值加(减)1

i++,i--在使用i后,使i的值加(减)1

已知i=5

(1)j=i++;

i=3;

j=-i++;

注意:

1)、自增和自减运算符只能用于变量,表达式

(x+y)++是不合法的。

2)、自增和自减运算符的结合方向是“自右向左”。

如表达式-i++等价于-(i++)。

3)、(i++)+(i++)+(i++)结果?

4)、(++i)+(++i)+(++i)结果?

5)、i+++j是(i++)+j还是i+(++j)?

6)、printf(“%d”,i,i++)结果

例:

i=3;j=4;k=5;

m=(++i)+(--j)+(k--);

2、赋值运算符和赋值表达式

赋值运算符

复合的赋值运算符

赋值表达式

赋值运算符

简单的赋值就是把一个表达式的值赋给一个变量。

例如:

i=5

j=i+1

类型转换

(1)float,doubleint

舍去小数部分,也不进行四舍五入。

例:

inti=3.56;则i的值为3。

(2)intfloat,double

数值不变,但以浮点数形式存储。

例:

floatf=23;f的值为23.0000

(3)doublefloat

截取其前面7位有效数字,但应该注意数值范围不能溢出。

floatdouble

数值不变,在内存中以64位存储。

(4)charint

有两种情况:

A:

如果系统将字符处理为无符号数,或对unsignedchar型变量赋值,则将字符的8位

放在int型的底8位,高8位为0。

例:

main()

{unsignedcharc;

c=‘\376’;

printf(“%c,%d,%u\n”,c,c,c);

}

B.如果系统将字符处理为带符号的量,若字符的最高位为0,则整型变量高8位补0;若字符最高位为1,则整型变量高8位补1。

(即ASCII码在0~127之间,值不变;128~254之间,值为负值。

例:

main()

{charc;

c=‘\376’;

printf(“%c,%d,%u\n”,c,c,c);

}

(5)long,short,intchar

只须将低8位原封不动送到char型变量。

main()

{inti=289;

charc=‘a’;

c=i;

printf(“%c,%d\n”,c,c);}

(6)intlongint

int为正数时,longint的高16位补0;

int为负数时,longint的高16位补1;

longintint

则int只取长整型的低16位。

main()

{inta;

longintb=65536;

a=b;

printf(“a=%d\n”,a);

}

(7)unsignedintlongint

只需将高位补0,数值不变。

unsignedintint

unsignedlonglong

unsignedshortshort

因为字节数相同,所以内容原封不动不变;

但应注意,当unsignedxx型的最高位为1时,赋给xx型时,由于xx型的最高位为符号位,所以数据将变为负值。

main()

{unsignedinta=32768;

intb;

b=a;

printf(“b=%d\n”,b);

}

(8)

intunsignedint

longunsignedlong

shortunsignedshort

因为字节数相同,所以内容原封不动不变;

但非unsigned型的符号位将做为unsigned型的数值计算。

main()

{unsignedinta;

intb=-1;

a=b;

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

}

3、复合的赋值运算符

在赋值符“=”之前加上其它运算符,可以构成复合的运算符。

例如:

i+=2等价于i=i+2

a*=b+5等价于a=a*(b+5)

x%=3等价于x=x%3

4、赋值表达式

由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。

形式:

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

例如:

x=3

y=x+3

对赋值表达式求解的过程是:

将赋值运算符右侧的表达式的值赋给左侧的变量。

赋值表达式的值就是被赋值的变量的值。

结合性

注意:

一般形式的赋值表达式中的“表达式”又可以是一个赋值表达式。

如:

a=b=8按照从右到左的结合性等价于a=(b=8)

赋值表达式也可以包含复合的赋值运算符。

设a的值为6,计算a+=a-=a*a

先进行a*a的计算,结果为36

再进行a-=36的计算,相当于a=a-36=-30

最后进行a+=-30的计算,相当于a=a-30=-60

例:

main()

{inta,b,c,d,e;

a=b=c=d=e=5;

b+=a+3*a;

c%=a-3;

e=d*=a+3;

a-=a*=a;

printf(“a=%d,b=%d,c=%d,d=%d,e=%d\n”,a,b,c,d,e);

5、逗号运算符和逗号表达式

在逗号表达式中,逗号是一种运算符。

形式如下

表达式1,表达式2

由逗号隔开的一对表达式从左向右进行计算,其求解过程为:

先求解表达式1,再求表达式2,整个逗号表达式的值是表达式2的值。

逗号运算符是所有运算符中级别最低的。

例如

a=4*6,a+5

整个逗号表达式的值为29。

注意

一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,例如:

(a=4*6,a+5),a+6

整个表达式的值为30。

例:

intn=3,m=3;执行语句m=n++,m++,++n;

后n的值---,m的值---。

3

4

5

6

6、作业

P67 3.11   3.12

顺序程序设计

【教学目的】

掌握顺序程序设计的方法

【教学重点】

格式化输入与输出

【教学难点】

格式化输入的使用方法

【教学方法】

讲授式、讨论式、读书指导、案例分析式。

【新课内容】

1、赋值语句

由赋值表达式加上一个分号构成,作用是将一个确定的值赋给一个变量。

格式:

变量名=表达式;

说明

先计算,后赋值。

赋值语句中的“=”是赋值号而不是数学意义上的等号。

赋值号两侧的内容不能任意调换。

2、字符数据的输入输出

字符输出函数

格式:

putchar(c)

功能:

将c值所对应的字符输出到标准输出设备上(一般为显示器)。

c可以是整型或字符型。

一次只能输出一个字符,也可以输出控制符,如

putchar('\n')输出一个换行符,即光标移到下一行。

例:

putchar(‘a\n’);错

改为putchar(‘a’);putchar(‘\n’);

putchar(a,b);错

改为putchar(a);putchar(b);

例:

#include"stdio.h"

main()

{charch1,ch2;

ch1=‘A’;ch2=‘B’;

putchar(ch1);putchar(ch2);

putchar(‘\n’);

}

运行程序,运行结果为

AB

putchar()函数也可以输出转义字符,如:

putchar(‘\101’)即输出字符‘A’

字符输入函数

格式:

getchar()、功能:

从标准设备(一般是键盘)输入一个字符。

字符输入函数没有参数,函数值就是从设备输入的字符。

应注意空格和回车符也是字符,也可以被接受

例:

#include

main()

{chara,b,c,d;

a=getchar();b=getchar();

c=getchar();d=getchar();

putchar(a);putchar(b);

putchar(c);putchar(d);

}

例3从键盘输入三个大写字母,将其转换成小写字母输出。

#include"stdio.h"

main()

{charc1,c2,c3;

c1=getchar();c2=getchar();c3=getchar();

c1=c1+32;c2=c2+32;c3=c3+32;

putchar(c1);putchar(c2);putchar(c3);

}

3、格式输入输出

1、格式输出函数

格式:

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

功能:

printf函数可以将任意类型的多个数据输出到标准输出设备上(一般为显示器)。

格式字符含义

d十进制形式输出带符号整数(正数输出不带符号)

o八进制形式输出无符号整数(不输出前导0)

x十六进制形式输出无符号整数(不输出前导0x)

u十进制形式输出无符号整数

c输出一个字符

s输出一个字符串

f小数形式输出单、双精度实数(隐含输出6位小数)

e指数形式输出单、双精度实数(数字部分有6位小数)

g当指数小于-4或大于给定的精度时用%e格式,否则用%f格式。

附加格式说明符

格式字符含义

字母l用于长整型,可加在格式符d,o,x,u之前

m(整数)数据最小宽度

.n(整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数

—输出的数字或字符在域内向左靠

例:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1