C语言数组教程-文档资料_第1页
C语言数组教程-文档资料_第2页
C语言数组教程-文档资料_第3页
C语言数组教程-文档资料_第4页
C语言数组教程-文档资料_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、输入理想的程序,输出快乐的人生主讲教师:孙运雷计算机与通信工程学院 计算机科学系入理想的程序,输出快乐的人生 基本数据类型基本数据类型:int, float/double, char 数据的处理数据的处理:根据问题需求,先作几个简单变量的定义,然后对这些变量赋值并作相应的运算即得结果 例如:输入10个实数,求其平均值。#include int main() int i; float num, sum=0; printf(input 10 numbers: n); for (i=1; i=10; i+) scanf(%f,&num); sum +=num; pr

2、intf(average =%.2f n, sum/10.); return 0;输入理想的程序,输出快乐的人生 一个人n门课的成绩怎样存储和处理? 一个班n门课的成绩怎样存储和处理? 如何从键盘输入100个数然后按相反顺序输出? 输入10个数,将高于平均值的数输出? .这些数据的特点:1.具有相同的数据类型2.使用过程中需要保留原始数据 为了方便的使用这些数据,C语言提供了一种构造数据类型:数组。一定要理解并用好数组!输入理想的程序,输出快乐的人生输入理想的程序,输出快乐的人生 数组是具有相同类型的数据的顺序集合 数组可以在内存中连续存储多个元素Rate945.398701

3、23数组元素数组元素下标下标Rate0 Rate1 Rate2 Rate3输入理想的程序,输出快乐的人生输入理想的程序,输出快乐的人生输入理想的程序,输出快乐的人生datatype arrayNamesize;类型说明符类型说明符int、char、float 数组名数组名常量表达式:常量表达式:数组大小数组大小int num50;char list_of_initials20;double pressure_level6;#define LIMIT 20. . . int emp_codesLIMIT;数组和变量一样,必须数组和变量一样,必须先定义后使用先定义后使用;数组大小定义好后,将不能改

4、变;数组大小定义好后,将不能改变;数组大小最好用数组大小最好用宏宏来定义,以适应未来可能的变化来定义,以适应未来可能的变化输入理想的程序,输出快乐的人生 C89:定义数组时不能使用变量定义数组的大小,即使在此之前变量已经赋值,只能使用整形常量定义数组的大小 C99:允许用变量定义数组的大小int array(10);int n=5; float scoren;int n;scanf(%d, &n);int datan;char str ;float char10;输入理想的程序,输出快乐的人生数组下标从0开始数组元素在内存中按顺按顺序连续存放序连续存放数组名代表数组的首地数组名代表数组

5、的首地址址,即score的值与score0的地址值相同内存内存score数组数组高地址高地址低地址低地址12345score0score1score2score3score4数组元素数组元素序号序号int score5;score输入理想的程序,输出快乐的人生C语言中,不允许引用数组进行运算,只能引用数组元素基本形式:数组名数组名下标表达式下标表达式;说明:p 下标表达式的值必须为整型p 下标从0开始,最大下标为数组长度减1p 是下标运算符,引用数组元素时根据数组首地址和下标计算出该元素的实际地址,然后取出该地址的内容如引用score2:q计算2000+2*4=2008q取出地址2008的内容

6、87907786score0score1score2score32000H2004H2008H200CH例如: int a5; a0=20; a4=2*a0;输入理想的程序,输出快乐的人生 int a10; scanf(%d,&a10); /*下标越界*/ 编译程序不检查是否越界 下标越界,将访问数组以外的空间,可能带来严重后果#include int main() int a = 1, c = 2, b5 = 0, i; printf(%p, %p, %pn, b, &c, &a); for (i=0; i=8; i+) bi = i; printf(%d , bi)

7、; printf(nc=%d, a=%d, i=%dn, c, a, i); return 0; b0b1b2b3b4 c a ib81234560784044484c5054585c6064686c9运行程序或单步执行观察变量变化情况可以看到,变量c和a的值因数组越界而被悄悄破坏了输入理想的程序,输出快乐的人生 初始化:在定义数组时给数组元素赋初值 形式:数据类型 数组名称数组长度=数值列表 在定义数组时,对全部数组元素赋初值: 例如:int a5=0,1,2,3,4; 此时也可省略数组长度 例如:int a =0,1,2,3,4; /只写int a;是错误的 在定义数组时,对部分数组元素赋

8、初值: 例如:int a5=0,1,2; /数组其余元素自动赋0 当初值的个数多于数组元素个数时,编译出错 例如:int a5=0,1,2,3,4,5;输入理想的程序,输出快乐的人生l只能逐个对数组元素进行操作(字符数组例外)l一般一维数组的处理用一重循环来实现,用循环变量的值对应数组元素的下标动态赋值方法:int a10,i;输入第3个数组元素:scanf( %d ,&a2);输入整个数组元素:for (i=0;i10;i+) scanf( %d , &ai );输出方法:输出第1个数组元素:printf( %d , a0);输出整个数组元素:for (i=0;i10;i+)

9、 printf( %d , ai );输入理想的程序,输出快乐的人生【例1】 输入10个整数,输出它们的和,并逆序打印这些数#include #define N 10 /数组程序推荐该用法int main () int i,sum=0,dataN; for( i=0; i=0; i- ) printf( %d, datai ) ; printf(n); return 0; 输入理想的程序,输出快乐的人生【例2】用数组来求Fibonacci数列前20项#include #define N 20int main() int i,fN=1,1; for(i=2;iN;i+) fi=fi-2+fi-1

10、; for (i=0; iN ;i+) if (i%4=0) printf(n); printf(%6d,fi); printf(n); return 0; 1 (n=1)Fn = 1 (n=2) Fn-2+Fn-1 (n3)Fibonacci数列:数列:1,1,2,3,5,8,13,21,34输入理想的程序,输出快乐的人生 数组是一组相同类型的数据组成的有限集合 数组是可以在内存中连续存储多个元素的结构 数组中的数据称为数组元素,数组元素个数称为数组长度 数组元素用数组名和元素下标表示,如score0, score1score859377880123score 4 数组名数组名(首地址首地址

11、)下标下标标明了元素在标明了元素在数组中的位置数组中的位置 ,从,从0开始开始数组元素数组元素下标下标数组大小数组大小输入理想的程序,输出快乐的人生输入理想的程序,输出快乐的人生int num42;4 X 2 = 8数据类型数据类型 数组名数组名常量表达式常量表达式1 常量表达式常量表达式2;为了便于理解,二维数组一般理解为几行几列的矩阵数据类型数据类型 数组名数组名行大小行大小列大小列大小;num00num01num10num11num20num21num30num31错误的定义错误的定义:int a3,4, b(3,4);int c , d(3)(4);输入理想的程序,输出快乐的人生int

12、 a23;a0a1a10a11a12a00a01a02二维数组元素在内存中的二维数组元素在内存中的存放顺序存放顺序:先按行存放,再按列存放先按行存放,再按列存放,即,即先顺序存放第先顺序存放第0行的元素行的元素再存放第再存放第1行的元素,行的元素,a00a01a02a10a11a12输入理想的程序,输出快乐的人生 二维数组元素的引用形式: 例如:int a34;a00=3;a01=a00+10;a34=5; /*下标越界*/数组名数组名行下标行下标 列下标列下标;输入理想的程序,输出快乐的人生按行赋初值:例如:int a23=1, 2, 3, 4, 5, 6; int a23=1, 4, 5;

13、按数组元素存放顺序赋初值:例如:int a23=1, 2, 3, 4, 5, 6; int a23=1, 2, 3;省略行数(根据初值个数和列声明自动确定行数)例如:int b3=1, 2, 3, 4, 5, 6, 7, 8, 9,10; int c3=1, 2, 3; 1 2 34 5 61 2 30 0 01 0 04 5 04行行1 2 03 0 0输入理想的程序,输出快乐的人生下列二维数组的定义都是错误的:int a, b3, c2;int arr2 = 1,2,3, 4,5,6;int b23=1, 2, 3, 4, 5, 6, 7, 8; 输入理想的程序,输出快乐的人生一般二维数组

14、的处理用二重循环来实现,用循环变量的值控制数组元素的下标int a34,i,j;输入方法:输入方法:输入第输入第i i行第行第j j列元素的值:列元素的值:scanf(“%d”, &aij);scanf(“%d”, &aij);输入整个数组元素:输入整个数组元素:for (i=0; i3; i+)for (i=0; i3; i+) for(j=0; j4; j+) for(j=0; j4; j+) scanf(“%d”, scanf(“%d”, &aij&aij); );输出方法:输出方法:输出第输出第i i行第行第j j列列元素的值:元素的值:printf(“

15、%d“, aij);printf(“%d“, aij);输出整个数组元素:输出整个数组元素:for (i=0; i3; i+)for (i=0; i3; i+) for(j=0; j4; j+) for(j=0; j4; j+) printf(“%d”, printf(“%d”, aijaij ); );输入理想的程序,输出快乐的人生为一个为一个3行行4列的二维数组输入列的二维数组输入/输出数据输出数据int main() int a34, i, j; for (i=0; i3; i+) for (j=0; j4; j+) scanf(“%d”,&aij); for (i=0; i3;

16、 i+) for (j=0; j4; j+) printf(“%5d”, aij); printf(“n”); return 0; 输入理想的程序,输出快乐的人生 【例3】将二维数组a转置存到二维数组b中654321a635241ba01b10a12b21设行下标为i,列下标为j,则: bji aij输入理想的程序,输出快乐的人生#include int main() int a23=1,2,3,4,5,6, b32, i, j; printf(数组a : n); for (i=0; i2 ; i+) for (j=0 ; j3; j+) printf(%5d, aij); printf(n)

17、; for (i=0; i2 ; i+) for (j=0 ; j3; j+) bji=aij; /* 转置 */ printf(数组 b: n); for (i=0; i=2;i+) for (j=0 ; j=1 ; j+) printf(%5d, bij); printf(n); return 0; 输入理想的程序,输出快乐的人生【例4】从键盘上为一个55整型数组赋值,找出其中的最小值和最大值(平均值,上三角),并显示出来分析: 设最大值为max,最小值为min. 1、令max =a00 min =a00 2、对0=row5,0=col5 (显然要用二重循环): 如果arowcolmax,

18、则将其存入max中。 3、输出min和max。输入理想的程序,输出快乐的人生#include int main () int row,col,a55,max,min; printf(请输入5个整数:); for(row=0; row5; row+) for(col=0; col5; col+) scanf(%d,&arowcol); min=a00;max=a00; for(row=0; row5; row+) for(col=0; col5; col+) if (arowcolmax) max=arowcol; printf(min=%d ,min); printf(max=%dn,

19、max); return 0;输入理想的程序,输出快乐的人生 数组是由同一种数据类型的元素系列构成 数组元素按顺序在内存中连续存储,并通过使用数组下标(或索引)来访问,首元素的索引值为0 数组必须先声明然后才能使用。声明一个数组只是为该数组留出连续内存空间,并不会为其赋任何值 一维数组定义:数据类型 数组名数组大小 二维数组可以看作是一维数组的数组 一维数组可用一个循环动态赋值,而二维数组可用二重嵌套循环动态赋值 C把数组名解释为该数组第1个元素(a0)的首地址,并且C编译器不检查所引用的数组元素下标是否越界输入理想的程序,输出快乐的人生输入理想的程序,输出快乐的人生根据实参类型实参类型的不同

20、,有两种传递方式 值传递 地址传递1、值传递方式类型 简单变量(数组之前所学的变量类型)方式 调用函数时:将实参值值复制一份传给函数的形参 调用结束后:原值不变原值不变(变的只是副本)特点 实参与形参占用不同的不同的内存单元输入理想的程序,输出快乐的人生#include void swap ( int x, int y ) int temp; temp = x; x = y; y = temp;int main ( ) int a, b; scanf(%d%d,&a,&b); swap(a, b); printf(n%d,%dn,a,b); .20002010201420042

21、008200C5变量变量a 变量变量b(main)9 变量变量temp 变量变量y 变量变量x(swap)559 59COPY输入理想的程序,输出快乐的人生2、地址传递方式类型 数组、指针、结构体方式 调用函数时:将实参地址地址复制一份传给函数的形参 调用结束后:原值改变原值改变特点 形参与实参占用相同的相同的内存单元输入理想的程序,输出快乐的人生值传递地址传递类型 简单类型数组、指针、结构体方式调用函数时:将实参值复制一份传给函数的形参调用结束后:原值不变(变的只是副本)调用函数时:将实参地址复制一份传给函数的形参调用结束后:原值改变特点实参与形参占用不同的内存单元形参与实参占用相同的内存单

22、元简记为:传递简单类型是值传递;传递其他类型是地址传递输入理想的程序,输出快乐的人生输入理想的程序,输出快乐的人生 1、一维数组元素作函数参数 【例】求5个整数中的最小数#include #define N 5int main( ) int aN,i,m; for(i=0;iN;i+) scanf(%d,&ai); m=a0; for(i=1;iN;i+) m=min(m,ai); printf(min=%dn,m); return 0; int min(int x,int y) return (xy?x:y);传递的是数组元素的值值,所以是值值传递方式输入理想的程序,输出快乐的人生

23、2、一维数组名作函数参数重点 定义阶段: 形参应定义为数组形式,形参数组的长度可以省略,但是不能省略,否则就不是数组形式 如 void fun(int myArray, int length) 调用阶段: 实参为数组名 如: fun(myArray); 数组名表示数组在内存中的起始地址,传递的是数组名,所以是地址传递方式输入理想的程序,输出快乐的人生#include float average(int stu10, int n);int main() int score10, i; float av; printf(Input 10 scores:n); for( i=0; i10; i+ )

24、 scanf(%d, &scorei); av=average(score,10); printf(Average is:%.2f, av); return 0;float average(int stu10, int n) int i; float total=0; for( i=0; i0 ? total/n : -1; /更安全更安全输入理想的程序,输出快乐的人生#include #define N 40int ReadScore(int score);int FindMax(int score, int n);int main() int scoreN, max, n;n =

25、ReadScore(score);printf(Total students are %dn, n);max = FindMax(score, n);printf(The highest score is %dn, max); return 0;输入理想的程序,输出快乐的人生max(i=0)max(i=2)max(i=3)输入理想的程序,输出快乐的人生 假设其中的一个学生成绩为最高maxScore = score0; 对所有学生成绩进行比较,即 for (i=1; i maxScore 则修改maxScore值为scorei 打印最高分maxScore输入理想的程序,输出快乐的人生 有一个班,

26、30个学生,4门课程成绩,要求:利用函数计算每个学生的平均分并在主函数中输出平均分。 思路 使用二维数组作为参数输入理想的程序,输出快乐的人生#include #define SN 30#define CN 4int main()int i,j;float scoreSNCN,sum,avgSN;for(i=0;iSN;i+) sum=0;for(j=0;jCN;j+) scanf(%f,&scoreij); sum=sum+scoreij;avgi=sum/CN;for(i=0;iSN;i+)printf(%.2fn,avgi);return 0;输入理想的程序,输出快乐的人生#in

27、clude #define SN 30#define CN 4int main() int i,j; float scoreSNCN,avgSN; for(i=0;iSN;i+) for(j=0;jCN;j+) scanf(%f,&scoreij); fun(score,avg); for(i=0;iSN;i+) printf(%.2fn,avgi); return 0;void fun(float aCN,float average) float sum; int i,j; for(i=0;iSN;i+) sum=0; for(j=0;jCN;j+) sum=sum+aij; ave

28、ragei=sum/CN; 二维数组作函数参数方法与一维数组相同需要注意的是:形参为二维数组时,可以省略第一维长度说明,但是不能省略第二维的长度说明。输入理想的程序,输出快乐的人生输入理想的程序,输出快乐的人生 冒泡排序, Bubble Sort 选择排序, Selection Sort 双向冒泡排序, Shaker Sort 插入排序, Insertion Sort 希尔排序, Shell Sort, 也称缩小增量排序 归并排序, Merge Sort 堆排序, Heap Sort 快速排序快速排序, Quick Sort 猴子排序, Bogo Sort 排序算法动画比较演示 http:/j

29、sdo.it/norahiko/oxIy/fullscreen http:/www.sorting- http:/ for (i=0; in-1; i+) for (j=i+1; j scorei) 交换成绩scorej和scorei 输入理想的程序,输出快乐的人生temp = scorej;scorej = scorei; scorei = temp; tempscorejscorei ?7050705070输入理想的程序,输出快乐的人生#include #define N 10int main () int i, j, t, aN; printf(顺序输入%d个整数: , N) ; for

30、(i=0; iN; i+) scanf(%d, &ai) ; printf(原序列为:n); for(i=0; iN; i+) printf( %d, ai) ; for(i=0; iN-1; i+) /*控制比较的趟数*/ for(j=i+1; jai) t=ai; ai=aj; aj=t; printf(n排序后的序列为:n); for(i=0; iN; i+) printf( %d, ai); printf(n); return 0;输入理想的程序,输出快乐的人生#include #define N 10void printArray(int a);void sort(int a

31、,int n);int main( ) int a=11,22,63,97,58, 80,45,32,73,36; printf(Before sort:n); printArray(a); sort(a,N); printf(After sort:n); printArray(a); return 0; void printArray(int b) int i; for (i=0;iN;i+) printf(%5d,bi); printf(n);void sort(int b, int n) int i,j,t; for (i=0;in-1;i+) for (j=i+1;jbi) t=bi;

32、 bi=bj; bj=t; 实参用数组名,相当于:实参用数组名,相当于:把把a的地址传给了形参的地址传给了形参b形参用数组定义形参用数组定义输入理想的程序,输出快乐的人生k=1k=2k=0k=1输入理想的程序,输出快乐的人生k=3k=4k=3k=4输入理想的程序,输出快乐的人生for (i=0; in-1; i+) k = i; for (j=i+1; j scorek)记录此轮比较中最高分的元素下标k=j; 若k中记录的最大数不在位置i,则交换成绩scorek和scorei, 交换学号numk和numi; 输入理想的程序,输出快乐的人生void DataSort(int score, lon

33、g num, int n) int i, j, k, temp1; long temp2; for (i=0; in-1; i+) k = i; for (j=i+1; j scorek) k = j; /*记录最大数下标位置*/ if (k != i) /*若最大数不在下标位置i*/ temp1 = scorek; scorek = scorei; scorei = temp1; temp2 = numk; numk = numi; numi = temp2; 输入理想的程序,输出快乐的人生【例4】用冒泡法对数组元素进行排序,排序后元素按数值从小到大顺序排列冒泡排序: 依次比较相邻的两个数,

34、将大数上升(放右边) 第一趟:首先比较第1个和第2个数,将大数放右边。然后比较第2个数和第3个数,如此继续,直至比较最后两个数,结果是将最大数放最右边。 第二趟:重复以上过程,仍从第一对数开始比较,将大数放右边,一直比较到倒数第二对数,第二趟结束,得到一个次大数。 如此下去,直至最终完成排序。 由于排序过程如同冒气泡,所以称作冒泡排序 输入理想的程序,输出快乐的人生for (i=0; in-1; i+) for (j=0; j aj+1) 交换aj和aj+1;for (i=0; in-1; i+)k = i; for (j=i+1; j ak) k = j; /*记录最大数下标位置*/if (

35、k!= i) /*若最大数不在下标位置i*/交换aj和ak;for (i=0; in-1; i+) for (j=i+1; j ai) 交换aj和ai“;输入理想的程序,输出快乐的人生基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。整个排序过程需要三步:寻找一个中心元素(通常为第一个数)所有小于中心点的元素,都移到中心点的左边;所有大于中心点的元素,都移到中心点的右边。1. 对中心点左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。输入理想的程序,输出快乐的人生

36、 需要解决的问题 当已知中心元素的前提下,怎样将其他元素划分好?(即:大于中心点在之后,小于中心点在之前)i012345i=0i=1j=5j=5ji=1j=3i=1j=4i=2j=3i=2j=2算法终止算法终止该算法有没有可以改进的地方?输入理想的程序,输出快乐的人生 通过动画,可以看出每次中心元素都要交换。根据划分的思想最后位置一定是中心元素i012345i=0i=1j=5j=5ji=1j=3i=1j=4i=2j=3i=2j=2算法终止算法终止可以申请一个变量保存中心元素,以避免交换输入理想的程序,输出快乐的人生void QuickSort(int *arr, int left, int r

37、ight) int i,j,temp; if(lefttemp & ij) j-; /从右向左找第1小于中心点的位置j if(ij) /找到了,位置为j arri = arrj; i+; /将第j个元素置于左端并重置i while(arritemp & ij) i+; /从左向右找第1个大于中心点的位置i if(ij) /找到了,位置为i arrj = arri; /将第i个元素置于右端并重置j j-; while(i!=j); arri = temp; /将中心点放入它的最终位置,本次划分结束 QuickSrt(arr, left, i-1); /对中心点左半部递归调用本函数

38、 QuickSort(arr, i+1, right); /对中心点右半部递归调用本函数 *arr为数组指针,下一章讲解 输入理想的程序,输出快乐的人生 在头文件中,提供了一个快速排序函数qsort,它的函数原型如下:void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *); 四个参数分别是: 1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针,用于确定排序的顺序 要求学完指针后能熟练调用,有余力的同学可以先学习先用 http:/ 表中除首元素和尾元

39、素外,每个元素都有且只有一个前驱;有且只有一个后继。 a0ai-1,ai,ai+1aN-1 数组和链表是线性表的两种实现方式。 链表选学输入理想的程序,输出快乐的人生 例1假设数组a中已有5个整数,要插入一个数x到第1个数前面并保持这5个数的前后关系不变,试编程实现分析分析:数组最终存放数组最终存放6个元素,应定义数组个元素,应定义数组a6元素下标012345初始状态12345最后一个元素没有使用移动过程12345从右边起各元素依次右移第一个元素已不再使用插入元素12345首元素位置插入数XX432151输入理想的程序,输出快乐的人生#include #define N 5int main()

40、int i, x, aN+1 ;printf(Input %d numbers:, N ) ;for( i=0; iN; i+ ) scanf(%d, &ai) ;printf( Before insert: );for( i=0; i0; i- ) ai = ai-1 ;ai = x ; / a0=xprintf(After insert: );for( i=0; iN+1; i+ )printf(%d, ai);printf(n); return 0; 后移并后移并插入数据插入数据输入理想的程序,输出快乐的人生 【例2】随机产生20个整数保存在数组中,试用顺序查找方法查找某个整数。

41、 分析: 产生随机数:使用函数srand()和rand() 顺序查找:从数组的第1个元素开始逐一与要查找的数据进行比较,如果有一个元素与之相同,就是找到了,查找过程即可结束。如果所有元素都不同于要查找的数据,则没找到。输入理想的程序,输出快乐的人生#include #include #include #define N 20int main ( ) int i, x, aN,find=0; srand(time(NULL); /*保证每次产生不同的随机数序列*/ for(i=0; iN; i+) /*产生N个小于100的随机数*/ ai = rand( )%100; if(i%10=0) pr

42、intf(n); printf(%6d,ai); printf(n要查找的整数是? ); scanf(%d, &x ); for(i=0; iN; i+) if(x=ai) find=1; break; if(find)printf(找到了,%d是数组的第%d个元素。n,x,i+1); else printf(没有找到%d。n , x);return 0;一旦找到,设置find=1,通过break语句跳出循环输入理想的程序,输出快乐的人生 【例3】设整型数组a10 ,删去某数x,并使原来的顺序关系不变,试编程实现。 问题分析: 主要解决两个关键问题: 查找某个元素是否等于x:用顺序查找

43、法 找到后删除该元素:该元素后的数组元素逐个向前移动一个位置输入理想的程序,输出快乐的人生#include #define N 10int main () int i, k, x, aN, del=0, m=0 ; printf(输入%d个整数:, N) ; for(i=0; iN; i+) scanf(%d, &ai) ; printf(原数组为:); for(i=0; iN; i+) printf( %d, ai) ; printf(n输入要删除的数: ); scanf(%d, &x ); for(i=0; iN; i+) if(ai=x) for(k=i+1;kN;k+) ak-1=ak; del=1; m+ ; if (del) printf(删除%d后的数组为: , x);for(i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论