C 语言程序设计教案清华.docx

上传人:b****3 文档编号:3496693 上传时间:2022-11-23 格式:DOCX 页数:33 大小:75.40KB
下载 相关 举报
C 语言程序设计教案清华.docx_第1页
第1页 / 共33页
C 语言程序设计教案清华.docx_第2页
第2页 / 共33页
C 语言程序设计教案清华.docx_第3页
第3页 / 共33页
C 语言程序设计教案清华.docx_第4页
第4页 / 共33页
C 语言程序设计教案清华.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C 语言程序设计教案清华.docx

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

C 语言程序设计教案清华.docx

C语言程序设计教案清华

第1章C语言概述

学习内容

1.1C语言出现的历史背景

1.2C语言的特点

1.3简单的C语言程序介绍

1.4运行C程序的步骤与方法

目的要求:

掌握C语言格式特点

熟悉C语言的编辑环境

重点难点:

C语言格式特点

TC编辑器的运行、操作

重点难点详解:

【例1.3】通过调用子函数求两个数的和。

main()/*主函数*/

 {inta,b,sum;/*定义变量*/

 a=3;b=4;/*变量赋值*/

 sum=add(a,b);/*调用add函数*/

 printf("sum=a+b=%d.\n",sum);}

 intadd(intx,inty)

{intz;

 z=x+y;

 return(z);/*将z的值返回*/

 }

C程序的组成规则:

1、C程序是由函数构成的。

  C语言是函数的语言,一个程序是由一个或多个函数构成的。

2、一个函数有两部分组成:

(1)函数的首部(函数的第一行)。

(2)函数体即函数首部下面的大括弧内的部分。

(3)一个C程序总是从main主函数开始执行。

无论位置如何。

(4)每个语句和数据定义的最后必须有一个分号“;”。

(5)C语言本身没有输入/输出语句,是库函数scanf和printf等函数来完成的。

(6)用/**/作注释,以用于增加可读性。

TC编辑器的运行、操作

1.编辑源文件——2.源文件的编译——3.目标程序的连接——4.执行程序——查看结果

操作步骤Alt+F9Ctr+F9Alt+F5

 

第二章程序的灵魂—————算法

学习内容

2.1算法的概念

2.2简单算法举例

2.3算法的特征

2.4算法的表示方法

2.5结构化程序设计方法

目的要求:

掌握算法的各种表示方法

熟悉N-S流程图

重点难点:

N-S流程图

重点难点详解:

用N-S流程图描述算法

传统的流程图用流程线和流程元素表示各个处理的执行顺序,但对流程线的使用没有严格的规定,因此,使用者可以不受限制地使流程转来转去,这样的流程图使人难以理解算法的逻辑。

为了解决这个问题,规定了算法的三种基本结构:

顺序结构、分支结构和循环结构。

用这些基本结构按一定的规律组成一个算法,这样的算法称为结构化算法。

按照结构化算法编写的程序称为结构化程序。

为了设计结构化算法,1973年,美国学者I.Nassi和B.Shneiderman提出提出一种新的流程图,称为N-S流程图。

 

N-S流程图基本符号

例如例2.3.1节的计算1+2+3+…+1000

的算法用N-S流程图

 

计算1+2+3+…+1000算法的N-S图

第三章数据类型、运算符与表达式

学习内容

3.1C语言的数据结构

3.2常量与变量

3.3整数类型

3.4浮点型数据

3.5字符型数据

3.6变量赋初值

3.7各类数值型数据间的混合运算

3.8算术运算符和算术表达式

3.9赋值运算符和赋值表达式

3.10逗号运算符及表达式

目的要求:

掌握整数类型与浮点型数据类型

掌握标识符的命名规则

数据的储存方式

字符型数据

标识符、常量、变量及初始化

掌握运算符及其表达式

掌握赋值运算符和赋值表达式

重点难点:

整数类型与浮点型数据类型

标识符的命名规则

复合赋值运算符

运算符及其表达式

重点难点详解:

整型数据

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

2.整型变量的分类

1)基本整型一般为2字节

2)短整型一般为2字节

3)长整型一般为4字节

3.整型数据的溢出

如何判断整型常量的类型。

①若在-32768—32767之间,可认为是普通整型int型或短整型(short型)。

②若超出了-32768—32767,而在-2147483648—+2147483647之间,则认为是长整型(long型)。

若认为是int类型的,系统不做检查,但数据会丢失。

4.整型常量的类型

(1)十进制整型常量:

289、-183 等。

每个数位都可以是(0~9)十个代码。

(2)八进制整型常量:

以o开头,如(128)10=o200。

(3)十六进制整型常量:

以ox开头,如(128)16=ox80。

如何判断整型常量的类型。

①若在-32768—32767之间,可认为是普通整型int型或短整型(short型)。

②若超出了-32768—32767,而在-2147483648—+2147483647之间,则认为是长整型(long型)。

若认为是int类型的,系统不做检查,但数据会丢失。

③若常量是无符号型(unsigned型),那么一个非负值的整数可以赋值给unsigned型变量,但要注意其范围。

50000可赋给unsignedint型,70000却不可以。

(无符号整型变量最大值65535.)

④如一整型常量后有L或l则表示为longint型的。

常用于函数的调用中。

5.整型变量的定义

①变量定义的一般格式

 [存储类型]数据类型变量名[,变量名2……];

例如,intd,l,a;

   定义变量时指定变量的类型,在编译时好为其分配相应的存储单元。

另外,还可在编译时检查该变量所做运算是否合法。

一般称在定义变量的同时进行赋初值的操作为变量初始化。

 ②变量初始化的一般格式

 [存储类型]数据类型变量名[=初值][,变量名2[=初值2,……]];

例如,intd=2,l=6,a;

浮点型数据类型

1浮点型常量的表示方法

(1)十进制小数形式:

由整数部分、小数点和小数部分组成。

(2)指数形式:

由实数部分、E(e)和整数部分组成。

2.浮点型数据的在内存中的存放形式

3.浮点型变量的分类

①单精度型:

关键字float,一般占4字节(32位),提供7位有效数字。

②双精度型:

关键字double,一般占8个字节、提供15~16位有效数字。

③长双精度型:

关键字longdouble,

3.实型数据的舍入误差

请注意有效为数。

4.浮点型常量的类型

一个实型常量赋值给一个实型变量时,只根据实型变量表示的有效数字的位数,在实型常量中按从左向右的方向截取数据。

Float型的变量只能保存七位有效数字,double型的变量只能保存15~16位有效数字。

5.浮点型变量的定义

和前面整型变量的定义的方法一样。

标识符的命名规则

标识符是一个字符序列,用来标识C语言程序中一个对象的名字。

命名时应注意以下几点:

1)标识符是一串英文字母或下划线开头的由字母、数字和下划线组成的字符串。

例如:

aaBCx2zy_1_An0都是合法的标识符;而3d#asd110A*C∏∑π都是非法标识符。

2)C语言本身并没有要求标识符的长度,不同的C编译系统允许包含的字符个数有所不同,通常标识符的长度可识别的标识符长度常限制为8个字符。

3)标识符大小字母含义不同。

比如abcAbcABC代表三个不同标识符,这一点一定要牢记。

复合赋值运算符

合赋值运算符是由赋值运算符之前再加一个双目运算符构成的。

 复合赋值运算的一般格式为:

变量双目运算符=表达式

└──┬──┘

复合赋值运算符

它等价于:

变量=变量双目运算符(表达式)。

 当表达式为简单表达式时,表达式外的一对圆括号才可缺省,否则可能出错。

例如:

x+=3/*等价于x=x+3*/

y*=x+6/*等价于y=y*(x+6), 而不是y=y*x+6*/

C语言规定的10种复合赋值运算符如下:

 +=,-=,*=,/=,%=;/*复合算术运算符(5个)*/

 &=,^=,|=,<<=,>>=;/*复合位运算符(5个)*/

其中后五种是位运算的运算符,在位运算那章介绍。

运算符及其表达式

算术运算符和算术表达式

1.基本的算术表达式

+加法运算符或正值运算符

-减法运算符或负值运算符

*乘法运算符

/除法运算符TC2.0采取“向零取整”法

%模运算符或称求余运算符该运算符的两边只能是整型数据。

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

左结合性、右结合性

3.强制类型转换运算符

除自动转换外,C语言也允许强制转换。

数据类型强制转换的一般格式为:

(要转换成的数据类型)(被转换的表达式)

(类型)(表达式)

例如:

(int)(x+y)/*将x+y的结果转换成int型*/

(float)5/2(等价于(float)(5)/2)/*将5转换成实型,再除以2(=2.5)*/

(float)(5/2)/*将5整除2的结果

(2)转换成实型(2.0)*/

注意:

强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。

例如,(double)a只是将变量a的值转换成一个double型的中间量,其数据类型并未转换成double型。

 4.自增、自减运算符(++、--)

 

(1)作用

  自增运算使单个变量的值增1,自减运算使单个变量的值减1。

(2)用法与运算规则

  自增、自减运算符都有两种用法。

 a)前置运算——运算符放在变量之前:

++变量、--变量

 先使变量的值增(或减)1,然后再以变化后的值参与其它运算,即先增减,后运算。

 b)后置运算——运算符放在变量之后:

变量++、变量--

 变量先参与其它运算,然后再使变量的值增(或减)1,即先运算,后增减。

例如:

k=1;k=1;    演示1-9

 j=++k;j=k++;

左边:

k先变成2,j=2右边:

k为1, j=1然后k为2。

使用中的问题说明:

(1)这两种、运算符只能用于变量,而不能用于常量或表达式。

(2)++、--运算符的优先相同,但比算术运算符优先级要高。

其结合性是“从右至左”的。

 i=3;j=-(i++);i=3;j=+(++i);

 printf(“%d,%d”,i,j);printf(“%d,%d”,i,j);

结果是:

4,-3结果是:

4,4

第四章顺序结构程序设计

学习内容:

4.1C语句概述

4.2赋值语句

4.3数据输入输出

4.4字符数据的输入输出

4.5格式输入和输出

4.6顺序结构程序设计举例

目的要求:

掌握顺序结构程序设计方法

掌握数据的输入输出

重点难点:

数据的输入输出

重点难点详解:

数据的输入输出

1.printf函数(格式输出函数)

printf()函数的作用:

向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。

(1)printf函数调用的一般形式为:

printf(“格式字符串”,输出表列);

例如:

printf("radius=%f\nlength=%7.2f,area=%7.2f\n",r,l,a);

格式字符串也称格式控制字符串或格式转换字符串,其中可以包含下列三种字符:

①格式指示符:

由“%”和格式字符组成,例如“%f”、“%7.2f”等,这总是由“%”字符开始,到格式字符终止。

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

输出表列中的每个数据项对应一个格式指示符。

②转义字符:

这些字符通常用来控制光标的位置。

③普通字符:

除格式指示符和转义字符之外的其他字符,这些字符输出时原样输出,例如上面例子中的“radius=”等。

(2)类型字符:

%d十进制整数inta=567;printf(“%d”,a);567

%o八进制无符号整数inta=65;printf(“%o”,a);101

%x或X十六进制无符号整数inta=65;printf(“%x”,a);ff

%u不带符号十进制整数inta=567;printf(“%u”,a);567

%c单一字符chara=65;printf(“%c”,a);A

%f小数形式浮点小数floata=456.789;printf(“%f”,a);456.789000

%s字符串printf(“%s”,“ABC”);ABC

%e或E指数形式浮点小数floata=456.789;printf(“%e”,a);4.567890e+02

%g或Ge和f中较短一种floata=456.789;printf(“%g”,a);456.789

说明:

✓格式字符要用小写

✓格式字符与输出项个数应相同,按先后顺序一一对应

✓输出转换:

格式字符与输出项类型不一致,自动按指定格式输出

2.scanf函数(格式输入函数)

(1).scanf函数的一般形式

格式:

scanf(“格式控制字符串”,地址表列);

功能:

按指定格式从键盘读入数据,存入地址表

指定的存储单元中,并按回车键结束

返值:

正常,返回输入数据个数

地址表列:

变量的地址,常用取地址运算符&

格式字符:

d,i,o,x,u,c,s,f,e

使用scanf()时应注意的一些问题:

①scanf函数中没有精度控制,不能企图用格式控制符来规定输入数据的精度scanf(“%5.2f”,&a)×

②scanf中要求给出变量地址,如给出变量名则会出错。

如scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。

③在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

④在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。

在输入数据时遇到以下情况之一认为一个数据输入结束

字符数据的输入输出

1.putchar函数(字符输出函数)

putchar函数是字符输出函数,其功能是在显示器上输出单个字符。

其一般形式为:

putchar(字符变量)

例如:

putchar('A');(输出大写字母A)

putchar(x);(输出字符变量x的值)

putchar('\n');(换行)

2.getchar函数(键盘输入函数)

getchar函数的功能是从键盘上输入一个字符。

其一般形式为:

getchar();

通常把输入的字符赋予一个字符变量,构成赋值语句,如:

charc;

c=getchar();

第五章选择结构程序设计

学习内容:

5.1关系运算符和关系表达式

5.2逻辑运算符和逻辑表达式

5.3if语句

5.4switch语句

目的要求:

掌握关系运算符逻辑、条件运算符及其它们的表达式

掌握if语句

掌握switch语句

重点难点:

If语句

Switch语句

重点难点详解:

If语句

用if语句可以构成分支结构。

它根据给定的条件进行判断,以决定执行某个分支程序段。

C语言的if语句有三种基本形式。

1.第一种形式为基本形式if(表达式)语句;其语义是:

如果表达式的值为真,则执行其后的语句,否则不执行该语句。

2.第二种形式为if-else形式if(表达式)

语句1;

else

语句2;其语义是:

如果表达式的值为真,则执行语句1,否则执行语句2。

3.第三种形式为if-else-if形式

前二种形式的if语句一般都用于两个分支的情况。

当有多个分支选择时,可采用if-else-if语句,其一般形式为:

if(表达式1)

语句1;

elseif(表达式2)

语句2;

elseif(表达式3)

语句3;

elseif(表达式m)

语句m;

else

语句n;

其语义是:

依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。

然后跳到整个if语句之外继续执行程序。

如果所有的表达式均为假,则执行语句n。

然后继续执行后续程序。

if-else-if语句的执行过程如图3—3所示。

4.在使用if语句中还应注意以下问题

(1)在三种形式的if语句中,在if关键字之后均为表达式。

该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。

例如:

if(a=5)语句;if(b)语句;都是允许的。

只要表达式的值为非0,即为“真”。

如在if(a=5)…;中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。

(2)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。

(3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

但要注意的是在}之后不能再加分号。

Switch语句

C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:

switch(表达式){

case常量表达式1:

语句1;

case常量表达式2:

语句2;

case常量表达式n:

语句n;

default:

语句n+1;

}

其语义是:

计算表达式的值。

并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。

如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

在使用switch语句时还应注意以下几点:

1.在case后的各常量表达式的值不能相同,否则会出现错误。

2.在case后,允许有多个语句,可以不用{}括起来。

3.各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

4.default子句可以省略不用。

第六章循环结构程序设计

学习内容:

6.1概述

6.2goto语句以及用goto语句构成循环

6.3while语句

6.4do…while语句

6.5for语句

6.6循环的嵌套

6.7几中循环的比较

6.8break语句和continue语句

目的要求:

掌握while语句、do-while语句、for语句

掌握循环的嵌套

重点难点:

for语句

Break和continue语句

重点难点详解:

for语句

for语句是C语言中所提供的功能最强、使用最为灵活的一种循环语句。

特别适用于循环次数固定而循环条件不确定的情况。

for语句的一般形式如下:

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

{……

}

(1)表达式1通常是用来给循环变量赋初值,一般是赋值表达式。

也允许在for语句之外给循环变量赋初值,此时可省略该表达式;

(2)表达式2通常是循环条件,一般为关系表达式或逻辑表达式,也可以是其它表达式;

(3)表达式3通常可用来修改循环变量的值,一般是赋值表达式。

三个表达式都是可选项,都可以省略。

但特别提请注意的是,表达式1和表达式2后的分号“;”不能省略。

for语句的执行过程如下:

(1)首先计算表达式1的值;

(2)再计算表达式2的值,若值为真(非0)则执行循环体语句一次,否则跳出循环;

(3)循环体语句执行完后,再计算表达式3的值,转

(2)步去执行。

在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次。

for语句的流程图

for语句最主要的特点是:

特别适合已知循环次数的循环语句,下面介绍一下for语句中循环次数的计算方法。

根据for循环的循环变量的变化情况。

循环次数的计算可以用公式进行计算:

n=(int)((终值-初值+步长)/步长)

其中,初值指循环变量的初始值,终值指循环变量满足条件的最终值,步长指循环变量每循环一次所变化的量。

例如:

循环语句for(n=1;n<=100;n++)(设n为整形变量)控制循环体反复执行的次数为

n=(int)((100-1+1)/1)=100

又如:

循环语句for(n=100;n<0;n=n-2)(设n为整形变量)控制循环体反复执行的次数为

n=(int)((1-100-2)/(-2))=50

在使用for语句中要注意以下几点:

(1)for语句中的各表达式都可省略,但分号间隔符不能少;

如:

for(;表达式;表达式)省去了表达式1;

for(表达式;;表达式)省去了表达式2;

for(表达式;表达式;)省去了表达式3;

for(;;)省去了全部表达式。

(2)在循环变量已赋初值时,可省去表达式1。

如省去表达式2或表达式3则将造成无限循环,这时应在循环体内设法结束循环。

(3)循环体可以是空语句。

例如:

从键盘输入一行字符然后逐个输出每一个字符。

(4)for语句也可与while,do-while语句相互嵌套,构成多重循环。

Break和continue语句

break语句有两种用法。

第一种用法是在switch语句中,跳出switch结构,转去执行后面的程序,其用法在第三章中已经介绍;第二种用法是,绕过一般的循环条件检验,立即强制地中止一个循环。

下面介绍第二种用法:

break语句的一般形式如下:

break;

当一个循环体内的break语句被执行时,循环立即中断,并转向循环体外的下一条语句.

Continue语句有点像break语句。

continue语句只能用在循环体内,不能用在其他位置。

其一般形式如下:

continue;

其功能是:

结束本次循环,即不再执行该循环体中continue语句之后的语句,转入下一次循环条件的判断与执行,所以有时又称短路语句。

应当注意的是:

break语句在循环体中的作用是结束整个循环,而continue语句只结束本次循环,继续下一次循环,即并不退出循环。

计算机等级考试试题讲解

熟练掌握程序设计的三种方法。

怎么样求解完全数、完备数

求解同构数、求解素数的方法

求解Fibonacci数列、自然数的阶乘

第七章数组

学习内容:

7.1一维数组的定义和引用

7.2二维数组的定义和引用

7.3字符数组和字符串

目的要求:

掌握一维数组定义初始化

掌握选择排序、气泡排序、插入排序的解题方法

掌握二维数组定义初始化

掌握字符数组和字符串的区别

如何利用字符数组来存放字符串

重点难点:

二维数组使用

字符数组的应用

字符串的存放

重点难点详解:

二维数组使用

二维字符数组的每一行可以看作一维字符数组,即二维字符数组的每一行可以存放一个字符串,于是二维字符数组又称为字符串数组.

#include

voidmain()

{

inti,j;

chardiamond[5][5]={{'','','*'},{'','*','','*'},{'*','','','','*'},{'','*','','*'},{'','','*'}};

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%c",diamond[i][j]);

printf("\n");

}

}

字符数组

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

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

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

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