2024年1月5日发(作者:7年级测试卷数学试卷)
c语言函数库
第一章(C标准库)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
1.
void assert (int 表达式)
assert宏用于为程序增加诊断功能,它可以测试一个条件并可能使程序终止。在执行语句:
assert(表达式);
时,如果表达式为0,则在终端显示一条信息:
Assertion failed: 0, file 源文件名, line 行号
Abnormal program termination
然后调用abort终止程序的执行。
在
2.
在头文件
函数定义
int isalnum(int c)
int isalpha(int c)
int isascii(int c)
int iscntrl(int c)
int isdigit(int c)
int isgraph(int c)
int islower(int c)
int isprint(int c)
int ispunct(int c)
int isspace(int c)
int isupper(int c)
int isxdigit(int c)
int toupper(int c)
int tolower(int c)
函数功能简介
检查字符是否是字母或数字
检查字符是否是字母
检查字符是否是ASCII码
检查字符是否是控制字符
检查字符是否是数字字符
检查字符是否是可打印字符
检查字符是否是小写字母
检查字符是否是可打印字符
检查字符是否是标点字符
检查字符是否是空格符
检查字符是否是大写字母
检查字符是否是十六进制数字字符
将小写字母转换为大写字母
将大写字母转换为小写字母
有关
3.
1、 EDOM
它表示数学领域错误的错误代码。
2、 ERANGE
它表示结果超出范围的错误代码。
3、 errno
这是一个变量,该值被设置成用来指出系统调用的错误类型。
4.
在头文件
字符常量
CHAR_BIT
CHAR_MAX
CHAR_MIN
INT_MIN
INT_MAX
LONG_MAX
LONG_MIN
SCHAR_MAX
SCHAR_MIN
SHRT_MAX
SHRT_MIN
UCHAR_MAX
UINT_MAX
ULONG_MAX
USHRT_MAX
取值
8
255或127
0或-127
-32767
32767
2147483647
-2147483647
127
-127
32767
-32767
255
65535
4294967295
65535
含义
char类型的位数
char类型最大值
char类型最小值
int类型最小值
int类型最大值
long类型最大值
long类型最小值
signed char 类型最大值
signed char 类型最小值
short类型的最大值
short类型的最小值
unsigned char 类型最大值
unsigned int 类型最大值
unsigned long 类型最大值
unsigned short类型的最大值
5.
在
1、常量的定义
LC_ALL:传递给setlocale的第一个参数,指定要更改该locale的哪个方面。
LC_COLLATE:strcoll和strxfrm的行为。
LC_CTYPE:字符处理函数。
LC_MONETARY:localeconv返回的货币信息。
LC_NUMERIC:localeconv返回的小数点和货币信息。
LC_TIME:strftime的行为。
以上扩展成具有唯一取值的整型常数表达式,可作为setlocale的第一个参数。
NULL:由实现环境定义的空指针。
2、struct lconv结构
该结构用于存储和表示当前locale的设置。其结构定义如下:
struct lconv
{
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
};
3、函数
struct Iconv *localeconv(void);
函数localeconv将一个struct Iconv类型的对象的数据成员设置成为按照当前地域环境的有关规则进行数量格式化后的相应值。
char *setlocale(int category,char * locale);
函数setlocale用于更改和查询程序的整个当前地域环境或部分设置。地域环境变量由参数category(上面定义的6个常量)和locale指定。
6.
在
函数定义
double exp(double x);
double log(double x)
double log10(double x);
double pow(double x, double y);
double sqrt(double x);
double ceil(double x);
double floor(double x);
double fabs(double x);
double ldexp(double x, int n);
double frexp(double x, int* exp);
double modf(double x, double* ip);
double fmod(double x, double y);
double sin(double x);
double cos(double x);
double tan(double x);
double asin(double x);
double acos(double x);
函数功能简介
指数运算函数, 求e的x次幂函数
对数函数ln(x)
对数函数log
指数函数(x的y次方)
计算平方根函数
向上舍入函数
向下舍入函数
求浮点数的绝对值
装载浮点数函数
分解浮点数函数
分解双精度数函数
求模函数
计算x的正弦值函数
计算x的余弦值函数
计算x的正切值函数
计算x的反正弦函数
计算x的反余弦函数
double atan(double x);
double atan2(double y, double x);
double sinh(double x);
double cosh(double x);
double tanh(double x);
反正切函数1
反正切函数2
计算x的双曲正弦值
计算x的双曲余弦值
计算x的双曲正切值
在标准库中,还有一些与数学计算有关的函数定义在其他头文件中。
7.
在头文件
int setjmp(jmp_buf env); /*设置调转点*/
和
longjmp(jmp_buf jmpb, int retval); /*跳转*/
宏setjmp的功能是将当前程序的状态保存在结构env ,为调用宏longjmp设置一个跳转点。setjmp将当前信息保存在env中供longjmp使用。其中env是jmp_buf结构类型的,该结构定义为:
typedef struct {
unsigned j_sp;
unsigned j_ss;
unsigned j_flag;
unsigned j_cs;
unsigned j_ip;
unsigned j_bp;
unsigned j_di;
unsigned j_es;
unsigned j_si;
unsigned j_ds;
} jmp_buf[1];
直接调用setjmp时,返回值为0,这一般用于初始化(设置跳转点时)。以后再调用longjmp宏时用env变量进行跳转。程序会自动跳转到setjmp宏的返回语句处,此时setjmp的返回值为非0,由longjmp的第二个参数指定。
下面通过例子来理解
例程9-1 非局部跳转演示。
#include
jmp_buf env; /*定义jmp_buf类型变量*/
int main(void)
{
int value;
value = setjmp(env); /*调用setjmp,为longjmp设置跳转点*/
if (value != 0)
{
printf(\"Longjmp with value %dn\", value);
exit(value); /*退出程序*/
}
printf(\"Jump ... n\");
longjmp(env,1); /*跳转到setjmp语句处*/
return 0;
}
本例程先应用setjmp宏为longjmp设置跳转点,当第一次调用setjmp时返回值为0,并将程序的当前状态(寄存器的相关状态)保存在结构变量env中。当程序执行到longjmp时,系统会根据setjmp保存下来的状态env跳转到setjmp语句处,并根据longjmp的第二个参数设置此时setjmp的返回值。
本例程的运行结果为:
Jump ...
Longjmp with value 1
一般地,宏setjmp和longjmp是成对使用的,这样程序流程可以从一个深层嵌套的函数中返回。
8.
头文件
在
int signal(int sig, sigfun fname);
和
int raise(int sig);
signal函数的作用是设置某一信号的对应动作。其中参数sig用来指定哪一个信号被设置处理函数。在标准C 中支持的信号如下表。
标准C支持的信号
取值
SIGABRT
SIGPPE
SIGILL
SIGINT
SIGSEGV
SIGTERM
说明
异常中止
算术运算错误
非法硬件指令
终端中断
无效的内存访问
中止信号
默认执行动作
中止程序
中止程序
中止程序
中止程序
中止程序
中止程序
使用的操作系统
UNIX DOS
UNIX DOS
UNIX DOS
UNIX DOS
UNIX DOS
UNIX DOS
参数fname是一个指向函数的指针,当sig的信号发生时程序会自动中断转而执行fname指向的函数。执行完毕再返回断点继续执行程序。系统提供了两个常量函数指针,可以作为函数的参数传递。它们分别是:
SIG_DEF:执行默认的系统第一的函数。
SIG_IGN:忽略此信号。
raise函数的作用是向正在执行的程序发送一个信号,从而使得当前进程产生一个中断而转向信号处理函数signal执行。其中参数sig为信号名称,它的取值范围同函数signal中的参数sig取值范围相同,见表9-6。
下面通过例子理解函数signal和raise。
例程9-2 signall和raise函数演示
#include
#include
void Print1();
void Print2();
int main()
{ signal(SIGINT,Print1);
printf(\"Please enter Ctr+c for interuptn\") ;
getchar();
signal(SIGSEGV,Print2);
printf(\"Please enter any key for a interuptn\");
getchar();
raise(SIGSEGV);
}
void Print1()
{
printf(\"This is a SIGINT interupt!n\");
}
void Print2()
{
printf(\"This is a SIGSEGV interupt!n\");
}
本例程首先通过用户终端输入Ctrl+c产生一个终端中断,然后应用signal函数调用中断处理函数Print1;再通过raise函数生成一个无效内存访问中断,并通过signal函数调用中断处理函数Print2。
本例程的运行结果为:
Please enter Ctr+c for interupt
^C
This is a SIGINT interupt!
Please enter any key for a interupt
a
This is a SIGSEGV interupt!
9.
可变参数表
1、va_list
用于保存宏va_start,va_arg以及va_end所需信息的数据类型。
2、
void va_start(va_list ap, parmN);
type va_arg(va_list ap,type);
void va_end (va_list ap);
va_start的作用是初始化ap,因此va_start要在所有其它的va_开头的宏前面最先使用(除了用va_list定义变量外),后面的va_copy, va_arg, va_end都要使用到ap。在一对va_start和va_end之间不能再次使用va_start宏。其中,parmN 为\"...\"之前的最后一个参数。例如, printf函数定义为:printf(const char *format, ...); 那么在printf函数中的va_start使用之后, parmN
的值就等于*format。
va_arg的作用就是返回参数列表ap中的下一个具有type类型的参数, 每次调用va_arg都会修改ap的值, 这样才能连续不断地获取下一个type类型的参数。
va_end与va_start构成了一个scope,va_end标志着结束,va_end之后ap就无效了。
10.
在头文件
1、NULL
空指针类型常量。
2、offset(type,member-designator)
它是扩展iz-t类型的一个整型常数表达式。它的值为从type定义的结构类型的开头到结构成员member-designator的偏移字节数。
3、ptrdiff_t
表示两指针之差的带符号整数类型。
4、size_t
表示由sizeof运算符计算出的结果类型,它是一个无符号整数类型。
5、wchar_t
它是一种整数类型,取值范围为在被支持的地域环境中最大扩展字符集的所有字符的各种代码,空字符代码值为0。
11.
在头文件
下面给出头文件
函数定义
FILE *fopen(char *filename, char *type)
FILE *fropen(char *filename, char *type,FILE *fp)
int fflush(FILE *stream)
int fclose(FILE *stream)
int remove(char *filename)
int rename(char *oldname, char *newname)
FILE *tmpfile(void)
char *tmpnam(char *sptr)
int setvbuf(FILE *stream, char *buf, int type, unsigned
size)
int printf(char *)
int fprintf(FILE *stream, char *format[, argument,...])
int scanf(char *format[,argument,...])
int fscanf(FILE *stream, char *format[,])
int fgetc(FILE *stream)
函数功能简介
打开一个文件
打开一个文件,并将该文件关联到fp指定的流
清除一个流
关闭一个文件
删除一个文件
重命名文件
以二进制方式打开暂存文件
创建一个唯一的文件名
把缓冲区与流相关
产生格式化输出的函数
传送格式化输出到一个流中
执行格式化输入
从一个流中执行格式化输入
从流中读取字符
char *fgets(char *string, int n, FILE *stream)
int fputc(int ch, FILE *stream)
int fputs(char *string, FILE *stream)
int getc(FILE *stream)
int getchar(void)
char *gets(char *string)
int putchar(int ch)
int puts(char *string)
int ungetc(char c, FILE *stream)
int fread(void *ptr, int size, int nitems, FILE *stream)
int fwrite(void *ptr, int size, int nitems, FILE *stream)
int fseek(FILE *stream, long offset, int fromwhere)
long ftell(FILE *stream)
int rewind(FILE *stream)
int fgetpos(FILE *stream)
int fsetpos(FILE *stream, const fpos_t *pos)
void clearerr(FILE *stream)
int feof(FILE *stream)
int ferror(FILE *stream)
void perror(char *string)
从流中读取一字符串
送一个字符到一个流中
送一个字符到一个流中
从流中取字符
从stdin流中读字符
从流中取一字符串
在stdout上输出字符
送一字符串到流中
把一个字符退回到输入流中
从一个流中读数据
写内容到流中
重定位流上的文件指针
返回当前文件指针
将文件指针重新指向一个流的开头
取得当前文件的句柄
定位流上的文件指针
复位错误标志
检测流上的文件结束符
检测流上的错误
系统错误信息
在头文件
12.
在头文件
函数定义
double atof(const char *s)
int atoi(const char *s)
long atol(const char *s)
double strtod (const char*s,char **endp)
long strtol(const char*s,char **endp,int base)
unsinged long strtol(const char*s,char **endp,int
base)
int rand(void)
void srand(unsigned int seed)
void *calloc(size_t nelem, size_t elsize)
void *malloc(unsigned size)
void *realloc(void *ptr, unsigned newsize)
void free(void *ptr)
void abort(void)
void exit(int status)
int atexit(atexit_t func)
char *getenv(char *envvar)
void *bsearch(const void *key, const void *base,
size_t *nelem, size_t width, int(*fcmp)(const void *,
const *))
void qsort(void *base, int nelem, int width, int
(*fcmp)())
函数功能简介
将字符串s转换为double类型
将字符串s转换为int类型
将字符串s转换为long类型
将字符串s前缀转换为double型
将字符串s前缀转换为long型
将字符串s前缀转换为unsinged long型
产生一个0~RAND_MAX之间的伪随机数
初始化随机数发生器
分配主存储器
内存分配函数
重新分配主存
释放已分配的块
异常终止一个进程
终止应用程序
注册终止函数
从环境中取字符串
二分法搜索函数
使用快速排序例程进行排序
int abs(int i)
long labs(long n)
div_t div(int number, int denom)
ldiv_t ldiv(long lnumer, long ldenom)
求整数的绝对值
取长整型绝对值
将两个整数相除, 返回商和余数
两个长整型数相除, 返回商和余数
有关上面列出的这些标准实用函数的功能、用法、例程等。
13.
在头文件
struct
int
int
int
int
int
int
int
int
int
};
tm {
tm_sec; /*从当前分钟开始经过的秒数(0,61)*/
tm_min; /*从当前小时开始经过的分钟数(0,59)*/
tm_hour; /*从午夜开始经过的小时数(0,23)*/
tm_mday; /*当月的天数(1,31)*/
tm_mon; /*从1月起经过的月数(0,11)*/
tm_year; /*从1900年起经过的年数*/
tm_wday; /*从本周星期天开始经过的天数(0,6)*/
tm_yday; /*从今年1月1日起经过的天数(0,356)*/
tm_isdst; /*夏令时标记*/
如果夏令时有效,夏令时标记tm_isdst值为正;若夏令时无效,tm_isdst值为0;如果得不到夏令时信息,tm_isdst值为负。
下面给出头文件
函数定义
clock_t clock(void)
time_t time(time_t *tp)
double difftime(time_t time2, time_t time1)
time_t mktime(struct tm *tp)
char *asctime(const struct tm *tblock)
char *ctime(const time_t *time)
struct tm *gmtime(const time_t *timer)
struct tm *localtime(const time_t *timer)
函数功能简介
确定处理器时间函数
返回当前日历时间
计算两个时刻之间的时间差
将分段时间值转换为日历时间值
转换日期和时间为ASCII码
把日期和时间转换为字符串
把日期和时间转换为格林尼治标准时间(GMT)
把日期和时间转变为结构
size_t strftime(char *s,size_t smax,const char *fmt,
根据fmt的格式要求将*tp中的日期与时间转const struct tm *tp)
换为指定格式。
更多推荐
函数,字符,定义,类型,程序,文件,参数
发布评论