




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章選擇結(jié)構(gòu)程序設(shè)計(jì)繆裕青2015.32本章主要內(nèi)容關(guān)系運(yùn)算與關(guān)系表達(dá)式邏輯運(yùn)算與邏輯表達(dá)式簡(jiǎn)單分支選擇結(jié)構(gòu)條件運(yùn)算符與條件表達(dá)式多分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)的嵌套程序設(shè)計(jì)舉例3順序結(jié)構(gòu)例:交換x和y兩個(gè)變量的值 如何交換?
10x20yx=y;y=x;4順序結(jié)構(gòu)(續(xù))例:交換兩個(gè)變量的值1020xytemp1020y20x20xtemp1010ytemp10(a)第一步temp=x(b)第二步x=y(c)第三步y(tǒng)=temptemp=x;x=y;y=temp;temp=xx=yy=temp5順序結(jié)構(gòu)(續(xù))例:交換兩個(gè)變量的值#include<stdio.h>intmain(){ intx=10,y=20; //定義變量并初始化
inttemp; //定義一個(gè)整型變量作為中間交換之用
printf("交換前:x=%d,y=%d\n",x,y);
temp=x; x=y; y=temp; printf("交換后:x=%d,y=%d\n",x,y);return0;}6問(wèn)題:有x,y兩個(gè)整型變量,如果x比y大就交換,否則不交換。算法?問(wèn)題延伸x>y?開始結(jié)束YN不再順序執(zhí)行,有分支變量x,y交換x,y不交換根據(jù)表達(dá)式的值判斷走哪個(gè)分支x>y是什么表達(dá)式?7關(guān)系運(yùn)算符又稱比較運(yùn)算符,優(yōu)先次序?yàn)椋?/p>
<<=>>===!=
關(guān)系表達(dá)式的結(jié)果類型為bool,值為true或false。若關(guān)系成立,結(jié)果為true(1);否則,結(jié)果為false(0)。例: a=3,b=5;
a>=b
a<b
a==b a!=b
關(guān)系運(yùn)算與關(guān)系表達(dá)式優(yōu)先級(jí)相同(高)
優(yōu)先級(jí)相同(低)結(jié)果為0結(jié)果為1結(jié)果為0結(jié)果為1注意“=”與“==”的區(qū)別8練習(xí):如何寫關(guān)系表達(dá)式?
x≤60 寫成
a=0 寫成
c+d≠e+f 寫成
u≥10-7
寫成關(guān)系運(yùn)算與關(guān)系表達(dá)式(續(xù))0≤x≤10如何表示?x<=60a==0(c+d)!=(e+f)u>=1.0E-70<=5<=10表示什么意思?結(jié)果?等價(jià)于(0<=5)<=10等價(jià)于1<=10,結(jié)果為19邏輯運(yùn)算也被稱為布爾運(yùn)算,值只能為true
或false。&&與運(yùn)算(a>b&&b>c);a大于b,并且b大于c||或運(yùn)算(a>b
||b>c);a大于b,或者b大于c!非運(yùn)算(求反)(!a);求a的相反值并不改變a的值邏輯運(yùn)算與邏輯表達(dá)式!(邏輯非)&&(邏輯與)||(邏輯或)優(yōu)先級(jí)高低10運(yùn)算:
0&&0=0,0&&1=0,1&&0=0,1&&1=1
0||0=0,0||1=1,1||0=1,1||1=1 !0=1,!1=0練習(xí):如何寫邏輯表達(dá)式?0≤x≤10寫成: 若x=5,結(jié)果?a<0或者a>10寫成: 若a=15,結(jié)果?b不大于0寫成: 若b=6,結(jié)果?邏輯運(yùn)算與邏輯表達(dá)式(續(xù))(x>=0&&x<=10)1(a<0)||(a>10)1!(b>0)或者(b<=0)011邏輯運(yùn)算與邏輯表達(dá)式(續(xù))練習(xí):如何寫邏輯表達(dá)式?i和j均小于或等于100,或者i和j均大于k(i<=100&&j<=100)||(i>k&&j>k)ch是英文大寫字母(ch>='A')&&(ch<='Z')判斷某一年year是否是閏年的條件是滿足下列兩個(gè)條件之一:能被4整除,但不能被100整除;能被400整除;
year%4==0 year%100!=0 year%400==0((year%4==0)&&(year%100!=0))||(year%400==0)12運(yùn)算符優(yōu)先級(jí)括號(hào)!算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&||賦值運(yùn)算符低高用括號(hào)來(lái)控制運(yùn)算順序更直觀、方便,并減少出錯(cuò)的概率c>a+ba>b==ca=b>c等價(jià)于c>(a+b)等價(jià)于(a>b)==c等價(jià)于a=(b>c)z=!a&&b||x>y&&c+d②①③④⑤⑥⑦13運(yùn)算符優(yōu)先級(jí)(續(xù))x=5<=10表示什么意思?結(jié)果?等價(jià)于x=(5<=10),結(jié)果x=1(x=5)<=10表示什么意思?結(jié)果?結(jié)果x=5,5<=10表達(dá)式值為15<=x<=10與5<=x&&x<=10一樣嗎?當(dāng)x=15,結(jié)果不一樣!14選擇結(jié)構(gòu)C語(yǔ)言中實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句:if語(yǔ)句if-else語(yǔ)句switch-case語(yǔ)句15語(yǔ)法格式:語(yǔ)句塊可以是一條語(yǔ)句,也可以是用大括號(hào)括起來(lái)的復(fù)合語(yǔ)句簡(jiǎn)單分支選擇結(jié)構(gòu)——if語(yǔ)句表達(dá)式?truefalse語(yǔ)句塊語(yǔ)義:if(表達(dá)式)
{語(yǔ)句塊}16問(wèn)題:有x,y兩個(gè)整型變量,如果x比y大就交換,否則不交換。簡(jiǎn)單分支選擇結(jié)構(gòu)——if語(yǔ)句(續(xù))#include<stdio.h>intmain(){intx=10,y=20,temp;printf("交換前:x=%d,y=%d\n",x,y);if(x>y)//交換x,y
{temp=x;x=y;y=temp;
}
printf("交換后:x=%d,y=%d\n",x,y);return0;}x>y?開始結(jié)束YN變量x,y交換x,y不交換一條if語(yǔ)句17語(yǔ)法格式:簡(jiǎn)單分支選擇結(jié)構(gòu)——if-else語(yǔ)句表達(dá)式?truefalse語(yǔ)句塊1語(yǔ)句塊2if(表達(dá)式)
{語(yǔ)句塊1}else
{語(yǔ)句塊2}語(yǔ)義:18簡(jiǎn)單分支選擇結(jié)構(gòu)——if-else語(yǔ)句(續(xù))問(wèn)題:求整型變量x的絕對(duì)值分析:如何求|x|? ifx>=0,|x|=xelse|x|=-x[算法]:(1)輸入x(2)求y=|x|(3)輸出yifx>=0,y=xelsey=-x#include<stdio.h>intmain(){intx,y;scanf("%d",&x);
if(x>=0)
{y=x;
}else
{y=-x;
}
printf("|x|=%d\n",y);return0;}一條if-ese語(yǔ)句19條件運(yùn)算符與條件表達(dá)式語(yǔ)法格式:
表達(dá)式1?表達(dá)式2:表達(dá)式3說(shuō)明:表達(dá)式1必須是bool類型語(yǔ)義例:y=x>=0?x:-x;if(x>=0)y=x;elsey=-x;表達(dá)式1?truefalse表達(dá)式2表達(dá)式3x>=0?(y=x):(y=-x)20運(yùn)算符優(yōu)先級(jí)(續(xù))括號(hào)算術(shù)運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算條件運(yùn)算賦值運(yùn)算低高例:max=x>y?x:ymax=((x>y)?x:y)21多分支選擇結(jié)構(gòu)——多if-else語(yǔ)句例:有一函數(shù)
編一程序,輸入一個(gè)x值,要求輸出相應(yīng)的y值。解題思路:用if語(yǔ)句檢查x的值,根據(jù)x的值決定賦予y的值由于y的可能值不是兩個(gè)而是三個(gè),因此不可能只用一個(gè)簡(jiǎn)單(無(wú)內(nèi)嵌if)的if語(yǔ)句來(lái)實(shí)現(xiàn)22多分支選擇結(jié)構(gòu)——多if-else語(yǔ)句解題思路:方法1(1)用3個(gè)獨(dú)立的if語(yǔ)句處理:輸入x若
x<0,則y=-1若
x=0,則y=0若
x>0,則y=1輸出x和yscanf("%d",&x);if(x<0)y=-1;if(x==0)y=0;if(x>0)y=1;printf("x=%d,y=%d\n",x,y);23多分支選擇結(jié)構(gòu)——多if-else語(yǔ)句解題思路:方法2(2)用一個(gè)嵌套的if語(yǔ)句處理:輸入x若x<0,則y=-1否則(隱含x>=0)
若
x=0,則y=0
否則
y=1輸出x和yscanf("%d",&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf("x=%d,y=%d\n",x,y);24多分支選擇結(jié)構(gòu)——多if-else語(yǔ)句scanf("%d",&x);if(x<0)y=-1;elseif(x==0)y=0;elsey=1;printf("x=%d,y=%d\n",x,y);scanf("%d",&x);if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;printf("x=%d,y=%d\n",x,y);提倡內(nèi)嵌if放在else中25多分支選擇結(jié)構(gòu)——多if-else語(yǔ)句例:將百分制成績(jī)轉(zhuǎn)換成5分制成績(jī)[算法分析]: 轉(zhuǎn)換關(guān)系:
90≤score≤100,優(yōu)
80≤score<90,良
70≤score<80,中
60≤score<70,及格
score<60,不及格if(score>=90&&score<=100){printf("優(yōu)\n");}if(score>=80&&score<90){printf("良\n");}if(score>=70&&score<80){printf("中\(zhòng)n");}if(score>=60&&score<70){printf("及格\n");}if(score<60){printf("不及格\n");}當(dāng)成績(jī)?yōu)?0判斷幾次?為50判斷幾次?能否減少判斷次數(shù)?26if(表達(dá)式1)語(yǔ)句塊1;elseif(表達(dá)式2)語(yǔ)句塊2;elseif(表達(dá)式3)語(yǔ)句塊3;┇
elseif(表達(dá)式n)語(yǔ)句塊n;else語(yǔ)句塊n+1;多分支選擇結(jié)構(gòu)——多if-else語(yǔ)句(續(xù))例:將百分制成績(jī)轉(zhuǎn)換成5分制成績(jī)#include<stdio.h>intmain(){ intscore; printf("請(qǐng)輸入(百分制)分?jǐn)?shù):"); scanf("%d",&score);
if(score<60) {printf("不及格\n");}
else//>=60
if(score<70) {printf("及格\n");}
else//>=70
if(score<80){printf("中\(zhòng)n");}
else//>=80
if(score<90) {printf("良\n");}
else//>=90 {printf("優(yōu)\n");}return0;}多路分支注意:else與if必須配對(duì)使用,對(duì)齊可以更便于閱讀。良好的程序風(fēng)格:鋸齒形
——縮進(jìn)排27多分支選擇結(jié)構(gòu)——switch語(yǔ)句多路(開關(guān))選擇語(yǔ)句語(yǔ)法格式:
switch
(整型表達(dá)式)
{
case數(shù)值1:
語(yǔ)句塊1;break;
case數(shù)值2:
語(yǔ)句塊2;break;
case數(shù)值3:
語(yǔ)句塊3;break;
...
default:
語(yǔ)句塊n;
}28有break情況語(yǔ)句塊3語(yǔ)句塊1表達(dá)式的值等于?數(shù)值1其他語(yǔ)句塊2語(yǔ)句塊n數(shù)值2數(shù)值3…多分支選擇結(jié)構(gòu)——switch語(yǔ)句(續(xù))后面語(yǔ)句29多分支選擇結(jié)構(gòu)——switch語(yǔ)句沒有break的情況
switch
(整型表達(dá)式)
{
case數(shù)值1:
語(yǔ)句塊1;
case數(shù)值2:
語(yǔ)句塊2;
case數(shù)值3:
語(yǔ)句塊3;
...
default:
語(yǔ)句塊n;
}30多分支選擇結(jié)構(gòu)——switch語(yǔ)句(續(xù))沒有break的情況語(yǔ)句塊3語(yǔ)句塊1表達(dá)式的值等于?數(shù)值1其他語(yǔ)句塊2語(yǔ)句塊n數(shù)值2數(shù)值3…沒有實(shí)現(xiàn)多路分支31多分支選擇結(jié)構(gòu)——switch語(yǔ)句(續(xù))例:將百分制成績(jī)轉(zhuǎn)換成5分制成績(jī)[算法分析]:有5個(gè)分?jǐn)?shù)檔,因此有5個(gè)分支。如何從一個(gè)百分制成績(jī)得到5個(gè)分支的數(shù)值,整型表達(dá)式如何構(gòu)造?數(shù)值如何設(shè)置?90≤score≤100,優(yōu)80≤score<90,良70≤score<80,中60≤score<70,及格score<60,不及格90≤score≤100,優(yōu)80≤score≤89,良70≤score≤
79
,中60≤score≤
69
,及格score<60
,不及格“百分成績(jī)/10=”?9,1087632例:將百分制成績(jī)到5分制成績(jī)轉(zhuǎn)換#include<stdio.h>intmain(){ intscore; printf("請(qǐng)輸入(百分制)分?jǐn)?shù):"); scanf("%d",&score);
switch
(score/10) //根據(jù)轉(zhuǎn)換值進(jìn)行分支選擇
{
case10: case9: printf("優(yōu)\n");break; case8: printf("良\n");break; case7: printf("中\(zhòng)n"); break; case6: printf("及格\n");break;
default: printf("不及格\n");
}
return0;}一條switch語(yǔ)句如果沒有break?#include<stdio.h>intmain(){intscore;printf("請(qǐng)輸入(百分制)分?jǐn)?shù):");scanf("%d",&score);switch(score/10) {case10:case9: printf("優(yōu)\n");case8: printf("良\n");case7: printf("中\(zhòng)n"); case6: printf("及格\n");default: printf("不及格\n");}return0;}如何檢驗(yàn)輸入數(shù)據(jù)是否滿足輸入值范圍?×33完全嵌套是合法的選擇結(jié)構(gòu)的嵌套合法非法√×交叉嵌套是非法的34選擇結(jié)構(gòu)的嵌套(續(xù))ififelseelseifswitchelseswitchifelse√×ififelseelseififelseelse√√ifelseswitch√35例:將百分制成績(jī)到5分制成績(jī)轉(zhuǎn)換#include<stdio.h>intmain(){ intscore; printf("請(qǐng)輸入(百分制)分?jǐn)?shù):"); scanf("%d",&score); if(score>=0&&score<=100)
{
switch(score/10) //根據(jù)轉(zhuǎn)換值進(jìn)行分支選擇
{ case10: case9: printf("優(yōu)\n");break; case8: printf("良\n");break; case7: printf("中\(zhòng)n"); break; case6: printf("及格\n");break; default: printf("不及格\n");
}
}
elseprintf("輸入數(shù)據(jù)錯(cuò)誤\n");
return0;}判斷是否符合取值范圍36程序設(shè)計(jì)舉例例1:輸入一小寫字母將其轉(zhuǎn)換為大寫字母。[分析]:小寫字母與大寫字母之間的關(guān)系?從ASCII碼表知道,大小寫對(duì)應(yīng)字母之間的差值是32,如:'A'的值是65、'a'的值是97,兩者的差值是32。[算法]:輸入:charlcase,ucase;計(jì)算:ucase=lcase-32;//轉(zhuǎn)換公式輸出:ucase;#include<stdio.h>//將輸入的小寫字母轉(zhuǎn)換成大寫字母輸出intmain(){charlcase,ucase;printf("請(qǐng)輸入要轉(zhuǎn)換的小寫字母:");scanf("%c",&lcase);ucase=lcase-32;printf("對(duì)應(yīng)的大寫字母:%c\n",ucase);return0;}如果變量lcase中的小寫字母后面不再使用,程序中可以減少變量嗎?37程序設(shè)計(jì)舉例(續(xù))例1:輸入一小寫字母將其轉(zhuǎn)換為大寫字母。[算法]:輸入:charch;計(jì)算:ch=ch-32;輸出:ch;#include<stdio.h>//將輸入的小寫字母轉(zhuǎn)換成大寫字母輸出intmain(){ charch; printf("請(qǐng)輸入要轉(zhuǎn)換的小寫字母:"); scanf("%c",&ch);
ch=ch-32; printf("對(duì)應(yīng)的大寫字母:%c\n",ch);return0;}程序還可以改進(jìn)嗎?如果沒有ASCII表可查,如何知道相差32?38程序設(shè)計(jì)舉例(續(xù))例1:輸入一小寫字母將其轉(zhuǎn)換為大寫字母。
32='a'-'A'#include<stdio.h>//將輸入的小寫字母轉(zhuǎn)換成大寫字母輸出intmain(){ charch; printf("請(qǐng)輸入要轉(zhuǎn)換的小寫字母:"); scanf("%c",&ch); ch=ch-'a'+'A'; printf("對(duì)應(yīng)的大寫字母:%c\n",ch);return0;}如果將大寫字母轉(zhuǎn)換成小寫字母,程序如何寫?39程序設(shè)計(jì)舉例(續(xù))例1:輸入一小寫字母將其轉(zhuǎn)換為大寫字母。如果輸入的不是小寫字母怎么辦?#include<stdio.h>//將輸入的小寫字母轉(zhuǎn)換成大寫字母輸出intmain(){ charch; printf("請(qǐng)輸入要轉(zhuǎn)換的小寫字母:"); scanf("%c",&ch); ch=ch-'a'+'A'; printf("對(duì)應(yīng)的大寫字母:%c\n",ch);return0;}40程序設(shè)計(jì)舉例(續(xù))例1:輸入一小寫字母將其轉(zhuǎn)換為大寫字母。#include<stdio.h>//將輸入的小寫字母轉(zhuǎn)換成大寫字母輸出intmain(){ charch; printf("請(qǐng)輸入要轉(zhuǎn)換的小寫字母:"); scanf("%c",&ch);
if(ch>='a'&&ch<='z') ch=ch-'a'+'A'; printf("對(duì)應(yīng)的大寫字母:%c\n",ch);return0;}通過(guò)檢驗(yàn)輸入數(shù)據(jù)來(lái)增加程序的強(qiáng)壯性!一條語(yǔ)句41程序設(shè)計(jì)舉例(續(xù))例2:求一元二次方程ax2+bx+c=0的根,其中系數(shù)a,b,c為實(shí)數(shù),由鍵盤輸入。[分析]:△=b2-4ac
當(dāng)△>0時(shí),方程有兩個(gè)實(shí)根 當(dāng)△=0時(shí),方程有重根 當(dāng)△<0時(shí),方程有兩個(gè)共軛復(fù)根設(shè)42解題思路:輸入a,b,c計(jì)算deltadelta≥0計(jì)算x1,x2輸出無(wú)實(shí)根輸出x1,x2真假43#include<stdio.h>#include<math.h>voidmain(){doublea,b,c,delta,p,q;printf("Pleaseinputa,b,c=");scanf("%lf%lf%lf",&a,&b,&c);delta=b*b-4*a*c;p=-b/(2*a);q=sqrt(fabs(delta))/(2*a);
if(delta>=0) {printf("x1=%f\nx2=%f\n",p+q,p-q);}
else { printf("x1=%f+j%f\n",p,q); printf("x2=%f-j%f\n",p,q); }}庫(kù)函數(shù)一條語(yǔ)句44#include<stdio.h>#include<math.h>voidmain(){doublea,b,c,delta,p,q;printf("Pleaseinputa,b,c=");scanf("%lf%lf%lf",&a,&b,&c);delta=b*b-4*a*c;p=-b/(2*a);q=sqrt(fabs(delta))/(2*a);
if
(fabs(delta)<=1e-6) {printf("x1=x2=%f\n",p);}
elseif(delta>1e-6) {printf("x1=%f\nx2=%f\n",p+q,p-q);}
else{ printf("x1=%f+j%f\n",p,q); printf("x2=%f-j%f\n",p,q); }}較小的數(shù)近似045程序設(shè)計(jì)舉例(續(xù))例3:求兩個(gè)整數(shù)中的較大者。[分析]:設(shè)整數(shù)x和y的較大值為max,可以直接將x和y進(jìn)行比較,若x>=y,則較大值為x,即max=x,否則,較大值為y,即max=y。#include<stdio.h>intmain(){intmax,x,y;printf("pleaseinputxy:");scanf("%d%d",&x,&y);
if(x>=y) {max=x;}
else {max=y;}printf("max=%d\n",max);return0;}#include<stdio.h>intmain(){intmax,x,y;printf("pleaseinputxy:");
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 茂名二模文綜政治試題
- JavaScript Vue.js前端開發(fā)任務(wù)驅(qū)動(dòng)式教程-課件 仇善梁 模塊1-8 JavaScript知識(shí)入門及應(yīng)用 - Vue.js基礎(chǔ)知識(shí)及應(yīng)用
- 老年骨科護(hù)理課件
- 老年術(shù)后護(hù)理課件
- 老年護(hù)理案例分析課件
- 出租車司機(jī)權(quán)益保障及服務(wù)質(zhì)量提升合同
- 餐飲店加盟與承包合同規(guī)范
- 成品柴油零售連鎖經(jīng)營(yíng)合同
- 車棚施工安全標(biāo)準(zhǔn)與環(huán)境保護(hù)合同
- 老人二便護(hù)理課件
- DB3502∕T 166-2024 既有廠區(qū)及老舊小區(qū)海綿城市方案設(shè)計(jì)導(dǎo)則
- 2025年 江西省金控科技產(chǎn)業(yè)集團(tuán)有限公司招聘考試筆試試卷附答案
- 2025云南中考?xì)v史真題及答案
- 四川省成都市蓉城聯(lián)盟2024-2025學(xué)年高一下學(xué)期6月期末考試物理試題(含答案)
- 壓軸訓(xùn)練:全等三角形(多解、動(dòng)點(diǎn)、新定義型壓軸)(原卷版)
- DLT 5035-2016 發(fā)電廠供暖通風(fēng)與空氣調(diào)節(jié)設(shè)計(jì)規(guī)范
- 2024年廣東省中考生物+地理試卷(含答案)
- DZ∕T 0201-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 鎢、錫、汞、銻(正式版)
- 小小科學(xué)家《物理》模擬試卷A(附答案)
- 《風(fēng)電場(chǎng)項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)規(guī)范》(NB-T 31085-2016)
- AS9100D版中文版
評(píng)論
0/150
提交評(píng)論