C语言课件.docx

上传人:b****5 文档编号:4164214 上传时间:2022-11-28 格式:DOCX 页数:21 大小:26.49KB
下载 相关 举报
C语言课件.docx_第1页
第1页 / 共21页
C语言课件.docx_第2页
第2页 / 共21页
C语言课件.docx_第3页
第3页 / 共21页
C语言课件.docx_第4页
第4页 / 共21页
C语言课件.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言课件.docx

《C语言课件.docx》由会员分享,可在线阅读,更多相关《C语言课件.docx(21页珍藏版)》请在冰豆网上搜索。

C语言课件.docx

C语言课件

附录A常用字符与ASCII代码对照表

ASCⅡ值

字符

ASCⅡ值

字符

ASCⅡ值

字符

ASCⅡ值

字符

000

NUL

037

%

074

J

111

o

001

SOH

038

&

075

K

112

p

002

STX

039

076

L

113

q

003

ETX

040

077

M

114

r

004

EOT

041

078

N

115

s

005

END

042

*

079

O

116

t

006

ACK

043

+

080

P

117

u

007

BEL

044

081

Q

118

v

008

BS

045

-

082

R

119

w

009

HT

046

083

S

120

x

010

LF

047

/

084

T

121

y

011

VT

048

0

085

U

122

z

012

FF

049

1

086

V

123

{

013

CR

050

2

087

W

124

|

014

SO

051

3

088

X

125

}

015

SI

052

4

089

Y

126

~

016

DLE

053

5

090

Z

017

DC1

054

6

091

[

018

DC2

055

7

092

\

019

DC3

056

8

093

]

020

DC4

057

9

094

^

021

NAK

058

095

_

022

SYN

059

096

023

ETB

060

<

097

a

024

CAN

061

=

098

b

025

EM

062

>

099

c

026

SUB

063

?

100

d

027

ESC

064

@

101

e

028

FS

065

A

102

f

029

GS

066

B

103

g

030

RS

067

C

104

h

031

US

068

D

105

i

032

(space)

069

E

106

j

033

!

070

F

107

k

034

071

G

108

l

035

#

072

H

109

m

036

$

073

I

110

n

附录BC语言中的关键字

auto

break

case

char

const

continue

default

do

double

else

enum

extern

float

for

goto

if

int

long

register

return

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

volatile

while

附录C运算符和结合性

优先级

运算符

含义

要求运算

对象的个数

结合方向

1

()

圆括号

自左至右

[]

下标运算符

->

指向结构体成员运算符

·

结构体成员运算符

2

!

逻辑非运算符

1

(单目运算符)

自右至左

~

按位取反运算符

++

自增运算符

--

自减运算符

-

负号运算符

(类型)

类型转换运算符

*

指针运算符

&

取地址运算符

sizeof

长度运算符

3

*

乘法运算符

2

(双目运算符)

自左至右

/

除法运算符

%

求余运算符

4

+

加法运算符

2

(双目运算符)

自左至右

-

减法运算符

5

<<

左移运算符

2

(双目运算符)

自左至右

>>

右移运算符

6

<<=>>=

关系运算符

2

(双目运算符)

自左至右

7

==

等于运算符

2

(双目运算符)

自左至右

!

=

不等于运算符

8

&

按位与运算符

2

(双目运算符)

自左至右

9

按位异或运算符

2

(双目运算符)

自左至右

10

|

按位或运算符

2

(双目运算符)

自左至右

11

&&

逻辑与运算符

2

(双目运算符)

自左至右

12

||

逻辑或运算符

2

(双目运算符)

自左至右

13

?

:

条件运算符

3

(三目运算符)

自右至左

14

=+=-=*=/=%=>>=<<=&=∧=¦=

赋值运算符

2

(双目运算符)

自右至左

15

逗号运算符(顺序求值运算符)

自左至右

说明:

(1)同一优先级的运算符,运算次序由结合方向决定。

例如*与/具有相同的优先级别,其结合方向为自左至右,因此3*5/4的运算次序是先乘后除。

-和++为同一优先级,结合方向为自右至左,因此-i++相当于-(i++)。

(2)不同的运算符要求有不同的运算对象个数,如+(加)和-(减)为双目运算符,要求在运算符两侧各有一个运算对象(如3+5、8-3等)。

而++和-(负号)运算符是单目运算符,只能在运算符的一侧出现一个运算对象(如-a、i++、--i、(float)i、sizeof(int)、*p等)。

条件运算符是C语言中惟一的一个三目运算符,如x?

a:

b。

(3)从上表中可以大致归纳出各类运算符的优先级:

初等运算符()[]->·

单目运算符

算术运算负(先乘除,后加减)

关系运算符

逻辑运算符(不包括!

条件运算符

赋值运算符

逗号运算符

以上的优先级别由上到下递减。

初等运算符优先级最高,逗号运算符优先级最低。

位运算符的优先级比较分散(有的在算术运算符之前(如~),有的在关系运算符之前(如<<和>>),有的在关系运算符之后(如&、∧、¦))。

为了容易记忆,使用位运算符时可加圆括号。

附录DC语言常用语法提要

1.标识符

标识符可由字母、数字和下划线组成。

标识符必须以字母或下划线开头,大、小写的字母分别认为是两个不同的字符。

不同的系统对标识符的字符数有不同的规定,一般允许7个字符。

2.常量

(1)整型常量:

十进制、八进制、十六进制、长整型常数。

(2)字符常量:

用单撇号(/)括起来的一个字符,可以使用转义字符。

(3)实型常量(浮点型常量):

小数形式、指数形式。

(4)字符串常量:

用双撇号括起来的字符序列。

3.表达式

(1)算术表达式:

整形、实型表达式。

(2)逻辑表达式:

用逻辑运算符连接的整型量,结果为一个整数(0或1)。

逻辑表达式可以认为是整形表达式的一种特殊形式。

(3)字位表达式:

用为运算符连接的整型量,结果为整数。

字位表达式也可以认为是整形表达式的一种特殊形式。

(4)强制类型转化表达式:

用“(类型)”运算符使表达式的类型进行强制转换。

如(float)a。

(5)逗号表达式(顺序表达式),其形式为:

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

(6)赋值表达式:

将赋值号“=”右侧的值赋给左边的变量。

赋值表达式的值为执行赋值后被赋值的变量的值。

(7)条件表达式,其形式为:

逻辑表达式?

表达式1:

表达式2

逻辑表达式的值若为非零,则条件表达式的值等于表达式1的值;若逻辑表达式的值为零,则条件表达式的值等于表达式2的值。

(8)指针表达式:

对指针类型的数据进行运算,例如,p-2、p1-p2等(其中p、p1、p2均已定义为指向数组的指针变量,p1与p2是指向同一数组中的元素),结果为指针类型。

4.数据定义

对程序中需要用到的所有变量都需要进行定义。

对数据要定义其数据类型,需要时要制定其存储类别。

(1)类型识别符可用:

int

short

long

unsigned

char

float

double

struct

union

enum

typedef

结构体与共用体的定义形式为:

struct结构体名

{成员表列};

union共用体名

{成员表列};

用typedef定义新类型名的形式为:

typedef已知类型新定义类型;

(2)存储类别可用

auto(自动变量)

static(静态局部变量)

register(寄存器变量)

extern(外部变量)(如不指定储存类别,作auto处理)。

(3)变量的定义形式为:

储存类别数据类型变量表列;

注意外部数据定义只能用extern或static,而不能用auto或register。

5.函数定义

其形式为:

储存类别数据类型函数名(形参表列)

函数体

函数的储存类别只能用extern或static。

函数体是用花括号括起来的,可包括数据定义和语句。

函数的定义举例如下:

staticintmax(intx,inty)

{intz;

z=x>y?

x:

y;

return0;

}

6.变量的初始化

可以在定义时对变量和数组指定初始值。

静态变量或外部变量如未初始化,系统自动使其初值为零(对数值型变量)或空(对字符数据)。

对自动变量或寄存器变量,若为初始化,则其初值为一不可预测的数据。

7.语句:

(1)表达式语句;

(2)函数调用语句;

(3)控制语句;

(4)符合语句;

(5)空语句。

其中控制语句包括:

(1)if(表达式)语句

if(表达式)语句1

else语句2

(2)while(表达式)语句

(3)do语句

while(表达式);

(4)for(表达式1,表达式2,表达式3)

语句

(5)switch(表达式)

{case常量表达式1:

语句1;

case常量表达式2:

语句2;

……

case常量表达式n:

语句n;

default:

语句n+1;

}

(6)break语句

(7)continue语句

(8)return语句

(9)goto语句

8.预处理指令

#define宏名字符串

#define宏名(参数1,参数2,…,参数n)字符串

#undef宏名

#include“文件名”(或<文件名>)

#if常量表达式

#ifdef宏名

#ifndef宏名

#else

#endif

附录EC库函数

库函数并不是C语言的一部分,它是由人们根据需要编制并提供用户使用的。

每一种C编译系统都提供了一批库函数,不同的编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。

ANSIC标准提出了一批建议提供的标准库函数,它包括了目前多数C编译系统提供的库函数,但也有一些是某些C编译系统未曾实现的。

考虑到通用性,本书列出ANSIC标准建议提供的、常用的部分库函数。

对多数C编译系统,可以使用这些函数的绝大部分。

由于C库函数的种类和数目很多(例如,还有屏幕和图形函数、时间日期函数、与系统有关的函数等,每一类函数又包括各种功能的函数),限于篇幅,本附录不能全部介绍,只从教学需要的角度列出最基本的。

读者在编制C程序时可能要用到更多的函数,请查阅所用系统的手册。

1.数学函数

使用数学函数时,应该在该源文件中使用以下命令行:

#include或#include"math.h"

函数名

函数原型

功能

返回值

说明

abs

intabs(intx);

求整数x的绝对值

计算结果

acos

doubleacos(doublex);

计算cos-1(x)的值

计算结果

x应在-1到1范围内

asin

doubleasin(doublex);

计算sin-1(x)的值

计算结果

x应在-1到1范围内

atan

doubleatan(doublex);

计算tan-1(x)的值

计算结果

atan2

doubleatan2(doublex,doubley);

计算tan-1(x/y)的值

计算结果

cos

doublecos(doublex);

计算cos(x)的值

计算结果

x的单位为弧度

cosh

doublecosh(doublex);

计算x的双曲余弦cosh(x)的值

计算结果

exp

doubleexp(doublex);

求ex的值

计算结果

fabs

doublefabs(doublex);

求x的绝对值

计算结果

floor

doublefloor(doublex);

求出不大于x的最大整数

该整数的双精度实数

fmod

doublefmod(doublex,doubley);

求整除x/y的余数

返回余数的双精度数

frexp

doublefrexp(doubleval,int*eptr);

把双精度数val分解为数字部分(尾数)x和以2为底的指数n,即val=x*2n,n存放在eptr指向的变量中

返回数字部分x

0.5≤x<1

log

doublelog(doublex);

求logex,即lnx

计算结果

log10

doublelog10(doublex);

求log10x

计算结果

modf

doublemodf(doubleval,int*iptr);

把双精度数val分解为整数部分和小数部分,把整数部分存在iptr指向的单元

val的小数部分

pow

doublepow(doublex,doubley);

计算xy的值

计算结果

rand

intrand(void);

产生-90到32767间的随机整数

随机整数

sin

doublesin(doublex);

计算sinx的值

计算结果

x的单位为弧度

sinh

doublesinh(doublex);

计算x的双曲正弦函数sinh(x)的值

计算结果

sqrt

doublesqrt(doublex);

计算

计算结果

x应≥0

tan

doubletan(doublex);

计算tan(x)的值

计算结果

x的单位为弧度

tanh

doubletanh(doublex);

计算x的双曲正切函数tanh(x)的值

计算结果

2.字符函数和字符串函数

ANSIC标准要求在使用字符串函数时要包含头文件“string.h”,在使用字符函数时要包含头文件“ctype.h”。

有的C编译不遵循ANSIC标准的规定,而用其他名称的头文件。

请使用时查有关手册。

函数名

函数原型

功能

返回值

包含文件

isalnum

intisalnum(intch);

检查ch是否是字母(alpha)或数字(numeric)

是字母或数字返回1;否则返回0

ctype.h

isalpha

intisalpha(intch);

检查ch是否字母

是,返回1;不是,则返回0

ctype.h

iscntrl

intiscntrl(intch);

检查ch是否控制字符(其ASCII码在0和0x1F之间)

是,返回1;不是,返回0

ctype.h

isdigit

intisdigit(intch);

检查ch是否数字(0~9)

是,返回1;不是,返回0

ctype.h

isgraph

intisgraph(intch);

检查ch是否可打印字符(其ASCII码在ox21到ox7E之间),不包括空格

是,返回1;不是,返回0

ctype.h

islower

intislower(intch);

检查ch是否小写字母(a~z)

是,返回1;不是,返回0

ctype.h

isprint

intisprint(intch);

检查ch是否可打印字符(包括空格),其ASCII码在ox20到ox7E之间

是,返回1;不是,返回0

ctype.h

ispunct

intispunct(intch);

检查ch是否标点字符(不包括空格),即除字母、数字和空格以外的所有可打印字符

是,返回1;不是,返回0

ctype.h

isspace

intisspace(intch);

检查ch是否空格、跳格符(制表符)或换行符

是,返回1;不是,返回0

ctype.h

isupper

intisupper(intch);

检查ch是否大写字母(A~Z)

是,返回1;不是,返回0

ctype.h

isxdigit

intisxdigit(intch);

检查ch是否一个十六进制数字字符(即0~9,或A到F,或a~f)

是,返回1;不是,返回0

ctype.h

strcat

char*strcat(char*str1,char*str2);

把字符串str2接到str1后面,str1最后面的'\0'被取消

str1

string.h

strchr

char*strchr(char*str,intch);

找出str指向的字符串中第一次出现字符ch的位置

返回指向该位置的指针,如找不到,则返回空指针

string.h

strcmp

intstrcmp(char*str1,char*str2);

比较两个字符串str1,str2

str1

str1=str2,返回0;

str1>str2,返回正数

string.h

strcpy

intstrcpy(char*str1,char*str2);

把str2指向的字符串复制到str1中去

返回str1

string.h

strlen

unsignedintstrlen(char*str);

统计字符串str中字符的个数(不包括终止符'\0')

返回字符个数

string.h

strstr

intstrstr(char*str1,char*str2);

找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)

返回该位置的指针,如找不到,返回空指针

string.h

tolower

inttolower(intch);

将ch字符转换为小写字母

返回ch所代表的字符的小写字母

ctype.h

toupper

inttoupper(intch);

将ch字符转换成大写字母

与ch相应的大写字母

ctype.h

3.输入输出函数

凡用以下的输入输出函数,应该使用#include把stdio.h头文件包含到源程序文件中。

函数名

函数原型

功能

返回值

说明

clearerr

voidclearerr(FILE*fp);

使fp所指文件的错误,标志和文件结束标志置0

close

intclose(intfp);

关闭文件

关闭成功返回0;否则返回-1

非ANSI标准

creat

intcreat(char*filen-ame,intmode);

以mode所指定的方式建立文件

成功则返回正数;否则返回-1

非ANSI标准

eof

Inteof(intfd);

检查文件是否结束

遇文件结束,返回1;否则返回0

非ANSI标准

fclose

intfclose(FILE*fp);

关闭fp所指的文件,释放文件缓冲区

有错则返回非0;否则返回0

feof

intfeof(FILE*fp);

检查文件是否结束

遇文件结束符返回非零值;否则返回0

fgetc

intfgetc(FILE*fp);

从fp所指定的文件中取得下一个字符

返回所得到的字符,若读入出错,返回EOF

fgets

char*fgets(char*bu-f,intn,FILE*fp);

从fp指向的文件读取一个长度为(n-1)的字符串,存入起始地址为buf的空间

返回地址buf,若遇文件结束或出错,返回NULL

fopen

FILE*fopen(char*f-ormat,args,...);

以mode指定的方式打开名为filename的文件

成功,返回一个文件指针(文件信息区的起始地址);否则返回0

fprintf

intfprintf(FILE*fp,char*format,args,...);

把args的值以format指定的格式输出到fp所指定的文件中

实际输出的字符数

fputc

intfputc(charch,FILE*fp);

将字符ch输出到fp指向的文件中

成功,则返回该字符;否则返回非0

fputs

intfputs(char*str,FILE*fp);

将str指向的字符串输出到fp所指定的文件

成功返回0;若出错返回非0

fread

intfread(char*pt,unsignedsize,unsigne-dn,FILE*fp);

从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区

返回所读的数据项个数,如遇文件结束或出错返回0

fscanf

intfscanf(FILE*fp,charformat,args,...);

从fp指定的文件中按format给定的格式将输入数据送到args所指向的内存单元(args是指针)

已输入的数据个数

fseek

intfseek(FILE*fp,longoffset,intbase);

将fp所指向的文件的位置指针移到以base所给出的位置为基准、以offset为位移量的位置

返回当前位置;否则,返回-1

ftell

longftell(FILE*fp);

返回fp所指向的文件中的读写位置

返回fp所指向的文件中的读写位置

fwrite

intfwrite(char*ptr,unsignedsize,unsigne-dn,FILE*fp);

把ptr所指向

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

当前位置:首页 > 小学教育 > 数学

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

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