《C语言程序设计》讲稿Word文件下载.docx

上传人:b****5 文档编号:19213129 上传时间:2023-01-04 格式:DOCX 页数:86 大小:78.09KB
下载 相关 举报
《C语言程序设计》讲稿Word文件下载.docx_第1页
第1页 / 共86页
《C语言程序设计》讲稿Word文件下载.docx_第2页
第2页 / 共86页
《C语言程序设计》讲稿Word文件下载.docx_第3页
第3页 / 共86页
《C语言程序设计》讲稿Word文件下载.docx_第4页
第4页 / 共86页
《C语言程序设计》讲稿Word文件下载.docx_第5页
第5页 / 共86页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》讲稿Word文件下载.docx

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

《C语言程序设计》讲稿Word文件下载.docx

{

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

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中*/

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的使用方法,包括:

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

第三讲算法

板书+多媒体讲解

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

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

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

math.h>

voidmain()

inta;

doubles;

inputthea:

%d"

a);

a=fabs(a);

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

s=sqrt(a);

/*sqrt为求平方根函数*/

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

S4:

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

开始

P*i=>

i+1=>

结束

i<

=5

N

Y

流程图表示法:

N-S图表示法:

p*i=>

直到i>

5

输出p

习题:

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

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

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

自然语言表示法:

如果gi>

80,则输出ni和gi,否则不输出;

I

如果i<

=50,返回到S2,继续执行S2、S3、S4;

否则,算法结束。

gi>

=80

输出nigi

50

i>

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

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

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

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

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

(2)能被100整除,又能被400整除的,则这一年份是闰年;

其他的年份都不是闰年,假设用一个空间y来存放被校验的年份,则算法描述如下:

输入年份=>

y

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

否则,执行S3;

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

否则,执行S4;

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

y不能被

4整除

输出y

是闰年

100整除

不是闰年

400整除

y/4的余数为0

输出y不是闰年

y/100余数不为0

y/400余数不为0

输出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。

算法表示如下:

0.0=>

sum,1.0=>

i;

t;

t*1/i+sum=>

sum

-t=>

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

i,1=t

t,i+1=>

100

输出sum

i,1=>

t

=100

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

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

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

输入待判断的数=>

n

2=>

n除以i,得余数r

S5:

如果r不为0,则i+1=>

i,否则,输出n不是素数,算法结束

S6:

n,则返回S4,否则,输出n是素数,算法结束。

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

=sqrt(n)。

(改进)

0=>

w,2=>

n/i的余数=>

r

r=0?

输入待判断数=>

输出n不是素数

W=0和

=

输出n是素数

w

w=0?

r=0

或w=1

w=0

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

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

循环结构

A

B

选择结构

顺序结构

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

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

(2)在执行过程中,根据条件成立与否产生了不同的操作;

(3)当某一条件成立时,反复做相同的操作。

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

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

流程图表示方法:

N-S表示方法:

循环体

当p成立

直到p成立

六、算法的特性

算法共有五个特性:

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

有穷性:

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

确定性:

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

输入:

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

输出:

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

有效性:

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

七、结构化程序设计思想

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

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

(1)自顶向下

(2)逐步细化

(3)模块化设计

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

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

第四讲数据类型

(1)

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

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

(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

4

短整型

short[int]

长整形

long[int]

unsignedint

无符号长整形

unsignedlong

无符号短整型

unsignedshort

float

double

8

char

1

*

二、以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)

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

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

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

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

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

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

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

实型变量的定义方法、表示范围;

字符型变量的定义方法、表示范围;

指针和其他类型变量的配合使用;

数据类型间混合运算时的转化;

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

一、实型(浮点型)变量

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

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

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

数符

小数部分

指数部分

24位

8位

+

.314159

表示3.14159

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

float、double、longdouble

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

floata,b;

a=123456.789e5;

b=a+20;

printf("

%f\n"

b);

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

二、字符型变量

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

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

chara,b;

a=’a’;

b=97;

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

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

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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