




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于标准规定:大家都知道1+=2到目前为止世界上的所有数学家都没有证明这个结论(中国的证明了1+=3但也未证明+1=2,但是这个结论用了好多年了,在学习语言的过程中遵守标准规定会让少走好多冤枉路十进制由0,1,2,3,4,5,6,7,8,9这十个数字构成25=10^0*5+625=10^0*5+10^1*2+二进制由0,1这两个数字构成10010=2^0*0+2^1*1+2^2*0+2^3*0+2^4*1=18(十进制101=2^0*1+2^1*0+2^2*1=5(十进制八进制由0,1,2,3,4,5,6,7这八个数字构成045=8^0*5+8^1*4+8^2*0=37(十进制012=8^0*2+8^1*1+8^2*0=10(十进制0x010=16^0*0+16^1*1+16^2*0=16(十进制0x1ab=16^0*11+16^1*10+16^2*1=427(十进制100101结果为注意:得到的该串数字倒着来才是2511001=2^0*1+2^1*0+2^2*0+2^3*1+ 045=8^0*5+8^1*4+8^2*0= 012345670123456789abcd 32位系统举例:+5,-正数的原码,反码,补码都一样,例如:十进制的原码反码补码原码:1000000000000000000000000000反码:11111111111111111111111111111010补码:1111111111111111111111111111bit(位),Byte(字节1KB=1024 1K字节=10241MB=1024 1M字节=1024K1GB=1024 1G字节=1024M1TB=1024 1T字节=1024G计算机硬件只能识别高低电平,故是以二进制的位为基础1个字节八位,每一个字节又对应一个内存地址,这个地址可以直接拿来用,可以管它叫做地址常量或指针而每个字节里面有八位的空间,即一个地址常量对应一个内存空间.而地址常量用起来很不方便,那么就有了专门地址常量的变量了,这个变量就是指针变量.指针即地址,有时候有些人会把指针变量简称为指针,这样就把指针和指针变量的概念了,进而造成了指针不容易理解的问题.因此,作为一个程序员在描述问题的时候要把概念表达清楚要更专业一些.用编辑器(im编辑器或者其他文本编辑器)编写程序源代码:源程序代码是给程序员看的,计算机不认识,因为计算机只认识机器代码(即只有0和1构成的代码).故编辑完源程序在交给计算机执行之前还得做一些翻译性的工作用预处理器执行预处理操作把常量符号都用实际的常量文本替换,包含必要的头文件#defineNUM10在后面的程序中凡是遇到NUM这个常量符号都用用器把标准系统库里的函数与上面汇编的结果到一起并生成计算机认识的机器代码,并到相应的目标文件 intmain(void){ oworld\n”);return0;}#include该行代码中include是一个预处理指令,stdio.h是系统库中标准输入输出头文件,c语言中很重要的一个原则是先后使用.stdio.h头文件中是一些c标准函数库stdio.h在macos系统中的路径为头文件用"hade.h"一般表示eadr.h是一个自定义的头文件,这种情况下程序在编译的时候是先在当前路径下寻找headr.h.如果找不到,再到默认系统库路径下去找.操作系统允许的程序使用计算机的计算资源,main()函数就是的程序使用cpu计算资源的唯一的一个接口,这个接口是操作系统提供的.任何一个应用程圆括号中的vid表明该函数没有传递参数c9标准要求如果一个函数没有参数就用vod代替函数参数的位置当然,这个位置如果空着好像编译器也不会报错,因为新的标准完全兼容旧的标准。mi函数有参数的情况下形式一般是itmin(intarc,car*rgv[]).此时,min函数的参数是命令行参数arg表示命令行总共有几个参数,rgvi]表示命令行的第几个参数,如rgv0],rgv1],arg[2]arg[3]arg[4]/*main_arguments.c*/intmain(intargc,char{intfor(i=0;i<argc;{}return}$gccmain_arguments-o$./main_argumentswearetheworld!$return语句,在这里return返回了一个值0.程序有没有跑完.计算机是知道的,#if0//code..只能注释一个逻辑行的代码/*code...*可以注释多行代码)三定义一个变量 registerrestrictreturn typedefunionunsignedvoid volatilewhile 数学常量:直接即可,如:浮点常量5.234,8.12398字符常量:在c程序中常量字符是用单引号括起来了字符串常量:在c程序中常量字符串是引号引起来的,如:"oworld","gotodie","sonofbitch"charintfloatdouble变量名字是一个c标识符,满足c标识符规定:由字母,数字,下划线组成的字串,并且不能以数字开头,而且字串总长度过63个字符(c99新标准),c语言中所有[数据类型][变量名字charch;//ch就是一个变量的名字,char是一个cint该条语句与上面一个字符变量很类似,即编译器执行到该条语句依然会为num变量定义对应在内存中的操作如图取地址运算符&,变量在定义的时候是会分配内存的,这个内存一般是操作系统分配的,操作系统是知道变量的地址的,有些时候需要使用这个内存的地址,就可以取值运算符*,当直到某个内存对应的地址之后使用*(内存地址)就能取道该内存空间的数据不同的系统平台相同类型数据所占内存不一定一样,而还需要获取具体机器上某个类型变量在内存中所占内存大小那么就需要用到izef运算符,有个类型sie_表示izef运算符的结果类型.不同的操作系统上sizef型很有可能不同但是不同的操作系统中都定义了本系统上得sizet具体类型所以sie_这个类型使程序得可移植性增强了在macs系统中sze_为unsignedlongintnum;printf("%lu\n",sizeofnum);szef运算符在测量一个开发平台上变量所占内存大小,如果是直接测量一个变量名字,用前者.而若被测量的对象是类型名字,必须要加上圆括号().为了避免每次用之前都要判断是变量还是类型那么可以都加上圆括号.拓展short longC99标准规定:shortint类型变量所占内存空间大小不得大于int类型变量int类型变量所占内存空间大小不得大于longint类型变量longlongunsignedunsignedlong1)pint()函数第一个参数是一个格式化字符串,格式化字符串就是控制输出内容的格式而格式化字符串中可以有不同数据类型的占位符,而一个占位符对应后面一个参数而且占位符个数必须同格式化字符串后面参数的个数匹配,prntfpritf()函数的返回值的意义是成功打印到到终端上字符的个数.例如charch;intn;doublem;printf("%c%d需要注意一个地方,sanf()第一参数也是一个格式化字符串而在这个格式化字符串中要求比较严格,即有那些占位符就有那些后边参数与之对应,而其他的一些字符,比如说空格,逗号制表符,回车等一些不必要的间隔符号就不要往格式化字符串里面写了,以免产生不必要的麻烦.例如int scanf("%d从终端一个字符,其返回值是所字符的ascii值,如果只想字符只需要调用一次即可,如果想多次使用这一次所的字符那么就必须得将该字符charch;练习题—表达式的概念:由操作数和运算符构成,简单表达式可以构成复杂表达式常量表达式 加法表达式 赋值表达式 关系表达式 逻辑表达式 在程序中,任何东西都是表达式,计算机能识别的是合语法的表达式,否则为表达式二语句的概念注意语句有单条语句和复合语句之分,复合语句是多条语句用花括号{}括起来,在逻三运算符(从运算符的操作数个数,运算符的结合顺序,运算符的优先级,运算符的使用形数算赋值运算 注意:=左边必须是变量,而等号右边只要是有确定值的表达式就行了加法运算符+inta=3,b=4;有时会用作表示正数运算符,结合顺序是从右到左,有一个操作数,例如:减法运算符-inta=3,b=4;-有时会用作表示负数运算符,结合顺序自右往左,有一个操作数,例如乘法运算符*inta=3,b=4;*有时候也可以有一个操作数,这个时候该符号的意义是指针间接取值运算intint*p=&n; printf("%d\n",*p);//*在这行是间接运算符除法运算符/inta=3,b=4; inta=3,b=4;注意自加运算符++intn=5;后加加表示先取用n的初值,用完后把n的值加1,并把加1的结果存放到n变量所前加加表示在取出n被取用之前,n的值加1并把结果存放到对应n变量的内存,自减运算符--intn=5;后减减表示先取用n,用完后把n的值减1,并把减1的结果存放到n变量所对应的前减减:先把n的值加1并到n原来的内存中,再取用n值.关系运算符int> < <= (5)== (6)!= 逻辑运算符inta=10,b=15,c=10;&&(a>b)&&(b>c)||(a>b)||(b>c)!!a该表达式的值为0,练习一计算机执行的顺序结构二分支结构{} 表达式为真则执行tateent,执行完sttemens即结束判断语句下面的语句.语句{}{}
{}elseif(表达式{}:::{}
来执行,一旦找到某个表达式为真的分么就去执行对应的分支语句.一旦执{}elseif(表达式{}:::elseif(表达式{}{case常量表达式1:case常量表达式2::::}如果没有找到与表达式匹配的项,就执行default那个对应的语句,之后退出注意 每一个常 每一 不用rea;有时会很有用看情况要不要beak一般情况下执行完要退出sith的只能用bea来退出如果没有brak那么swtc会先查找与表达式匹配的之后不再检查 是否与表达式匹配而顺次执行下去行完整个swith剩下的部分有时 也可以利用swtc这个特性来实现我们的代码功能.default语句就相当于if...elseif…else结构里的最后一个else,练习题MondayTuesdayWednesdayThursdayFridaySaturdaySunday {}for循环的优点:表达式1:仅仅只在进入循环的时候执行一次,表达式2每一次进入循环体执行代码的之前,都要判断该表达式是否为真若为真表达式3:注意循环计数器的增加和循环结束判断条件都可以很灵活的使用,另外表达式1{}{d…whle()语句与whil()循环功能差不多的不同是do…hil()条件判断循环,这就导致o..whie结构在第一次执行循环体的时候是没有经过任何条件判断的,即第一次循环肯定执行一次.而while()循环是一个条注意:do…while()循环后有分号,这点跟while()和for循环都是不一样的for(i=0;i<10;{break;//注意这里break跳出的是循环而不是if分之语句printf("%d",i);}该程序的运行结果是:0123for(i=0;i<10;{printf("%d",i);}该程序打印出来的结果是:01234678嵌套循环intfor(i=0;i<5;{for(j=0;j<5;{}}*intfor(i=0;i<=n-1;{for(j=0;j<=n-1+i;{if(j<n-1-i)printf(“}else}}}练习题打印出从2〜~100打印出从1900〜~2014 计算出从2〜~100之间(包含边界)所有偶数的的和***1123581321340.63%期限=10.66%期限=20.69%期限=30.75%期限=50.84%期限=86*7=426*8=487*8=566*9=547*9=638*9=72请分别使用for、while、do...while输出1到100决定比赛.有人向队员打听比赛的:a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的.1F**AA落输入一个多余2位的整数,将该数按照1进制逆置,例如输入1245输出5432,输入12,输出21(很好用的一个算法)2222222222 一个自然数如果恰好等于它的因子(除了自身以外的约数)之和,这个数称作完美数(简称完数例如6的所有因子有1,2,3,6而6=1+2+3所以6是完数找出猴子第一天摘下许多桃子,当天吃了一半,还不过瘾又多吃一个以后每天吃前一天剩下桃子的一半零一个到了第十天发现只剩下一个桃子了多少桃子箴言:海阔凭鱼跃,定义一个数组:类型 数组名[数组元素个数类型名:char,int,float,double,char*,int*,float*,double数组名:只要符合c语言标识符规范即可数组元素个数:可以使常量,比如4,5intintchar定义其他类型的数组依上例可以推出来,如float,double,char*,int*,float*,double*以此类推数组是由多个相同类型的数据构成的一个集合,这就涉及到到究竟如何每一个数组元素.数组元素方式如下:注意:所有数组的元素都是从0开始的,所以程序员数羊总是感觉少一只intarray[0数组第1个元素array[1]数组第2个元素array[2]数组第3个元素array[3]数组第4个元素array[4]//数组第5个元素数组是多个同种类型数据的一个集合,数组每一个元素时可以使用循环,恰好让intarr[5],i;for(i=0;i<5;i++){}inta[100];//下标的范围是0~99int 除错误的,从这一点出发某些时候错误反馈也是必要的,即根据错误反馈来定位出错的位置.下面一个数组常见错误:错误叫作内存越界,即在内存上超出了你限操作的内存是无法预料的SegmentdefaultBuserror遇到这些错误首先需要考虑的是内存操作出错了,即内存.的操作内存又被叫做内存越界.存在内存越界的程序的结果是不可的,即使执行的结果是正确的,就程序本身而言程序是有Bug的.保证程序没有内存越界是程序员完全初始化:inttest[0]对应内存空间的存放的值为11test[1]对应内存空间的存放的值为22test[2]对应内存空间的存放的值为33test[3]对应内存空间的存放的值为44test[4]对应内存空间的存放的值为55int配恰好能够这些数据的内存空间大小.所以data数组有5个整型元素例如:intarr[10]={1,2,3,4};这时该数组的10个元素依次为123400000特例:的部分初始化,如int指定初始化,如int注意数组只有在初始化的时候可以整体赋值,单就赋值而言数组是不能被整体赋数组名字:数组的名字是一个常量,即首元素的地址数组特性数组排序练习题定义一个有10个整型元素的数组,这个数组的每一个元素都是通过终端输入的,要求把这个数组中每一个元素都往后移一个位置,最后一个元素移到第一个元素位置例如:移动前:1234567890,移动后:0123456789定义一个有0个整型元素的数组,这个数组的每一个元素都是通过终端输入的,要求把这个数组中每一个元素都往后移2个位置,最后一个元素移到第2个元素位置,倒数第二个元素移到第一个元素位置,例如:移动前:0123456789移动后:8901234565位数并且输出,例如inta[5]={1,2,3,4,5};则输出的是一个整数54321分别定义两个数组,这两个数组都是整型,且都有5个元素的空间,向其中一个a[0]=5,a[1]=4,a[2]=3,a[3]=2,a[4]=1,打印结果为:5432定义一个有10个整型元素的数组,并输入10个数,把这10个元素按照奇数偶例如intarr[6]={2,3,2,3,5,6},打印结果如下:110859932674约瑟夫环:有5个人每个人的序号分别是1,23,4,5,围着一张圆桌坐着,从1开始报数,报数为3的人退出,然后再从1开始报数,报数为3的人仍旧退出,直到桌旁只剩下一个人问剩下的这个人序号是几?二字符数组和字符串char注意在c语言里面常量字符必须用单引号引起来,单单只是一个字母,只能是一个 oworld","abcd",这些被双引号引起来的一个字串,管他叫常量字符串注1>常量字符串必须是被双引号""引起来的2>常量字符串,即该字符串是常量,3>字符串尾部有一个结束标识('\0'),上管他叫尾零.尾零并非是数字0,charstr[]="Getoutofstr所占内存空间大小为17,因为"Getoutofhere."是一个常量字符串chararr[5]="abcd";思考 的可变字符串:占有自己内存,可以改变字串内容,必须要有'\0'.一般是在字注意字符数组不一定是字符串,而一般想要操作一个字符串基本上是先把字符串拷例如charchar当叫字符串的时候默认就是带尾零的一个字串,否则不能叫字符串charstr[]=“123fdd”,这个数组中有3给一个完全由英文字母构成的字符数组加密加密原则除了Z’和’z之外字母的asii码值都增加1即’’变成’E’.’Z加密为A’,’z’加密为’a’把结果输出验证一个字符串为”Theyarestudents.”和输入第二个字符串”aeiou”,则删除之后的第一个字符串变为”Thyrstdnts.”定义一个有1个元素的字符数组,输入11个字符,判断该字符数组中内容是否是一个大陆机号.已知国内机号都是以开头,总共1位,每一位都是一个数字字符. 二维素组:即数组的数组,就是这个二维数组中的每一个元素又是一个一维数intarr[3][5];二维数组的元素arr[0][0]是二维数组中第1个子数组中的第1个元素arr[0][1]是二维数组中第1个子数组中的第2个元素arr[0][2]是二维数组中第1个子数组中的第3个元素 arr[1][0]是二维数组中第2个子数组中的第1个元素arr[1][1]是二维数组中第2个子数组中的第2个元素arr[1][2]是二维数组中第2个子数组中的第3个元素 arr[2][0]是二维数组中第3个子数组中的第1个元素arr[2][1]是二维数组中第3个子数组中的第2个元素arr[2][2]是二维数组中第3个子数组中的第3个元素 intarr[3][5],i,j;for(i=0;i<3;i++){//外层循环控制哪一个子数组for(j=0j<5j+内存循环控制子数组中每个元素printf(“%d}}完全初始化intintintarr[3][5]={1,2};120000000000000int120034005600指定初始化int000000508000int二维数组的内存intarr[3][5],i,j;for(i=0;i<3;i++){for(j=0;j<5;j++)printf(“&arr[%d][%d]=%p}}练习11121 一块代码有一个具体的功能,很多时候这个功能要在多处用到,这个时候把这个模块封装成函数,每次遇到相同功能需求的时候直接拿过来使用,而不必再重新构思这块功能怎么用代码来实现.函数能够让某一块代码更方便的重复使用,这就是平常所说的代码复用性.一个函数都是一种功能的具体代码实现出某个功能模块并且这个接口都定好了,需要做的是用相应的语言把这个功能做出来即用相应的具体代码来实现这个功能.void{intfor(i=0;i<5;{for(j=0;j<5;{}}}函数定义分为两部分:函数返回值类型:intmain(void)中main函数的返回值类型是int,这里函数参数列表:函数从他的调用函数获取必要的数据信息,获取了几个数据,每一个数据是什么类型都得写明白了,y_pint参数列表使用vid表示没有参数即该函数没有从它的调用函数获取任何信息量叫做形参变量,形参变量之前必须单独的有其类型,不同的形参变量之间用逗号隔开.形参变量与函数实体中的普通变量基本一样,只不过形参一般用法是return要返回的值;returnreturn用,即在return语句后的语句也执行不到.先后使用的原则也适用于函数,函数是为了方便编译器检查函数调用的时候函数需要告诉编译器如下信息 my_print函数的如下voidmy_print(void);//必须保证调用之前#include<stdio.h>intmain(void){return0;}有参函数上面定义的那个函数即没有参数也没有返回值,它的通用性很差因为它只能打印一个行列的*的矩阵,而如果想要打印一个行列*的矩阵或者行列的矩阵就需要修改源代码而大家知道函数增强了代码的复用性既然想要复用一般是不改动源码的而依然想要打印一个3行列矩阵或行列矩阵并且还不想要改动源码这就要用到函数参数了通过参数来让调用函数来控制打印几行几列,打印大那一个字符.如下修改上面函数定义:voidmy_print(intline,charch)//{intfor(i=0;i<line;{for(j=0;j<line;j++)}}}#includevoidmy_print(intline,charch);//该函int{my_print(3,’*’);//打印一个3行3列的*矩阵my_print(3,’#’);//打印一个3行3列的#矩阵return0;}函数在调用时操作系统会为该函数分配内存空间,用来函数调用过程中用到的数据当函数调用完毕,函数会掉内存.所谓的函数内存是指函数将其原来所占内存空间的使用权限还给了操作系统,操局部变量:凡是在函数定义的变量都是局部变局部变量的作用域仅限于当前函数,每一个函数在调用时都有其本身独立的函数栈内存,不同函数的栈内存互不干扰,即使不同函数中有相同名字的变量,这些变量的内存地址也不一样.这就如同有一个黑鬼叫奥巴马中国居然也有一杂种马叫奥巴马,这两个奥巴马不是一个东西此奥巴马非彼奥巴马,这俩奥巴马真不是一个玩意.普通局部变量存在于栈内存空间,而静态局部变量在静态区.这就导致了静态局部变量的生命周期从第一次定义时开辟内存空间直到整个工程结束.比普通变量的生命周期长很多不过静态局部变量的作用域仍然只限于当前函数全局变量:全局变量的生命周期是从全局变量定义出来到整个工程结束,全局变量很,在任何之前学过数算符,现在用函数来实现不同运算.如加法运算封装成成函数#includeintaddition(inta,intb);intmain(void){inta,b,res;return0;}intaddition(inta,int{intres=a+b;returnres;//return}递归函数#include<stdio.h>voidrecursion(intn);intmain(void){return0;}voidrecursion(int{printf(“&n=%preturnprintf(“&n=%p}&n=0x7fff5e868c3cn=4&n=0x7fff5e868c1cn=3&n=0x7fff5e868bfc练习输入一个整数,计算该整数所对应的斐波那契数列项的值(为1,之后每一项的值分别是前两项的和.例如:1123581321数原型如下:doublemin(double,double,double);函数原型:intrev(int编写一个程序:有5个人坐在一起,问第5个人多少岁?他说比第4个2岁.问个人岁数他说比第3个岁问第3个人又说比第2个2岁.问第个人,说比第个岁最后问第个人,他说是10岁.请问第5个人多大显然,这是一个递归问题要求第个人的,就必须先知道第4个人的而第4人的也不知道,要求第4个人的必须先知道第3个人的,而第3个人的又取决于第2个人的,第2个人的取决于第1个人的,而且每一个人的都比其前1个人的大指针即内存地址,硬件厂商在做内存的时候都是按照一定规律来制作内存内存可门牌号的地址都是特殊的常量(4G内存可以表示地址范围是0x0~0xffffffff),而专注意:指针变量与普通变量的区别是指针变量的值只能是地址常type*指针变量 //了type类型的一个指针变量类型如:structstudent,unionmydir等intint*可以看成是一个类型,即整型指针类型p是一个变量,有它自己的内存.而p既然是一个指针变量,那么该指针变量所的值是一个地址,而且只能是一个地址.并且p是整型指针变量,故的只能是一个例如intint*p=&n;//*与数据类型共同构成指针类型,* 通过指针途径修改一个变量的值,效率不如直接通过变量名修改.因为前者还牵涉到一个间接取值的运算.这里仅仅只是为了讲解指针的用法,仅仅修改变量的值显然不是指针的主要用法,指针的主要用途是可以指向内存地址或者说是在允许范围内指针可以的操作自己的内存空间.注意:在一个指针变量的过程中所用的与通过指针间接取用数值时候的*意义是不同的.后者是一个间接取值运算符而前者充其量仅仅只是一个类型说明符的一部分.intp+1;//表示偏移一个整数类型所占内存空间(1*4字节)后的地址表示偏移两个整数类型所占内存空间(2*4字节)后的地址::intintint当定义一个指针变量,并且未给指针变量赋值时指针变量的是一个随机的数据管这样的指针叫做野指针,因为其指向即指针变量的值)的内存地址很可能是当前程序无权限的.void*表示任意指针类型,这个类型不能定义变量,并且该种类型变量使用之前必二级指针:指针数组:数组的每一个元素都是一个指针变量指针与数组intint*p=arr有了这条语句那么指针变量p可以像数组名字arr一样用for(i=0;i<5;i++){printf(“%d printf(“%d printf(“%d printf(“%d}charchar指针与函数:指针存在的一个最大价值就是跨函数栈内当想要改变调用函数中某个整型变量的数值是,实际参数传递的是该变量的地址因为只有知道了内存地址才可以改变该地址空间的值而传参的实质是拷贝,那么被拷贝的形式参数变量得是一个能一个整型变量地址的变量即一级整型指针变量举个案例,定义一个函数,该函数调用之后会改变调用函数中变量的值:#includevoidchange_value(int*p);intmain(void){intn=2;printf(“%d\n”,n)打印n的值是return}voidchange_value(int{}同理,当想要改变调用函数中某个指针变量的值时实參需要传这个指针变量的地址,而形参变量就得是一个二级指针变量,因为二级指针变量的值是一级指针变量的地址.练习voidchange(int*p,int函数头为:voidsort(int*p,intn)voidmove_right(int*p,intn,intm)p用来数组首个元素地址复杂指针数组指针:intintint函数指针:intadd(inta,int{return}int(*p)(int补充:指针函数, typedefchartypedefint//为int(*)[5]这个数组指针类型起一个别名叫typedefint//为int(*)(int,int)这个函数指针类型定义一个别名 constinta;intconst2constinta=12;intint*constconst*p=&a;//该语句等价于 例如char*strcpy(char*dst,constchar*src)inta=12;intintconst*constp=&a;//等价于constint*const voidvoid*修饰返回值表示函数的返回值为任意指针类型void*malloc(size_tsize);char*p;{printf(“mallocfailed!\n”);return-1;}mllc执行成功的时候,用完这块内存,需要手动的掉该内存.因为操作系统/r/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吊顶材料合同范例
- 卫生用品合同范本
- 下水管改造合同范本
- eve快递合同范本
- 合作开宾馆合同范本
- 卫浴仓库用工合同范本
- 区域包干合同范本
- 住户拆迁补偿合同范例
- 卤菜素菜采购合同范本
- 制沙机合同范本
- 2024解析:第八章牛顿第一定律、二力平衡-基础练(解析版)
- 《传媒法的原则》课件
- 2024解析:第十三章内能-基础练(解析版)
- 2024年网格员考试题库含答案
- GB/Z 44047-2024漂浮式海上风力发电机组设计要求
- (完整)2019年风廉政建设主体责任落实情况监督检查记录表
- 《selenium安装教程》课件
- 2024年辽宁省中考数学真题卷及答案解析
- 绝句迟日江山丽说课稿
- 物业员工安全知识教育培训
- 动物性食品卫生检验教案2
评论
0/150
提交评论