大连理工大学软件学院C语言课程PPT Ch6_第1页
大连理工大学软件学院C语言课程PPT Ch6_第2页
大连理工大学软件学院C语言课程PPT Ch6_第3页
大连理工大学软件学院C语言课程PPT Ch6_第4页
大连理工大学软件学院C语言课程PPT Ch6_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

第6章运算符与表达式C程序设计快速进阶大学教程C程序设计快速进阶大学教程2023/1/312本章要点算术运算赋值运算类型转换自增与自减

关系与逻辑表运算

其他运算符运算符的优先级与结合性C程序设计快速进阶大学教程2023/1/3136.1理解表达式丰富的运算符和表达式使C程序简洁且功能完C语言是一种表达式语言。表达式是由运算符和运算数组成的式子,按一定规则计算求值的基本单位.运算符—以简洁的方式表达对数据操作的符号。运算数—包含常量、变量和函数等。每个表达式有一个值及其类型。C程序设计快速进阶大学教程2023/1/3146.1理解表达式运算符按其在表达式中所起的作用分为:算术运算符+-*/%自增自减运算符++--赋值运算符=扩展赋值运算符+=-=*=/=%=求字节运算符sizeof强制类型转换符(type)逗号运算符,C程序设计快速进阶大学教程2023/1/3156.1理解表达式运算符按其在表达式中所起的作用分为:关系运算符<<=>===!=逻辑运算符!&&||指针运算符*和&分量运算符*->

函数调用运算符()下标运算符[]

条件运算符?:

位运算符<<>>~|^&C程序设计快速进阶大学教程2023/1/3166.1理解表达式运算符按运算符连接操作数的个数分:单目运算符—一元算符

只有一个操作数的运算符:+、-、++、--、!、sizeof、指针运算符*和部分位操作运算符。双目运算—二元算符

连接两个操作数,大部分运算符属于此类。三目运算符连接三个操作数,条件运算符(?:)C程序设计快速进阶大学教程2023/1/317本章要点算术运算赋值运算类型转换自增与自减

关系与逻辑表运算

其他运算符运算符的优先级与结合性C程序设计快速进阶大学教程2023/1/3186.2算术运算1.整数运算

整数运算表达式的值为整型

当双目运算符的两个操作数都是整型,结果值为整型运算例子结果+2+3;<5,int>-13–4;<9,int>*3*4;<12,int>/8/2;<4,int>6/4;<1,int>4/5;<0,int>-11/2;<-5,int>或<-6,int>6/0;<undef,int>%10%3;<1,int>5%0;<undef,int>sizeofsizeof(256)<4,int>sizeof(int)<4,int>简单截取整数部分由编译器选择除数为0,溢出,无值定义算术运算符+-*/%C程序设计快速进阶大学教程2023/1/3196.2算术运算

2.实数运算除求余%运算外,浮点数可以进行各种算术运算运算例子结果+2.0+.3;<2.3,double>5.1+10.0;<15.1,double>-13.6–4.2;<9.4,double>4.0–7.0;<-3.0,double>*3.0*4.4;<13.2,double>7.5*11.0;<82.5,double>/8.6/2.0;<4.3,double>5.0/4.0;<1.25,double>-11.0/4.0;<-2.75,double>6.0/0.0;<undef,double>sizeofsizeof(3.1415)<8,int>sizeof(double)<8,int>算术运算符+-*/%6.2算术运算C程序设计快速进阶大学教程2023/1/3110注意:“/”操作符对与不同的数据类型进行不同的操作。对于整型数是除法取整操作:5/2=2对于浮点数则是普通除法:5.0/2.0=2.5

%只能对整型数进行操作,不允许对浮点数操作算术运算符+-*/%C程序设计快速进阶大学教程2023/1/31116.2算术运算

3.字符运算每个字符有确定的整数值;

字符类型的数据象整型数据一样,可以进行相关运算。

要保证表达式的结果在有效范围内,才能表示相应的字符。有符号的char型数据的字面值在-128到127之间

ASCII码0~32和127表示控制功能字符;

A~Z,a~z,0~9的码值范围?‘B’+1,’D’-‘A’,‘a’-32算术运算符+-*/%C程序设计快速进阶大学教程2023/1/31126.2算术运算

4.数值函数头文件<math.h>中声明和数学运算相关的函数.

函数结果说明floor(x)返回不大于x的最大整数fabs(x)返回x的绝对值exp(x)返回e的x次幂exlog(x)返回x的自然对数(以e为底)log10(x)返回x的对数(以10为底)pow(x,y)返回x的y次幂xysqrt(x)返回x的平方根sin(x)弧度x的正弦值cos(x)弧度x的余弦值tan(x)弧度x的正切值C程序设计快速进阶大学教程13例6.1编程实现角度与弧度的转换,并计算三角函数的值。#include<stdio.h>#include<math.h>#definePI3.14159intmain(){doubleangle,radian,sine,cosine;/*正弦和余弦*/

printf("Inputangle:");scanf("%lf",&angle);radian=PI*angle/180;sine=sin(radian);cosine=sqrt(1-sine*sine);/*cosine=cos(radian);*/printf("radian=%.2f\n",radian);printf("sin=%f\ncox=%f\n",sine,cosine);

return0;}C程序设计快速进阶大学教程2023/1/3114本章要点算术运算赋值运算类型转换自增与自减

关系与逻辑表运算

其他运算符运算符的优先级与结合性C程序设计快速进阶大学教程2023/1/31156.3赋值运算1.赋值运算符作用是将一个数据赋给变量,将计算结果存储到变量中,还可以用于变量的初始化.

intstudents,boys=26,grils=4;students=boys+grils;

表示将其右侧的表达式求出结果,赋给其左侧的变量。一般形式为:变量

=表达式

赋值运算符=C程序设计快速进阶大学教程2023/1/3116左值表达式(leftvalue,lvalue)能出现在赋值表达式左边的表达式。左值表达式具有存放数据的空间,且允许改变所存数值。

inta=3,b;b=a*a;

错误的

M=4;//#defineM3

a*a+5=6; sqrt(b)=a;2.左值和右值常量和算术表达式不能为左值.6.3赋值运算C程序设计快速进阶大学教程2023/1/3117右值表达式(rightvalue,rvalue)出现在赋值表达式右边。左值表达式可以作为右值表达式。

inta,b=3; a=b//a是左值,b作为右值

a=8//8是常量,只能作为右值

a=b=3+5//a=(b=8)

2.左值和右值6.3赋值运算C程序设计快速进阶大学教程2023/1/3118赋值运算的优先级很低,低于算术运算符;赋值运算的右结合,先计算右侧表达式的值再传给左侧;赋值表达式为左值表达式,允许连续赋值.

3.赋值表达式6.3赋值运算x=(a=5)+(b=8);

x=y=z+2;

(x=y)

=z+2;z+2

=x=y;num=3*4=4*5;x=y=(z+2);x=(y=z+2);左侧为算术表达式inti=j=k=0;这句是错误的。由于表达式i=j=k=0,可以理解为i=(j=(k=0)),显然,j和k变量还未声明变量类型,就要去赋值和接受赋值,显示是不合法的。

C程序设计快速进阶大学教程2023/1/3119提供了赋值运算和其他运算结合的简洁形式;

可以简化程序,并提高编译效率;一般形式

变量双目运算符=表达式

变量=变量双目运算符表达式4.复合赋值运算6.3赋值运算a+=1

a=a+1x*=y+7 x=x*(y+7)r%=p r=r%p

6.3赋值运算课堂练习:a=12

a+=a-=a*a分析:此赋值表达式的求解步骤如下∶①先进行“a-=a*a”的运算,它相当于a=a-a*a,a的值为12-144=-132。②再进行“a+=-132”的运算,相当于a=a+(-132),a的值为-132-132=-264。

6.3赋值运算

将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。如:printf("%d",a=b);

分析:如果b的值为3,则输出a的值(也是表达式a=b的值)为3。在一个语句中完成了赋值和输出双重功能。C程序设计快速进阶大学教程2023/1/3122egintiScore1=90;intiScore2=75;9075iScore1iScore2iTemp75909075交换两个变量的值

6.3赋值运算C程序设计快速进阶大学教程2023/1/3123交换两个变量的值

egintnum1=138;intnum2=159;//交换num1=num2;num2=num1;90159num1num2temp159138138159inttemp;temp=num2;num2=num1;num1=temp;6.3赋值运算书上例题6.2C程序设计快速进阶大学教程2023/1/3124本章要点算术运算赋值运算类型转换

自增与自减

关系与逻辑表运算

其他运算符运算符的优先级与结合性C程序设计快速进阶大学教程2023/1/3125C语言允许在一个表达式中使用不同类型的数据进行混合运算;隐式转换—自动转换编译器根据一定规则自动将数据转换成正确的类型。

显式转换—强制转换程序员也可将某个表达式的值强制转换成特定类型。6.4表达式中的类型转换6.4表达式中的类型转换隐式转换它经常以以下几种形式发生一般算术转换:在计算一个同时出现多种数据类型的表达式时将所有数据类型都转换为同一种数据类型输出转换:在对数据进行输出时按指定格式将数据输出赋值转换:利用赋值运算符将数据转换为运算符左边指定的数据类型函数调用转换:在对函数调用时如果形参与实参的数据类型不一致实参会自动转换为形参的数据类型C程序设计快速进阶大学教程2023/1/31271.一般算术转换当不同类型的数据参与同一运算时,编译器自动将其逐一转换为相同类型,再进行运算。“就高不就低”的原则,即类型级别低的操作数转换成级别高的操作数类型

。6.4.1隐式类型转换C程序设计快速进阶大学教程2023/1/3128转换原则:promotion

浮点数float→double→longdouble

整形数char→short→int→longint

实型数整数→小数6.4.1隐式类型转换Chara;intb,e;doubled;floatc;计算a*b+c-d/e时按计算顺序说明类型转换1)a*b//char类型的a转换为int类型的值,再和int类型的b相乘2)d/e;//int类型的e转换为double类型的值,然后double类型的d再和e相除3)a*b+c//int类型的a*b转换为float类型值再和float类型的c相加4)a*b+c-d/e//float类型的(a*b+c)转换为double类型的值再和double类型的d/e相减不考虑过程最终表达式的值为最长类型,这里是double的值6.4.1隐式类型转换2格式输出转换这种转换类型是将某种类型的数据按照输出格式转换成指定格式例如main(){inta=65;printf("%c\n",a);}//输出A此程序是将ASCII值为65的字符输出来所以输出结果是AC程序设计快速进阶大学教程2023/1/31302.赋值运算中的类型转换当赋值运算的左值表达值与右值表达式类型不同时,将右值转换成左值的类型。6.4.1隐式类型转换

运算符两端运算量类型不同时:自动“向高看齐”

赋值转换具有强制性

逐个算符转换6.4.1隐式类型转换C程序设计快速进阶大学教程2023/1/3131②将整型数据赋给单、双精度变量时,数值不变,但以浮点数形式存储到变量中

如:

将23赋给float变量f,即执行f=23,先将23转换成23.000000,再存储在f中。将23赋给double型变量d,即执行d=23,系统将23补足有效位0,然后以双精度浮点数形式存储到变量d中。

①将浮点型数据(包括单、双精度)赋给整型变量时,舍弃浮点数的小数部分。不进行四舍五入如:i为整型变量,执行“i=3.56”的结果是使i的值为3,以整数形式存储在整型变量中.6.4.1隐式类型转换C程序设计快速进阶大学教程2023/1/3132④字符型数据赋给整型变量时,由于字符只占1个字节,因此将字符数据(8个二进位)放到整型变量存储单元的低8位中。⑤将一个int、short、long型数据赋给一个char型变量时,只将其低8位原封不动地送到char型变量(即截断)。例如:inti=289;charc=′a′;c=i;c的值为33,如果用“%c”输出c,将得到字符“!”!的ASCII码为33。

6.4.1隐式类型转换6double和float之间转换:补零和截断尾数C语言中,float和double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEER32.24,而double遵从的是R64.53。R32.24和R64.53的存储方式都是用科学计数法来存储数据的符号位

指数位

小数部分

指数偏移量

单精度浮点数

1

位[31]

8位

[30-23]

23位

[22-00]

127

双精度浮点数

1

位[63]

11位[62-52]

52

位[51-00]

1023

6.4.1隐式类型转换指数的移位存储:指数实际也有正负的,但是没有单独的符号位,而是采用了一个偏移来表示指数是8位,可表达的范围是0到255

而对应的实际的指数是-127到+128因此采取移位策略把127+指数作为指数存储的数据例如:3130128255-1270

可以将小数点前面的1省略,所以23bit的尾数部分,可以表示的精度却变成了24bit,道理就是在这里,那24bit能精确到小数点后几位呢,我们知道9的二进制表示为1001,所以4bit能精确十进制中的1位小数点,24bit就能使float能精确到小数点后6位。8.25用二进制表示可表示为1000.01科学计数法表示1.00001*23120.5用二进制表示为:1110110.1科学计数法表示1.1101101*26

6.4.1隐式类型转换补充:十进制小数转换为二进制小数十进制小数转换成二进制小数采用“乘2取整,顺序排列“法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

(0.625)10=(0.101)20.625X21.25X20.5X21.0(1011.01)2=(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10

=(8+0+2+1+0+0.25)10=(11.25)106.4.1隐式类型转换floatf=2.2f;

doubled=f;printf(“%16f”,d);

f=2.25f;

d=f;printf(“%16f”,d);

2.25的单精度存储方式:01000000100100000000000000000000,而2.25的双精度表示为:0100000000010010000000000000000000000000000000000000000000000000,这样2.25在进行强制转换的时候,数值是不会变的

6.4.1隐式类型转换.2用科学计数法表示应该为:将十进制的小数转换为二进制的小数的方法为将小数*2,取整数部分,所以0.282=0.4,所以二进制小数第一位为0.4的整数部分0,0.4×2=0.8,第二位为0,0.8*2=1.6,第三位为1,0.6×2=1.2,第四位为1,0.2*2=0.4,第五位为0,这样永远也不可能乘到=1.0,得到的二进制是一个无限循环的排列00110011001100110011...,对于单精度数据来说,尾数只能表示24bit的精度,所以2.2的float存储为:

换算成十进制的值,却不会是2.2的.而double类型的数据也存在同样的问题,所以在浮点数表示中会产生些许的误差,在单精度转换为双精度的时候,也会存在误差的问题.

C程序设计快速进阶大学教程2023/1/31406.4.2显式类型转换2.显式类型转换casting转换形式–强制转换运算符(类型名)(表达式)(类型名)变量eg:强制转换

(int)x%3,(double)(x+y),(float)(iNum/4)(float)(male_mumber)/female_mumber

进行显式转换的变量的类型和值未变(float)(male_mumber/female_mumber)6.4.3常见问题在对数据类型进行转换时是为了程序的需要可有的时候却会带来意想不到的安全隐患和错误:非安全转换输入输出格式错误运算符数据不匹配6.4.3常见问题1.非安全转换非安全转换是将一种数据类型长的转换成其它数据类型短的数据使其值的表示范围被缩小所出现的错误它有如下几种情况(1)较大整数转换为较短的类型C语言系统一般不检测这种类型的错误大部分的编译器在可能出现非安全转换是不会给出警告信息因此在编程时需避免此类型转换如main(){longi=1234567890111;printf("%d\n",i);}

//其输出结果为6.4.3常见问题(2)有符号负数转换为无符号数当由有符号数转换为无符号数时原来的符号位将不作为符号而作为数据的一部分例如main(){inti=-1;printf("%u",i);}(3)双精度类型转换为单精度类型若数值超出了单精度所表示的范围则得到的数据无意义且系统不提示错误.

main(){doublei=12345678912345.123;floatj=i;printf("%f\n",j);}6.4.3常见问题(4)输入输出格式错误这种错误会出现在格式输入与格式输出函数中例如main(){inti=2;printf("%f",i);}//会出现编译错误数据类型不一致6.4.3常见问题(5)算术运算与数据类型不匹配例1main(){inti=7,j=2;printf("%d\n",i/j);}//输出结果为3如果想得到3.5的话就要将i和j都要强制转换为float类型例2main(){floati=12.45,j=6.3;printf("%d\n",i%j);}//提示错误:非法地使用浮点数在main函数中在例2中之所以会出现系统提示错误是因为运算符%左右两侧的数据类型都必须是int但程序中两个变量却都不是int类型的对于算术运算符/和%一定要注意数据类型的匹配C程序设计快速进阶大学教程46例6.4辨析该程序中那些代码进行了类型转换#definePI3.14

intlength=100,width=75;floatradiumIn,radiumOut,line;doublearea=length*width,rangArea;

rangArea=PI*(radiumOut*radiumOut-radiumIn*radiumIn);/*跑道面积*/rangArea+=(radiumOut-radiumIn)*line;/*绿化面积和绿化比*/area-=rangArea;100*area/(length*width);C程序设计快速进阶大学教程2023/1/3147本章要点算术运算赋值运算类型转换自增与自减

关系与逻辑表运算

其他运算符运算符的优先级与结合性C程序设计快速进阶大学教程2023/1/31486.5自增与自减运算程序设计中,常对变量进行如下操作:

i=i+1; i+=1;计数器counteri++++ii0+112C程序设计快速进阶大学教程2023/1/31496.5自增与自减运算自增(++)、自减(--)运算单目运算符,为变量的增1和减1提供了紧凑格式,其作用是使变量的值增1或减1。自增、自减运算符有四种应用格式:运算符后置用法

代表先使用变量,然后对变量增值,如i++运算符前置用法

代表先对变量增值,再使用变量,如++iC程序设计快速进阶大学教程2023/1/31506.5自增与自减运算运算符前置用法先对变量增值,再使用变量运算符后置用法 先使用变量,然后对变量增值inta=3;b=++a;//a=a+1;b=a;inta=3;b=--a;//a=a-1;b=a;inta=3;b=a++;//b=a;a=a+1;inta=3;b=a--;//b=a;a=a-1单独使用等效++aa++C程序设计快速进阶大学教程2023/1/31516.5自增与自减运算自增、自减算符的运算要求操作数通常为整型变量或左值表达式操作不能为常量或算术表达式;

例:

++

5 (x+y)--sqrt(x)++ inta=3;++(++a);

inta=3;++(

a++);

C程序设计快速进阶大学教程2023/1/31526.5自增与自减运算优先级较高,高于算术运算符,后置高于前置运算符结合性后置:尽可能多的自左向右将运算符结合在一起。

eg:a+++b//(a++)+b前置:从右至左结合

eg:+++b//+(++b)

C程序设计快速进阶大学教程2023/1/31536.5自增与自减运算注意建议单独自增和自减运算符,尽可能不将其用于混合运算。

total=4+counter++;

用括号或者空格分隔多个连续的运算符,避免产生歧义。

a+++b(a++)+b应避免在一个表达式中多次使用此类运算符能会带来的副作用:

(i++)+(i++)+(i++)

C程序设计快速进阶大学教程2023/1/31546.6关系与逻辑运算1.关系运算符程序需要作出决策时,常需要比较机制。使用关系运算对两个运算量的值进行比较。

关系表达式表示比较的结果

关系表达式成立,结果为真true,值为1(非0)表达式不成立,结果为假false,值为0运算符说明运算符说明>大于<小于>=大于等于<=小于等于==等于!=不等于C程序设计快速进阶大学教程2023/1/31556.6关系与逻辑运算

若有 intx=2,y=3;

则x==yx!=y intflag

=x>y;true

值为1false

值为

0a+b>c-db*b-4*a*c>=0b/2*a!=0‘a’+1==‘b’‘A’>’B’关系表达式的值——逻辑值C程序设计快速进阶大学教程2023/1/31566.6关系与逻辑运算1.关系运算符关系运算符的结合性都是双目运算符,其结合性是从左到右;关系运算符的优先级

优先级低于算术运算符,高于赋值运算符。

<、<=、>、>=运算符的优先级相同,

==和!=运算符的优先级相同,优先级低于前者。

z的值为1z=2>=3<=5z=0<=5z=1z=3-1>=x+1<=y+2intx=2,y=3,z=4;C程序设计快速进阶大学教程2023/1/3157区分逻辑等==与赋值符号=6.6关系与逻辑运算result=i=j;result=i==j;误用两个运算符,会造成不易发现的逻辑错误.

判断实数相等时,使用==可能产生误差.宜采用比较求误差值形式|f1-f2|<

fabs(f1–f2)<1e-6注意关系运算的正确使用:实数在计算机中实际表示时存在误差。因此,相等的两实数,在计算机实际表示时可能不相等。C程序设计快速进阶大学教程2023/1/3158

区间范围表示法01

说明数学含义x在区间[a,b)的数学表达式

a≤x<b

不能使用

a<=x<b或者a<=x,x<b

应该使用注意关系运算的正确使用:6.6关系与逻辑运算doublea=0,b=0.5,x=0.3;

表达式a<=x<b的结果为:a<=x&&x<bC程序设计快速进阶大学教程2023/1/31596.6关系与逻辑运算2.逻辑运算符

将关系表达式用逻辑运算符组合起来,解决更复杂的逻辑问题。

&&(逻辑与)||(逻辑或),(逻辑非)

逻辑表达式:多个简单条件组成复合条件表达式的值——逻辑型结果为真则为1,结果为假则为0。

m||na<=x&&x>=ba!=0&&disc>=0C程序设计快速进阶大学教程2023/1/31606.6关系与逻辑运算2.逻辑运算符

逻辑运算符的用法

真值表aba&&ba||b!a!b000011010110100101111100C程序设计快速进阶大学教程2023/1/3161逻辑与&&逻辑或||逻辑非!逻辑运算6.6关系与逻辑运算C程序设计快速进阶大学教程2023/1/31626.6关系与逻辑运算2.逻辑运算符逻辑运算符的优先级逻辑运算符低于关系运算符!高于&&高于||逻辑运算符的结合性

&&

||

左结合

!

右结合

C程序设计快速进阶大学教程63 inta=1,b=2,c=3;

if(a>b&&c++) printf("a>b"); printf("c=%d\n",c); if(a<b||c--) printf("a<b\n"); printf("c=%d\n",c);例:课堂练习:分析输出C程序设计快速进阶大学教程64例要判别某一年year是否闰年。闰年的条件是符合下面二者之一:①能被4整除,但不能被100整除。②能被400整除。表示闰年的逻辑表达式1:

(year%4==0

&&

year%100!=0)||year%400==0表示平年的逻辑表达式2:

!((year%4==0&&year%100!=0)||year%400==0)(year%4!=0)||(year%100==0&&year%400!=0)C程序设计快速进阶大学教程2023/1/31656.7其他运算符1.条件算符三目运算符“

?:”一般形式: 表达式1?表达式2:表达式3求值规则:先计算表达式1的值,

若其值为真,表达式2的值就是整个表达式的值;否则表达式3的值就是整个表达式的值。表达式1?表达式2:表达式3max=(a>b)?a:b;C程序设计快速进阶大学教程2023/1/31666.7其他运算符2.逗号运算符“顺序求值运算符”,用于将多个表达式连接,并将各表达式从左到右的顺序依次求值,

常作为分隔符。逗号表达式的一般格式为: 表达式1,表达式2,……,表达式nprintf("%d,%d,%d",a,b,c);C程序设计快速进阶大学教程2023/1/31676.7其他运算符2.逗号运算符优先级:最低结合性:左结合算值的顺序是从左至右逐个表达式分别计算。逗号表达式的值

最右端的表达式的结果作为整个表达式的值。

课堂练习inta=1,b=2,c=3;intsum=(a+b,b+c,c+a);

sum=a+b,

温馨提示

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

评论

0/150

提交评论