1 C语言提高

上传人:夏** 文档编号:575645995 上传时间:2024-08-18 格式:PPT 页数:116 大小:1.20MB
返回 下载 相关 举报
1 C语言提高_第1页
第1页 / 共116页
1 C语言提高_第2页
第2页 / 共116页
1 C语言提高_第3页
第3页 / 共116页
1 C语言提高_第4页
第4页 / 共116页
1 C语言提高_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《1 C语言提高》由会员分享,可在线阅读,更多相关《1 C语言提高(116页珍藏版)》请在金锄头文库上搜索。

1、1 C1 C语言提高语言提高概述l1.1 基本数据类型、操作符、表达式基本数据类型、操作符、表达式 l1.2 语句语句 l1.3 数组数组l1.4 指针指针l1.5 结构和联合体结构和联合体l1.6 函数函数l1.7 存储类型存储类型l1.8 预编译预编译l1.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l1.10 其它库函数操作其它库函数操作21.1 基本数据类型、操作符、表达式l在C语言中,变量的声明格式是:类型 变量;l例: int x = 5; sizeof(int)&xx=5图图1.1 1.1 变量变量x x内存解释内存解释 31.1 基本数据类型、操作符、表

2、达式数据类型数据类型构造类型构造类型指针类型指针类型空类型空类型基本类型基本类型字符类型字符类型整型整型枚举类型枚举类型单精度类型单精度类型实型实型双精度类型双精度类型数组类型数组类型结构类型结构类型共同体类型共同体类型41.1 基本数据类型、操作符、表达式类型类型含义含义大小大小实例实例常量常量int整型整型sizeof(int)int i;100, 0x100,0100short intshort短整型短整型2short s;(short)100long intlong长整型长整型 4long l;100L, (long)100float单精度类型单精度类型4float x;0.1fdou

3、ble long double双精度类型双精度类型8double d;0.1,0.1dchar字符型字符型1char c;100, 0, 0, a, n51.1 基本数据类型、操作符、表达式lunsigned、signed修饰 l十六进制、十进制、八进制表示 l字符常量表示及编码 l转义符(0,n,t等)l逻辑类型的规定61.1 基本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式1算术操作符算术操作符 算术操作符含义实例+算术加法4.0+7,4+7-算术减法7-5,7-5.0*算术乘法7*67,7*67.0/算术除法5/6,5.0/6%模运算:整除取余数17%771.1 基

4、本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式 2.关系操作符关系操作符 关系操作符 含义实例小于xy=小于等于x大于xy=大于等于x=y=相等x=y!=不等x!=y81.1 基本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式 2.关系操作符关系操作符l“x y 右移操作 92 ,结果为2 ,相当于9/22左移操作 92,结果为36,相当于9*22121.1 基本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式 5移位操作符移位操作符例1.1:我们可以将x的第3至第7位置为y。int x=0x44444444;int y=7;x=(x

5、&0xffffff07)|(y3;printf(n%x,y);141.1 基本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式 6条件表达式操作符条件表达式操作符 l“? :” 表达式表达式l例:计算例:计算y年的天数:若年的天数:若y是闰年,则是闰年,则366天,否则天,否则365天。用天。用C表达如下:表达如下:isLeap(y)?366:365151.1 基本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式 7. 赋值操作符赋值操作符l =+=-=*=/=%=&=|=161.1 基本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式 7

6、. 赋值操作符赋值操作符l应用形式为:左值左值 赋值操作符赋值操作符 表达式表达式例: x%=7意义是计算 “x%7” 的结果,送给 x 空间,其值是最后 x 的值。注意:无分号。有分号时是语句。l“x=y=6” 表达正确吗?171.1 基本数据类型、操作符、表达式l1.1.2 操作符、表达式操作符、表达式 8逗号表达式逗号表达式 l逗号表达式的形式如下:表达式表达式, , 表达式表达式,表达式表达式 l例:char c=100;printf(%i,(c+1,c+2,c+3);181.2 语句l赋值语句文法赋值表达式;x+;+x;x-;-x;191.2 语句l赋值语句自加(减)赋值自加(减)赋

7、值x+;+x;x-;-x;例:例:int x=5;int x=5;int y;int y;y=x+;y=x+;printf(nx=%d,y=%d,x,y);printf(nx=%d,y=%d,x,y);x=5;x=5;y=+x;y=+x;printf(nx=%d,y=%d,x,y);printf(nx=%d,y=%d,x,y);求值加1赋值x+先后+x后先201.2 语句l条件语句文法if ( E )S或if ( E )S1elseS2图1.2 分支语句流程图图1.3 分支语句流程图211.2 语句l复合语句文法说明部分语句部分复合语句书写规范221.2 语句l循环语句while语句for语句

8、do-while语句231.2 语句l循环语句while语句while( E )S图1.4 while循环的流程图241.2 语句l循环语句while语句int getSum(int m) int sum=0; int i=1; while(iy); x+; y-;例:例:for(i=0;i10;i+); .301.2 语句lgoto 语句文法goto 标号;311.2 语句lswitch 语句文法switch(表达式) case I1: S11 S12 S13 case l2: S21 S22 S23 default: S01 S02 S03 321.2 语句lswitch 语句int k=

9、1;char c=A;do switch(c+)case A: k*=2; break;case B: k+=2;continue;case C: k%=3;default: k+;case D: k/=3; k+;while(c= 2000) for (i = 2000; i y; i+) sum += getYearDays(i); return (sum + 6) % 7; else for (i = y; i 2000; i+) sum += getYearDays(i); return ( -sum + 6) % 7; 38综合训练S2 计算y年m月第一天的星期;int getMon

10、thWeekDay(int y, int m) int sum = 0; int i; for (i = 1; i m; i+) sum += getMonthDays(y, i); return (getYearWeekDay(y) + sum ) % 7;39综合训练S3 打印y年的日历:对y年的每一月,执行打印操作。void printYear(int y) int i; count=1; for(i=1;i=12;i+) printMonth(y,i); 40void printMonth(int y, int m) int i=0; int w; printf(n* %d月月 *n,

11、m); w = getMonthWeekDay(y, m); if(w=0) printf(n%-7d,count); count+; else printf( ); for (i = 0; i w; i+) printf( ); for (i = 1; i = getMonthDays(y, m); i+) printf( %7i, i); w+; w %= 7; if (w = 0 & igetMonthDays(y,m) printf(n%-7d,count); count+; 411.3 数组数组l一维数组一维数组的声明形式是:类型类型 数组变量数组变量 数组长度数组长度; ;如:in

12、t a 10 ;a+1a 9 1 a+910*sizeof(int) 0 图1.9 int a10声明的内存图示&a+1a a是缓冲区的开始地是缓冲区的开始地址,是常地址址,是常地址。421.3 数组数组l一维数组&a+1:表示下一个a10空间的地址;a+1:表示下一个整数空间的地址。类型类型地址地址大小大小a aint 10int 10a(a(等于等于&a&a,但类型,但类型不同不同) )10*sizeof(int)10*sizeof(int)aiaiintinta+i(a+i(等价于等价于&ai)&ai)sizeof(int)sizeof(int)431.3 数组数组l一维数组运算符 地址

13、表达式例:若有声明int x,a10,从文法上,下式都是正确的。a-1a100(&a3)-2(&x)0441.3 数组数组l二维数组二维数组的说明形式如下:类型类型 数组变量名数组变量名 长度长度11长度长度2;2;451.3 数组数组l二维数组如:int aa23;图1-10 int a23声明的内存图示aa+1aa 1 1 0 0 0 1 aa1+12*3*sizeof(int)aa1+2 0 2 1 0 1 2 aa0+1&aa+1aa0+2461.3 数组数组l二维数组类型地址大小aaint 23aa(等于&aa)2*3*sizeof(int)aaiint3aa+i(等价于&aai)3

14、*sizeof(int)aaijintaai+j(等价于&aaij)sizeof(int)471.3 数组数组l多维数组int aaa234;类型地址大小aaaint 234aaa(等于&aaa)2*3*4*sizeof(int)aaaiint34aaa+i(等价于&aaai)3*4*sizeof(int)aaaijint4aaai+j(等价于&aaaij)4*sizeof(int)aaaijkintaaaij+k(等价于&aaaijk)sizeof(int)481.4 指针指针l指针指针的声明形式是:类型类型 * 指针变量指针变量;例如:int * p;sizeof(int *)&pp: i

15、nt *图1.11 指针变量内存空间491.4 指针指针l指针*p表示p所指空间的内容含义类型地址大小p指针变量int *&psizeof(int *)*p 所指的内存单元的内容intpsizeof(int)501.4 指针指针l指针例1.14:int x=0;int *p;p=&x;*p=6;printf(“nx=%d”,x);图1.12 指针变量引用整型变量空间p: int *sizeof(int)p&xx*p=6511.4 指针指针l指针例:int a10;int *p;p=a;pa图1.13 指针变量引用数组变量空间p: int * 9 0 *p 1 10*sizeof(int)p+9

16、p+1521.4 指针指针l指针“*” 和 “&”是运算符形式类型变化意义实例int *p;*地址 在地址类型基础上减一个*求地址空间中的内容*p: int&左值表达式或&数组变量 在原类型的基础上加一个*求地址&p: int * 531.4 指针指针l指针-注意类型例1.16:int i;long l=0xf1f2f3f4;char c4;for(i=0;i=2)y=atoi(*(argv+1);if(argc=3)m=atoi(*(argv+2);printMonth(y,m);elseprintYear(y);return 1;571.4 指针指针例例1.19:命令行参数的获取:命令行参

17、数的获取图图1.18 argv1.18 argv内存示意图内存示意图*argvMyDate020100*(argv+1)20*(argv+2)char *char *argvargv:char *argv+1char *argv+2581.4 指针指针l字符串C语言中的字符串实质上是这个缓冲区的首地址。一个字符串,它是自标志的,字符串的结束是以0标志的。l常字符串,如 “hello” hello0hello图1.16 字符串常量的内存图示591.4 指针指针l字符串操作-拷贝char * strcpy(char * s1,char * s2) int i; for(i=0;*(s2+i)!=0

18、;i+) *(s1+i)=*(s2+i); *(s1+i)=0; return s1;601.4 指针指针字符串操作-连接char * strcat(char * s1,char * s2) int i, j; for(j=0;*(s1+j)!= 0;j+); for(i=0;*(s2+i)!=0;i+) *(s1+j+i)=*(s2+i); *(s1+j+i)=0; return s1;611.4 指针指针l字符串操作-比较int strcmp(char * s1,char * s2) int i; for(i=0;*(s1+i)!= 0 & *(s2+i)!=0 & *(s1+i)=*(s

19、2+i) ;i+); return *(s1+i)-*(s2+i);621.4 指针指针l字符串操作-计算长度int strlen(char * s1) int i; for(i=0;*(s1+i)!= 0 ;i+); return i;631.4 指针指针考虑下面代码的执行结果:char str25;strcpy(str0,hello);strcpy(str1,hi);641.4 指针指针l指针数组int * pInt8;char * str=“请输入整数”,“x=%d”,“除法错误”;651.4 指针指针l数组指针int * pList4;int (* pItem)4;sizeof(int

20、 *4)&pItempItem:int(*)40:int *1:int *2:int *3:int *pList图1.19指针数组与数组指针内存图示661.4 指针指针l数组指针int getTotal(int (* item)4)int i;int sum=0;for(i=0;i4;i+)sum+=*(*item+i);return sum;671.4 指针指针l数组指针int main() int i; int items44=1,3,4,5,2,4,5,3,5,6,3,2,6,4,3,1; for(i=0;iname*pStu struct stupStusizeof(struct st

21、u)(*pStu).name731.5 结构和联合体结构和联合体l联合体联合体union 联合体名联合体名 类型类型 域变量域变量; ;类型类型 域变量域变量; ;741.5 结构和联合体结构和联合体l联合体联合体union tag struct int w,h; rect; int r; int d; ;union tag shape;图1.22 联合变量shape的内存结构图示&shaperect.wR, drect.hsizeof(int)sizeof(int)&shape+1751.5 结构和联合体结构和联合体l联合体联合体union iaddr unsigned long ip; u

22、nsigned char byte4; ;sizeof(union iaddr)=4。761.5 结构和联合体结构和联合体l位域位域struct unsigned int f1:3; unsigned int f2:3; unsigned int f3:3;q;&q 图图1.23 1.23 位域内存图示位域内存图示 f3 f3 f1f2f2771.5 结构和联合体结构和联合体l链表结点的定义链表结点的定义typedef struct stagint key;struct stag *next;SNODE; / /单向链表结点的定义单向链表结点的定义typedef struct dtagint

23、key;struct dtag *previous,*next;DNODE; / /双向链表结点的定义双向链表结点的定义781.5 结构和联合体结构和联合体l链表结点的操作链表结点的操作void insertAtHead(SNODE * head,SNODE *);SNODE * createSNode(int key);void deleteAtTail(SNODE * head);void traversal(SNODE * head);791.5 结构和联合体结构和联合体l二叉树结点的定义二叉树结点的定义typedef struct t2Tag int key;struct t2Tag

24、* left,*right; T2NODE;801.5 结构和联合体结构和联合体l树结点的定义树结点的定义typedef struct tTag int key; struct tTag * parent;struct tTag *elderBrother,*brother; struct tTag * children; TNODE;811.6 函数函数l函数的定义格式是:返回类型 函数名(参数表) 函数体 l函数的调用格式是:函数名(实际参数);l函数原型声明的格式为:返回类型 函数名(参数表);821.6 函数函数l参数传递函数定义时的参数称为形式参数,函数调用时的参数称为实际参数。当函

25、数调用时,首先在栈区内分配形式参数的内存空间,然后计算实际参数的值,并将实际参数的值传给形式参数的空间。(对程序执行效率的影响?)831.6 函数函数l参数传递void f(int);void f1(int *);int main() int x=100; f(x); printf(x=%d,x); f1(&x); printf(x=%d,x);void f(int x)int y=100;x+=100;void f1(int * x)int y=100;*x+=y; 841.6 函数函数l参数传递void f2(int);int main() int a=1,2,3;f2(a);printf

26、(%d-%d-%d,a0,a1,a2);void f2(int a3)a0=4;a1=3;a2=2;在参数传递时,它将在参数传递时,它将数组的地址传给形参,数组的地址传给形参,在函数执行时,改变在函数执行时,改变的是同一数组的元素的是同一数组的元素值。值。 851.6 函数函数l函数指针定义形式返回类型 (* 函数指针变量)(参数表);l函数指针是一个指针变量,与一般指针不同的是,它是指向代码区的,而不是指向数据区的指针。l例:void (*pf)(); 861.6 函数函数l函数指针void open(); /* open的原型声明 */void print();/* print的原型声明

27、*/void exitIt(); /* exitIt的原型声明 */void (*pfs)()=open,print,exitIt; /* 函数指针数组 */int main() int i; void (*pf)(); pf=open; (*pf)(); /* 调用open */ for(i=0;i3;i+)(*pfsi)(); /* 依次调用函数open、print、exitIt */ 871.6 函数函数l其中void open()printf(open);void print()printf(print);void exitIt()printf(exit);881.6 函数函数l例:以

28、下定义的意义void (*getInterrupt(int no)();void setInterrupt(int no, void (*pf)();LRESULT (* lpfnWndProc)(HWND,UINT,WPARM,LPARAM);891.7 存储类型存储类型lC中变量的完整说明形式是:存储类型 数据类型 变量;lC中存储类型registerauto(默认存储类型)staticextern901.7 存储类型存储类型lstatic存储类型存储类型在函数内定义时,在函数内定义时,staticstatic作用范围在函数内,但在作用范围在函数内,但在运行期间一直存在。运行期间一直存在。

29、在函数外定义时,从定义点开始有效,但只限于在函数外定义时,从定义点开始有效,但只限于本文件使用。在程序运行期间一直存在。本文件使用。在程序运行期间一直存在。911.7 存储类型存储类型lstatic存储类型存储类型-下面代码打印出什么,为什么?下面代码打印出什么,为什么?int main() void print(); print(); print(); print(); void print() static int i=0; printf(%d-,i+); 921.7 存储类型存储类型lextern存储类型存储类型在函数内时,引用函数外定义的量。在函数内时,引用函数外定义的量。在函数外时,

30、引用其它文件定义的量。在函数外时,引用其它文件定义的量。 总之,总之,extern extern 变量,不分配内存。变量,不分配内存。931.8 预编译预编译l宏定义可用于定义值或定义一些功能,其形式是:#define 预编译 量#define预编译量 值#define预编译量(参数, 参数.) 功能定义941.8 预编译预编译l宏定义例子#define PRINT#define PI 3.14159265#define子子 LEN 200#define HIWORD(l) *(short*)&l+1)#define LOWORD(l) *(short*)&l)951.8 预编译预编译l宏定义

31、l例如求一个量平方的宏定义的各种写法:#define SQUARE(x) x*x#define SQUARE(x) (x*x)#define SQUARE(x) (x)*(x)#define SQUARE(x) (x)*(x)961.8 预编译预编译l宏引用形如:#include 文件名l例:#include stdio.h#include malloc.h“l在引用位置引入指定文件(任意文件)的内容。 971.8 预编译预编译l条件编译#define PRINTint main() #ifdef PRINT /*若定义了PRINT,则下面代码参与编译*/printf(nPRINT is de

32、fined.);#endif#ifndef PRINT /*若未定义PRINT,则下面代码参与编译*/printf(nPRINT is not defined.);#endif#ifdef PRINT /*若定义了PRINT,则下面代码参与编译*/printf(nPRINT is defined.);#else /*否则,即若未定义PRINT,则下面代码参与编译*/printf(nPRINT is not defined.);#endifprintf(nend);981.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l 控制台操作控制台操作 int printf(cons

33、t char *, .);int scanf(const char *, .);991.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l 控制台操作控制台操作 1.printf(n%d,%ld,%10d,%10ld,6,6L,6,6L);2.printf(n%x,%5lx,64,64);3.printf(n%o,%5o,64,64);4.printf(n%u,%5u,65,-1);5.printf(n%c,%5c,65,A);6.printf(n%s,%10s,hello,hello);7.printf(n%f,%10.3f,6.0,6.00);8.printf(n%e,

34、%10.3e,6.0,6.00);9.printf(n%g,%10.3g,6.0,6.00);1001.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l 控制台操作控制台操作 1.int x; long l; scanf(%d,%ld,&x,&l);2.int x,y; scanf (%x,%lx,&x,&y);3.int x,y; scanf (%o,%lo,&x,&y);4.unsigned int x; scanf (%u,&x);5.char c1; scanf (%c,&c1);6.char s120; scanf (%s,s1);7.float r1; dou

35、ble r2; 8.scanf (%f,%lf,&r1,&r2 );1011.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l 文件操作文件操作读取操作时有三个步骤:打开文件,读写操作,关闭文件,以释放文件所占的各种缓冲区。1021.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l打开文件 FILE * fopen(const char *, const char *);l打开文件“c:tttt.txt”。char * path=c:tttt.txt;FILE * stream;if(NULL=(stream=fopen(path,rb)printf

36、(File %s doesnt exist.,path); exit(0);1031.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l打开文件方式r:打开文件用于输入文件必须存在,否则无法打开w:打开文件用于输出文件若存在,则删除重新建立a:打开文件用于在文件尾追加数据。文件必须存在,否则无法打开r+:打开文件用于读、写文件必须存在,否则无法打开1041.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l 读写操作读写操作-文件状态文件状态函数函数feoffeof可判定指定的输入流是否结束。其原型定义:可判定指定的输入流是否结束。其原型定义:int f

37、eof(FILE *);int feof(FILE *);若处于文件尾(若处于文件尾(end of fileend of file),则返回真(),则返回真(1 1),否则返回假),否则返回假(0 0)。)。函数函数ferrorferror可判定指定的流是否出错,若有错误,则返回可判定指定的流是否出错,若有错误,则返回1 1,否则返回,否则返回0 0。其原型定义如下:。其原型定义如下:int ferror(FILEint ferror(FILE *); 1051.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l读写操作读写操作-读写字符读写字符函数函数getcgetc和和

38、fgetcfgetc都是按字符读入内容,其原型定义如下:都是按字符读入内容,其原型定义如下:int getc(FILE *);int fgetc(FILE *);例:例:while(!feof(stream)while(!feof(stream)int ch=getc(stream);int ch=getc(stream);/ /这里应是处理代码这里应是处理代码. 1061.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l读写操作读写操作-格式读写格式读写按指定的格式读、写文件流的操作函数是按指定的格式读、写文件流的操作函数是以下两个函数:以下两个函数:int fprin

39、tf(FILE *, const char *, .);int fscanf(FILE *, const char *, .);(有差别吗?)(有差别吗?)1071.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l读写操作读写操作-块读写块读写函数函数fwrite将指定缓冲区中的内容写入文件中,函将指定缓冲区中的内容写入文件中,函数数fread将文件中的内容读到指定的缓冲区中。它将文件中的内容读到指定的缓冲区中。它们的原型声明如下:们的原型声明如下:size_t fwrite(const void *, size_t, size_t, FILE *);size_t fre

40、ad(void *, size_t, size_t, FILE *);1081.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l读写操作读写操作-文件指针操作文件指针操作函数函数fseekfseek改变文件指针的位置。其原型声明为:改变文件指针的位置。其原型声明为:int fseek(FILE *, long, int);int fseek(FILE *, long, int);其中第三个参数可选三个值:其中第三个参数可选三个值:0 0、1 1、2 2。0 0表示以文件头为参照,表示表示以文件头为参照,表示以当前位置为参照,以当前位置为参照,2 2表示以文件尾为参照。第二

41、个参数表示距参照表示以文件尾为参照。第二个参数表示距参照点的距离,类型为长整数。点的距离,类型为长整数。函数函数ftellftell可得到文件指针的位置。可得到文件指针的位置。long ftell(FILE *);long ftell(FILE *);函数函数rewindrewind将文件指针返回文件开始位置。将文件指针返回文件开始位置。void rewind(FILE *);void rewind(FILE *);1091.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l读写操作读写操作-文件指针操作文件指针操作例:利用文件指针计算文件长度的函数例:利用文件指针计算文件

42、长度的函数:long getFileLen(FILE * stream) long old,len; old=ftell(stream);/保留原文件操作地址保留原文件操作地址 fseek(stream,0,2);/将文件指针移至文件尾将文件指针移至文件尾 len=ftell(stream);/保留文件位置保留文件位置 fseek(stream,old,0);/恢复原文件位置恢复原文件位置 return len;1101.9 有缓冲方式的文件操作及控制台操作有缓冲方式的文件操作及控制台操作l 关闭文件的函数是:关闭文件的函数是:void fclose(FILE * f);l关闭文件后,所以该文

43、件操作的缓冲区全关闭文件后,所以该文件操作的缓冲区全部释放。部释放。 1111.10 其它库函数操作其它库函数操作lstring.hchar * strcpy(char *, const char *);字符串拷贝char * strcat(char *, const char *);字符串连接int strcmp(const char *, const char *);字符串比较size_t strlen(const char *);计算字符串长度1121.10 其它库函数操作其它库函数操作lctype.hint isalpha(int);给定的符号是字母吗?Int isupper(int)

44、;给定的符号是大写吗?int islower(int);给定的符号是小写吗?int isdigit(int);给定的符号是数字符号吗?int isspace(int);给定的符号是空格吗?int isalnum(int);给定的符号是数字符号或字母吗?int toupper(int);给定的符号字转变为大写符号int tolower(int);给定的符号转变为小写符号int iscntrl(int);给定的符号是控制符吗?1131.10 其它库函数操作其它库函数操作lstdlib.hdouble atof(const char *);字符串转变为双精度的数int atoi(const char

45、 *);字符串转变为整数long atol(const char *);字符串转变为长整数char * itoa(int, char *, int);将整数以指定的进制转变为字符串void exit(int);退出应用程序void * malloc(size_t);分配指定大小的内存空间void free(void *);释放内存空间int rand(void);求随机数int system(const char *);运行系统命令void * malloc(size_t);动态申请内存空间void free(void *);释放已申请的内存1141.10 其它库函数操作其它库函数操作lmath.hfloat floorf( float );取地板值float ceilf( float );取天棚值math.hfloat fabsf( float );取绝对值115

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号