




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++程序设计中国高等院校计算机基础教育课程体系规划教材谭浩强编著第2章数据类型和表达式2.1C++数据类型2.2常量2.3变量2.4C++运算符2.5算术运算符和表达式2.6赋值运算符和表达式2.7逗号运算符和表达式教学目标熟悉C++语言的数据类型;能够区分常量与变量的不同,掌握基本数据类型的常量与变量的定义、使用;熟悉常用的运算符,能够根据要求构造相应的表达式。重点:基本数据类型、常量与变量、常用的运算符难点:不同数据类型的差异、常量与变量的区别、部分运算符的功能与优先级第2章数据类型和表达式2.1C++数据类型2.2常量2.3变量2.4C++运算符2.5算术运算符和表达式2.6赋值运算符和表达式2.7逗号运算符和表达式2.1.C++的数据类型
数据是计算机处理的对象,是以某种特定形式存在的(整型、浮点等形式)。
例如:
从上我们可以得到数据:姓名、国籍、民族,年龄:23岁,身高:1.91m,体重:91.0kg,…它们具有不同的性质:字符串有标识作用,数值型可计算,还有精度差异。编写程序时,需区别对待中文名:林书豪英文名:JeremyShu-HowLin国籍:美国民族:汉族出生日期:1988.8.23毕业院校:哈佛大学经济系身高:1.91m体重:91kg什么是数据掌握数据类型的目的程序运行时所处理的数据需要存储在内存中,不同性质的数据所占用存储空间的多少、数值范围及可进行的操作也不同;所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式不同的类型分配不同的长度和存储形式数据在计算机中的存储是以字节为单位计算的,一个字节是8位。例如:整数10的用2字节表示的示图:单精度型(float)双精度型(double)数据类型基本类型整型字符型(char)浮点型派生类型指针类型(*)数组类型([])结构体类型(struct)共用体类型(union)类类型空类型(void)枚举类型(enum)整型(int)短整型(shortint)长整型(longint)C++的数据类型掌握数据类型的关键数据类型情况重点掌握类型类型标识符(关键字)、所占字节数、表示的数值范围。下表是VC的基本数据类型:C++语言还允许在基本数据类型(除void类型外)前加上类型修饰符,更具体地表示数据类型。C语言的类型修饰符包括:signed(有符号)
unsigned(无符号)short(短型)long(长型(1)整型数据基本整型(int):不同编译系统或计算机系统中所占用的字节不同,通常为2字节(TC)或4字节(VC)在VC中,占4字节(32位), 范围:-2147483648~2147483647存储方式:以二进制补码形式存放数据(以VC系统为例)问题:最小整数-231的存储形式是什么?000011000000000000000000000000001211110100111111111111111111111111-12231-1(最大整数)11111111111111111111111101111111(1)整型数据(续)短整型(shortint):为2字节,范围:-32768~32767(即215-1)长整型(longint):为4字节,范围:-2147483648~2147483647(即-231~231-1)双长整型(long
longint):一般分配8字节,是C99新增类型,许多编译系统尚未实现。可用:sizeof(类型名或数据)
来获取该类型数据所占字节数。(注:Sizeof是运算符,不是函数)虽然在不同系统中,同一数据类型所占用字节存在着差异,但同一系统不同数据类型的长度有明确的大小关系,即:sizeof(short)<=sizeof(int)<=sizeof(long)<=sizeof(lomglong)例1:使用sizeof运算符获取数据、类型的所占字节数#include<iostream>usingnamespacestd;intmain(){cout<<"int型数据所占字节数:"<<sizeof(int)<<"\n";cout<<"shortint型数据所占字节数:"<<sizeof(shortint)<<"\n";cout<<"longint型数据所占字节数:"<<sizeof(longint)<<"\n";cout<<"整数2345所占字节数:"<<sizeof(2345)<<"\n"; return0;}(1)整型数据(续)可在整型前加unsigned来定义无符号整数,例如:unsignedint、
unsignedshortint、unsignedlongint、unsignedlonglongint,由于最高位不再用来存放整数的符号,因此,可表示整数的范围扩大一倍:(以VC系统为例)unsignedshortint:0~65535(即216-1)unsignedint:0~4294967295(即232-1)unsignedlongint:0~4294967295(即232-1)unsignedlonglongint:0~264-1说明:只有整型(包括字符型)可加unsigned或signed,实数不允许;若将一个负数赋值给一个无符号变量,将得到错误结果,见p47(2)字符型数据(由一个字符组成)字符是按其代码(整数)形式存储的C99把字符型数据作为整数类型的一种字符型数据在使用上有自己的特点字符与字符代码大多数系统采用ASCII字符集字母:A~Z,a~z数字:0~9专门符号:29个:!”#&‘()*等空格符:空格、水平制表符、换行等不能显示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等(2)字符型数据(续)字符’1’和整数1是不同的概念:字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以ASCII码形式存储,占1个字节(在所有系统中)整数1是以整数存储方式(二进制补码方式)存储的,TC系统占2个字节,VC系统4个字节,例如:00000001000000000000000000000000字符型的定义与输出:用char定义字符变量,例如:
charc=’?’;//系统把“?”的ASCII代码63赋给变量c可用强制转换方式控制字符的输出00110001(3)浮点型数据浮点型数据是用来表示具有小数点的实数在C语言中,实数是以指数形式存放在内存存储单位中的小数部分指数数符以圆周率PI的近似值3.14159为例,可写成:3.14159x100、0.314159x101、0.0314159x102、31.4159x10-1等形式。由于小数点位置可以浮动,故称为浮点数。规格化指数形式:小数点前数字为0、小数点的第1位数字非0 对于一个实数来说,其规格化指数形式只有一种,例如: 0.314159x101符合要求,0.0314159x102、31.4159x10-1等则不符合要求指数表示了数据的大小,尾数表示了数据的精度。通常用e或E后面带整数表示10的多少次方。2.2常量概念:在程序运行过程中,其值不能被改变的量 包括:整型常量、实型常量、字符常量和字符串常量等如12,0,-3为整型常量4.6,-1.23为实型常量,包含在两个单撇号之间的字符为字符常量,如′a′,′x′。
2.2.1什么是常量?2.2.2数值常量整型常量:在整数末尾使用u和l字母:若后缀有字母u(大、小写等效),则硬性规定它为一个无符号整型(unsignedint)数;若后缀有字母l(大、小写等效),则硬性规定它为一个长整型(longint)数;在一个整数的末尾,可以同时使用u和l,并且对排列无要求。如25U,0327UL,0x3ffbL,648LU等都是整数。十进制整数:由正号(+)或负号(-)开始的、接着为首位非0的若干个十进制数字所组成。如38,-25,+120,74286等八进制整数:由首位数字为0的后接若干个八进制数字(借用十进制数字中的0-7)所组成。八进制整数不带符号位,隐含为正数。如0,012,0377,04056等等十六进制整数:由数字0和字母x(大、小写均可)开始的、后接若干个十六进制数字(0-9,A-F或a-f)所组成。同八进制整数一样,十六进制整数也均为正数。如0x0,0X25,0x1ff,0x30CA等2.2.2数值常量2)浮点常量:格式:有两种小数形式:1.23,0.23,-999.34,3.14159,…指数形式:1.23e5,2.3e-1,-0.999E3,…
(注:e或E均可,e前是小数,e后是整数)通常,浮点数当作double型看待。可在尾部加f或F指定为float型2.2.2字符常量1)普通的字符常量:用一对单引号括起来的一个字符,形式为:‘单字符’,如:’a’,’%’,’A’等,区分大小写 注意:’ab’是错误的,为什么?2)转义字符常量:格式:\特定字符性质:改变原先字符的含义,实现特定功能 例如:\n(换行功能),\t(下一制表位)还允许用反斜线引导一个具有1至3位的八进制整数(形式:’\ddd’)或一个以字母x作为开始标记的具有1至2位的十六进制整数(形式:’\xhh’),对应的字符就是以这个整数作为ASCII码的字符 例如:\101、\x41均表示ASCII为65的字符,即‘A’常用的转义字符:转义字符含义ASCII码值(十进制)\a响铃(bell)7\b退格(backspace)8\n换行(newline)10\r回车(carriagereturn)13\t水平制表(horizontaltab)9\v垂直制表(verticaltab)11\\反斜杠92\’单引号39\”双引号34\0空格符(null)0\ddd任意字符3位八进制数\xhh任意字符2位十六进制数3)字符数据在内存中的存储形式相关知识:字符数据存放在内存的是其ASCII码,可与当作整数处理;熟悉常用字符的ASCII(十进制数):A~Z(65~90),a~z(97~122),0~9(48~57),空格(32),null(0)等#include<iostream>usingnamespacestd;intmain(){ inti,j; i='A'; j='B'; cout<<i<<""<<j<<'\n'; return0;}例3将字符赋给整型变量#include<iostream>usingnamespacestd;intmain(){ charc1,c2; c1='A'; c2='B'; c1=c1+32; c2=c2+32;cout<<c1<<""<<c2<<endl; return0;}例4字符数据与整数进行算术运算4)字符串常量:格式:“…”,即:用一对双引号括起来的字符序列(字符个数可以0、1或多个,也可以是转义字符),起标识、提示作用。字符串以双引号为定界符,双引号不作为字符串的一部分。如:“Hello”,“GoodMorning!”,“广州大学”…长度:字符串的字符数。如:“Hello”的长度为5.存储:在内存中占一串连续的存储单元,系统自动在字符串的末尾加以字符串结束标志,即转义字符‘\0’。 Hello‘\0’特别注意:“字符串”与“字符型数据”是两个完全不同的概念,它们在定界符、字符个数、结束标识上不同(以后讲解)占6个存储单元问题:分辨哪些是字符常量?哪些是字符串?
“sise”、”?”、””、‘!’、‘\x20’、“”5)怎样确定常量的类型?字符常量:由单撇号(‘’)括起来的单个字符或转义字符字符串常量:由双撇号(“”)括起来的单个字符或转义字符整型常量:不带小数点的数值,系统根据数值的大小确定int型还是long型等浮点型常量:凡以小数形式或指数形式出现的实数24格式:#define符号常量 例如:#definenum50处理:编译前,预处理器将所此符号置换成常量。由此可知,符号常量不同于变量,不占用内存空间好处:做到“一改全改”2.2.4符号常量2.2常量例2输入圆的半径,输出其周长、面积
解题思路:
圆的半径用cout<<"输入,再用公式计算其周长、面积圆的周长、面积计算都要用PI,可用符号常量表示#include<iostream>usingnamespacestd;#definePI3.14159intmain(){ floatr,c,s; cout<<"请输入圆的半径:“; cin>>r; c=2*PI*r; s=PI*r*r; cout<<s;return0;}思考题:请用常变量方法修改此程序,功能不变2.3.1什么是变量:在程序运行过程中,其值可以被改变的量。2.3变量2.3.2变量命名规则
(1)标识符在C语言中,有许多符号需要命名,如:变量名、函数名、数组名等,这些符号称为标识符。inta=3;标识符的命名规则:由字母、数字、下划线组成,并且第一个字符必须为字母或下划线。合法标识符:area、PI、a_array、price等非法标识符:456p、cade-y、x.y、a&b等不同的C++语言编译系统所规定的标识符长度可能不同建议:命名时最好“见名知意”,多采用单词、拼音、下划线等标识符有三类:关键字:C语言预先规定的一批有固定含义的标识符,不能另作他用autodouble
int
structcase else long switchbreakenum
register
typedefchar
extern
return
unionconst
float
short
unsignedcontinue
for
signed
voiddefault
goto
sizeof
volatiledo
if
static
while等
预定义标识符:C语言预先定义并有特定含义的标识符,如:预处理命令(define)。不建议另作他用用户标识符:用户定义的标识符,如:变量名、函数名、数组名等,最好“见名知意”变量定义:数据类型变量名1[,变量名2,…]; 实质:在编译时为其分配相应的存储单元 例如:inta,b,c;floatr;doubleroot1,root2;说明:变量定义时,都有一个确定的数据类型,这样才能分配存储单元;C语言规定,变量要“先定义,后使用”,编译时系统进行检查。例如,如果在定义时为intstudent;而在执行语句中错写成statent编译时就会输出“变量statent未经声明”的信息变量定义后,如果未赋值,则其值是不确定的。应避免这种情况的出现变量初始化:数据类型变量名1=初值[,变量名2=初值,…];
功能:将变量定义、赋值“合二为一”2.3.3定义变量2.3.4为变量赋初值定义变量时对它赋予一个初值,这称为变量初始化。初值可以是常量,也可以是一个有确定值的表达式。如floata,b=5.78*3.5,c=2*sin(2.0);2.3.5常变量在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(constantvariable)。例如,constinta=3;2.4C++的运算符运算符(操作符):是对数据进行运算的符号操作数(运算对象):参与运算的数据表达式:由操作数和操作符连接而成的有效的式子。表达式可以嵌套,例如:2+3+(5*sizeof(int))/4(1)一些概念运算符分类:(按操作数个数的多少划分)单目运算符:一般位于操作数的前面,如:正负号(+、-)双目运算符:运算符一般位于两个操作数之间,如:a+b三目运算符:只有一个,即为条件运算符运算符分类:(按功能划分)算术运算符:+(加)-(减)*(乘)/(除)%(求余)++(自加)--(自减)关系运算符:>(大于)<(小于)==(等于)>=(大于或等于)<=(小于或等于)!=(不等于逻辑运算符:&&与||或!非位运算符:<<左移>>右移等赋值运算符:=条件运算符:?:逗号运算符:,在学习运算符时要掌握几个要点:符号:怎样书写功能:做什么目数:操作数的多少优先级:用来决定它在表达式中的运算次序。如计算表达式a+b*(c-d)/e时,运算次序依次为:-,*,/,+。结合性:是指表达式中出现同等优先级的操作符时,该先做哪个操作的规定从左到右:如d=a+b-c;
(大多数表达式)从右到左:如d=a=3;//C++规定,赋值号是先右后左,先做a=3,其结果再赋给d
(单目、赋值、条件运算符适用)例如:inta=3;//a是变量,所以a是左值
constintb=4;//b是常量,所以b不是左值。显然常量不是左值,因为C语言规定常量的值一旦确定就不能更改的。右值:只能出现在赋值表达式的右边。左值表达式也可以作为右值表达式。例如:
inta,b=6;
a=b;
//b是变量,是左值,此处作右值
a=8;
//8是常量,只能作右值,不能作左值左值和右值:
左值:是能出现在赋值表达式左边的表达式。左值表达式具有存放数据的空间,而且存放是允许的2.5.1基本双目运算符(5个)+,-,*:含义与数学上相同;(注:两个数相乘时,*不能省略)/
: 对于整型数则为除法取整操作,例如,5/2得到结果2;
如果除数或被除数中有一个为负值,舍入方向不固定。例如,-5/2,有的系统中得到的结果为-2,在有的系统中则得到结果为-3。 对于浮点数则为通常意义的除法,例如,5.0/2.0得到结果为2.5 由此可见,/操作符可以对不同的数据类型进行不同的操作。2.5算术运算符与表达式%只能对整型数进行操作,其操作意义取余。例如,5%2得到结果1。可用来判断整数的奇偶性
不允许对浮点数进行%运算,如果对浮点数操作,则会引起编译错误。表达式:利用这些运算符和数学函数可以构造许多复杂的式子。例如:计算圆面积:area=3.14*r*r;已知直角三角形的两条直角边,求斜边长度:
c=sqrt(a*a+b*b);2.5.2单目运算符(2个)
++、--功能:使变量的值加1或减1前缀++i、--i
:在使用i之前,先使i的值加(减)1后缀i++、i--
:在使用i之后,再使i的值加(减)1例如:intp;inti=3;p=++i;//i的值:4,p的值:4 intq;intj=3;q=j++;//j的值:4,q的值:3前缀与后缀自增(减)运算符的比较:对自增(减)的作用是相同的,均能够增加1(减少1);对当中的取值是有影响的,涉及先取值,还后取值问题。说明:++、--只适合于变量,不能用于常量,5++、a++b、(a++b)++都是错误的。2.5算术运算符与表达式#include<iostream>usingnamespacestd;intmain(){ inta=10; cout<<"a="<<a<<",执行b=--a;语句后:"; intb=--a; //相当于a=a-1;b=a; cout<<"a="<<a<<",b="<<b<<endl;
cout<<"a="<<a<<",执行b=--a;语句后:"; intc=a--; //相当于a=a-1;b=a; cout<<"a="<<a<<",c="<<c<<endl; return0;}例5前缀与后缀自减运算符(--)的比较说明:若用自增、自减运算符构成表达式,则越简单越好,最好是类似“a++”或“++a”这种表达式,以增强代码的可读性。2.5.3算术表达式和运算符的优先级2.5算术运算符与表达式C++语言规定了运算符的优先级和结合性。原则:在求解表达式时,先按运算符的优先级别高低次序执行,先乘除后加减。如有表达式a-b*c,b的左侧为减号,右侧为乘号,而乘号优先于减号,因此,相当于a-(b*c)。如果在一个运算对象两侧的运算符的优先级别相同,如a-b+c,则按规定的“结合方向”处理结合性
算术运算符的结合方向为“自左至右”,即先左后右,因此b先与减号结合,执行a-b的运算,再执行加c的运算。“自左至右的结合方向”又称“左结合性”,即运算对象先与左面的运算符结合。赋值运算符的结合方向为“自右至左”,即右结合性。2.5.4表达式中各类数值型数据间的混合运算在表达式中常遇到不同类型数据之间进行运算,如10+'a'+1.5-0.1*'b'2.5算术运算符与表达式在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。2.5.5强制类型转换有两种不同方式:隐式转换(自动转换):不同类型数据进行混合运算,会将两个操作数自动作适当的类型转换,然后进行运算。转换的方向见右图:2.5算术运算符与表达式charshortintlongintunsignedcharunsignedshortunsignedintunsignedlongfloatdoublelongdouble说明:+、-、*、/运算的两个数中有一个数为float或double型,结果是double型。系统将float型数据都先转换为double型,然后进行运算;如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型;char型数据与int型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。显式转换(强制转换):格式:类型名
(表达式)或(类型名)
表达式或(类型名)(表达式)例如:(double)a //将a转换成double类型 (int)(x+y) //将x+y的值转换成int型 (float)(5%3) //将5%3的值转换成float型#include<iostream>usingnamespacestd;intmain(){floatx;inti;x=3.6;i=(int)x;cout<<"x="<<x<<",i="<<i<<endl;return0;}例6强制类型转换说明:若用自增、自减运算符构成表达式,则越简单越好,最好是类似“a++”或“++a”这种表达式,以增强代码的可读性。2.6.1赋值运算符2.6赋值运算符与表达式格式:变量=表达式功能:先计算表达式的值,再赋给左边的变量,即:把表达式的值存入左边变量所标识的存储单元中例如:c=max(a,b);//将函数返回值存放到变量c标识的存储单元说明:=是“赋值”的含义,不是数学中的“等于号”,例如:n=n+1是将n标识存储单元的值加1后存回到该单元;左边必须是左值,通常为变量,不能是常量,a+b=c是错误的。x=y执行后,改变的是x值,y值不变;=两边的数据类型要求相同,若不同,则在赋值前自动把右边表达式的值转换为与左边类型相同的值,再赋给左边变量。
如执行x=20/3.0时,若x为整型,则得到的x值为6(舍去小数部分);2.6.2赋值过程中的类型转换2.6赋值运算符与表达式两侧类型一致时,直接赋值;两侧类型不一致,但都是算术类型时,自动将右侧的类型转换为左侧类型后赋值,请注意以下情况:float型变量=double型值;(损失精度)int型变量=char型值;(赋字符的ASCII码(整数值))少字节整型变量=多字节整型值;(赋低字节数值,即截断)定义变量时要防止数据溢出。2.6.3复合赋值运算符2.6赋值运算符与表达式包括:+=、-=、*=、/=、%=等功能:把右边表达式的值同左边变量的值进行相应运算后,再把这个运算结果赋给左边的变量,该复合赋值表达式的值也就是保存在左边变量中的值; 例如: x+=y;相当于x=x+y; x-=y;相当于x=x-y; x*=y;相当于x=x*y; x/=y;相当于x=x/y; x%=y;相当于x=x%y;已知:a=6,计算表达式:a+=a-=a+a的值思路:赋值运算符结合性是从右到左①先计算表达式a+a的值,得到12(a=6);②再计算表达式a-=12(即a=a-12)值,得到a=-6,表达式值也为-6;③最后计算a+=-6(即a=a+(-6)值,得到a=-12,表达式值为-12。优点:简洁(可读性也不差),编译速度快思考44已知:a=10,b=15,c=20。请说出下列表达式的值:a=b=c=3;a=5+(d=7);a=(b=6)/(c=2);cout<<(a=b);a=(a=b)=b*c;2.6.4赋值表达式2.6赋值运算符与表达式格式:变量=表达式赋值表达式除了给左边变量赋值外,表达式本身也有值,其值为左边变量的值,也就是说:式子x=y=0是允许的,相当于x=(y=0),即先给y赋0,再赋表达式y=0的值(也为0)给x,这样x、y的值都赋0值;优先级:只高于逗号运算符,比其它运算符级别都低结合性:从右到左
例如:a=b=c=4123例7:编程实现:输入华氏温度,输出对应的摄氏温度。#include<iostream>usingnamespacestd;intmain(){ floatf,c; cout<<"请输入华氏温度:"; cin>>f; c=5.0/9*(f-32); cout<<"华氏温度:"<<f<<",对应摄氏温度:"<<c<<endl; return0;}思路:①程序的基本结构(预处理指令、main());②华氏温度转换为摄氏温度的公式:c=5*(f-32)/9;③定义哪些变量例8:计算存款利息:有1000元,想存一年。有三种可选方案:(1)活期,年利率为r1;(2)一年定期,年利率为r2;(3)存两次半年期,年利率为r3。问:哪一种方案更合算?#include<iostream>#include<iomanip>usingnamespacestd;intmain(){ floatp0=1000,p1,p2,p3,r1=0.005,r2=0.035,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年征信业务创新与发展趋势考试模拟试题
- 消防燃烧学基础知识2025年消防执业资格考试重点题库
- 2025年成人高考《语文》模拟冲刺题库:作文审题与立意指导
- 2025年注册会计师考试《会计》会计分录模拟试题及答案点评
- 2025年安全评价师考试模拟试题集与重点难点分析
- 人行天桥与地下通道连接方案
- 彩信广告策划工作总结
- 营销计划培训课件
- 2024年全国职业院校技能大赛(高职组)安徽省集训选拔赛“法律实务”赛项规程
- 铝矿运输产业联盟成立协议
- GB/T 15622-2023液压缸试验方法
- JGJ114-2014 钢筋焊接网混凝土结构技术规程
- 110kV升压站构支架组立施工方案
- CONSORT2010流程图(FlowDiagram)【模板】文档
- 2014年林产化工松香深加工行业分析报告
- 2023机场海关旅检岗位练兵练习试题及答案
- 沉淀滴定法-沉淀滴定法原理
- 游戏综合YY频道设计模板
- GB/T 43102-2023金属覆盖层孔隙率试验用亚硫酸/二氧化硫蒸气测定金或钯镀层孔隙率
- 糖尿病中医症状积分
- 灰姑娘童话故事英文版课件
评论
0/150
提交评论