《C语言程序设计课程设计(小结版).docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计(小结版).docx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计课程小结要求一、小结内容1.关键字小结: 表格形式列出所有32个关键字,简要说明其作用(1面)。auto 声明自动变量,缺省时编译器一般默认为autoint 声明整型变量double 声明双精度变量long 声明长整型变量char 声明字符型变量float 声明浮点型变量short 声明短整型变量signed 声明有符号类型变量unsigned 声明无符号类型变量struct 声明结构体变量union 声明联合数据类型enum 声明枚举类型static 声明静态变量switch 用于开关语句case 开关语句分支default 开关语句中的“其他”分支break 跳出当前循环re
2、gister 声明寄存器变量const 声明只读变量volatile 说明变量在程序执行中可被隐含地改变typedef 用以给数据类型取别名(当然还有其他作用)extern 声明变量是在其他文件正声明(也可以看做是引用变量)return 子程序返回语句(可以带参数,也可不带参数)void 声明函数无返回值或无参数,声明空类型指针continue 结束当前循环,开始下一轮循环do 循环语句的循环体while 循环语句的循环条件if 条件语句else 条件语句否定分支(与 if 连用)for 一种循环语句(可意会不可言传)goto 无条件跳转语句sizeof 计算对象所占内存空间大小2.运算符小结
3、:表格形式列出所有45个运算符的符号、名称、优先级、结合性、运算目数(1面)。优先级运算符名称或含义结合方向运算目数1 数组下标左到右 ()圆括号.成员选择(对象)-成员选择(指针)2-负号运算符右到左单目运算符(类型)强制类型转换+自增运算符-自减运算符*取址运算符&取地址运算符!逻辑非运算符按位取反运算符sizeof长度运算符3/除左到右双目运算符*乘%余数(取模)4+加左到右-减5右移6大于左到右=大于等于小于=小于等于7= 等于左到右!= 不等于8& 按位与左到右9 按位异或左到右10| 按位或左到右11& 逻辑与左到右12| 逻辑或左到右13? : 条件运算符右到左三目运算符 14=
4、赋值运算符右到左双目运算符/=除后赋值*=乘后赋值%=取模后赋值+=加后赋值-=减后赋值=右移后赋值&=按位与后赋值=按位异或后赋值|=按位或后赋值15,逗号运算符左到右3.数据类型小结:表格形式列出11个基本类型的说明符、字节数、范围(1面)。说明符字节数范围char1-128127signed char1-128127unsigned char10255signed short2-3276832767unsigned short2065535signed int4-21474836482147483647signed long4-21474836482147483647unsigned l
5、ong404294967295float4-3.4E-383.4E+38double81.7E-3081.7E+308long double81.7E-3081.7E+3084.预处理命令小结:列出11个预处理命令,并简要说明其作用(1面)。#define: 定义宏#undef: 取消已定义的宏#include: 包含一个源代码文件#if: 如果给定条件为真,则编译下面代码#ifdef: 如果宏已经定义,则编译下面代码#ifndef: 如果宏没有定义,则编译下面代码#else:建立另一个选择(在#if失败的情况下)#elif: 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码#en
6、dif: 结束一个#if#else条件编译块Defined: 在#if 和#elif表达式中,常常是用defined运算符来检查是否定义了预处理器标识符5.标准函数小结:按头文件(15个)列出每个头文件中的函数(146)、宏(86)、类型(18)、变量(1),共251个(25面),要求给出函数原型声明、作用、成功返回和失败返回的值。头文件函数原型声明、宏定义作用返回的值assert.hvoid assert(int expression)测试一个条件并可能使程序终止无ctype.hint iscntrl(int c)测试控制字符如果c是控制字符,返回非零值;否则返回零int isprint(i
7、nt c)测试显示字符如果c是显示字符(包括空格),返回非零值;否则返回零int isgraph(int c)测试图形字符如果c是显示字符(除了空格),返回非零值;否则返回零int isalnum(int c)测试是字母或数字如果isalnum是字母或数字,返回非零值;否则返回零。(如果isalph(c)或isdigit(c)为真,则c是字母或数字。)int isalpha(int c)测试字母如果isalnum是字母,返回非零值;否则返回零。(如果islower(c)或isupper(c)为真,则c是字母。)int isupper(int c)测试大写字母如果c是大写字母,返回非零值;否则返
8、回零int islower(int c)测试小写字母如果c是小写字母,返回非零值;否则返回零int isdigit(int c)测试数字如果c是数字,返回非零值;否则返回零int isxdigit(int c)测试十六进制数字如果c是十六进制数字(0-9、a-f、A-F),返回非零值;否则返回零int ispunct(int c)测试标点字符如果c是标点符号字符,返回非零值;否则返回零。除了空格、字母和数字字符以外,所有显示字符都可以看成是标点符号int isspace(int c)测试空白字符如果c是空白字符,返回非零值;否则返回零。空白字符有空格( )、换页符(f)、换行符(n)、回车符(
9、r),横向制表符(t)和纵向制表符(v)int tolower(int c)转换成小写字母如果c是大写字母,则返回相应的小写字母。如果c不是大写字母,则返回无变化的cint toupper(int c)转换成大写字母如果c是小写字母,则返回相应的大写字母。如果c不是小写字母,则返回无变化的cerrno.h#define EDOM源自于函数的参数超出范围,例如 sqrt(-1)#define ERANGE源自于函数的结果超出范围extern int errno定义为一个int型态的左值, 包含任何函数使用errno功能所产生的上一个错误码float.h#define FLT_RADIX2 定义指
10、数的基本表示(如base-2是二进制,base-10是十进制表示法,16是十六进制)#define FLT_ROUNDS定义浮点型数值四舍五入的方式,-1是不确定,0是向0,1是向最近,2是向正无穷大,3是负无穷大#define FLT_DIG6 float类型精度(小数位数)#define FLT_EPSILON1E-5 使“1.0 + x != 1.0”成立的最小x#define FLT_MANT_DIG基数为FLT_RADIX的尾数中的数字数#define FLT_MAX1E+37 最大浮点数#define FLT_MIN1E-37 最小的规范化浮点数#define FLT_MAX_EX
11、P使FLT_RADIX(n-1)可表示的最大n#define FLT_MIN_EXP使10n为规范化数的最小n#define FLT_MAX_10_EXP10进制表示法的的指数的最大整数值#define FLT_MIN_10_EXP10进制表示法的的指数的最小整数值#define DBL_DIG10 double类型精度(小数位数)#define DBL_EPSILON1E-9 使“1.0 + x != 1.0”成立的最小x#define DBL_MANT_DIG基数为FLT_RADIX的尾数中的数字数#define DBL_MAX1E+37 最大双精度浮点数#define DBL_MIN1E
12、-37 最小的规范化双精度浮点数#define DBL_MAX_EXP使FLT_RADIX(n-1)可表示的最大n#define DBL_MIN_EXP使10n为规范化数的最小n#define DBL_MAX_10_EXP10进制表示法的的指数的最大整数值#define DBL_MIN_10_EXP10进制表示法的的指数的最小整数值#define LDBL_DIGLong double类型精度(小数位数)#define LDBL_EPSILON能表示的最小有符号数#define LDBL_MANT_DIG定义数值里数字的个数#define LDBL_MAX浮点型的最大限#define LDBL
13、_MIN浮点型的最小限#define LDBL_MAX_EXP指数的最大整数值#define LDBL_MIN_EXP指数的最小整数值#define LDBL_MAX_10_EXP10进制表示法的的指数的最大整数值#define LDBL_MIN_10_EXP10进制表示法的的指数的最小整数值limits.h#define CHAR_BIT8 char类型的位数#define SCHAR_MAX+127 signed char类型的最大值#define SCHAR_MIN-127 signed char类型的最小值#define UCHAR_MAX255 unsigned char类型的最大值
14、#define CHAR_MAXUCHAR_MA或SCHAR_MAX char类型的最大值#define CHAR_MIN0或SCHAR_MINchar类型的最小值#define SHRT_MAX+32767 short类型的最大值#define SHRT_MIN-32768 short类型的最小值#define USHRT_MAX65535 unsigned short的最大值#define INT_MIN-32768 int类型的最小值#define INT_MAX32767 int类型的最大值#define UINT_MAX65535 unsigned int类型的最大值#define
15、LONG_MIN-2147483648 long类型的最小值#define LONG_MAX2147483647 long的最大值#define ULONG_MAX4294967295 unsigned long的最大值locale.hstruct lconv保存当前区域中的数字和货币信息#define LC_ALL全部本地化信息#define LC_COLLATE影响strcoll和strxfrm#define LC_CTYPE影响字符处理函数和多行字符处理函数#define LC_MONETARY影响localeconv返回的货币格式化信息#define LC_NUMERIC影响格式化输入
16、输出字符中的小数点符号#define LC_TIME影响strftime函数char * setlocale(int category,char* local)设置地区如果locale是空指针,就返回一个指向与当前地区的category相关的字符串的指针。否则,返回一个指向与新地区的category相关的字符串的指针。如果操作失败,则返回空指针struct lconv * localeconv(void);获取区域转换指向结构的指针,此结构含有当前区域信息math.hdouble sin(double x)计算sinx的值计算结果double cos(double x)计算cosx的值计算结果
17、double tan(double x)计算tanx的值计算结果double asin(double x)计算的值计算结果double acos(double x)计算的值计算结果double atan(double x)计算的值计算结果double atan2(double y, double x)计算的值计算结果double sinh(double x)计算sinhx的值计算结果double cosh(double x)计算coshx的值计算结果double tanh(double x)计算tanhx的值计算结果double exp(double x)计算ey的值计算结果double lo
18、g(double x)计算lnx的值计算结果double log10(double x)计算的值计算结果double pow(double x, double y)计算xy的值计算结果double sqrt(double x)计算的值计算结果double ceil(double x)上整数大于或等于x的最小整数。double floor(double x)向下取整小于或等于x的最大整数。double fabs(double x)浮点数的绝对值x的绝对值double ldexp(double x, int n)联合小数和指数x 2exp的值。可能会发生取值范围错误。double frexp(do
19、uble x, int* exp)分解成小数和指数f,即value的小数部分double modf(double x, double* ip)分解成整数和小数部分value的小数部分double fmod(double x, double y)浮点模数x除以y的余数。如果y为零,是发生定义域错误还是fmod函数返回零是由实现定义的。setjmp.htypedef structjmp_bufsetjmp将当前信息保存在jmp_buf结构类型中供longjmp使用int setjmp(jmp_buf env)准备非局部跳转当直接调用时,返回为零。当从longjmp函数调用中返回时,返回非零值voi
20、d longjmp(jmp_buf env, int val)非区域跳转无signal.hint raise(int sig)产生信号如果成功,返回零;否则返回非零值void (*signal(int sig,void (*handler)(int) )(int)安装信号处理函数指向此信号前一个处理函数的指针。如果无法安装处理函数,则返回SIG_ERR#define SIGABRT异常终止,如调用abort()。#define SIGFPE算术运算出错,如除数为0或溢出。#define SIGILL非法函数映象,如非法指令。#define SIGINT交互式信号,如中断。#define SIG
21、SEG非法访问存储器,如访问不存在的内存单元。#define SIGTERM发送给本程序的终止请求信号。#define SIG_DFL默认信号处理函数#define SIG_ERR表示一个错误信号,当signal函数调用失败时的返回值。#define SIG_IGN信号处理函数,表示忽略该信号stdarg.htypedef void * va_list用来保存宏va_arg与宏va_end所需信息#define va_start(ap,parmN)使va_list指向起始的参数#define va_end(ap)释放va_list#define va_arg(ap,type)检索参数stdde
22、f.h#define NULL 0指针常量typedef int ptrdiff_t带符号的整数类型, 用来表示指针相减的结果类型typedef unsigned int size_t无符号整数类型, 用来表示sizeof操作符的结果类型typedef unsigned short wchar_t宽字符类型#define offsetof(type,member_name)获得字段在结构体中的偏移量stdio.h#define NULL 0指针常量#define EOF (-1)代表文件的结尾#define BUFSIZsetbuf函数所使用的缓冲区的大小#define FOPEN_MAX(2
23、0)同时打开的文件的最大数量#define FILENAME_MAX文件名的最大长度#define TMP_MAXtmpnam最多次数#define L_tmpnam整数,最大长度的临时文件名#define stdin标准输入流,默认为键盘#define stdout标准输出流,默认为屏幕#define stderr标准错误流,默认为屏幕, 可输出到文件#define _IOFBF表示完全缓冲#define _IOLBF表示线缓冲#define _IONBF表示无缓存#define SEEK_CUR取得目前文件位置#define SEEK_END将读写位置移到文件尾时#define SEEK_
24、SET将读写位置移到文件开头typedef unsigned int size_t运算符sizeof产生的无符号整类型typedef struct FILE用于声明文件指针typedef long fpos_t能够唯一说明文件中的每个位置的对象FILE * fopen(char* filename,char *mode)打开文件文件指针。在执行下一次关于文件的操作时会用到此指针。如果无法打开文件则返回空指针FILE * freopen(char*fname,char*mode,FILE*stream)重新打开文件如果操作成功,返回stream的值。如果无法打开文件则返回空指针void setb
25、uf(FILE *stream, char *buffer)设置缓冲区无int setvbuf(FILE*stream,char *buf,int mode,size_t size)设置缓冲区如果操作成功,就返回零。如果mode无效或者无法满足要求,则返回非零值int fclose(FILE *stream)关闭文件如果成功,就返回零。如果检测到错误,就返回EOFsize_t fread(void *ptr,size_t size,size_t nmemb, FILE *stream)从文件读块实际读入的元素(不是字符)数量。如果fread遇到文件末尾或检测到读取错误,那么此数将会小于nmem
26、b。如果nmemb或size为零,则返回值为零size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream)向文件写块实际写入的元素(不是字符)的数量。如果fwrite函数检测到写错误,则这个数将会小于nmembint printf(const char *format, .)格式化写写入的字符数量。如果发生错误就返回负值int fprintf(FILE *stream, const char *format, .)格式化写文件写入的字符数量。如果发生错误就返回负值int sprintf(char *str, const ch
27、ar *format, .)格式串写存储到数组中的字符数量,不计空字符int vprintf(const char *format, va_list arg)用可变实际参数列表格式化写写入的字符数量。如果发生错误就返回负值int vfprintf(FILE *stream, const char *format, va_list arg)用可变实际参数列表格式化写文件写入的字符数量。如果发生错误就返回负值int vsprintf(char *str,char *format, va_list arg)用可变实际参数列表格式化写字符串存储的字符数量,但不计空字符int scanf(const c
28、har *format, .)格式化读成功读入并且存储的数据项数量。如果发生错误或在可以读入任意数据项之前到达了文件末尾,就返回EOFint fscanf(FILE *stream, const char *format, .)格式化读文件成功读入并且存储的数据项数量。如果发生错误或在可以读数据项前到达了文件末尾,那么就返回EOFint sscanf(char *str, const char *format, .)格式串读成功读入并且存储的数据项数量。如果在可以读入任意数据项之前到达了字符串末尾,就返回EOFchar *fgets(char *str, int n, FILE *stream
29、)从文件中读取字符串s(指向数组的指针,此数组存储着输入)。如果读取操作错误或fgets函数在存储任何字符之前遇到了流的末尾,都会返回空指针int fputs(const char *str, FILE *stream)向文件写字符串如果成功,返回非负值。如果写发生错误,则返回EOFchar *gets(char *str)读入字符串s(即存储输入的数组的指针)。如果读取发生错误或gets函数在存储任何字符之前遇到流的末尾,那么返回空指针int puts(const char *str)写字符串如果成功返回非负值。如果写发生错误则返回EOFint fgetc(FILE *stream)从文件中
30、读取字符读到的字符。如果fgetc函数遇到流的末尾,则设置流的文件尾指示器并且返回EOF。如果读取发生错误,fgetc函数设置流的错误指示器并且返回EOFint fputc(int char, FILE *stream)向文件写字符c(写入的字符)。如果写发生错误,fputc函数会为stream设置错误指示器,并且返回EOFint getc(FILE *stream)从文件读入字符读入的字符。如果getc函数遇到流的末尾,那么它会设置流的文件尾指示器并且返回EOF。如果读取发生错误,那么getc函数设置流的错误指示器并且返回EOFint putc(int char, FILE *stream)
31、向文件写字符c(写入的字符)。如果写发生错误,putc函数会设置流的错误指示器,并且返回EOFint getchar(void)读入字符读入的字符。如果getc函数遇到输入流的末尾,那么它会设置stdin流的文件尾指示器并且返回EOF。如果读取发生错误,那么getc函数设置stdin流的错误指示器并且返回EOFint putchar(int char)写字符c(写入的字符)。如果写发生错误,putchar函数设置流的错误指示器,并且返回EOFint ungetc(int char, FILE *stream)未读取的字符c(回退的字符)。如果没有读取操作或者文件定位操作就试图回退过多的字符,那
32、么函数将会返回EOFint fflush(FILE *stream)清洗文件缓冲区如果成功就返回零。如果检测到错误,就返回EOFint remove(const char *filename)移除文件如果成功就返回零;否则返回非零值int rename(char *old_filename, char *new_filename)重命名文件如果改名成功就返回零。如果操作失败,就返回非零值(可能因为旧文件目前是打开的FILE * tmpfile(void)创建临时文件文件指针。当执行对此文件的后续操作时候用到此指针。如果无法创建文件,则返回空631附录 D 标准库函数 437指针char * t
33、mpnam(char *str)产生临时文件名指向文件名的指针void rewind(FILE *stream)返回到文件头无int fseek(FILE *stream, long int offset, int whence)文件查找如果操作成功就返回零。否则返回非零值long int ftell(FILE *stream)确定文件位置返回stream指向的流的当前文件位置指示器。如果调用失败,返回-1L,并且把由实现定义的错误码存储在errno中int fgetpos(FILE *stream, fpos_t *pos)获得文件位置如果成功就返回零。如果调用失败,则返回非零值,并且把由实
34、现定义的错误码存储到errno中int fsetpos(FILE *stream, const fpos_t *pos)设置文件位置如果成功就返回零。如果调用失败,返回非零值,并且把由实现定义的错误码存储在errno中int feof(FILE *stream)检测文件末尾如果为stream指向的流设置了文件尾指示器,那么返回非零值。否则返回零int ferror(FILE *stream)检测文件错误如果为stream指向的流设置了文件错误指示器,那么返回非零值。否则返回零。void clearerr(FILE *stream)清除流错误无void perror(const char *st
35、r)显示错误信息无stdlib.h#define NULL 0指针常量的值#define EXIT_SUCCESS 0成功状态码#define EXIT_FAILURE 1失败状态码#define RAND_MAXrand的最大返回值#define MB_CUR_MAX多字节字符中的最大字节数typedef unsigned int size_tunsigned integer类型typedef unsigned short wchar_t一个宽字符的大小typedef struct int quot;int rem; div_t是结构体类型 作为div函数的返回类型typedef struc
36、t long quot;long rem; ldiv_t是结构体类型 作为ldiv函数的返回类型double atof(const char *str)把字符串转换成浮点数对应字符串最长初始部分的double型值,此字符串是由nptr指向的,且字符串最长初始部分具有浮点数的格式。如果无法表示此数,那么函数的行为将是未定义的int atoi(const char *str)把字符串转换成整数对应字符串最长初始部分的整数,此字符串是由nptr指向的,且字符串最长初始部分具有整数的格式。如果无法表示此数,那么函数的行为将是未定义的long atol(const char *str)把字符串转换成长整
37、数对应字符串最长初始部分的长整数,此字符串是由nptr指向的,且字符串最长初始部分具有整数的格式。如果无法表示此数,那么函数的行为将是未定义的double strtod(const char *str, char *endptr)把字符串转换成双精度数转换的数。如果没有转换可以执行,就返回零。如果要表示的数过大,则返回正的或负的HUGE_VAL,这要依赖于数的符号而定。如果要表示的数过小,则返回零long strtol(char *str, char *endptr, int base)把字符串转换成长整数转换的数。如果没有转换可以执行,则返回零。如果无法表示数,则依赖于数的符号返回LONG_
38、MAX或者LONG_MINunsigned long strtoul(char *str,char *endptr, int base)把字符串转换成无符号长整数转换的数。如果没有转换可以执行,则返回零。如果无法表示数,则返回ULONG_MAXvoid * calloc(size_t nitems, size_t size)分配并清除内存块指向内存块开始处的指针。如果不能分配所要求大小的内存块,那么返回空指针void free(void *ptr)释放内存块无void * malloc(size_t size)分配内存块指向内存块开始处的指针。如果无法分配要求尺寸的内存块,那么返回空指针voi
39、d * realloc(void *ptr, size_t size)调整内存块指向新内存块开始处的指针。如果无法分配要求尺寸的内存块,那么返回空指针void abort(void)异常终止程序无int atexit(void (*func)(void)在程序退出处注册要调用的函数如果成功,返回零。如果不成功,则返回非零(达到由实现定义的限制)void exit(int status)退出程序无char * getenv(const char *name)获取外部环境字符串与匹配名相关的字符串的指针。如果没有找到匹配则返回空指针int system(const char *string)执行操
40、作系统命令当string是空指针时,如果命令处理器有效,则返回非零值。如果string不是空指针,则返回由实现定义的值void * bsearch(void*key,void*base,size_t nitems, size_t size, int (*compar)( void *, void *)二分检索指向数组元素的指针,此数组元素是用来测试是否等于关键字的。如果没有找到关键字,那么返回空指针void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)排序数组无int
41、 abs(int x)整数的绝对值整数j的绝对值。如果不能表示j的绝对值,那么函数的行为是未定义的long int labs(long int x)长整数的绝对值j的绝对值。如果不能表示j的绝对值,那么函数的行为是未定义的div_t div(int numer, int denom)整数除法含有quot(numer除以denom时的商)和rem(余数)的结构。如果无法表示结果,那么函数的行为是未定义的ldiv_t ldiv(long numer, long denom)长整数除法含有quot(numer除以denom的商)和rem(余数)的结构。如果无法表示结果,那么函数的行为是未定义的int
42、 rand(void)产生伪随机数0到RAND_MAX(包括RAND_MAX在内)之间的伪随机整数void srand(unsigned int seed)启动伪随机数产生器无int mblen(const char *str, size_t n)计算多字节字符的长度如果s是空指针,返回非零值还是零值依赖于多字节字符是否是依赖状态编码。如果s指向空字符则返回零;如果接下来n个或几个字节形成了一个有效的字符,那么返回s指向的多字节字符中的字节数量;否则返回-1size_t mbstowcs(schar_t *pwcs,char *str, size_t n)把多字节字符串转换成宽字符串修改的数组元素的个数,无论如何也不包括终止码。如果遇到无效的多字节字符,则返回(size_t)-1int mbtowc(whcar_t *pwc, char *str, size_t n)把多字节字符转换成宽字符如果s是空指针,则返回非零值还是零值依赖于多字节字符是否是依赖状态编码。如果s指向空字符,则返回零。如果接下来n个或几个字节形成了一个有效的字符,那么返回s指向的多字节字符中的字节数量。如果不是这样,则返回1size_t wcstombs(char *str,wchar_t *pwcs, size_t n)把宽字符串转