附录A 基本ASCII码表
字符 | 十进制码 | 八进制码 | 十六进制码 |
---|---|---|---|
SP(空格) | 32 | 40 | 20 |
! | 33 | 41 | 21 |
" | 34 | 42 | 22 |
# | 35 | 43 | 23 |
$ | 36 | 44 | 24 |
% | 37 | 45 | 25 |
& | 38 | 46 | 26 |
' | 39 | 47 | 27 |
( | 40 | 50 | 28 |
) | 41 | 51 | 29 |
* | 42 | 52 | 2A |
+ | 43 | 53 | 2B |
, | 44 | 54 | 2C |
- | 45 | 55 | 2D |
. | 46 | 56 | 2E |
/ | 47 | 57 | 2F |
0 | 48 | 60 | 30 |
1 | 49 | 61 | 31 |
2 | 50 | 62 | 32 |
3 | 51 | 63 | 33 |
4 | 52 | 64 | 34 |
5 | 53 | 65 | 35 |
6 | 54 | 66 | 36 |
7 | 55 | 67 | 37 |
8 | 56 | 70 | 38 |
9 | 57 | 71 | 39 |
: | 58 | 72 | 3A |
; | 59 | 73 | 3B |
< | 60 | 74 | 3C |
= | 61 | 75 | 3D |
> | 62 | 76 | 3E |
? | 63 | 77 | 3F |
@ | 64 | 100 | 40 |
A | 65 | 101 | 41 |
B | 66 | 102 | 42 |
C | 67 | 103 | 43 |
D | 68 | 104 | 44 |
E | 69 | 105 | 45 |
F | 70 | 106 | 46 |
G | 71 | 107 | 47 |
H | 72 | 110 | 48 |
I | 73 | 111 | 49 |
J | 74 | 112 | 4A |
K | 75 | 113 | 4B |
L | 76 | 114 | 4C |
M | 77 | 115 | 4D |
N | 78 | 116 | 4E |
O | 79 | 117 | 4F |
P | 80 | 120 | 50 |
Q | 81 | 121 | 51 |
R | 82 | 122 | 52 |
S | 83 | 123 | 53 |
T | 84 | 124 | 54 |
U | 85 | 125 | 55 |
V | 86 | 126 | 56 |
W | 87 | 127 | 57 |
X | 88 | 130 | 58 |
Y | 89 | 131 | 59 |
Z | 90 | 132 | 5A |
] | 91 | 133 | 5B |
\ | 92 | 134 | 5C |
[ | 93 | 135 | 5D |
^ | 94 | 136 | 5E |
_ | 95 | 137 | 5F |
` | 96 | 140 | 60 |
a | 97 | 141 | 61 |
b | 98 | 142 | 62 |
c | 99 | 143 | 63 |
d | 100 | 144 | 64 |
e | 101 | 145 | 65 |
f | 102 | 146 | 66 |
g | 103 | 147 | 67 |
h | 104 | 150 | 68 |
i | 105 | 151 | 69 |
j | 106 | 152 | 6A |
k | 107 | 153 | 6B |
l | 108 | 154 | 6C |
m | 109 | 155 | 6D |
n | 110 | 156 | 6E |
o | 111 | 157 | 6F |
p | 112 | 160 | 70 |
q | 113 | 161 | 71 |
r | 114 | 162 | 72 |
s | 115 | 163 | 73 |
t | 116 | 164 | 74 |
u | 117 | 165 | 75 |
v | 118 | 166 | 76 |
w | 119 | 167 | 77 |
x | 120 | 170 | 78 |
y | 121 | 171 | 79 |
z | 122 | 172 | 7A |
{ | 123 | 173 | 7B |
| | 124 | 174 | 7V |
} | 125 | 175 | 7D |
~ | 126 | 176 | 7E |
附录B C语言常用库函数
1.数学函数(要求包含头文件<math.h>)
函数名 | 函数与形参类型 | 功能 |
---|---|---|
acos | double acos(double x) | 计算并返回arccos(x)值,要求-1≤x≤1 |
asin | double asin(double x) | 计算并返回arcsin(x)值,要求-1≤x≤1 |
atan | double atan(double x) | 计算并返回arctan(x)值 |
atan2 | double atan2(double x,double y) | 计算并返回arctan(x/y)值 |
cos | double cos(double x) | 计算并返回cos(x)值,x的单位为弧度 |
cosh | double cosh(double x) | 计算并返回双曲余弦cosh(x)值 |
exp | double exp(double n) | 计算并返回eⁿ值 |
fabs | double fabs(double x) | 计算并返回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表示成以2为底的指数形式,即val=p×2ⁿ。其中0.5≤p<1,p作为函数值返回;n存放在eptr指向的整型变量中 |
log | double log(double x) | 计算并返回自然对数值㏑(x),要求x>0 |
log10 | double log10(double x) | 计算并返回常用对数值㏒10(x),要求x>0 |
modf | double modf(double val,int *iptr) | 将双精度数分解为整数部分和小数部分。小数部分作为函数值返回;整数部分存放在iptr指向的双精度型变量中 |
pow | double pow(double x,double n) | 计算并返回xⁿ值 |
sin | double sin(double x) | 计算并返回sin(x)值,x的单位为弧度 |
sinh | double sinh(double x) | 计算并返回x的双曲正弦值sinh(x) |
sqrt | double sqrt(double x) | 计算并返回√x值,要求x≥0 |
tan | double tan(double x) | 计算并返回正切值tan(x),x的单位为弧度 |
tanh | double tanh(double x) | 计算并返回x的双曲正切值tanh(x) |
2.输入输出函数(要求包含头文件<stdio.h>)
函数名 | 函数与形参类型 | 功能 |
---|---|---|
clearerr | void clearerr(FILE *fp) | 清除文件指针错误 |
close | int close(FILE *fp) | 关闭fp指向的文件。若成功,则返回0;否则返回-1 |
creat | int creat(char *filename,int mode) | 以mode指定的方式建立名为filename的文件。若成功,则返回一个正数;否则返回-1 |
eof | int eof(int fd) | 检查文件是否结束。遇文件结束则返回1;否则返回0 |
fclose | int fclose(FILE *fp) | 关闭fp所指的文件,释放缓冲器。若成功则返回非0;否则返回0 |
feof | int feof(FILE *fp) | 检查fp所指文件是否结束。遇文件结束则返回1;否则返回0 |
fflush | int fflush(FILE *fp) | 清空文件的输入输出缓冲区流,使输出流立刻写到文件中,出错返回-1 |
fgetc | int fgetc(FILE *fp) | 从fp所指的文件中取得下一个字符。返回取得的字符;若出错则返回EOF |
fgets | int fclose(char *buf,int n,FILE *fp) | 从fp所指的文件中读取长度为(n-1)的字符串,存入起始地址为buf的空间。返回地址buf;若遇文件结束或出错,返回NULL |
fopen | FILE *fopen(char *filename, char *mode) | 以mode指定的方式打开名为filename的文件。若成功,则返回一个文件指针(即文件信息区的起始地址);否则返回0 |
fprintf | int fprint(FILE *fp,char *format,args···)(args为表达式) | 把args的值以format指定的格式输出到fp所指定的文件中。返回输出的字符串 |
fputc | int fputc(char ch,FILE *fp) | 把字符ch输出到fp所指定的文件中。若成功则返回该字符;否则返回EOF |
fputs | int puts(char *str,FILE *fp) | 把str所指定的字符串输出到fp所指定的文件中。若成功则返回0;否则返回非0 |
fread | int fread(char *ptr,unsigned int size,unsigned int n,FILE *fp) | 从fp指定的文件中读取长度为size的n个数据项,存到ptr指向的内存区。返回读取的数据项个数;若遇文件结束或出错返回0 |
fscanf | int fscanf(FILE *fp,char format ,args,···)(args为指针) | 从fp指定的文件中按format指定的格式将输入数据送到args所指定的内存区。返回输入的数据个数 |
fseek | int fseek(FILE *fp,long offset, int base) | 将fp指向文件的位置指针移到以base所指出的位置为基准,以offset为位移量的位置。若成功则返回当前位置;否则返回-1 |
ftell | long ftell(FILE *fp) | 返回fp所指向的文件中的读写位置 |
fwrite | int fwrite(char *ptr,unsigned int size,unsigned int n,FILE *fp) | 把ptr所指向的n*size字节输出到fp所指向的文件中。返回写到文件中的数据项个数 |
getc | int getc(FILE *fp) | 从fp所指向的文件中读取一个字符。若成功则返回所读取的字符;若文件结束或出错则返回EOF |
getchar | int getchar() | 从标准输入设备读取下一个字符。若成功则返回所读取的字符;若文件结束或出错则返回-1 |
gets | char *gets(char *str) | 从标准输入设备读取字符串,存入由str指向的字符串数组中 |
getw | int getw(FILE *fp) | 从fp所指向的文件中读取下一个字。若成功则返回所读取的字(整数);若文件结束或出错则返回-1 |
open | int open(char *filename,int mode) | 以mode指定的方式打开已存在的名为filename的文件。若成功则返回文件号;否则返回-1 |
printf | int printf(char*format,args,···) (args为表达式) | 将输出列表args的值输出到标准输出设备。返回输出字符串的个数;若出错则返回负数 |
putc | int putc(char 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 |
read | int read(int fd,char *buf; unsigned int count | 从文件号fd所指示的文件中读取count字节到由buf指示的缓冲区中。返回真正读取的字节数;若遇文件结束则返回0;若出错则返回-1 |
rename | int rename(char *oldname,char *newname) | 把由oldname所指的文件名改为由newname所指的文件名。若成功则返回0;否则返回-1 |
rewind | void rewind(FILE *fp) | 将fp所指的文件中的位置指针置于文件开头位置,并清除文件结束标志和错误标志 |
scanf | int scanf(char *format,args,···)(args为指针) | 从标准输入设备按format指向的格式字符串规定的格式,输入数据给args所指向的存储单元。返回读入并赋给args的数据个数,若遇文件结束则返回EOF;若出错则返回0 |
write | int write(int fd,char *buf,unsigned int count) | 从buf指示的缓冲区输出count个字符到fd所指出的文件中。返回实际输出的字符数;若出错则返回-1 |
3.字符函数与字符串函数(要求包含头文件<string.h>)
函数名 | 函数与形参类型 | 功能 |
---|---|---|
isalnum | int isalum(ch) int ch; | 检查ch是否是字母或数字。若是则返回1;否则返回0 |
isalpha | int isalpha(ch) int ch; | 检查ch是否是字母。若是则返回1;否则返回0 |
iscntrl | int iscntrl(ch) int ch; | 检查ch是否是控制字符(其ASCII码在0和0x1F之间)。若是则返回1;否则返回0 |
isdigit | int isdigit(ch) int ch; | 检查ch是否是数字。若是则返回1;否则返回0 |
isgraph | int isgraph(ch) int ch; | 检查ch是否是可打印字符(其ASCII码在0x21和0x7E之间)。若是则返回1;否则返回0 |
islower | int islower(ch) int ch; | 检查ch是否是小写字母(a~z)。若是则返回1;否则返回0 |
isprint | int isprint(ch) int ch; | 检查ch是否是可打印字符(包括空格,其ASCII码在0x20和0x7E之间)。若是则返回1;否则返回0 |
ispunct | int ispunct(ch) int ch; | 检查ch是否是标点字符(不包括空格)。若是则返回1;否则返回0 |
isspace | int isspace(ch) int ch; | 检查ch是否是空格、跳格符(即制表符)或换行符。若是则返回1;否则返回0 |
isupper | int isupper(ch) int ch; | 检查ch是否是大写字母(A~Z)。若是则返回1;否则返回0 |
isxdigit | int isxdigit(ch) int ch; | 检查ch是否是一个十六进制数字字符(即0~9或A~F或a~f)。若是则返回1;否则返回0 |
strcat | char *strcat(str1,str2) shar *str1,str2; | 把字符串str2接到str1的后面,原str1最后的'\0'被取消。返回指向str1的指针 |
strchr | char *strchr(str,ch) char *str; int ch; | 在str指向的字符串中找出第一次出现字符ch的位置。返回指向该位置的指针;若找不到则返回空指针 |
strcmp | int strcmp(char *str1,char *str2) | 比较两个字符串:若str<str2则返回负数;若str=str2则返回0;若str>str2则返回正数; |
strcpy | int *strcpy(char *str1,char *str2) | 把str2指向的字符串复制到str1中。返回str1的指针 |
strlen | unsigned int strlen(str) char *str; | 统计字符串str中字符的个数(不包括终止符'\0')。返回字符个数 |
strncpy | char *strncpy(char *str1,char *str2,int n) | 把str2指向的字符串的前n个字符复制到str1中。返回str1的指针 |
strstr | char *strstr(char *str1,char *str2) | 找出字符串str2在字符串str1中第一次出现的位置(不包括str2的终止符)。返回指向该位置的指针;若找不到则返回空指针 |
tolower | int tolower(char ch) | 将字符ch转换为小写字母。返回ch所代表的小写字母 |
toupper | int toupper(char ch) | 将字符ch转换为大写字母。返回ch所代表的大写字母 |
4.动态分配存储空间函数(要求包含头文件<stdlib.h>)
函数名 | 函数与形参类型 | 功能 |
calloc | void * calloc(unsigned int n,unsigned int size) | 分配n个数据项的内存连续空间,每个数据项的大小为size。返回分配内存空间的起始地址;若分配失败,则返回0 |
free | void free(char *p) | 释放p所指的内存区 |
malloc | void *malloc(unsigned int size) | 分配size字节的存储区。返回分配内存空间的起始地址;若分配失败,则返回0 |
realloc | void(或char) *realloc(char *p,unsigned int size) | 将p所指出的已分配内存区的大小改为size。size可以比原来分配的空间大或小。返回指向该内存区的指针 |