PHP工程师面试笔试分类模拟4_第1页
PHP工程师面试笔试分类模拟4_第2页
PHP工程师面试笔试分类模拟4_第3页
PHP工程师面试笔试分类模拟4_第4页
PHP工程师面试笔试分类模拟4_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

PHP工程师面试笔试分类模拟4

一、选择题

1.取得搜索语句的结果集中的记录总数的函数是______

A.mysql_fetchrow

B.mysql_rowid

C.mysqlnumrows

D.m(江南博哥)ysql_fetch_array

正确答案:C

[解析]对于选项A,mysql_fetch_row()函数的作用是从结果集中取得一行作为

数字数组。选项A错误。

对于选项B,不存在mysql_rowid()函数。选项B错误。

对于选项C,mysql_nuni」ows()可以返回结果集中行的数目。选项C正

确。

对于选项D,mysql_fetch_array()函数从结果集中取得一行作为关联数组

或数字数组,或二者兼有。选项D错误。

所以,本题的答案为C。

2.当PDO对象创建成功以后,与数据库的连接己经建立,就可以使用PDO对

象了,下面不是PDO对象中的成员方法的是_____

A.errorlnfoO

B.bindParcimO

C.exec()

D.prepare()

正确答案:B

[解析]bindParam是PDOStatement类的方法,其余是PDO类的方法

(PDOStatement也有errcrlnfo方法)。

errorinfo:从数据库返回一个含有错误信息的数组,如果有的诟。

exec:执行一条SQL语句并返回影响的行数。

prepare:为执行准备一条SQL语句。

所以,本题的答案为瓦

3.下面关于面向对象的描述中,错误的是

A.父类的构造函数与析构函数不会自动被调用

B.成员变量需要用public、protected、private修饰,在定义变量时不再需要

var关键字

C.父类中定义的静态成员,不可以在子类中直接调用

D.包含抽象方法的类必须为抽象类,抽象类不能被实例化

正确答案:A

[解析]对于选项A,子类继承父类,如果子类没有构造函数和析构函数,那么

实例化子类时会自动调用父类的构造函数和析构函数;但如果子类只有构造函

数没有析构函数,那么实例化子类时,自动调用的是子类的构造函数,销毁对

象时调用父类的析构函数;如果子类没有构造函数只有析构函数,那么实例化

子类时会自动调用父类的构造函数,销毁对象时调用子类的析构函数。选项A

说法不完全,选项A错误。

对于选项B,成员变量使用了public、protected、private修饰定义变量

时是不需要v”关键字的。选项B说法正确,选项B错误。

对于选项C,父类中的静态成员,子类中是不可以直接访问的。选项C说

法正确,选项C错误。

对于选项D,一个包含抽象方法的类必须是抽象类,并且抽象类不能被实

例化。选项D说法正确,选项D错误。

所以,本题的答案为A。

4.当声明函数时,不能给参数赋默认值的是

A.当参数是布尔值时

B.当函数是类中的成员时

C.当参数是通过引用传递时

D.当函数只有一个参数时

E.永远不会

正确答案:c

[解析]当基数被声明为通过引用传递时,不能给它赋默认值,此时解释器期望

获得一个能在函数内部进行修改的变量。选项c正确。

所以,本题的答案为C。

5.考虑如下数组,能从数组$111111宜_81任3丫中找出值cat的方法是

$multi_array=array(〃red〃,〃green〃,

42二〉〃blue",

〃1-1〃、/〃〃〃1〃

yellow=>array(apple,9=>pear,banana,

orange=>array(dog,cat,iguana))

);

A.$multi_array[,yellow']['apple*][0]

B.$multi_array[,blue,][0]['orange,][1]

C.$multi_array[3][3][2]

D.$multi_arrayyellow']['orange']['cat,]

E.$multi_arrayyellow']['orange'][1]

正确答橐:E

[解析]$multi_array数组是一个多维数组,值cat在orange数组中,键名

1,orange又在yellow,数组中,所以获得cat值的方法应该为

$multi_array[,yellow'][Jorange*][1]。选项E正确。

所以,本题的答案为E。

6.以下代码的执行结果为

<?php

$num="24thiz〃+6;

echo$IIUIII;

?>

A.30

B.24thiz6

C.6

D.30thiz

正确答案:A

[解析]$num被赋值为字符串“24thiz”与6相加,字符串会被转换成整型,具

体的转换有以下规则:①如果字符串以数字开头且和字母(或符号)搭配,那么

会舍弃字母(或符号)部分直接转换为开头的数字,所以“24thiz”转换得到

24;②如果是字符串开头加数字,那么字符串转换成整型得到的是0,例如,

“abcllO”得到的是0;③如果是数字0开头或以数字0开头和字母(或符号)搭

配的字符串,那么它们被转换成整型时开头的数字0是被舍弃的,例如,字符

串“05abc”和“05”转换成数字时都是得到5。

对于本题而言,“24thiz”被转换成整型得到24,最后$num=24+6得到结

果30。选项A正确。

所以,本题的答案为A。

7.在PHP中,总是包含所有总客户端发出的Cookies数据的变量数组是

A.$_COOKIE

B.$COOKIES

C.$_GETCookie

D.$GETCookieS

if确答案:A

[解析]获取客户端发出的Cookies数据是通过$_C()OKIE方法进行获取的。

所以,本题的答案为A。

8.以下代码能正确在浏览器中显示图片的是

A.<?php

$img=imagecreatefromjpeg(z,images/scce.jpg〃);

readfile("image.jpg〃);

?>

A.一张JPEG图片

B.一个二进制件

C.下载一个二进制件

D.下载一张JPEG图片

E.错误提示

正确答案:D

[解析]header("Content-type:image/jpeg〃)可以指定浏览器输出一张图片,

readfileO函数可以输出文件。如果输出文件成功,那么会输出文件中读入的

字节数,如果输出文件失败,那么返回False。因为存在image,jpg文件,所以

会直接下载image,jpg图片。选项D正确。

所以,本题的答案为D。

10.如果用+操作符把一个字符串和一个整型数字相加,那么结果是

A.解释器输出一个类型错误

B.字符串将被转换成数字,再与整型数字相加

C.字符串将被丢弃,只保留整型数字

D.字符串和整型数字将连接成一个新字符串

E.整型数字将被丢弃,而保留字符串

正确答案:B

[解析]字润串将被转换成数字(如果无法发生转换,那么就是0),然后与整型

数字相加。

所以,本题的答案为B。

二、填空题

1.语句echointval((0.7+0.1)*10);的打印结果为。

正确答案:

7

[解析]由于浮点数的精度是有限的,因此它在内存中存储的是一个近似值,而

不是准确的值。对于((0.1+0.7)*10),在内存中实际存储的值为

7.999999....,当通过intval把它转换为整型的时候(向下取整),转换的结果

就是7。正因为如此,在条件判断的时候一般不能通过“二二”来比较两个浮点数

是否相等。

2.从队列数组队头删除数据可以使用函数o

正确答案:

array_shift()

3.Nginx主要使用的网络协议是、、、。

正确答案:

TCP/IP、HTTP、HTTPS、Webstocket等网络协议

4.在PHP中,用来获取浏览器属性的方法是o

正确答案:

$_SERVER[,HTTP_USER_AGENT,]

5.执行程序段V?phpecho8%(-2);?>将输出。

正确答案:

0

[解析]因为8能够被-2整除,所以,8对-2求余后输出得到0。

三、简答题

1.MySQL的索引都有哪些?

正确答案:

MySQL的索引如下:

1)唯一索引。唯一索引避免了表中存在重复的数据,提高了检索速度。创

建唯一索引的目的是避免表中插入重复的数据,从而提高表的查询速度。

2)普通索引。普通索引允许被索引的数据列包含重复的值。优点如下:①

简化MySQL对这个索引的管理工作,使工作更有效率;②MySQL会对新插入的数

据自动检测是否有重复的值。

3)主索引。即主键索引,关键字PRIMARY。

4)外键索引。外键约束。

5)复合索引。索引可以覆盖多列数据,例如,INDEX(columnA,columnB)。

这种索引的特点是MySQL可以有选择地使用索引,例如,INDEX(A,B,C)可以当

作A或(A,B)的索引来使用,但不能当作B或(B,C)来使用。

6)索引的长度。在为char和varchar类型的数据列定义索引时,可以把

索引的长度限制为一个给定的字符个数,这个数字必须小于这个字段所允许的

最大字符个数。

7)全文索引。针对内容开头的字符进行检索操作,如果检索的内容由多个

字段构成,数据量很大,那么全文索引是必要的。注意,MySQL的InnoDB引擎

不支持全文搜索索引。

2.Session的运行机制是什么?

正确答案:

Session是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能

就是使用散列表)来保存信息。

当程序需要为某个客户端的请求创建一个Session的时候,服务器首先检

查这个客户端的请求里是否已包含了一个Session标识SessionTD,如果已包含

一个SessionlD,则说明已经为此客户端创建Session,服务器就按照

SessionTD把这个Session检索出来使用;如果客户端请求不包含SessionTD,

则为此客户端创建一个Session并且生成一个与此Session相关联的

SessionlD,SessionlD的值应该是一个既不会重复,又不容易被找到规律以仿

造的字符串,这个SessionlD将被在本次响应中返回给客户端保存。

3.请简单介绍什么是视图。

正确答案:

视图是A或据库的基本表中选取出来的数据组成的逻辑窗口,它不同于基本

表,是一个虚表,在数据库中,存放的只是视图的定义而已,而不存放视图包

含的数据项,这些项目仍然存放在原来的基本表结构中。

视图的作用非常多,主要有以下几点:首先,可以简化数据查询语句;其

次,可以使用户从多角度看待同一数据;再次,通过引入视图,可以提高数据

的安全性;最后,视图提供了一定程度的逻辑独立性等。

通过引入视图机制,用户可以将注意力集中在其关心的数据上而非全部数

据,这样就大大提高了用户效率与用户满意度,而且如果这些数据来源于多个

基本表结构,或者数据不仅来自于基本表结构,还有一部分数据来源于其他视

图,并且搜索条件又比较复杂,那么需要编写的查询语句就会比较烦琐,此时

定义视图就可以使数据的查询语句变得简单可行。定义视图可以将表与表之间

的复杂操作连接和搜索条件对用户不可见,用户只需要简单地对一个视图进行

查询即可,所以增加了数据的安全性,但是不能提高查询的效率。

4.组合与继承的区别是什么?

正确答案:

组合和继承是面向对象中两种代码复用的方式。组合是指在新类里面引用原有

类的对象,重复利用已有类的功能。继承是面向对象的主要特性之一,它允许

设计人员根据其他类的实现来定义一个类的实现。组合和继承都允许在新的类

中设置子对象(subobject),只是组合是显式的,而继承则是隐式的。组合和继

承存在着对应关系:组合中的整体类和继承中的子类对应,组合中的局部类和

继承中的父类对应。

二者的区别在哪里呢?首先分析一个实例。Car表示汽车对象,Vehicle表

示交通工具对象,Tire表示轮胎对象。三者的类关系如下图所示。

从上图中可以看出,Car是Vehicle的一种,因此是一种继承关系(又被称

为is-a关系);而Car包含了多个Tire,因此是一种组合关系(又被称为has-a

关系)。其实现方式如下:

继承组合

...,(classTire{

classvVerhicle{.

))

i八,,classCarextendsVerhicle{

classCarextendswVerhicletf〜八

iqA>t=new1ire0;

5.什么是抽象类和接口?抽象类和接口有什么不同和相似的地方?

正确答案:

被关键字abstract修饰的类叫作抽象类,抽象类是不能被实例化的。被

abstract修饰的方法为抽象方法,一个类只要有一个抽象方法,这个类一定是

抽象类。

接口是通过关键字interface来定义的,可以指定某个类必须实现哪些方

法,但不需要定义这些方法的具体实现。PHP类只支持单重继承,但通过接口可

以实现PHP类的多重继承。

抽象类和接口的不同和相似的地方如下:

1)抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。

2)抽象类是通过关键字abstract来声明的。

3)抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,

抽象类中至少要包含一个抽象方法。

4)抽象方法没有方法体,该方法大生就是要被子类重写的。

5)抽象方法的格式为abstractfunctionabstractMethod();o

6)因为PHP中只支持单重继承,所以如果想实现多重继承,那么就要使用

接口。也就是说,子类可以实现多个接口。

7)接口类是通过interface关键字来声明的,接口类中的成员变量和方法

都是public的,可以不用显式地使用public来修饰。

8)接口中的方法没有方法体。接口中的方法天生就是要被子类继承实现

的。

9)子类继承抽象类使用extends关键字,子类实现接口使用implements

关键字。

四、编程题

1.翻转(也叫颠倒)栈的所有元素,例如,输入栈(1,2,3,4,5),其中,1

处在栈顶,翻转之后的栈为(5,4,3,2,1),其中,5处在栈顶。

正确答案:

最容易想到的办法是申请一个额外的队列,先把栈中的元素依次出栈放到队列

里,然后把队列里的元素按照出队列顺序入栈,这样就可以实现栈的翻转,这

种方法的缺点是需要申请额外的空间存储队列,因此,空间复杂度较高。下面

介绍一种空间复杂度较低的递归的方法。

递归程序有两个关键因素需要注意:递归定义和递归终止条件。经过分析

后,很容易得到该问题的递归定义和递归终止条件。递归定义:将当前栈的最

底元素移到栈顶,其他元素顺次下移一位,然后对不包含栈顶元素的子栈进行

同样的操作。终止条件:递归下去,直到栈为空。递归的调用过程如下图所

zj\o

雌I:枝低元素移动到板项

榭午2:递归潮fl除检顶元素的子根

-2

在上图中,对于栈(1,2,3,4,5)进行翻转的操作:首先把栈底元素移

动到栈顶得到栈(5,1,2,3,4),然后对不包含栈顶元素的子栈进行递归调用

(对子栈元素进行翻转),子栈(1,2,3,4)翻转的结果为(4,3,2,1),因

此,最终得到翻转后的栈为(5,4,3,2,Do

此外,由于栈的后进先出的特点,使得只能取栈顶的元素,因此,要把栈

底的元素移动到栈顶也需要递归调用才能完成,主要思路:把不包含该栈顶元

素的子栈栈底的元素移动到子栈的栈顶,然后把栈顶的元素与子栈栈顶的元素

(其实就是与栈顶相邻的元素)进行交换,如下图所示。

递归调用

一返回子栈调用的结果并交换子栈的栈顶元素与栈顶元素一

为了容易理解递归调用,可以认为在进行递归调用的时候,子栈已经实现

了把栈底元素移动到了栈项,在上图中为了把栈(1,2,3,4,5)的栈底元素5

移动到栈顶,首先对子栈(2,3,4,5)进行递归调用,调用的结果为(5,2,

3,4),然后对子栈顶元素5,与栈顶元素1进行交换,得到栈(5,1,2,3,

4),实现了把栈底元素移动到了栈顶。

示例代码如下:

<?php

header(^content-type:text/html;charset=utf-8〃);

classLNode{

public$mElem;

public$mNext;

publicfunction_construct(){

$this->mElem=NULL;

$this->mNext=NULL;

)

}

classStackLinked{

〃头“指针”,指向栈顶元素

public$mNext;

publicstatic$ml.ength;

/**

*初始化栈

*

*@returnvoid

*/

publicfunction_construct(){

$this->mNext=NULL;

self::$mLength=0;

}

/**

本判断栈是否空栈

*

*@returnboolean如果为空栈返回true,否则返回false

*/

publicfunctiongetlsEmpty(){

if($this->mNext=NULL){

returntrue;

}else{

returnfalse;

)

)

/**

*将所有元素出栈

*

*©returnarray返回所有栈内元素

*/

publicfunctiongetAHPopStackO{

$e=array();

if(!$this->getIsEmpty()){

while($this->mNext!=NULL){

$e[]=$this->mNext->mElem;

$this->mNext=$this->mNext->mNext;

)

}

self::$mLength=0;

return$e;

}

/**

*返回栈内元素个数

*

*©returnint

*/

publicstaticfunctiongetLengthO{

returnself::$mLength;

/**

*元素进栈

*

mixed$e进栈元素值

*@returnboolean进栈成功返回true

**/

publicfunctionpush($e){

$newLn=newLNode();

$newLn->mElem=$e;

$newLn->mNext=$this->mNext;

$this->mNext=&$newLn;

self:;$mLength++;

returntrue;

)

/**

*元素出栈

*

*©returnboolean出栈成功返回true,否则返回false

**/

publicfunctionpop(){

if($this->getIsEmpty()){

returnfalse;

)

$p=$this->mNext;

$e=$p->mElem;

$this->mNcxt=$p->mNext;

self::$mLength—;

returntrue;

)

/**

*返回栈内所有元素

*

*@returnarray栈内所有元素组成的一个数组

*/

publicfunctiongetAllElemO(

$sldata=array();

if(!$this->getIsEmpty()){

$p=$this->mNext;

while($p!=NULL){

$sldata[]=$p->mElem;

$p=$p->mNext;

}

return$sldata;

)

}

/*

*返回栈顶元素一

*©return$element返回栈顶元素

*/

publicfunctiontop()

(

if($this->getIsEmpty()){

returnfalse;

)

$list=$this->getAllElemO;

$element=$list[0];

return$element;

}

/*

**函数功能:把栈底元素移动到栈顶

*/

publicfunctionir.ove_bottom_to_top()

{-

if($this->getIsEmpty())

return;

$topl=$this->top();

$this->pop();〃弹出栈顶元素

if(!$this->getIsEmpty()){

〃递归处理不包含栈顶元素的子栈

$this->movebottomtotop();

$top2=$this->top();

$this->pop();

〃交换栈顶元素与子栈栈顶元素

$this->push($topl);

$this->push($top2);

}else{

$this->push($topl);

}

}

publicfunulionleverseslack()

{"

if($this->getIsEmpty())

return;

〃把栈底元素移动到栈顶

$this->move_bottom_to_top();

$top=$this->top();

$this->pop();

〃递归处理子栈

$this->reverse_stack();

$this->push($top);

}

)

$stack=newStackLinked();

$stack->push('5');

$stack->push('4');

$stack->push('3');

$stack->push(,2');

$stack->push(,T);

$stack->reverse_stack();

echo〃翻转后的出彩顺序为:〃;

while(!$stack->getIsEmpty())

(

echo$stack->top()."“;

$stack->pop();

)

?>

程序的运行结果为

翻转后的出栈顺序为:54321

算法性能分析:把栈底元素移动到栈顶操作的时间复杂度为0(n),在翻转

操作中对每个子栈都进行了把栈底元素移动到栈顶的操作,因此,翻转算法的

时间复杂度为0(22)。

2.已知随机数生成函数rand7()能产生的随机数是整数1〜7的均匀分布,如

何构造rand10()函数,使其产生的随机数是整数1〜10的均匀分布。

正确答案:

<?php

〃产生的随机数是整数1〜7的均匀分布

fundioniand7()

{

returnrand()%7+l;

}

〃产生的随机数是整数1〜10的均匀分布

functionrandlO()

{

$x=0;

do

(

$x=(rand7()T)*7+rand7();

}while($x>40);

return$x%10+l;

}

for($i=0;$i!=10;++$i)

printfrand10());

printf(〃\n〃);

?>

程序的运行结果为

610818638107

[解析]要保证randlOO产生的随机数是整数1〜10的均匀分布,可以构造一个

1〜10*n的均匀分布的随机整数区间(n为任何正整数)。假设x是这个1〜10*n

区间上的一个随机数,那么x%10+l就是均匀分布在1〜10区间上的整数。

根据题意,rand7()函数返回1〜7的随机数,那么rand7()-l则得到一个

离散整数集合,该集合为{0,1,2,3,4,5,6),集合中每个整数的出现概率

都为1/7。那么(rand7()T)*7得到另一个离散整数集合A,该集合元素为7的

整数倍,即A={0,7,14,21,28,35,42),其中,每个整数的出现概率也都

为1/7。而由于rand7()得到的集合B={1,2,3,4,5,6,7),其中每个整数

出现的概率也为1/70显然集合A与集合B中任何两个元素和组合可以与1〜49

之间的一个整数一一对应,即1〜49之间的任何一个数,可以唯一地确定A和B

中两个元素的一种组合方式,这个结论反过来也成立。由于集合A和集合B中

元素可以看成是独立事件,根据独立事件的概率公式P(AB)=P(A)P(B),得到每

个组合的概率是1/7*1/7=1/49。因此,(rand7()-l)*7+rand7()生成的整数均匀

分布在1〜49之间,而且,每个数的概率都是1/49。

所以,(rand7()T)*7+rand7()可以构造出均匀分布在1〜49的随机数,

为了将49种组合映射为1〜10之间的10种随机数,就需要进行截断,即将

41〜49这样的随机数剔除掉,得到的数1〜40仍然是均匀分布在1〜40的,这

是因为每个数都可以看成一个独立事件。由1〜40区间上的一个随机数x,可以

得到x%10+l就是均匀分布在1-10区间上的整数。

3.公鸡5文钱1只,母鸡3文钱1只,小鸡1文钱买3只,现在用100文钱

共买了100只鸡,问:在这100只鸡中,公鸡、母鸡和小鸡各是多少只?(设每

种至少一只)

正确答案:

根据百钱买百鸡的要求,可以设有$1只公鸡,$上只母鸡,$1<只小鸡,并且

$i+$j+$k的总数为100,$i*5+$j*3+$k*l总价为100。依次对公鸡、母鸡、小

鸡的总数循环求解出符合这两个公式的最优解。

实现代码如下:

<?php

header(''Content-type:text/html;charset=utf-8〃);

for($i=l,$i<100;$i++){

for($j=l,$J<100;$j++){

for($k=l;$k<100;$k++){

if(($i+$j+$k==100)&&($i*5+$j*3+$k/3==100)){

echo〃公鸡:〃.$i,'只,母鸡:‘,$j,'只,小鸡:,$k,'只Vbr>';

)

}

)

}

?>

程序的运行结果为

公鸡:4只,母鸡:18只,小鸡:78只

公鸡:8只,母鸡:11只,小鸡:81只

公鸡:12只,母鸡:4只,小鸡:84只

4.己知两个链表headl和head2各自有序(例如升序排列),请把它们合并成

一个链表,要求合并后的链表依然有序。

正确答案:

分别用指针headl、head2来遍历两个链表,如果当前headl指向的数据小于

head2指向的数据,则将headl指向的结点归入合并后的链表中,否则,将

head2指向的结点归入合并后的链表中。如果有一个链表遍历结束,则把未结束

的链表连接到合并后的链表尾部。

下图以一个简单的示例来介绍合并的具体方法。

head

headI

head?

由于链表按升序排列,首先通过比较链表第一个结点中元素的大小来确定

最终合并后链表的头结点;接下来每次都找两个链表中剩余结点的最小值链接

到被合并的链表后面,如上图中的虚线所示。在实现的时候需要注意,要释放

head2链表的头结点,具体实现代码如下:

<?php

〃链表结点

classnode(

public$id;

〃结点id

public$data;

〃结点名称

public$next;

〃下一结点

publicfunction_construct($id,$data){

$this->id=$id;

$this->data=$data;

$this->next=null;

)

}

〃单链表

classlinkList{

public$header;

〃链表头结点

〃构造方法

publicfunction___construct($id=null,$data=null){

$this->header=newnode($id,$data,null);

)

〃添加结点数据

publicfunctionaddLink($node){

$current=$this->header;

while($current->next!=nul1){

if($cuiieiil->nexl->id>$node->id){

break;

)

$current=$current->next;

}

$node->next=$current->next;

$current->next=$node;

)

〃删除链表结点

publicfunctionfree($id){

$current=$this->headcr;

$flag'false;

while($current->next!=nul1){

//echo$current->next->id.z,---〃・$id.〃Vbr>〃;

if($current->next->id==$id){

$flag=true;

break;

)

$current=$current->next;

)

if($flag){

$current->next=$current->next->next;

}else{

echo”未找到id二”.$id."的结点!<br>";

)

)

〃清空链表

publicfunctionclear(){

$this->header=null;

〃获取链表

publicfunctiongetLinkList(){

$current=$this->header;

if($current->next==null){

echo(〃链表为空!〃);

return;

}

while($current->next!=null){

echo$uurieiil->nexl->clala.〃;

if($current->next->next==null){

break;

}

$current=$current->next;

)

}

)

/*

*合并两个链表

温馨提示

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

评论

0/150

提交评论