首页 C语言学习笔记

C语言学习笔记

举报
开通vip

C语言学习笔记 嵌入 SQL 连接到 SAMPLE数据库,查询 LASTNAME为 JOHNSON的 FIRSTNAME信息。 #include #include #include #include "util.h " #include EXEC SQL INCLUDE SQLCA; (1) main() { EXEC SQL BEGIN DECLARE SECTION; (2) char firstname[13...

C语言学习笔记
嵌入 SQL 连接到 SAMPLE数据库,查询 LASTNAME为 JOHNSON的 FIRSTNAME信息。 #include #include #include #include "util.h " #include EXEC SQL INCLUDE SQLCA; (1) main() { EXEC SQL BEGIN DECLARE SECTION; (2) char firstname[13]; char userid[9]; char passwd[19]; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO sample; (3) EXEC SQL SELECT FIRSTNME INTO :firstname (4) FROM employee WHERE LASTNAME = 'JOHNSON ';(4) printf( "First name = %s\n ", firstname ); EXEC SQL CONNECT RESET; (5) return 0; } 上面是一个简单的静态嵌入 SQL语句的应用程序。它包括了嵌入 SQL的主要部分: (1)中的 include SQLCA语句定义并描述了 SQLCA的结构。SQLCA用于应用程序和数据库 之间的通讯,其中的 SQLCODE返回 SQL语句执行后的结果状态。 (2)在 BEGIN DECLARE SECTION和 END DECLARE SECTION之间定义了宿主变 量。宿主变量可被 SQL 语句引用,也可以被 C 语言语句引用。它用于将程序中的数据通过 SQL 语句传给数据库管理器,或从数据库管理器接收查询的结果。在 SQL语句中,主变量前均有“:” 标志以示区别。 (3)在每次访问数据库之前必须做 CONNECT 操作,以连接到某一个数据库上。这时,应该保 证数据库实例已经启动。 (4)是一条选择语句。它将表 employee中的 LASTNAME为“JOHNSON”的行数据的 FIRSTNAME 查出,并将它放在 firstname变量中。该语句返回一个结果。可以通过游标返回多个结果。当然, 也可以包含 update、insert和 delete语句。 (5)最后断开数据库的连接。 从上例看出,每条嵌入式 SQL语句都用 EXEC SQL开始,表明它是一条 SQL语句。这也是告 诉预编译器在 EXEC SQL和“;”之间是嵌入 SQL语句。如果一条嵌入式 SQL语句占用多行, 在 C程序中可以用续行符“\”。 C的 32个关键字~~~ 关键字 auto用于 说明 关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书 自动变量,通常不用;volatile(易变的)表示该变量不经过赋值,其值也可 能被改变(例如表示时钟的变量、表示通信端口的变量等)。 C语言 32个关键字 auto :声明自动变量 一般不使用 double :声明双精度变量或函数 int: 声明整型变量或函数 struct:声明结构体变量或函数 break:跳出当前循环 else :条件语句否定分支(与 if 连用) long :声明长整型变量或函数 switch :用于开关语句 case:开关语句分支 enum :声明枚举类型 register:声明积存器变量 typedef:用以给数据类型取别名(当然还有其他作用) char :声明字符型变量或函数 extern:声明变量是在其他文件正声明(也可以看做是引用变量) return :子程序返回语句(可以带参数,也看不带参数) union:声明联合数据类型 const :声明只读变量 float:声明浮点型变量或函数 short :声明短整型变量或函数 unsigned:声明无符号类型变量或函数 continue:结束当前循环,开始下一轮循环 for:一种循环语句(可意会不可言传) signed:生命有符号类型变量或函数 void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) default:开关语句中的“其他”分支 goto:无条件跳转语句 sizeof:计算数据类型长度 volatile:说明变量在程序执行中可被隐含地改变 do :循环语句的循环体 while :循环语句的循环条件 static :声明静态变量 if:条件语句 分类函数,所在函数库为 ctype.h int isalpha(int ch) 若 ch是字母('A'-'Z','a'-'z')返回非 0值,否则返回 0 int isalnum(int ch) 若 ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非 0 值,否则返回 0 int isascii(int ch) 若 ch是字符(ASCII码中的 0-127)返回非 0值,否则返回 0 int iscntrl(int ch) 若 ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返回 非 0值,否则返回 0 int isdigit(int ch) 若 ch是数字('0'-'9')返回非 0值,否则返回 0 int isgraph(int ch) 若 ch是可打印字符(不含空格)(0x21-0x7E)返回非 0值,否则 返回 0 int islower(int ch) 若 ch是小写字母('a'-'z')返回非 0值,否则返回 0 int isprint(int ch) 若 ch是可打印字符(含空格)(0x20-0x7E)返回非 0值,否则返 回 0 int ispunct(int ch) 若 ch是标点字符(0x00-0x1F)返回非 0值,否则返回 0 int isspace(int ch) 若 ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸 换行('\f'),垂直制表符('\v'),换行符('\n'), 返回非 0值,否则返回 0 int isupper(int ch) 若 ch是大写字母('A'-'Z')返回非 0值,否则返回 0 int isxdigit(int ch) 若 ch是 16进制数('0'-'9','A'-'F','a'-'f')返回非 0值, 否则返回 0 int tolower(int ch) 若 ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若 ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 数学函数,所在函数库为 math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数 i的绝对值 double cabs(struct complex znum) 返回复数 znum的绝对值 double fabs(double x) 返回双精度参数 x的绝对值 long labs(long n) 返回长整型参数 n的绝对值 double exp(double x) 返回指数函数 ex的值 double frexp(double value,int *eptr) 返回 value=x*2n中 x的值,n存贮在 eptr 中 double ldexp(double value,int exp); 返回 value*2exp的值 double log(double x) 返回 logex的值 double log10(double x) 返回 log10x的值 double pow(double x,double y) 返回 xy的值 double pow10(int p) 返回 10p的值 double sqrt(double x) 返回 x的开方 double acos(double x) 返回 x的反余弦 cos-1(x)值,x为弧度 double asin(double x) 返回 x的反正弦 sin-1(x)值,x为弧度 double atan(double x) 返回 x的反正切 tan-1(x)值,x为弧度 double atan2(double y,double x) 返回 y/x的反正切 tan-1(x)值,y的 x为弧度 double cos(double x) 返回 x的余弦 cos(x)值,x为弧度 double sin(double x) 返回 x的正弦 sin(x)值,x为弧度 double tan(double x) 返回 x的正切 tan(x)值,x为弧度 double cosh(double x) 返回 x的双曲余弦 cosh(x)值,x为弧度 double sinh(double x) 返回 x的双曲正弦 sinh(x)值,x为弧度 double tanh(double x) 返回 x的双曲正切 tanh(x)值,x为弧度 double hypot(double x,double y) 返回直角三角形斜边的长度(z), x和 y为直角 边的长度,z2=x2+y2 double ceil(double x) 返回不小于 x的最小整数 double floor(double x) 返回不大于 x的最大整数 void srand(unsigned seed) 初始化随机数发生器 int rand() 产生一个随机数并返回这个数 double poly(double x,int n,double c[]) 从参数产生一个多项式 double modf(double value,double *iptr) 将双精度数 value分解成尾数和阶 double fmod(double x,double y) 返回 x/y的余数 double frexp(double value,int *eptr) 将双精度数 value分成尾数和阶 double atof(char *nptr) 将字符串 nptr转换成浮点数并返回这个浮点数 double atoi(char *nptr) 将字符串 nptr转换成整数并返回这个整数 double atol(char *nptr) 将字符串 nptr转换成长整数并返回这个整数 char *ecvt(double value,int ndigit,int *decpt,int *sign) 将浮点数 value转换成字符串并返回该字符串 char *fcvt(double value,int ndigit,int *decpt,int *sign) 将浮点数 value转换成字符串并返回该字符串 char *gcvt(double value,int ndigit,char *buf) 将数 value转换成字符串并存于 buf中,并返回 buf的指针 char *ultoa(unsigned long value,char *string,int radix) 将无符号整型数 value转换成字符串并返回该字符串,radix为转换时所用基数 char *ltoa(long value,char *string,int radix) 将长整型数 value转换成字符串并返回该字符串,radix为转换时所用基数 char *itoa(int value,char *string,int radix) 将整数 value转换成字符串存入 string,radix为转换时所用基数 double atof(char *nptr) 将字符串 nptr转换成双精度数,并返回这个数,错误返 回 0 int atoi(char *nptr) 将字符串 nptr转换成整型数, 并返回这个数,错误返回 0 long atol(char *nptr) 将字符串 nptr转换成长整型数,并返回这个数,错误返回 0 double strtod(char *str,char **endptr)将字符串 str转换成双精度数,并返回 这个数, long strtol(char *str,char **endptr,int base)将字符串 str转换成长整型数 , 并返回这个数, int matherr(struct exception *e) 用户修改数学错误返回信息函数(没有必要 使用) double _matherr(_mexcep why,char *fun,double *arg1p, double *arg2p,dou ble retval) 用户修改数学错误返回信息函数(没有必要使用) unsigned int _clear87() 清除浮点状态字并返回原来的浮点状态 void _fpreset() 重新初使化浮点数学程序包 unsigned int _status87() 返回浮点状态字 目录函数,所在函数库为 dir.h、dos.h int chdir(char *path) 使指定的目录 path(如:"C:\\WPS")变成当前的工作目 录,成功返回 0 int findfirst(char *pathname,struct ffblk *ffblk,int attrib) 查找指定的文件,成功返回 0 pathname为指定的目录名和文件名,如"C:\\WPS\\TXT" ffblk为指定的保存文件信息的一个结构,定义如下: ┃struct ffblk ┃{ ┃ char ff_reserved[21]; /*DOS保留字*/ ┃ char ff_attrib; /*文件属性*/ ┃ int ff_ftime; /*文件时间*/ ┃ int ff_fdate; /*文件日期*/ ┃ long ff_fsize; /*文件长度*/ ┃ char ff_name[13]; /*文件名*/ ┃} attrib为文件属性,由以下字符代表 ┃FA_RDONLY 只读文件┃FA_LABEL 卷标号 ┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录 ┃FA_SYSTEM 系统文件┃FA_ARCH 档案 例: struct ffblk ff; findfirst("*.wps",&ff,FA_RDONLY); int findnext(struct ffblk *ffblk) 取匹配 finddirst的文件,成功返回 0 void fumerge(char *path,char *drive,char *dir,char *name,char *ext) 此函数通过盘符 drive(C:、A:等), 路径 dir(\TC、\BC\LIB等), 文件名 name(TC、 WPS等),扩展名 ext(.EXE、.COM等)组成一个文件名存与 path中. int fnsplit(char *path,char *drive,char *dir,char *name,char *ext) 此函数将文件名 path分解成盘符 drive(C:、A:等), 路径 dir(\TC、\BC\LIB等), 文件名 name(TC、WPS等),扩展名 ext(.EXE、.COM等),并分别存入相应的变量中. int getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前工作目录名称。成功返回 0 drive 指定的驱动器(0=当前,1=A,2=B,3=C等) direc 保存指定驱动器当前工作路径的变量 char *getcwd(char *buf,iint n) 此函数取当前工作目录并存入 buf中,直到 n个 字节长为为止.错误返回 NULL int getdisk() 取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等) int setdisk(int drive) 设置要使用的驱动器 drive(0=A,1=B,2=C等), 返回可使 用驱动器总数 int mkdir(char *pathname) 建立一个新的目录 pathname,成功返回 0 int rmdir(char *pathname) 删除一个目录 pathname,成功返回 0 char *mktemp(char *template) 构造一个当前目录上没有的文件名并存于 templ ate中 char *searchpath(char *pathname) 利用MSDOS找出文件 filename所在路径, 此 函数使用 DOS的 PATH变量,未找到文件返回 NULL 进程函数,所在函数库为 stdlib.h、process.h void abort() 此函数通过调用具有出口代码 3的_exit写一个终止信息于 stderr, 并异常终止程序。无返回值 int exec…装入和运行其它程序 int execl(char *pathname,char *arg0,char *arg1,…,char *argn,NULL) int execle(char *pathname,char *arg0,char *arg1,…, char *argn,NULL,ch ar *envp[]) int execlp(char *pathname,char *arg0,char *arg1,…,NULL) int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[]) int execv(char *pathname,char *argv[]) int execve(char *pathname,char *argv[],char *envp[]) int execvp(char *pathname,char *argv[]) int execvpe(char *pathname,char *argv[],char *envp[]) exec函数族装入并运行程序 pathname,并将参数 arg0(arg1,arg2,argv[],envp[] )传递给子程序,出错返回-1。 在 exec函数族中,后缀 l、v、p、e添加到 exec后,所指定的函数将具有某种操作能 力。 有后缀 p时,函数可以利用 DOS的 PATH变量查找子程序文件。 l时,函数中被传递的参数个数固定。 v时,函数中被传递的参数个数不固定。 e时,函数传递指定参数 envp,允许改变子进程的环境, 无后缀 e时,子进程使用当前程序的环境。 void _exit(int status) 终止当前程序,但不清理现场 void exit(int status) 终止当前程序,关闭所有文件,写缓冲区的输出(等待输出 ), 并调用任何寄存器的"出口函数",无返回值 int spawn…运行子程序 int spawnl(int mode,char *pathname,char *arg0,char *arg1,…, char *arg n,NULL) int spawnle(int mode,char *pathname,char *arg0,char *arg1,…, char *ar gn,NULL,char *envp[]) int spawnlp(int mode,char *pathname,char *arg0,char *arg1,…, char *ar gn,NULL) int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…, char *a rgn,NULL,char *envp[]) int spawnv(int mode,char *pathname,char *argv[]) int spawnve(int mode,char *pathname,char *argv[],char *envp[]) int spawnvp(int mode,char *pathname,char *argv[]) int spawnvpe(int mode,char *pathname,char *argv[],char *envp[]) spawn函数族在 mode模式下运行子程序 pathname,并将参数 arg0(arg1,arg2,argv[ ],envp[])传递给子程序.出错返回-1 mode为运行模式: mode为 P_WAIT 表示在子程序运行完后返回本程序 P_NOWAIT 表示在子程序运行时同时运行本程序(不可用) P_OVERLAY 表示在本程序退出后运行子程序 在 spawn函数族中,后缀 l、v、p、e添加到 spawn后,所指定的函数将具有某种操作 能力 有后缀 p时, 函数利用 DOS的 PATH查找子程序文件 l时, 函数传递的参数个数固定. v时, 函数传递的参数个数不固定. e时, 指定参数 envp可以传递给子程序,允许改变子程序运行环境. 无后缀 e时,子程序使用本程序的环境. int system(char *command) 将MSDOS命令 command传递给DOS执行转换子程序,函数库为math.h、stdlib.h、ctype.h、float.h char *ecvt(double value,int ndigit,int *decpt,int *sign) 将浮点数 value转换成字符串并返回该字符串 char *fcvt(double value,int ndigit,int *decpt,int *sign) 将浮点数 value转换成字符串并返回该字符串 char *gcvt(double value,int ndigit,char *buf) 将数 value转换成字符串并存于 buf中,并返回 buf的指针 char *ultoa(unsigned long value,char *string,int radix) 将无符号整型数 value转换成字符串并返回该字符串,radix为转换时所用基数 char *ltoa(long value,char *string,int radix) 将长整型数 value转换成字符串并返回该字符串,radix为转换时所用基数 char *itoa(int value,char *string,int radix) 将整数 value转换成字符串存入 string,radix为转换时所用基数 double atof(char *nptr) 将字符串 nptr转换成双精度数,并返回这个数,错误返 回 0 int atoi(char *nptr) 将字符串 nptr转换成整型数, 并返回这个数,错误返回 0 long atol(char *nptr) 将字符串 nptr转换成长整型数,并返回这个数,错误返回 0 double strtod(char *str,char **endptr) 将字符串 str转换成双精度数,并返回这个数, long strtol(char *str,char **endptr,int base) 将字符串 str转换成长整型数, 并返回这个数, int toascii(int c) 返回 c相应的 ASCII int tolower(int ch) 若 ch是大写字母('A'-'Z')返回相应的小写字母('a'- 'z' ) int _tolower(int ch) 返回 ch相应的小写字母('a'-'z') int toupper(int ch) 若 ch是小写字母('a'-'z')返回相应的大写字母('A'- 'Z' ) int _toupper(int ch) 返回 ch相应的大写字母('A'-'Z') 诊断函数,所在函数库为 assert.h、math.h void assert(int test) 一个扩展成 if语句那样的宏,如果 test测试失败,就显 示一个信息并异常终止程序,无返回值 void perror(char *string) 本函数将显示最近一次的错误信息,格式如:字符 串 string:错误信息 char *strerror(char *str) 本函数返回最近一次的错误信息,格式如: 字符串 s tr:错误信息 int matherr(struct exception *e) 用户修改数学错误返回信息函数(没有必要使用) double _matherr(_mexcep why,char *fun,double *arg1p, double *arg2p,dou ble retval) 用户修改数学错误返回信息函数(没有必要使用) 输入输出子程序,函数库为 io.h、conio.h、stat.h、dos.h、stdio.h、signal.h int kbhit() 本函数返回最近所敲的按键 int fgetchar() 从控制台(键盘)读一个字符,显示在屏幕上 int getch() 从控制台(键盘)读一个字符,不显示在屏幕上 int putch() 向控制台(键盘)写一个字符 int getchar() 从控制台(键盘)读一个字符,显示在屏幕上 int putchar() 向控制台(键盘)写一个字符 int getche() 从控制台(键盘)读一个字符,显示在屏幕上 int ungetch(int c) 把字符 c退回给控制台(键盘) char *cgets(char *string) 从控制台(键盘)读入字符串存于 string中 int scanf(char *format[,argument…]) 从控制台读入一个字符串,分别对各个参数进行赋值,使用 BIOS进行输出 int vscanf(char *format,Valist param) 从控制台读入一个字符串,分别对各个参数进行赋值,使用 BIOS进行输出,参数从 V alist param中取得 int cscanf(char *format[,argument…]) 从控制台读入一个字符串,分别对各个参数进行赋值,直接对控制台作操作,比如显 示器在显示时字符时即为直接写频方式显示 int sscanf(char *string,char *format[,argument,…]) 通过字符串 string, 分别对各个参数进行赋值 int vsscanf(char *string,char *format,Vlist param) 通过字符串 string,分别对各个参数进行赋值,参数从 Vlist param中取得 int puts(char *string) 发关一个字符串 string给控制台(显示器), 使用 BIOS进 行输出 void cputs(char *string) 发送一个字符串 string给控制台(显示器), 直接对控 制台作操作,比如显示器即为直接写频方式显示 int printf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器),使用 BIOS进行输出 int vprintf(char *format,Valist param) 发送格式化字符串输出给控制台(显示器),使用 BIOS进行输出,参数从 Valist pa ram中取得 int cprintf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器), 直接对控制台作操作,比如显示器即为 直接写频方式显示 int vcprintf(char *format,Valist param) 发送格式化字符串输出给控制台(显示器), 直接对控制台作操作,比如显示器即为 直接写频方式显示, 参数从 Valist param中取得 int sprintf(char *string,char *format[,argument,…]) 将字符串 string的内容重新写为格式化后的字符串 int vsprintf(char *string,char *format,Valist param) 将字符串 string的内容重新写为格式化后的字符串,参数从 Valist param中取得 int rename(char *oldname,char *newname)将文件 oldname的名称改为 newname int ioctl(int handle,int cmd[,int *argdx,int argcx]) 本函数是用来控制输入/输出设备的,请见下表: │cmd值 │功能 0 │取出设备信息 │ 1 │设置设备信息 │ 2 │把 argcx字节读入由 argdx所指的地址 │ 3 │在 argdx所指的地址写 argcx字节 │ 4 │除把 handle当作设备号(0=当前,1=A,等)之外,均和 cmd=2时一样 │ 5 │除把 handle当作设备号(0=当前,1=A,等)之外,均和 cmd=3时一样 │ 6 │取输入状态 │ 7 │取输出状态 │ 8 │测试可换性;只对于 DOS 3.x │ 11 │置分享冲突的重算计数;只对 DOS 3.x int (*ssignal(int sig,int(*action)())() 执行软件信号(没必要使用) int gsignal(int sig) 执行软件信号(没必要使用) int _open(char *pathname,int access)为读或写打开一个文件, 按后按 access 来确定是读文件还是写文件,access值见下表 ┌──────┬──────────────────── │access值 │意义 ├──────┼──────────────────── │O_RDONLY │读文件 │O_WRONLY │写文件 │O_RDWR │即读也写 │O_NOINHERIT │若文件没有传递给子程序,则被包含 │O_DENYALL │只允许当前处理必须存取的文件 │O_DENYWRITE │只允许从任何其它打开的文件读 │O_DENYREAD │只允许从任何其它打开的文件写 │O_DENYNONE │允许其它共享打开的文件 └──────┴──────────────────── int open(char *pathname,int access[,int permiss])为读或写打开一个文件, 按后按 access来确定是读文件还是写文件,access值见下表 ┌────┬──────────────────── │access值│意义 ├────┼──────────────────── │O_RDONLY│读文件 │O_WRONLY│写文件 │O_RDWR │即读也写 │O_NDELAY│没有使用;对 UNIX系统兼容 │O_APPEND│即读也写,但每次写总是在文件尾添加 │O_CREAT │若文件存在,此标志无用;若不存在,建新文件 │O_TRUNC │若文件存在,则长度被截为 0,属性不变 │O_EXCL │未用;对 UNIX系统兼容 │O_BINARY│此标志可显示地给出以二进制方式打开文件 │O_TEXT │此标志可用于显示地给出以文本方式打开文件 └────┴──────────────────── permiss为文件属性,可为以下值: S_IWRITE允许写 S_IREAD允许读 S_IREAD|S_IWRITE允许读、写 int creat(char *filename,int permiss) 建立一个新文件 filename,并设定读 写性。 permiss为文件读写性,可以为以下值 S_IWRITE允许写 S_IREAD允许读 S_IREAD|S_IWRITE允许读、写 int _creat(char *filename,int attrib) 建立一个新文件 filename,并设定文 件属性。 attrib为文件属性,可以为以下值 FA_RDONLY只读 FA_HIDDEN隐藏 FA_SYSTEM系统 int creatnew(char *filenamt,int attrib) 建立一个新文件 filename,并设定 文件属性。 attrib为文件属性,可以为以下值 FA_RDONLY只读 FA_HIDDEN隐藏 FA_SYSTEM系统 int creattemp(char *filenamt,int attrib) 建立一个新文件 filename,并设定 文件属性。 attrib为文件属性,可以为以下值 FA_RDONLY只读 FA_HIDDEN隐藏 FA_SYSTEM系统 int read(int handle,void *buf,int nbyte) 从文件号为 handle的文件中读 nby te个字符存入 buf中 int _read(int handle,void *buf,int nbyte) 从文件号为 handle的文件中读 nb yte个字符存入 buf中,直接调用MSDOS进行操作. int write(int handle,void *buf,int nbyte) 将 buf中的 nbyte个字符写入文件 号为 handle的文件中 int
本文档为【C语言学习笔记】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_425781
暂无简介~
格式:pdf
大小:173KB
软件:PDF阅读器
页数:27
分类:互联网
上传时间:2010-05-11
浏览量:38