第六章循环控制结构_第1页
第六章循环控制结构_第2页
第六章循环控制结构_第3页
第六章循环控制结构_第4页
第六章循环控制结构_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计第六章循环控制结构1本章内容6-2计数控制的循环

条件控制的循环

for语句,while语句,do-while语句continue语句,break语句

嵌套循环结构化程序设计思想

程序调试与排错问题提出6-3#1:2个学生#2:100个学生2个变量;2条输入语句;1002100个变量;100条输入语句;重复:输入成绩录入6.1循环控制结构与循环语句6-4标记控制计数控制1,2,3,4,……,4,3,2,1条件控制如何对循环进行控制呢?循环控制语句for语句while语句

do-while语句6-5for循环:一般形式for循环一般形式:for(表达式1;表达式2;表达式3)

{

循环体语句;}6-6表达式2!=0循环体语句真假出口入口循环起始条件循环终止条件循环变量增值

当型循环计数控制计数控制的循环6-7counter←0,sum←0counter<100sum←sum+scorefalsetruecounter++输出sum输入成绩score结束循环体仅使用了3个变量计数控制的循环6-8counter←0,sum←0counter<100sum←sum+scorefalsetruecounter++输出sum输入成绩score结束#include<stdio.h>main(){intcounter;floatscore,sum=0;printf("Pleaseinputsocre:");for(counter=0;counter<100;counter++){scanf("%f",&score);sum=sum+score;}printf("totalscoreis:%f",sum);}for循环:灵活性1.增量可以递减6-9/*增量可以递减*/#include<stdio.h>main(){intsecs;

for(secs=5;secs>0;secs--){printf(“%dsecs!\n”,secs);}}

5secs!4secs!3secs!2secs!1secs!Secs=0printf(“secs=%d”,secs);2.增量可以灵活变化6-10/*for循环的灵活性*//*根据需要,增量可以是2、3…*/#include<stdio.h>main(){intn;for(n=2;n<50;n+=15){printf(“nis%d\n”,n);

}}n=2n=17n=32n=47思考:跳出循环后,n的值是??

62

for循环:灵活性

printf("nis%d\n",n);for循环:灵活性6-11/*for循环的灵活性*//*甚至可以让一个或多个表达式为空(但是不要遗漏分号)*/#include<stdio.h>main(){intans,n;

ans=2;for(n=3;ans<=25;){ ans=ans*n;

printf(“n=%d\tans=%d.\n”,n,ans);}printf(“n=%d\tans=%d.\n”,n,ans);

}n=3ans=6.n=3ans=18.n=3ans=54.n=3ans=54.3.可以让一个或多个表达式为空for循环:灵活性4.第一个表达式不必初始化一个变量6-12/*for循环的灵活性*//*第一个表达式不必初始化一个变量,它可以是某种类型的printf()*/#include<stdio.h>main(){intnum=0;for(printf(“keepenteringnumbers:!\n”);num!=6;)scanf(“%d”,&num);printf(“That’stheoneIwant!\n”);

}while循环当型循环条件或计数控制一般形式:6-13while(表达式)

{

循环体语句;}

只要表达式的值为非0,就重复执行语句,直到表达式值为0时止控制循环的条件A真假假条件Pwhile循环while

示例:6-14n=1;while(n>5){ printf(〝Goodmorning!\n〞); n=n+1;}while循环while

的陷阱:6-15n=1;while(n<5)printf(〝Goodmorning!\n〞);n=1;while(--n<5)printf(〝Goodmorning!\n〞);循环变量无变化,无法满足终止条件,陷入死循环n的初始值使得n永远小于5,不幸陷入死循环while循环while

的陷阱:6-16n=10;while(n++<5)printf(〝Goodmorning!\n〞);不满足循环起始条件,无法进入循环正确的

while使用

:n=10;while(n++<5)printf(〝Goodmorning!\n〞);n=3;6-17/*何时退出一个循环*/#include<stdio.h>main(){intn=2;while(n<5){n++;printf(〝n=%d\n〞,n);}printf(〝programover!\n〞);}n=3n=4n=5programover!while循环1.格式不规范6-18while循环:几点注意/*注意花括号的使用,拙劣的代码产生了一个死循环*/#include<stdio.h>main(){

intn=0;while(n<3)printf(〝n=%d\n〞,n);n++;

printf(〝programover!〞);}{}6-19/*注意分号的使用*/#include<stdio.h>main(){

intn=0;while(n++<3);printf(〝n=%d\n〞,n);

printf(〝programover!〞);}2.乱用分号的错误while循环:几点注意表示while条件成立后,执行空语句while(n++<3){;}dowhile循环直到型循环条件或计数控制dowhile循环的一般格式6-20do

{

循环体语句;

}while

(表达式);A条件P假真while语句后分号不可丢!示例程序:6-21/*退出条件循环*/#include<stdio.h>main(){intcount;count=0;do{count++;

printf(“countis%d\n”,count);}while(count<3);printf(“countis%d\n”,count);}dowhile循环countis1countis2countis3countis3当型循环与直到型循环6-22条件PA当型循环直到型循环真假假条件PA假真循环控制结构:一些建议三种循环选择的一般原则:如果循环次数已知,用for如果循环次数未知,用while如果循环体至少要执行一次,

用do-while6-23例6.2计算并输出1+2+3+...+n的值循环次数已知6-24#include<stdio.h>main(){inti,n,sum;printf("Inputn:\n");scanf("%d",&n);sum=0;for(i=1;i<=n;i++){sum=sum+i;}printf("sum=%d\n",sum);}6_2_1.csum=55例6.2计算并输出1+2+3+...+n的值循环次数已知6-25#include<stdio.h>main(){inti,n,sum;printf("Inputn:\n");scanf("%d",&n);sum=0;for(i=1;i<=n;i++){sum=sum+i; printf(“i=%d,sum=%d”,i,sum);}printf("sum=%d\n",sum);}6_2_1.c若把此句去掉会怎样?例6.2计算并输出1+2+3+...+n的值循环次数已知——利用while循环6-26#include<stdio.h>main(){inti,n,sum;printf("Inputn:\n");scanf("%d",&n);sum=0;

i=1;while(i<=n){sum=sum+i;

i++;}printf("sum=%d\n",sum);}6_2_2.c例6.2计算并输出1+2+3+...+n的值循环次数已知—dowhile循环6-27#include<stdio.h>main(){inti,n,sum;printf("Inputn:\n");scanf("%d",&n);sum=0;

i=1;do{sum=sum+i;

i++;}while(i<=n);

printf("sum=%d\n",sum);}6_2_2.c6-28#include<stdio.h>main(){inti,n,sum;printf("Inputn:\n");scanf("%d",&n);sum=0;

i=1;while(i<=n){sum=sum+i;

i++;}printf("sum=%d\n",sum);}#include<stdio.h>main(){inti,n,sum;printf("Inputn:\n");scanf("%d",&n);sum=0;

i=1;do{sum=sum+i;

i++;}while(i<=n);

printf("sum=%d\n",sum);}例6.2计算并输出1+2+3+...+n的值while与dowhile6-29#include<stdio.h>#include<stdlib.h>/*rand函数需要的头文件*/main(){

intmagic,guess;magic=rand();/*利用rand函数产生随机数*/

printf(“pleaseenteraguess:”);scanf(“%d”,&guess);

if(guess>magic){printf(“wrong!toohigh!\n”);}

elseif(guess<magic){printf(“wrong!toolow!\n”);}

else{printf(“right!\n”);printf(“thenumberis:%d\n”,guess);}}例5.5猜数游戏若可以尝试多次,直到猜对为止如何实现?

只能猜一次产生一个1-100之间的数,如何实现例6.3猜数游戏猜一个1-100之间的数随机函数rand()产生[0,RAND_MAX]之间的随机magic=rand();#include<stdlib.h>RAND_MAX在stdlib.h中定义,不大于双字节整数的最大值32767产生[0,b-1]之间的随机数magic=rand()%b;产生[a,a+b-1]之间的随机数magic=rand()%b+a;产生[1-100]之间的随机数

magic=rand()%100+1;6-30循序渐进编程6-31#include<stdio.h>#include<stdlib.h>main(){

intmagic,guess;

magic=rand()%100+1;

do

{

printf("Inputguess:"); scanf("%d",&guess);

if(guess>magic) { printf(“Wrong!Toohigh!\n"); }

elseif(guess<magic) { printf(“Wrong!Toolow!\n"); }

}while(guess!=magic); printf(“Right!guess=%d\n",magic);}例6.3猜数游戏6_3_0.c程序演示例6.3猜数游戏产生随机数随机函数srand为函数rand()设置随机数种子来实现对函数rand所产生的伪随机数的“随机化”通过输入随机数种子,产生[0,100]之间的随机数scanf("%u",&seed);srand(seed);magic=rand()%100+1;函数time()返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子

#include<time.h>srand(time(NULL));magic=rand()%100+1;6-326-33#include<stdio.h>#include<stdlib.h>#include<time.h>main(){

intmagic,guess; srand(time(NULL)); magic=rand()%100+1;

do

{

printf("Inputguess:"); scanf("%d",&guess);

if(guess>magic) { printf(“Wrong!Toohigh!\n"); }

elseif(guess<magic) { printf(“Wrong!Toolow!\n"); }

}while(guess!=magic); printf(“Right!guess=%d\n",magic);}猜多次,直到猜对为止:方法1do-while循环例6.3猜数游戏6_3.c6-34#include<stdio.h>#include<stdlib.h>#include<time.h>main(){

intmagic,guess,flag=1; srand(time(NULL)); magic=rand()%100+1;

while(flag) {

printf("Inputguess:"); scanf("%d",&guess);

if(guess>magic) { printf("Toohigh!\n"); }

elseif(guess<magic) { printf("Toolow!\n"); }

else { flag=0; } } printf("OK!Right!magic=%d",magic);}猜多次,直到猜对为止:方法2利用while循环,设置标志变量例6.3猜数游戏6_3_2.c6-35#include<stdio.h>#include<stdlib.h>#include<time.h>main(){

intmagic,guess,n=0; srand(time(NULL)); magic=rand()%100+1;

do

{

n++;

printf("Inputguess:"); scanf("%d",&guess);

if(guess>magic) printf("Toohigh!\n");

elseif(guess<magic) printf("Toolow!\n");

}while(guess!=magic&&n<10);

if(guess==magic)printf(“Right!guess=%d\n",guess);}最多猜10次例6.4猜数游戏逗号表达式6-36表达式1,表达式2,…,表达式nx=a=3,6*ax=(a=3,6*a)最后一个表达式的值作为逗号表达式的值逗号运算符在所有运算符中优先级最低多数情况下,并不使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值for(i=0,j=100;i<j;i++,j--)x=3x=18嵌套循环6-37合法的嵌套循环内层循环内层循环内层循环外层循环嵌套循环6-38使用嵌套的循环体时,应注意以下问题

在嵌套的各层循环体中,使用复合语句(即用一对大花括号将循环体语句括起来)保证逻辑上的正确性

内层和外层循环控制变量不应同名,以免造成混乱

嵌套的循环最好采用右缩进格式书写,以保证层次的清晰性

循环嵌套不能交叉,即在一个循环体内必须完整的包含着另一个循环

思考:猜数游戏6-39……do{ magic=rand()%100+1; counter=0;

do{ printf("Pleaseguessamagicnumber:"); scanf("%d",&guess); counter++;

if(guess>magic) printf("Wrong!Toohigh!\n");

elseif(guess<magic) printf("Wrong!Toolow!\n");

else printf("Right!\n"); }while(guess!=magic&&counter<10);

printf("counter=%d\n",counter);

printf("Doyouwanttocontinue(Y/Nory/n)?"); scanf("%c",&reply);

}while((reply=='Y')||(reply=='y'));猜多个数10次猜不对就猜下一个数直到用户选择结束为止……do{ magic=rand()%100+1; counter=0;

do{ printf("Pleaseguessamagicnumber:"); scanf("%d",&guess); counter++;

if(guess>magic) printf("Wrong!Toohigh!\n");

elseif(guess<magic) printf("Wrong!Toolow!\n");

else printf("Right!\n"); }while(guess!=magic&&counter<10);

printf("counter=%d\n",counter); printf("Doyouwanttocontinue(Y/Nory/n)?"); scanf("%c",&reply); }while((reply=='Y')||(reply=='y'));例6.4猜数游戏6-40防止非法字符输入例6.5求1!+2!+3!+...+n!题目分析:求i!i!=1*2*...*i求sum:sum=1!+2!+…+n!初值的设定:sum=0;p=1;

6-411!+2!+3!+..+i!+..+n!sum1*2*3*…*ifor(p=1,j=1;j<=i;j++){p=p*j;}for(i=1;i<=n;i++){sum=sum+p;}6-42#include<stdio.h>main(){

inti,j,n;

longterm,sum=0;printf("Inputn:");scanf("%d",&n);

for(i=1;i<=n;i++){term=1;

for(j=1;j<=i;j++){term=term*j;}sum=sum+term;}printf("1!+2!+...+%d!=%ld\n",n,sum);}?Inputn:101!+2!+…+10!

=

4037913每次单独计算累加项例6.56_5.c6-43#include<stdio.h>main(){

inti,j,n;

longterm,sum=0;printf("Inputn:");scanf("%d",&n);

for(i=1;i<=n;i++){

term=term*i;sum=sum+term;

}printf("1!+2!+...+%d!=%ld\n",n,sum);}Inputn:101!+2!+…+10!

=

4037913思考:用单层循环是否可以完成

6_5.c利用前项计算后项6-44/*使用嵌套循环*/#include<stdio.h>main(){inti,j,k;for(i=1;i<=4;i++){

for(j=1;j<=i;j++) {printf(“”); }

for(k=1;k<=6;k++){ printf(“*”);} printf(“\n”);}}******

******

******

******例6.6九九乘法表编程输出如下形式的乘法九九表6-454.4应用举例#include<stdio.h>main(){

inti,j;

for(i=1;i<10;i++) printf("%4d",i); printf("\n");

for(i=1;i<10;i++) printf("-"); printf("\n"); for(i=1;i<10;i++) { for(j=1;j<10;j++) { printf("%4d",i*j); } printf("\n");}}

5_10行列112123224246246810121416186-46#include<stdio.h>main(){introw;charch;for(row=1;row<7;row++){for(ch='A';ch<('A'+row);ch++){printf("%c",ch);}printf("\n");}}5_14行列的依存关系6-47例6.7九九乘法表—三角形6-486-49#include<stdio.h>main(){ inti,j; for(i=1;i<10;i++) printf("%4d",i); printf(“\n”); for(i=1;i<10;i++)

printf("-"); printf(“\n”); for(i=1;i<10;i++) {

for(j=1;j<=i;j++) { printf(“%4d”,i*j); } printf(“\n”);}}6-49例6.8马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?解方程组穷举法6-504.4应用举例

方法1:采用三重循环穷举x,y,z的全部可能的组合

#include<stdio.h>main(){

intx,y,z;

printf(“Man\tWomen\tChildern\n”);

for(x=0;x<=30;x++){for(y=0;y<=30;y++){for(z=0;z<=30;z++){if(x+y+z==30&&3*x+2*y+z==50)printf("%3d\t%5d\t%8d\n",x,y,z);}}}}6-514.4应用举例

方法2:采用双重循环

#include<stdio.h>main(){

intx,y,z;

printf(“Man\tWomen\tChildern\n”);

for(x=0;x<=30;x++){for(y=0;y<=30;y++){

z=30–x-y;if(3*x+2*y+z==50)printf("%3d\t%5d\t%8d\n",x,y,z);

}}}X<=16;y<=25;6-52循环次数:?利用计算的值。累加项的通项term:1/n(n=1,3,5,…)各项符号交替变化。用sign表示每项符号若第1项:sign=1则第2项:sign=-sign

第3项:sign=-sign

…累加项的通项term可表示成:term=sign/nsign=-sign例6.9:求圆周率问题

6-53#include<stdio.h>#include<math.h>main(){

intn;

floatsign=1.0;

doubleterm=1,sum=0;for(n=1;fabs(term)>=1e-4;n+=2){

term=sign/n;

sum=sum+term;sign=-sign;}printf(“pi=%e\n”,4*sum);}6-54例6.9:求圆周率

需要多少项?6_9_1.c#include<stdio.h>#include<math.h>main(){

intn,count=0;

floatsign=1.0;

doubleterm=1,sum=0;for(n=1;fabs(term)>=1e-4;n+=2){

term=sign/n;

sum=sum+term;sign=-sign;count++;}printf(“pi=%e\tcount=%d\n”,4*sum,count);}6-55例6.9:求圆周率问题

6_9_2.c需要多少项相加?例6.10:国王的许诺

国王的许诺。相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。位聪明的宰相指着8×8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第一个格子中放1粒,第2格中放2粒,第3格放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。

国王能兑现他的许诺吗?试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米?(已知1立方米麦子约1.42e8粒)

总粒数为:sum=20+21+22+23+…+263

term=2i6-56求和公式:=20+21+22+23+…+263

利用累加求和的通式:sum=sum+term累加项的通项:term=2i循环的初始条件:sum=0,i从0变化到63总的体积volum:sum/1.42e86-57例6.10:国王的许诺

#include<stdio.h>#include<math.h>#define

CONST1.42e8main(){

inti;

doubleterm,sum=0;for(i=0;i<64;i++){

term=pow(2,i);

sum=sum+term;}printf(“sum=%e\n”,sum);printf("volum=%e\n",sum/CONST);}方法1:

利用数学公式6-58例6.10:国王的许诺

关于累加项的通项term:term=2i(i=0,1,…,63)第1项:1第2项:1*2第3项:1*2*2第4项:1*2*2*2…规律:后一项等于前一项乘以2,即:

term=term*2term的初值为1,term=16-59例6.10:国王的许诺

#include<stdio.h>#define

CONST1.42e8main(){

inti;

doubleterm=1,sum=0;for(i=0;i<64;i++){ sum=sum+term; term=term*2;

}printf(“sum=%e\n”,sum);printf("volum=%e\n",sum/CONST);}方法2:

利用规律6-60例6.10:国王的许诺

流程的转移控制break语句continue语句goto语句标准库函数exit()return语句#include<stdio.h>main(){

inti,n;

for(i=1;i<=5;i++) { printf("Pleaseentern:"); scanf("%d",&n);

if(n<0)

break; printf("n=%d\n",n); } printf("Programisover!\n");}n???10Pleaseentern:10↙n=10Pleaseentern:-10↙Programisover!例6.11演示break与continue

-106-62读程序,说出程序的目的break;}后#include<stdio.h>main(){

inti,n;

for(i=1;i<=5;i++) { printf("Pleaseentern:"); scanf("%d",&n);

if(n<0)

continue; printf("n=%d\n",n); } printf("Programisover!\n");}n???10Pleaseentern:10↙n=10Pleaseentern:-10↙Pleaseentern:20↙n=20Pleaseentern:-20↙Pleaseentern:30↙n=30Programisover!例6.11演示break与continue

-1020-20306-63读程序,说出程序的目的break语句和continue语句对for、while、do-while循环进行内部手术Break?退出一层循环或switchContinue?中断此次循环,开始下一次流程的转移控制

6-64不能用break语句跳出多层循环!6-65#include<stdio.h>main(){

inti=0;

while(i<10) {

if(i++<1)

continue;

if(i==5)

break; i++; } printf(“i=%d\n”,i);}程序执行结果:i=112023/2/6break

与continue

语句

break语句的作用:循环中使用break语句可提前结束整个循环。

continue语句的作用:循环中使用continue语句可提前结束本次循环开启一次新的循环6-662023/2/6有关break

与continue的说明(1)break语句可用于switch结构,

也可用于循环中;(2)continue语句仅用于循环中;(3)break与continue均只影响包含它的结构中;6-67例6.12素数判断判断一个数是否是素数,若是打印“Yes”,否则打印“No”。6-68素数:只能被1和它本身整除开始输入mi<mi>=m输出”Yes”输出”No”结束m%i=0真假假假真真i=i+16-69例6.12素数判断若:m不能被2——m-1之间

的所有数整除,则:m为素数4.3循环控制语句(2)/*在循环体内使用break退出循环*/#include<stdio.h>#include<math.h>main(){inti,m;printf(“Pleaseenteranumber:”);scanf(“%d”,&m);

for(i=2;i<m;i++){if(m%i==0){

break;

}}if(i>=m)printf(“Yes!\n”);

elseprintf(“No!\n”);}6-70开始输入mi<mi>=m输出”Yes”输出”No”结束m%i=0真假假假真真i=i+1

6-71例6.12素数判断4.3循环控制语句(2)/*在循环体内使用标志量退出循环*/#include<stdio.h>#include<math.h>main(){inti,m,flag=1;printf(“Pleaseenteranumber:”);scanf(“%d”,&m);

for(i=2;i<m;i++){if(m%i==0){

flag=0;

}}if(flag)printf(“Yes!\n”);

elseprintf(“No!\n”);}break;i<m&&flag;i++)

i<=sqrt(m)&&flag;i++)6-72开始输入mflag=1i<m&&flagflag=0flag!=0输出”素数”输出”非素数”结束真真假假i=i+1m%i=0假真6-73例6.12素数判断例6.12素数判断判断一个数是否是素数,若是打印“Yes”,否则打印“No”。6-74思考:如果输入负数、0、1,用以上几个程序是否能得到正确答案?

如不能需要怎么修改??流程的转移控制break语句continue语句goto语句return语句标准库函数exit()

6-75标号举例error:goto举例goto

error;一般形式goto语句标号;

……

语句标号:……

goto与标号(label)6-76语句标号:……

……goto语句标号;或2023/2/6(1)语句标号用标识符表示。(2)语句标号一定为函数段中存在的。(3)该语句不可滥用。使用goto

语句要注意标号举例error:goto举例goto

error;不能用整数作语句标号6-772023/2/6使用goto语句的原则主张少用、慎用,而不是禁用使用之后,程序仍然是单入口,单出口不要使用一个以上的标号不要用goto语句往回跳,要向下跳不要让goto语句制造出永远不会被执行的代码6-78exit()函数exit(0)作用是终止整个程序的执行,强制返回操作系统调用该函数需要嵌入头文件<stdlib.h>6-79例6.9韩信点兵6-80韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗?设兵数为x,则x应满足:x%5==1&&x%6==5&&x%7==4&&x%11==10穷举法,对x从1开始试验例6.9韩信点兵6-81#include<stdio.h>main(){

intx;

for(x=1;x<5000;x++) {

if(x%5==1&&x%6==5&&x%7==4&&x%11==10) { printf("x=%d\n",x); } } }

“瞎猫碰死耗子”#include<stdio.h>main(){

intx;

for(x=1;;x++) {

if(x%5==1&&x%6==5&&x%7==4&&x%11==10) { printf("x=%d\n",x); } } }例6.9韩信点兵6-82“死循环”例6.9韩信点兵--goto6-83#include<stdio.h>main(){

intx;

for(x=1;;x++) {

if(x%5==1&&x%6==5&&x%7==4&&x%11==10) { printf("x=%d\n",x);

gotoEND;

} }END:;

}6-84#include<stdio.h>main(){

intx;

for(x=1;;x++) {

if(x%5==1&&x%6==5&&x%7==4&&x%11==10) { printf("x=%d\n",x);

break;

} } }例6.9韩信点兵--break6-85例6.9韩信点兵—exit()#include<stdio.h>#include<stdlib.h>main(){

intx;

for(x=1;;x++) {

if(x%5==1&&

温馨提示

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

评论

0/150

提交评论