资源描述
1. 转义字符 1
2. 常用字符与ASCII代码对照表 1
3. C语言的关键字 2
4. 运算符和结合性 2
5. C库函数 3
1. 数学函数 3
2. 字符函数和字符串函数 4
3. 输入输出函数 6
4. 动态存储分配函数 8
1. 转义字符
转义字符(字符)
ASCII值
意义说明
\n
(LF)NL
10
换行符
\t
(tab)
9
水平制表符
\v
(VT)
11
垂直制表符
\b
(BS)
8
退格符
\r
(CR)
13
回车符
\f
(FF)
12
换页符
\\
\
92
反斜线符
\’
(‘)
39
单引号符
\”
(“)
34
双引号符
\0
(NULL)
0
空字符
\a
(BELL)
7
响铃
\ddd
1至3位八进制数所代表的字符
\xhh
1至2位十六进制数所代表的字符
2. 常用字符与ASCII代码对照表
ASCII码
字符
ASCII码
字符
ASCII码
字符
ASCII码
字符
ASCII码
字符
ASCII码
字符
000
NUL
022
SYN(^V)
044
,
066
B
088
X
110
n
001
SOH(^A)
023
ETB(^W)
045
-
067
C
089
Y
111
o
002
STX(^B)
024
CAN(^X)
046
.
068
D
090
Z
112
p
003
ETX(^C)
025
EM(^Y)
047
/
069
E
091
[
113
q
004
EOT(^D)
026
SUB(^Z)
048
0
070
F
092
\
114
r
005
END(^E)
027
ESC
049
1
071
G
093
]
115
s
006
ACK(^F)
028
FS
050
2
072
H
094
^
116
t
007
BEL(bell)
029
GS
051
3
073
I
095
_
117
u
008
BS(^H)
030
RS
052
4
074
J
096
`
118
v
009
HT(^I)
031
US
053
5
075
K
097
a
119
w
010
LF(^J)
032
Space
054
6
076
L
098
b
120
x
011
VT(^K)
033
!
055
7
077
M
099
c
121
y
012
FF(^L)
034
"
056
8
078
N
100
d
122
z
013
CR(^M)
035
#
057
9
079
O
101
e
123
{
014
SO(^N)
036
$
058
:
080
P
102
f
124
|
015
SI(^O)
037
%
059
;
081
Q
103
g
125
}
016
DLE(^P)
038
&
060
<
082
R
104
h
126
~
017
DC1(^Q)
039
'
061
=
083
S
105
i
127
del
018
DC2(^R)
040
(
062
>
084
T
106
j
019
DC3(^S)
041
)
063
?
085
U
107
k
020
DC4(^T)
042
*
064
@
086
V
108
l
021
NAK(^U)
043
+
065
A
087
W
109
m
注:表中用十进制数表示ASCII码值。符号^表示【Ctrl】键
3. C语言的关键字
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
4. 运算符和结合性
优先级
运算符
含义
要求运算对象的个数
结合方向
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
,
逗号运算符
(顺序求值运算符)
自左至右
5. C库函数
1. 数学函数
使用数学函数时应该在该源文件中使用以下命令行:
#include<math.h>或#include "math.h"
函数名
函数原型
功能
返回值
说明
abs
int abs (int x);
求整数x的绝对值
计算结果
acos
double acos (double x);
计算cos-1(x)的值
计算结果
x应在-1到1范围内
asin
double asin (double x);
计算sin-1(x)的值
计算结果
x应在-1到1范围内
atan
double atan (double x);
计算tan-1(x)的值
计算结果
atan2
double atan2 (double x, double y);
计算tan-1(x/y)的值
计算结果
cos
double cos (double x);
计算cos(x)的值
计算结果
x的单位为弧度
cosh
double cosh (double x);
计算x的双曲余弦cosh(x)的值
计算结果
exp
double exp (double x);
求ex的值
计算结果
fabs
double fabs (double x);
求x的绝对值
计算结果
floor
double floor (double x);
求出不大于x的最大整数
该整数的双精度实数
fmod
double fmod (double x, double y);
求整数x/y的余数
返回余数的双精度数
frexp
double frexp (double val, int *eptr);
把双精度数val分解为数字部分(尾数)x和以2为底的指数n,即val=x*2n,n存放在expr指向的变量中
返回数字部分x
0.5≤x<1
log
double log (double x);
求logex,即ln x
计算结果
log10
double log10 (double x);
求log10x
计算结果
modf
double modf(double val, double *iptr);
把双精度数val分解为整数部分和小数部分,把整数部分存放到iptr指向的单元
val的小数部分
pow
double pow (double x, double y);
计算xy的值
计算结果
rand
int rank (void);
产生-90到32767间的随机整数
随机整数
sin
double sin (double x);
计算sin(x)的值
计算结果
x的单位为弧度
sinh
double sinh (double x);
计算x的双曲正弦函数sinh(x)的值
计算结果
sqrt
double sqrt (double x);
计算
计算结果
x应≥0
tan
double tan (double x);
计算tan(x)的值
计算结果
x的单位为弧度
tanh
double tanh (double x);
计算x的双曲正切函数tanh(x)的值
计算结果
2. 字符函数和字符串函数
ANSI C标准要求在使用字符串函数时要包含头文件“string.h”,在使用字符函数时要包含头文件“ctype.h”。有些C编译不遵循ANSI C标准的规定,而用其他名称的头文件。请使用时查有关手册。
函数名
函数原型
功能
返回值
包含文件
isalnum
int isalnum (int ch);
检查ch是否是字母(alpha)或数字(numeric)
是字母或数字返回1;否则返回0
ctype.h
isalpha
int isalpha (int ch);
检查ch是否是字母
是,返回1;不是,则返回0
ctype.h
iscntrl
int iscntrl (int ch);
检查ch是否是控制字符(其ASCII码在0和0x1F之间)
是,返回1;不是,返回0
ctype.h
isdigit
int isdigit (int ch);
检查ch是否是数字(0~9)
是,返回1;不是,返回0
ctype.h
isgraph
int isgraph ( int ch);
检查ch是否是可打印字符(其ASCII码在0x21到0x7E之间),不包括空格
是,返回1;不是,返回0
ctype.h
islower
int islower (int ch);
检查ch是否是小写字母(a~z)
是,返回1;不是,返回0
ctype.h
isprint
int isprint (int ch);
检查ch是否是可打印字符(包括空格),其ASCII码在0x20到0x7E之间
是,返回1;不是,返回0
ctype.h
ispunct
int ispunct (int ch);
检查ch是否是标点字符(不包括空格),即除字母、数字和空格以外的所有可打印字符
是,返回1;不是,返回0
ctype.h
isspace
int isspace (int ch);
检查ch是否是空格、跳格符(制表符)或换行符
是,返回1;不是,返回0
ctype.h
isupper
int isupper (int ch);
检查ch是否是大写字母(A~Z)
是,返回1;不是,返回0
ctype.h
isxdigit
int isxdigit (int ch);
检查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
strchar
char *strchr (char *str, int ch);
找出str指向的字符串中第一次出现字符ch的位置
返回指向该位置的指针,如找不到,则返回空指针
string.h
strcmp
int strcmp (char *str1,char *str2);
比较两个字符串str1、str2
str1<str2,返回负数;str1=str2,返回0;str1>str2,返回正数
string.h
strcpy
char *strcpy (char *str1,char *str2);
把str2指向的字符串复制到str1中
返回str1
string.h
strlen
unsigned int strlen (char *str);
统计字符串str中字符的个数(不包括终止符'\0')
返回字符个数
string.h
strstr
char *strstr(char *str1,char str2);
找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)
返回该位置的指针,如找不到,返回空指针
string.h
tolower
int tolower(int ch);
将ch字符转换为小写字母
返回ch所代表的字符的小写字母
stype.h
toupper
int toupprr(int ch);
将ch字符转换为大写字母
与ch相应的大写字母
stype.h
3. 输入输出函数
凡用以下的输入输出函数,应该使用#include<stdio.h>把stdio.h头文件包含到源程序文件中。
函数名
函数原型
功能
返回值
说明
clearerr
void clearerr (FILE *fp);
使fp所指文件的错误,标志和文件结束标志置0
无
close
int close (int fp);
关闭文件
关闭成功返回0;
不成功,返回-1
非ANSI标准
creat
int creat (char *filename, int mode);
以mode所指定的方式建立文件
成功则返回正数,否则返回-1
非ANSI标准
eof
int eof (int fd);
检查文件是否结束
遇文件结束返回1;否则返回0
非ANSI标准
fclose
int close (FILE *fp);
关闭fp所指的文件,释放文件缓冲区
有错则返回非0;
否则返回0
feof
int feof (FILE *fp);
检查文件是否结束
遇文件结束符返回非0值;否则返回0
fgetc
int fgetc (FILE *fp);
从fp所指定的文件中取得下一个字符
返回都取得的字符,若读入出错,返回EOF
fgets
char *fgets(char *buf, int n,FILE *fp);
从fp指向的文件读取一个长度为(n-1)的字符串,存入起始地址为buf的空间
返回地址buf;若遇文件结束或出错,返回NULL
fopen
FILE *fopen(char *filename, char *mode);
以mode指定的方式打开名为filename的文件
成功,返回一个文件指针(文件信息区的起始地址);否则返回0
fprintf
int fprintf (FILE *fp,char format,args,…);
把args的值以format指定的格式输出到fp所指定的文件中
实际输出的字符数
fputc
int fputc (char *str, FILE *fp);
将字符ch输出到fp指向的文件中
成功,则返回该字符;否则返回非0
fputs
int fputs (char *str, FILE *fp);
将str指向的字符串输出到fp所指定的文件
成功返回0;若出错返回非0
fread
int fread(char *pt,unsigned size,unsigned n,FILE *fp);
从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区
返回所读的数据项个数,如遇文件结束或出错返回0
fscanf
int fscanf(FILE *fp,char format,args,…);
从fp指定的文件中按format给定的格式将输入数据送到args所指向的内存单元(args是指针)
已输入的数据个数
fseek
int fseek(FILE *fp,long offset,int base);
将fp所指向的文件的位置指针移到以base所给出的位置为基准、以offset为位移量的位置
返回当前位置;否则,返回-1
ftell
long ftell(FILE *fp);
返回fp所指向的文件中的读写位置
返回fp所指向的文件中的读写位置
fwrite
int fwrite(char *ptr,unsigned size,unsigned n,FILE *fp);
把ptr所指向的n*size个字节输出到fp所指向的文件中
写的fp文件中的数据项个数
getc
int getc(FILE *fp);
从fp所指向的文件中读入一个字符
返回所读的字符,若文件结束或出错,返回EOF
getchar
int getchar(void);
从标准输入设备读取下一个字符
所读字符。若文件结束或出错,则返回-1
getw
int getw (FILE *fp);
从fp所指向的文件读取下一个字(整数)
输入的整数。如文件结束或出错,返回-1
非ANSI标准函数
open
int open (char *filename, int mode);
以mode指出的方式打开已存在的名为filename的文件
返回文件号(正数);如打开失败,返回-1
非ANSI标准函数
printf
int printf (char *format, args,…);
以format指向的格式字符串所规定的格式,将输出表列args的值输出到标准输出设备
输出字符的个数,若出错,返回负数
format可以是一个字符串,或字符串数组的起始地址
putc
int putc (int ch, FILE *fp);
把一个字符ch输出到fp所指的文件中
输出的字符ch,若出错,返回EOF
putchar
int putchar (char ch);
把字符ch输出到标准输出设备
输出的字符ch,若出错,返回EOF
puts
int puts (char *str);
把str指向的字符串输出到标准输出设备,将'\0'转换为回车换行
返回换行符,若失败,返回EOF
putw
int putw (int w, FILE *fp);
将一个整数w(即一个字)写到fp指向的文件中
返回输出的整数,若出错,返回EOF
非ANSI标准函数
read
int read (int fd, char *buf,unsigned count);
从文件号fp所指示的文件中读count个字节到由buf指示的缓冲区中
返回真正读入的字节个数,如遇文件结束返回0,出错返回-1
非ANSI标准函数
rename
int rename (char *oldname, char *newname);
把由oldname所指的文件名,改为由newname所指的文件名
成功返回0;出错返回-1
rewind
void rewind (FILE *fp);
将fp指示的文件中的位置指针置于文件开头位置,并清除文件结束标志和错误标志
无
scanf
int scanf (char *format, args,…);
从标准输入设备按format指向的格式字符串所规定的格式,输入数据给args所指向的单元
读入并赋给args的个数,遇文件结束返回EOF,出错返回0
args为指针
write
int write (int fd, char *buf,unsigned count);
从buf指示的缓冲区输出count个字符到fd所标志的文件中
返回实际输出的字节数,如出错返回-1
非ANSI标准函数
4. 动态存储分配函数
ANSI标准建议设4个有关的动态存储分配的函数,即calloc( )、malloc( )、free( )、realloc( )。实际上,许多C编译系统实现时,往往增加了一些其他函数。ANSI标准建议在“stdlib.h”头文件中包含有关的信息,但许多C编译系统要求用“malloc.h”而不是“stdlib.h”。读者在使用时应查阅有关手册。
ANSI标准要求动态分配系统返回void指针。void指针具有一般性,它们可以指向任何类型的数据。但目前有的C编译所提供的这类函数返回char指针。无论以上两种情况的哪一种,都需要用强制类型转换的方法把void或char指针转换成所需的类型。
函数名
函数原型
功能
返回值
calloc
void *calloc (unsigned n,unsign size);
分配n个数据项的内存连续空间,每个数据项的大小为size
分配内存单元的起始地址,如不成功,返回0
free
void free (void *p);
释放p所指的内存区
无
malloc
void *malloc (unsigned size);
分配size字节的存储区
所分配的内存区起始地址,如内存不够,返回0
realloc
void *realloc (void *p, unsigned size);
将p所指出的已分配内存区的大小改为size,size可以比原来分配的空间大或小
返回指向该内存区的指针
展开阅读全文