C语言程序设计讲稿.docx

上传人:b****8 文档编号:13090480 上传时间:2023-06-11 格式:DOCX 页数:104 大小:95.44KB
下载 相关 举报
C语言程序设计讲稿.docx_第1页
第1页 / 共104页
C语言程序设计讲稿.docx_第2页
第2页 / 共104页
C语言程序设计讲稿.docx_第3页
第3页 / 共104页
C语言程序设计讲稿.docx_第4页
第4页 / 共104页
C语言程序设计讲稿.docx_第5页
第5页 / 共104页
C语言程序设计讲稿.docx_第6页
第6页 / 共104页
C语言程序设计讲稿.docx_第7页
第7页 / 共104页
C语言程序设计讲稿.docx_第8页
第8页 / 共104页
C语言程序设计讲稿.docx_第9页
第9页 / 共104页
C语言程序设计讲稿.docx_第10页
第10页 / 共104页
C语言程序设计讲稿.docx_第11页
第11页 / 共104页
C语言程序设计讲稿.docx_第12页
第12页 / 共104页
C语言程序设计讲稿.docx_第13页
第13页 / 共104页
C语言程序设计讲稿.docx_第14页
第14页 / 共104页
C语言程序设计讲稿.docx_第15页
第15页 / 共104页
C语言程序设计讲稿.docx_第16页
第16页 / 共104页
C语言程序设计讲稿.docx_第17页
第17页 / 共104页
C语言程序设计讲稿.docx_第18页
第18页 / 共104页
C语言程序设计讲稿.docx_第19页
第19页 / 共104页
C语言程序设计讲稿.docx_第20页
第20页 / 共104页
亲,该文档总共104页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计讲稿.docx

《C语言程序设计讲稿.docx》由会员分享,可在线阅读,更多相关《C语言程序设计讲稿.docx(104页珍藏版)》请在冰点文库上搜索。

C语言程序设计讲稿.docx

C语言程序设计讲稿

 

《C语言程序设计》讲稿

 

 

第一讲C语言概述

学时:

2学时

授课形式:

多媒体讲解+实例程序演示

教学目标:

对C程序有一个初步的认识;了解C语言的发展;掌握C语言的特点。

主要内容及时间安排(课堂90分钟,80分钟讲课,10分钟总结):

(1)C语言程序设计课程介绍:

包括课程标准、课堂要求、学习方法等(20分钟);

(2)实例演示+编译环境简介:

4个实例(包括科学计算、数据排序查找、小型应用系统、图形动画效果),每个实例使用一种编译环境,在观看实例效果的同时简单了解C语言编译运行环境(20分钟);

(3)C语言发展简史(包括计算机语言的进化、C语言的发展等)(10分钟);

(4)C语言特点介绍:

包括与其他语言相比的优点、简单介绍数据类型、关键字、流控结构等(30分钟);

(5)总结本节课程的主要内容,布置课后练习题。

(10分钟);

重点:

C语言特点中的数据类型、关键字和流控语句简介

教学内容细节:

具体内容参加幻灯片。

第二讲C语言程序介绍

学时:

2学时

授课形式:

板书+多媒体+实例程序演示

教学目标:

了解C语言的语法及结构;掌握C语言的编写流程;熟悉C语言的编译环境VC++6.0。

主要内容及时间安排(课堂90分钟,80分钟讲课,5分钟复习,5分钟总结):

(1)以提问的方式复习上节课的内容(5分钟);

(2)通过实例编写简单程序(先用多媒体展示第一个实例程序,要求学生了解一般C程序的编写流程,然后在编译环境演示程序执行过程,总结C语言程序的基本结构和语法要求)(15分钟);

(3)通过实例演示程序的运算功能(先用多媒体展示编写程序,一一讲解给学生,要求学生具有变量需要先定义的理念,然后在编译环境进行实例程序演示,掌握具有输入函数的C语言程序的运行过程)(15分钟);

(4)通过上述实例,利用板式总结C语言的编写和编译过程(借助VC++6.0来展示C语言的编写和执行过程)(10分钟);

(5)C语言结构特点总结(C语言由函数构成、书写格式自由、输入输出由函数实现、语句结束要有分号、main函数是函数开始和结束之处等)(20分钟);

(6)C语言上机编译环境介绍(主要介绍TC、VC++、Rarnu_CV1.0三个编译环境,主推Rarnu_CV1.0编译环境)(20分钟);

(7)总结本节课程的主要内容并布置课后练习题(5分钟);

重点:

C语言的程序结构、C语言语法细节、C语言编译过程、C语言运行环境等;

难点:

C语言语法细节和程序结构。

教学内容细节:

一、通过提问的方式复习上节课程的主要内容。

二、实例演示

(1)实例1-1简单输出:

#include/*包含文件*/

main()/*程序从函数main开始执行*/

{

/*在屏幕上输出引号内内容*/

printf("Iamaprogrammer,IlikeC!

");

}/*函数main结束*/

程序说明:

●main函数表示主函数,每个程序必须有且只能有一个main函数,函数体(功能语句)放在{}内。

●printf是C语言的输出函数,它的作用是将“”中的内容原样输出。

●其中“\n”是换行符。

●以/*和*/括起来的是注释,程序运行期间是不执行的只是增加程序的可读性。

(2)实例1-2简单计算:

/*求两个数的和*/

#include/*包含文件*/

main()/*主函数*/

{

inta,b,sum;/*定义局部变量*/

scanf("%d,%d",&a,&b);/*输入两个整数值放到a、b变量中*/

sum=a+b;/*将ab的和送入sum中*/

printf("sum=%d",sum);/*输出ab的和sum*/

}

程序说明:

●本实例的功能是实现两个数相加;

●scanf函数的作用是输入两个整数;

●具有变量定义的C语言函数的书写顺序应该是:

先写预处理命令,然后是函数名;然后是函数体,函数体中应先写变量定义,在写功能语句。

●为了增加程序的可读性应适当加上注释,和printf提示。

三、C语言的编写流程

 

四、C语言结构特点总结

(1)一个C程序可以由多个函数构成,但是只能有一个main函数,程序从main函数开始,然后通过函数调用完成部分功能,最后以main函数结束;

(2)主函数或子函数的函数体必须用一对{}括起来,函数体中主要是程序的功能语句,这种功能语句由两部分组成:

声明部分和执行部分;

(3)每一条语句由分号结束,程序书写格式自由,一行可以写多句,一句可以写多行,但分行时注意不能将字符串整体分开;

(4)C语言大小写敏感,大小写不能混用;一般程序语句用小写字母,符号常量用大写;

程序要有适当的注释语句,提高程序的可读性,注意注释语句不能嵌套;

(5)C语言中的变量必须先定义后使用;

(6)#include是预处理命令,用于将<>或””中包括的文件中的内容读到命令所在处;每个include的后面只能跟一个文件,如果想将多个文件包含到指定位置,可以通过多个include实现。

五、优秀的程序员应具备的基本素质

(1)具有良好的编程习惯

(2)使用TAB缩进

(3){}对齐

(4)有足够的注释

(5)有合适的空行

六、上机环境使用介绍

重点介绍上机环境VC++6.0的使用方法,包括:

程序编辑、程序编译、程序改错、程序保存、程序运行等。

第三讲算法

学时:

2学时

授课形式:

板书+多媒体讲解

教学目标:

掌握算法的概念、掌握典型算法的设计、熟练掌握算法表示方法中程序流程图和N-S图。

主要内容及时间安排(课堂90分钟,80分钟讲课,5分钟复习,5分钟总结):

(1)复习上节课的主要知识点(5分钟);

(2)算法和程序的关系(5分钟);

(3)算法的概念及算法优劣比较举例(什么是算法,连加算法优劣比较、算法的分类)(10分钟);

(4)简单算法举例(设计5个例子,从易到难)(40分钟);

(5)算法的特性(有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性)(10分钟);

(6)算法的表示方法(重点介绍流程图和N-S图)(10分钟);

(7)结构化程序设计方法(简单介绍结构化程序设计方法的基本思路)(5分钟);

(8)总结和布置课后练习题(课后题2.4、2.5,下一节讲解数据类型相关知识)(5分钟)

重点:

算法的概念、算法的特性、设计算法的意义、算法的表示方法

难点:

算法的表示方法

教学内容细节:

一、以提问的方式复习上节课的主要知识点。

二、算法和程序的关系

程序=数据结构+算法

数据结构——对数据的描述;算法——对操作的描述。

简单举例进行说明。

三、算法概念及算法优劣比较

算法:

解决问题的步骤。

不是只有数值运算问题才有算法,好多非数值运算问题也是有算法的。

数值运算问题的算法主要是求数值的结,比如求连加和,非数值算法主要应用在事务管理领域(图书检索、人事管理等)。

在进行数值运算或解决非数值算法时有时需要考虑算法的优劣,比如连加和,可以从1一直加到100,也可以采用首尾相加,在相乘的形式。

当然所用的步骤是不同的。

对于数学中的一些常用算法,比如求绝对值,求平方根,等等经常用到,人们就把它们写成程序模块的形式,用户什么时候需要就可以进行调用了,非常方便,常用的数值运算函数都包含在math.h文件中。

例3-1:

计算输入整数的平方根,如果输入的是负数,则先求它的绝对值,在求平方根:

#include

#include

voidmain()

{

inta;

doubles;

printf("inputthea:

");

scanf("%d",&a);

a=fabs(a);

/*如果a是负数,求a的绝对值,再放到a中,fabs是求绝对值的函数,是将小括号中的数的绝对值求出来*/

s=sqrt(a);/*sqrt为求平方根函数*/

printf("%dthesqrt=%f",a,s);

}

四、算法举例(将算法的各种表示方法放到算法举例中,学生接受起来效果会好一些)

介绍几个典型算法:

每一个算法都有多种描述方式,下面主要介绍自然语言表示法、流程图表示法、N-S图表示法。

流程图的基本符号及含义:

起止框

输入输出框

处理框

判断框

流程线

连接点

 

(1)计算1*2*3*4*5

自然语言表示法

繁琐的算法将第二个数与第一个数相乘,得到的积与第三个数相乘,依此方法一直乘到5。

当要进行连乘的数比较多时,这种方法显然不适用。

改进的算法开辟两个空间p和i,一个放计算之后的积,一个放被乘数,上面的算法进行改造后如下:

(S1表示第一步,S2表示第二步,依此类推)

S1:

1=>p,2=>i

S2:

计算p*i的积,结果仍然放在p中,即p*i=>p

S3:

i的值增1,即i+1=>i

S4:

如果i没有超过5,则继续执行S2、S3、S5,否则,算法结束,p中的数据就是连乘积。

开始

1=>p,2=>i

P*i=>p

i+1=>i

结束

i<=5

N

Y

流程图表示法:

N-S图表示法:

1=>p,2=>i

p*i=>p

i+1=>i

直到i>5

输出p

 

习题:

计算1+3+5+7+9的和,用流程图和N-S图表示此算法。

(2)有50个学生,输出80分以上的学生学号和成绩

为了表示方便,用n表示学生学号,ni表示第i个学生学号,用g表示学生成绩,gi表示第i个学生成绩,则算法如下:

自然语言表示法:

S1:

1=>i

S2:

如果gi>80,则输出ni和gi,否则不输出;

S3:

i+1=>I

S4:

如果i<=50,返回到S2,继续执行S2、S3、S4;否则,算法结束。

N-S图表示法:

1=>i

gi>=80

i+1=>i

输出nigi

直到i>50

N

Y

流程图表示法:

开始

1=>i

i+1=>i

结束

gi>=80

N

Y

输出nigi

i>50

N

Y

 

习题:

有50个学生,找出50个学生中分数为90的学生学号。

用流程图和N-S表示此算法。

(3)判断某一年份是否是闰年

判断某一年份是闰年的条件是:

(1)能被4整除,但是不能被100整除,则这一年份是闰年;

(2)能被100整除,又能被400整除的,则这一年份是闰年;其他的年份都不是闰年,假设用一个空间y来存放被校验的年份,则算法描述如下:

自然语言表示法:

S1:

输入年份=>y

S2:

若y能被4整除,但不能被100整除,则输出y是闰年,算法结束;否则,执行S3;

S3:

若y能被100整除,也能被400整除,则输出y是闰年,算法结束;否则,执行S4;

S4:

输出y不是闰年,算法结束。

流程图表示法:

开始

结束

Y

y不能被

4整除

输出y

是闰年

y不能被

100整除

N

Y

N

Y

输出y

是闰年

输出y

不是闰年

y不能被

400整除

输出y

不是闰年

N

输入年份=>y

 

N-S图表示法:

输入年份=>y

y/4的余数为0

输出y不是闰年

输出y不是闰年

N

Y

N

Y

y/100余数不为0

N

Y

y/400余数不为0

输出y是闰年

输出y是闰年

 

习题:

输出某一年份段内(比如1000-3000之间,包括1000和3000)的所有闰年。

(4)求一个数列的值

1-1/2+1/3-1/4+1/5+……+1/99-1/100

注意数列的规律,分子都是1,分母是从1开始,每次递增1,一直到100,第一项符号位正,第二位符号位负,依此规律交替正负,首先必须开辟两个空间,一个为sum放计算结果,然后是i,每次被加数的分母;其次为了表示符号位交替变化,在开辟一个空间t存放符号,如果是正号则t为1,符号t为-1。

算法表示如下:

自然语言表示法:

S1:

0.0=>sum,1.0=>i;1=>t;

S2:

t*1/i+sum=>sum

S3:

-t=>t;i+1=>i

S4:

如果i<=100,则返回S2,继续执行S2、S3、S4,否则,算法结束,sum中的值就是所求。

N-S图表示法:

流程图表示法:

0.0=>sum,1.0=>i,1=t

t*1/i+sum=>sum

-t=>t,i+1=>i

直到i>100

输出sum

开始

0.0=>sum,1.0=>i,1=>t

t*1/i+sum=>sum

-t=>t,i+1=>i

结束

i<=100

N

Y

 

习题:

计算1,1/2,2/3,3/5,5/8,8/13……这个数列前20项的和。

(5)判断一个大于3的数是不是素数

一个数是不是素数主要看它除了1和它本身之外不能被其他任何整数整除,则它是素数,否则就不是素数,首先需要开辟一个空间n存放待判断的数,其次开辟一个除数的空间i(i从2开始),利用n除以这个i,看能否整除,具体算法如下:

自然语言表示法:

S1:

输入待判断的数=>n

S2:

2=>i

S4:

n除以i,得余数r

S5:

如果r不为0,则i+1=>i,否则,输出n不是素数,算法结束

S6:

如果i

考虑是否非要做到i=n-1,是不是可以做到i<=sqrt(n)。

流程图表示法:

(改进)

开始

0=>w,2=>i

n/i的余数=>r

结束

r=0?

Y

N

输入待判断数=>n

输出n不是素数

W=0和

i<=

i+1=>i

N

Y

输出n是素数

1=>w

N

w=0?

流程图表示法:

开始

2=>i

n/i的余数=>r

结束

r=0?

Y

N

输入待判断数=>n

输出n不是素数

i<=

i+1=>i

N

Y

输出n是素数

 

N-S图表示法:

输入待判断数=>n

n/i的余数=>r

r=0

1=>w

输出n是素数

0=>w,2=>i

i+1=>i

直到i>或w=1

Y

N

w=0

Y

N

输出n不是素数

 

习题:

输出100-200之间的所有素数。

五、总结三种程序流程结构(顺序、选择和循环,给出图形表示)

循环结构

N

p

A

Y

p

A

B

选择结构

Y

N

A

B

顺序结构

通过上面几个例子,我们可以看到,算法在执行的过程中基本只有三种模式,

(1)从上到下依次执行下来,中间没有任何分叉,

(2)在执行过程中,根据条件成立与否产生了不同的操作;(3)当某一条件成立时,反复做相同的操作。

这就是我们结构化程序设计的三种基本流控结构:

顺序,分支和循环,下面给出这三种基本流控结构的流程图和N-S图表示。

流程图表示方法:

 

N-S表示方法:

循环体

当p成立

循环体

直到p成立

循环结构

选择结构

p

N

Y

A

A

B

顺序结构

 

六、算法的特性

算法共有五个特性:

有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性;

有穷性:

一个算法的步骤必须是有限的;

确定性:

算法中的每个步骤必须是确定的,不能是含糊不清的,不能有歧义;

输入:

算法运行时有时需要外部输入的信息;

输出:

算法的最终目的是求解和输出;

有效性:

算法的每个步骤都能有效的执行,并得到确定的结果。

七、结构化程序设计思想

结构化程序设计强调的是程序设计风格和程序结构的规范化,提倡清晰的结构,编程的基本要求是“清晰第一、效率第二”。

结构化程序设计风格需要经过以下几个步骤进行:

(1)自顶向下

(2)逐步细化

(3)模块化设计

(4)结构化编码(利用现有的流控语句进行编码设计)

八、总结和布置课后练习题(5分钟)

第四讲数据类型

(1)

学时:

2学时

授课形式:

板书+多媒体讲解+实例程序演示

教学目标:

掌握各种数据类型的关键字,掌握各种数据类型在计算机中所占的存储空间,常量及变量的定义形式,针对各种数据类型printf的格式控制输出。

主要内容及时间安排(课堂90分钟,80分钟讲课,5分钟复习,5分钟总结):

(1)以提问的方式复习上节课的主要知识点(5分钟);

(2)C语言的各种数据类型简介(基本类型和构造类型,各种数据类型的关键字及所占字节等)(10分钟);

(3)针对不同格式的printf输出格式介绍及举例(printf格式介绍,各种类型格式控制符介绍,以例子说明)(20分钟);

(4)常量(包括整型常量、实型常量、字符型常量、符号常量、举例)(20分钟)

(5)整型变量的概念及举例(整型变量的定义及举例)(20分钟)

(6)课堂练习(针对所讲知识进行相关习题练习)(10分钟)

(7)总结及新一讲内容提要(下一讲实型变量、字符型变量、指针变量的定义和使用)(5分钟)

重点:

C语言各种数据类型的关键字、各种类型的常量表示法、整型变量的定义和操作等;

难点:

整型变量的表示范围。

教学内容细节:

一、C语言各种数据类型介绍

数据类型

基本类型

构造类型

指针类型

空类型

整型

实型

字符型

长整型

整型、短整型

无符号整型

单精度

双精度

数组

结构体

共用体

枚举型

 

各种数据类型的关键字,及在计算机内存中所占大小(以各种不同的编译环境为例)

类型名

关键字

所占字节(B)

TC

Rarnu_c

VC++

整型

int

2

2

4

短整型

short[int]

2

2

2

长整形

long[int]

4

4

4

无符号整型

unsignedint

2

2

4

无符号长整形

unsignedlong

4

4

4

无符号短整型

unsignedshort

2

2

2

单精度

float

4

4

4

双精度

double

8

8

8

字符型

char

1

1

1

指针类型

*

2

4

4

二、以printf输出各种数据类型

printf基本格式说明

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

格式控制:

用双引号括起来的字符串,这个字符串包括两部分,格式说明和普通字符,格式说明以%开头。

输出表列:

与格式说明对应的输出表列。

在格式控制符中,除了格式说明去后边对应输出表列之外其他字符原样原位置输出,输出表列为带输出的内容。

比如:

printf(“abcd”);/*输出abcd字符串*/

intx=8,y=9;

printf(“abcd%defg%d”,x,y);/*输出abcd8efg9*/

具体格式说明符有:

%d/*输出短整型和整数*/

%o/*以八进制无符号形式输出整数*/

%x或X/*以十六进制无符号形式输出整数*/

%u/*以无符号十进制形式输出整数*/

比如

inta=-1;

printf(“%d,%u,%o,%x\n”,a,a,a,a);

输出内容分别是:

-1,65535,177777,ffff

所以原反补码的含义大家一定要清楚,对为什么出现这样的情况加以分析。

对于其他的数据类型也要采取不同的输出格式:

%f/*以单精度形式输出实数*/

%lf/*以双精度形式输出实数*/

%c/*以字符形式输出,只输出一个字符*/

分析:

inta=65;

charc=’B’;

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

输出结果:

65,66,A,B

当整数不超过字符型的表示范围时,整数可以以字符型的形式输出,输出的是它对应的ASCII码,字符型也可以以整数的形式输出,输出的是它ASCII码对应的值。

单精度或双精度不能利用字符型或整型格式输出,否则会产生错误结果(语法不会出错,但结果意想不到)。

三、各种数据类型常量

1.整型常量

(1)十进制整型常量

(2)八进制整型常量(以0开头)

(3)十六进制整型常量(以0x开头)

(4)后缀为u和U则表示无符号整型,后缀为L或l,表示长整型。

如果将一个带符号数后边加了u,则将其转化为补码按无符号数赋给相应变量。

2.实型常量

(1)十进制小数形式

(2)科学计数法:

XeY——e前必须有数字,e后必须为整数。

3.字符型常量

单引号括起来的为字符常量,转义字符也可以作为一个字符。

4.字符串型常量

双引号括起来的为字符串常量,字符串常量系统默认会在最后加一个‘\0’。

比较‘a’和“a”在内存中的状态。

5.符号型常量

符号型常量往往是利用宏定义实现的,宏定义属于预处理范畴,与文件包含命令相同。

#defineX12

一般放在程序开始,作用是定义一个符号为常量,在程序运行过程中不允许改变。

四、整型变量的概念和举例

(1)标示符的命名规则:

由字母数字下划线,开头不能使数字。

例:

以下合法的用户标识符是()

Aa1B3erC_a#Dif

(2)各种类型变量的定义:

各种变量的定义方法为:

类型名变量名列表;

/*如果变量名多余1个,用,分隔*/

整型变量的定义方法:

inta;

inta,b;

inta,b,c=12;

inta=12,b=12,c=12;不能写成inta=b=c=12;

可以在变量定义时给变量赋初值。

第五讲数据类型

(2)

学时:

2学时

授课形式:

板书+多媒体讲解+实例程序演示

主要内容及时间安排(课堂90分钟,80分钟讲课,5分钟复习,5分钟总结):

(1)以提问的方式复习上节课的主要内容(5分钟);

(2)实型变量(定义方法、表示范围、使用举例)(15分钟);

(3)字符型变量(定义方法、表示范围、使用举例)(15分钟);

(4)指针型变量(含义、定义方法、使用举例)(15分钟);

(5)各种数据类型间的混合运算(类型间的转化、强制类型转化方法、举例)(20分钟);

(6)课堂习题(15分钟);

(7)总结及下一讲知识提要(运算符和表达式)(5分钟)。

重点:

实型变量的定义方法、表示范围;字符型变量的定义方法、表示范围;指针和其他类型变量的配合使用;数据类型间混合运算时的转化;

难点:

指针和其他数据类型的配合使用,数据间的转化。

教学内容细节:

一、实型(浮点型)变量

浮点型数据在计算机内存中的存储状态分为三部分:

数符、小数部分、指数部分。

C语言的编译环境不同,则给各个部分分配的位数不同,一般情况下,数符和小数部分分配24位,指数部分非配8位。

数符

小数部分

指数部分

24位

8位

+

.314159

1

24位

8位

比如:

 

表示3.14159

浮点型变量定义的类型包括:

float、double、longdouble

举例说明浮点型数据是有误差的:

#include

voidmain()

{

floata,b;

a=123456.789e5;

b=a+20;

printf("%f\n",b);

}

如果将float改为double则结果不同。

二、字符型变量

字符型常量是以单引号括起来的单个字符。

字符变量的定义使用的是关键字char

chara,b;

a=’a’;

b=97;

整数和字符型可以互相赋值。

一般编译系统默认字符型为signed类型,表示-128—127之间的数字对应的字符,如果想表示1

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

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2