文档库 最新最全的文档下载
当前位置:文档库 › C教案56课时

C教案56课时

内蒙古化工职业学院

教案首页

课程: C语言授课顺次: 1 学时: 2 班级: 电信11日期:2012年2月28 日第1-2节

教案

第1章C语言概述

1.1 C语言简介

1.1.1 程序设计语言的发展

机器语言、汇编语言、高级语言。

1.1.2C语言的发展

1.1.3 C语言的特点

1、语言简洁、紧凑,使用方便、灵活;

2、运算符丰富;

3、数据类型丰富,不仅有基本数据类型,还有构造数据类型;

4、具有结构化的控制语句;

5、允许直接访问物理地址,可进行位操作;

6、生成目标代码质量高、程序执行效率高。

1.2 认识C程序

例1.1

#include “stdio.h”

main()

{ printf(“this is a c program。“);

}

程序运行结果:

this is a c program。

例1.2

#include “stdio.h”

main()

{ int x , y , z ;

x=3;

y=1;

z=x+y;

printf(“%d+%d=%d\n” , x , y , x );

}

程序运行结果:

3+1=4

教案

例1.3 从键盘输入任意两个整数,输出两数和。

#include “stdio.h”

main()

{ int x , y , z ;

scanf(“%d , %d ” , &x , &y );

z=x+y;

printf(“%d+%d=%d\n” , x , y , x );

}

程序运行结果:

从键盘输入:10,20

10+20=30

1、C程序的组成

※一个完整的C语言程序,是由一个main ()函数和若干个其他函数结合而成,或者仅由一个main ()函数构成;

※函数是C语言程序的基本单位;

※main ()函数可放在任意位置,但程序总是从main ()函数开始执行。

2、函数的一般结构

任何函数都是由函数的说明部分和函数体组成。

[函数类型] 函数名(函数参数表)函数的说明部分

{ 声明语句部分;

执行语句部分;函数体部分

}

3、基本语法规定

1、所有语句必须以分号结束,分号是C语言中语句的组成部分;

2、程序的书写格式自由,一行内可写几条语句,一条语句可写在多行;

3、允许使用注释/*……*/。

4、C语言中严格区分字母的大小写。

4、scanf、printf函数

C语言本身没有输入和输出语句。输入和输出是由库函数来完成的。

scanf、printf函数是C语言的库函数中的标准输入输出函数。

5、编译预处理

#include “stdio.h”

该编译预处理命令称为文件包含命令。

教案

1.3 C语言程序的执行过程

编辑、编译、连接、运行。

1.4 C程序上机步骤

1、turbo c 2.0 d的启动

2、文件的编辑、保存、运行。

作业:习题1、2。

内蒙古化工职业学院

教案首页

课程: C语言授课顺次:2 学时: 2 班级: 电信11 日期:2012年2月28 日第3-4节

教案

第二章数据类型和基本运算

2.1 基本数据类型

整型(int)

字符型(char)

单精度型(float)

基本数据类型实型(浮点型)

双精度型(double)

枚举类型(enum)

数组

数据类型

构造数据类型结构体(struct)

共用体(union)

指针类型

空类型(void)

2.2 标识符

标识符是给程序中的实体——变量、常量、函数、数组、结构体以及文件等所起的名字。C语言中的标识符可分为系统定义标识符和用户定义标识符。

2.2.1 系统定义标识符

系统定义标识符是指有固定名字和特定含义的标识符。又分为关键字和预定义标识符。

1、关键字

关键字又称保留字,是C语言规定的具有特定含义的标识符。必须用小写字母(32个)。

(1)数据类型

int long short char float double signed unsigned struct

union

enum void volatile const typedef

(2)存储类别

auto static register extern

教案

(3)语句命令字

goto return break continue if else while do

for switch case default

(4)运算符

sizeof

2、预定义标识符

(1)标准库函数

数学函数:sqrt fabs sin cos pow

输入输出函数:scanf printf getchar putchar gets puts (2)编译预处理命令

define endef include ifdef ifndef eddif if else

2.2.2用户定义标识符

命名规则:

1、以字母或下划线.开头,由字母、数字或下划线三种字符组成。

2、C语言中32个关键字不能作为标识符。

3、系统已预定义的标识符建议不将其定义为标识符使用。

4、C语言将大写字母和小写字母作为不同的字符处理。

5、不同的C语言版本对标识符的长度有不同的规定。许多系统通常取前8个字符。

2.2 常量和变量

2.3.1 常量

1、直接常量(字面常量)

(1)整型常量

※十进制整数:由数字0-9组成的整数。

※八进制整数:以数字0开头,由数字0-7组成的整数。

※十六进制整数:以0X开头,由数字0-9、a-f或A-F组成的整数。

(2)实型常量

※小数形式:由小数点和数字0-9组成。必须有小数点。

※指数形式:由整数部分、小数点、小数部分和指数部分组成。

[注意]

●E前必须有数字,E后必须是整数

●整数部分和小数部分可以省略,但不能同时省略,小数点或E及整数阶码可

以省略,但不能同时省略。

教案

(3)字符常量

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

※转义字符:以反斜杠“\”开头,后跟一个或几个字符的特殊字符常量。

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

※字符串的长度:字符串中包含的字符的个数。

※存储方式:自动加字符串的结束标志。

2、符号常量

定义形式:#define 标识符常量

2.3.2 变量

1、变量的定义

数据类型符变量名表;

[注意]●数据类型符用来说明变量的数据类型。

●变量名表可有多个变量,变量之间用逗号分隔。

●变量名是用户定义的标识符,习惯上由小写字母组成。

2、变量的赋值

(1)、先定义后赋初值

例如float a;

Char c1,c2;

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

(2)、定义变量的同时赋初值

例如float a=3.4;

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

[注意]●如果变量的类型与所赋数据的数据类型不一致,所赋数据将被转换成与变量相同的类型。作业:习题1.1、1.2

内蒙古化工职业学院

教案首页

课程: C语言授课顺次: 3 学时: 2 班级: 电信11日期:2012年3月6 日第1-2节

教案

2.4运算符和表达式

C语言中书写表达式时与数学表达式不同。

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

1、算术运算符

(1)基本的算术运算符

+、-、×、/、%

[说明]

※“+”和“-”可以作为正、负号使用;

※“/”运算对象可以是整数,也可以是实数;如1/2是0,1.0/1是0.5。

※“%”的运算对象必须是整数,余数的符号由被除数决定。

(2)自增、自减运算符

●++i、- -i (先使i自增(减)1,然后再参与其他运算)

●i++ 、i - - (i先参与其他运算后,i的值再自增(减)1)

例2.6、2.7

[注意] 1、自增、自减运算符只能用于变量,不能用于常量和表达式;

2、其结合性是自右向左;

2、算术表达式及运算符的优先级

(1)、算术表达式:用算术运算符和括号将运算对象连接起来的、符合C

语法规则的式子。

(2)、运算符的优先级和结合性(左结合性、右结合性)

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

1、赋值运算符

赋值运算符“=”具有右结合性

在赋值符“=”之前加上其他的双目运算可构成复合赋值符。

如 a+=b ---- a=a+b

a*=b+3 ---- a=a*(b+3)

a%=b ---- a=a%b

2、赋值表达式

一般形式:变量=表达式

[注意]

●赋值运算符左边必须是变量,整个表达式的值是被赋值变量的值。

●当赋值运算符左右两边的类型不一致时,右边表达式的值被转换成

左边变量的类型,然后再赋值。

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

教案

1、关系运算符

●〈小于

●〈= 小于等于

●〉大于

●〉= 大于等于

● == 等于

●!= 不等于

[说明]

※“〈、〈=、〉、〉=”的优先级相同高于“== 、!=”。

※关系运算符都是双目运算符,其结合性为左结合性。

※关系运算符的优先级低于算术运算符,高于赋值运算符

2、关系表达式

(1)、关系表达式的一般形式:

表达式关系运算符表达式

(2)、关系表达式的值

关系表达式的值只有两种:即逻辑真,用“1”表示,逻辑假,用0表示。

[说明] 当表达式成立时,其值为“1”,表达式不成立时,其值为“0”。

例如:假设 a=3,b=4,c=5

1).a>b 的值为0

2).(a>b)!=c 的值为1

3).a

4).(a

例如:

main()

{ char c=’k’;

int i=1,j=2,k=3;

float x=3e+5,y=0.85;

printf(“%d,%d\n”,’a’+5=k+1 );

printf(“%d,%d\n”,1

printf(“%d,%d\n”,i+j+k==-2*j,k==j==i+5);

}

运行结果:1,0

1,1

0,0

作业:习题1.3、1.5

内蒙古化工职业学院

教案首页

课程: C语言授课顺次: 4 学时: 2 班级: 电信11 日期:2012年3月6日第3-4节

教案

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

1、逻辑运算符

逻辑运算符包括:● && 逻辑与

●║逻辑或

●!逻辑非

逻辑运算符的结合性

① &&、║为双目运算符,具有左结合性;

②!为单目运算符,具有右结合性。

逻辑运算符的优先级

①!(非)→&& (与)║(或);

②!(非)→算术运算→关系运算→&&(与)→║(或)→赋值运算。

[说明]①逻辑运算的值也为“真”、“假”两种,用“1”和“0”表示;

②判断一个逻辑量为“真”还是为“假”,以非“0”的数值作为“真”,

以“0”代表“假”。

2、逻辑表达式

(1)、逻辑表达式的一般形式:

表达式逻辑运算符表达式

(2)、逻辑表达式的值

逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。

(3)、逻辑表达式的求值

[注]在计算逻辑表达式时,只有在执行下一个表达式才能求解时,才求解该表达式。

如与运算、或运算。

例如:main ( )

{ char c=’k’;

int i=1,j=2,k=3;

float x=3e+5,y=0.85;

printf (“%d,%d\n”,!x*!y, !!!x);

printf(“%d,%d\n”,’x║i && j -3, i

printf(“%d,%d\n”,i==5 && c &&(j=8), x+y║i+j+k);

}

运行结果:0,0

1,0

0,1

教案

2.4.5 条件运算符和条件表达式

1、条件运算符

运算符号:?和:

2、条件表达式

条件表达式的一般形式:

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

求值规则:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,

否则以表达式3的值作为条件表达式的值。

[说明] ①条件运算符的优先级别低于关系运算符和算术运算符,但高于赋值运算符。

②条件运算符是一对运算符,不能分开单独使用。

③条件运算符的结合方向是自右向左。

例4.7用条件表达式输出两个数中的大数。

main( )

{ int a,b,max;

scanf( “%d,%d”,&a,&b);

printf( “max=%d”, a>b ? a : b);

}

2.4.6 逗号运算符和逗号表达式

1、逗号运算符

2、逗号表达式

(1)、一般形式:表达式1,表达式2

(2)、求解过程:从左向右算,先求表达式1,再求表达式2,整个逗号表达式的值是表达式2的值,或称最后一个表达式的值。

(3)、逗号表达式的扩展

表达式1,表达式2,…,表达式n

整个表达式的值是表达式n的值。

2.4.7 其他运算符

1、sizeof 运算符

求字节数运算符。

2、圆括号运算符

作业:2.6、2.7、2.8、2.9 。

内蒙古化工职业学院

教案首页

课程: C语言授课顺次: 5 学时: 2 班级: 电信10 日期:2010年3 月15 日第1-2 节

教案

2.5 数据类型转换

C语言中数据类型的转换方式有两种:自动类型转换和强制类型转换。

2.5.1 自动类型转换

Double float

long

unsigned

int char ,short

自动类型转换的规则

[说明] ●纵向向上的箭头,表示不同类型的数据进行运算时的转换方向,即低类型转换成高类型。

●横向向左的箭头表示运算时自动进行的转换。

例如:char a ;

int b ;

double c ;

表达式a+b-c 求值过程中的类型转换如下:

a 首先自动转换成int 型完成加法运算,其int 型的结果再被转换成double

型完成与c 的减法运算,最后的结果是double型。

例如:假设已指定I 为整型变量,f 为单精度实型变量,d为双精度实型变量,e为长整型变量,有下面式子:

10+‘a’+ i * f – d /e

在计算机执行时从左向右扫描,运算次序依次为:①进行10+‘a’的运算,先将‘a’转换成整数97,运算结果为107。②由于“*”比“+”优先,先进行i * f 的运算。先将i 与f 都转换成double型,运算结果为double型。③整数107与

i * f 的积相加。先将整数107转换成双精度数,结果为double型。④将变量e划

成double型,d /e为double型。⑤将10+‘a’+ i * f的结果与d /e的商相减,结果为double型。

教案

2.5.2 强制类型转换

一般形式:(类型说明符)(表达式)

功能:把表达式的运算结果强制转换成类型说明符所表示的类型。

说明:(1)、类型说明符和表达式都有括号;

(2)、类型转换只是产生了一个中间结果,原数据类型不改变。

例如: 5 * (int)6.23

(float) 10/4

(float) (10/4)

例2-16 分析下列程序的输出结果。

main ( )

{ float m ;

int n ;

m=1.31 ;

n=(int) m ;

printf ( “ m=%f , n=%d\n “ , m , n ) ;

}

程序的输出结果为:

m=1.310000 , n=1

作业:习题1.10

内蒙古化工职业学院

教案首页

课程: C语言授课顺次: 6学时: 2 班级:电信10 日期:2010年3 月15日第3-4 节

教案

2.6 基本输入和输出

2.6.1字符输入和输出

1、字符输入函数:getchar函数

一般形式:c =getchar();

其中可以c是字符型变量,也可以是整型变量。

[说明] ① getchar函数只能适用于单个字符的输入,且一次只能输入一个字符。

② getchar函数使用时,必须在程序开头加上编译预处理命令:

# include “stdio.h”

2、字符输出函数:putchar函数

一般形式: putchar(c);

其中可以c是字符型变量,也可以是整型变量。

[说明] ① putchar函数只能适用于单个字符的输出,且一次只能输入一个字符。

② putchar函数使用时,必须在程序开头加上编译预处理命令:

# include “stdio.h”

2.6.2 格式输入输出函数

1、格式化输出函数printf

(1)、 printf函数的调用

①只有非格式字符串的格式(原样输出)

Printf(“非格式字符串”);

②一般的调用格式

Printf (“格式控制字符串“,输出表列);

[说明](1)、输出表列列出要输出的变量;

(2)、格式控制包括:

①、非格式字符:即原样输出的字符;

②、格式字符:d,o,x,u,f,e,g,c,s;

③、转义字符:\n,\t,\r,\b等。

(2)、格式字符串

一般形式: %[标志] [输出最小宽度] [.精度] [长度] 类型

①类型字符:表示输出数据的类型,格式字符及其意义如下:

D 以十进制形式输出带符号整数

O 以八进制形式输出无符号整数

X 以十六进制输出无符号整数

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

F 以小数形式输出单、双精度实数

教案

E 以指数形式输出单、双精度实数

G 以%F、%E 中较短的宽度输出单、双精度实数

C 输出单个字符

S 输出字符串

②、标志字符:-,+,#,空格,其意义如下:

- 结果左对齐,右边补空格

+ 针对为正的有符号值生成正号

# 对C,S,D,U 类无影响;对O类在输出时加

前缀O,对X类在输出时加0X;对E,G,F类,

当结果有小数时才给出小数点

空格为既无正号也无符号的值生成空格

③、输出最小宽度

用十进制整数表示输出的最少位数。若输出的位数多于定义的宽度,按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

④、精度

以“.“开头,后跟十进制整数。

意义:如果输出的是数字,表示输出小数位数;如果输出的是字符,

表示输出字符的个数。

⑤、长度

长度格式为H 和L两种:

H 表示按短整型量输出;

L 表示按长整型量输出。

举例应用①输出形式

②转义字符的使用

③输出表列中的求值顺序

2、格式化输入函数scanf

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

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

(2)、格式字符串

一般形式:%[*][输入数据宽度] [长度] 类型

①、类型(表示输入数据的类型)

d 输入十进制整数

o 输入八进制整数

x 输入十六进制整数

u 输入无符号十进制整数

相关文档
相关文档 最新文档