C語言程序設(shè)計-第9章-結(jié)構(gòu)體與共用體課件_第1頁
C語言程序設(shè)計-第9章-結(jié)構(gòu)體與共用體課件_第2頁
C語言程序設(shè)計-第9章-結(jié)構(gòu)體與共用體課件_第3頁
C語言程序設(shè)計-第9章-結(jié)構(gòu)體與共用體課件_第4頁
C語言程序設(shè)計-第9章-結(jié)構(gòu)體與共用體課件_第5頁
已閱讀5頁,還剩161頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

程序設(shè)計技術(shù)基礎(chǔ)第九章結(jié)構(gòu)體與共用體程序設(shè)計技術(shù)基礎(chǔ)第九章結(jié)構(gòu)體與共用體2022/12/2329.1.1結(jié)構(gòu)體類型的定義9.1.2結(jié)構(gòu)體變量的定義9.1.3結(jié)構(gòu)體變量的初始化和引用9.1結(jié)構(gòu)體類型2022/12/1629.1.1結(jié)構(gòu)體類型的定義.1結(jié)構(gòu)體類型的定義結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,需要先定義才能使用。定義一個結(jié)構(gòu)體類型的一般形式為:struct結(jié)構(gòu)體名{

成員說明表列};2022/12/2339.1.1結(jié)構(gòu)體類型的定義結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,需其中,成員說明表列是組成該結(jié)構(gòu)體類型的所有數(shù)據(jù)的說明,若有n個成員,則每個成員均需作數(shù)據(jù)類型說明,可表示為:{

數(shù)據(jù)類型

成員標(biāo)識符1;

數(shù)據(jù)類型

成員標(biāo)識符2; ……

數(shù)據(jù)類型

成員標(biāo)識符n;}2022/12/234其中,成員說明表列是組成該結(jié)構(gòu)體類型的所有數(shù)據(jù)的說明,若有n【例9-1】有一個學(xué)生成績表,如表9-1所示,定義一個結(jié)構(gòu)體類型表示此結(jié)構(gòu)。2022/12/235numbernamesexmathcomputer10001Lifunm788810002Lilinf8789學(xué)生成績表【例9-1】有一個學(xué)生成績表,如表9-1所示,定義一個結(jié)構(gòu)第九章結(jié)構(gòu)體與共用體2022/12/236structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;};定義如下:第九章結(jié)構(gòu)體與共用體2022/12/166struct說明:(1)結(jié)構(gòu)體名和結(jié)構(gòu)體成員名遵循C語言標(biāo)識符的命名規(guī)則,建議用具有一定意義的單詞來命名。如【例9-1】中的student。(2)結(jié)構(gòu)體成員的類型定義形式與簡單變量的定義形式相同。2022/12/237說明:2022/12/167(3)struct是關(guān)鍵字,不能省略。(4)“structstudent”作為一個整體表示類型名,和普通數(shù)據(jù)類型一樣都可用來定義變量的類型。(5)一對{}外面最后的分號是結(jié)構(gòu)體定義的結(jié)束標(biāo)志,不能省略。2022/12/238(3)struct是關(guān)鍵字,不能省略。2022/12/169.1.2結(jié)構(gòu)體變量的定義1.先定義結(jié)構(gòu)體類型,再定義其變量

一般形式為:struct結(jié)構(gòu)體名{

成員說明表列};struct結(jié)構(gòu)體名結(jié)構(gòu)體變量列表;2022/12/2399.1.2結(jié)構(gòu)體變量的定義1.先定義結(jié)構(gòu)體類型,再定義其例如,前面已經(jīng)定義了一個結(jié)構(gòu)體類型structstudent,可以用它來定義具有該類型的結(jié)構(gòu)體變量stu1,如下:structstudentstu1;2022/12/2310例如,前面已經(jīng)定義了一個結(jié)構(gòu)體類型structstuden2.定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量一般形式為:struct結(jié)構(gòu)體名{

成員說明表列}變量名表列;例如,在定義structstudent的同時,定義與它具有相同結(jié)構(gòu)的結(jié)構(gòu)體變量stu2。2022/12/23112.定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量2022/12/16第九章結(jié)構(gòu)體與共用體2022/12/2312structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}stu2;第九章結(jié)構(gòu)體與共用體2022/12/1612struct3.不出現(xiàn)結(jié)構(gòu)體名,直接定義結(jié)構(gòu)體變量一般形式為:struct{

成員說明表列}變量名表列;例如,2022/12/23133.不出現(xiàn)結(jié)構(gòu)體名,直接定義結(jié)構(gòu)體變量2022/12/16第九章結(jié)構(gòu)體與共用體2022/12/2314structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}stu3;第九章結(jié)構(gòu)體與共用體2022/12/1614struct第三種方法只定義了結(jié)構(gòu)體變量stu3,沒有出現(xiàn)結(jié)構(gòu)體名,因此,該方法不能再用來定義其他同類型的結(jié)構(gòu)體變量。說明:在一個結(jié)構(gòu)體中也可以包含另一個結(jié)構(gòu)體。如:2022/12/2315第三種方法只定義了結(jié)構(gòu)體變量stu3,沒有出現(xiàn)結(jié)構(gòu)體名,因此第九章結(jié)構(gòu)體與共用體2022/12/2316structdate/*定義結(jié)構(gòu)體date*/{intmonth;intday;intyear;};structstudent{longnumber;charname[20];structdatebirthday; /*birthday是structdate類型*/charsex;floatmath;floatcomputer;};第九章結(jié)構(gòu)體與共用體2022/12/1616struct這里定義了一個結(jié)構(gòu)體類型structdate,代表“日期”,包含3個成員:month、day、year。在定義structstudent類型時,成員birthday的類型定義為structdate類型。structstudent的結(jié)構(gòu)如表9-2所示。2022/12/2317numbernamebirthdaysexmathcomputer

structstudent結(jié)構(gòu)這里定義了一個結(jié)構(gòu)體類型structdate,代表“日期9.1.3結(jié)構(gòu)體變量的初始化和引用1.結(jié)構(gòu)體變量的初始化對結(jié)構(gòu)體變量進(jìn)行初始化,也就是給結(jié)構(gòu)體變量的各個成員賦初值。(1)對已經(jīng)定義的結(jié)構(gòu)體變量初始化例如,在【例9-1】中已經(jīng)定義了結(jié)構(gòu)體類型structstudent,再定義一個結(jié)構(gòu)體變量stu1并進(jìn)行初始化。structstudentstu1={10001,"Lifun",'m',78,88};。2022/12/23189.1.3結(jié)構(gòu)體變量的初始化和引用1.結(jié)構(gòu)體變量的初始化(2)同時完成結(jié)構(gòu)體類型定義、結(jié)構(gòu)體變量定義和初始化structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}stu2={10002,"Lilin",'f',87,89};2022/12/2319(2)同時完成結(jié)構(gòu)體類型定義、結(jié)構(gòu)體變量定義和初始化20222.結(jié)構(gòu)體變量的引用(1)引用結(jié)構(gòu)體變量的成員訪問結(jié)構(gòu)體變量的成員必須用成員運算符。其一般形式為:結(jié)構(gòu)體變量名.成員名例如,、stu2.math等。2022/12/23202.結(jié)構(gòu)體變量的引用2022/12/1620如果成員本身又是一個結(jié)構(gòu)體類型的變量(結(jié)構(gòu)體嵌套),則在訪問該結(jié)構(gòu)體變量的成員時,應(yīng)采取逐級訪問的方法,通過成員運算符逐級找到最底層的成員再引用。如想要得到學(xué)生的出生日期,則可以這樣引用:stu2.birthday.month、stu2.birthday.day、stu2.birthday.year2022/12/2321如果成員本身又是一個結(jié)構(gòu)體類型的變量(結(jié)構(gòu)體嵌套),則在訪問(2)整體引用結(jié)構(gòu)體變量同類型的結(jié)構(gòu)體變量,可以將一個結(jié)構(gòu)體變量整體賦值給另一個結(jié)構(gòu)體變量。例如:structstudentstu1={10001,"Lifun",'m',78,88};structstudentstu3;stu3=stu1;通過賦值,結(jié)構(gòu)體變量stu3中每個成員的值和結(jié)構(gòu)體變量stu1每個成員的值相同。2022/12/2322(2)整體引用結(jié)構(gòu)體變量2022/12/1622第九章結(jié)構(gòu)體與共用體2022/12/2323#include<stdio.h>structsalary/*定義結(jié)構(gòu)體類型,描述工資信息*/{floatbase;/*基礎(chǔ)工資*/floatallowances;/*津貼*/floattaxes;/*稅金*/};【例9-2】閱讀下面程序,了解結(jié)構(gòu)體成員的引用方法。第九章結(jié)構(gòu)體與共用體2022/12/1623#includ第九章結(jié)構(gòu)體與共用體2022/12/2324structworker/*定義結(jié)構(gòu)體類型,描述職工基本信息*/{longnumber;/*工號*/charname[12];/*姓名*/structsalarysal; /*工資*/};第九章結(jié)構(gòu)體與共用體2022/12/1624struct第九章結(jié)構(gòu)體與共用體2022/12/2325intmain(){structworkerwk1={120101,"Liyue",2780.5,1356.5,124.11};structworkerwk2;wk2=wk1;[0]='M';[1]='a';wk2.number=120102;wk2.sal.allowances=2168.5;wk2.sal.taxes=(wk2.sal.base+wk2.sal.allowances)*0.03;printf("工號\t姓名\t基礎(chǔ)工資\t津貼\t\t稅金\n");printf("%ld\t%s\t%.2f\t\t%.2f\t\t%.2f\n",wk1.number,, wk1.sal.base,wk1.sal.allowances,wk1.sal.taxes);printf("%ld\t%s\t%.2f\t\t%.2f\t\t%.2f\n",wk2.number,, wk2.sal.base,wk2.sal.allowances,wk2.sal.taxes);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1625intma2022/12/23269.2結(jié)構(gòu)體數(shù)組2022/12/16269.2結(jié)構(gòu)體數(shù)組1結(jié)構(gòu)體數(shù)組的定義結(jié)構(gòu)體數(shù)組的定義方法如下:structstudentxs[30];它定義了一個有30個元素的結(jié)構(gòu)體數(shù)組xs,數(shù)組中每個元素都是structstudent類型。也可以直接定義結(jié)構(gòu)體數(shù)組,如:2022/12/23271結(jié)構(gòu)體數(shù)組的定義結(jié)構(gòu)體數(shù)組的定義方法如下:2022/12第九章結(jié)構(gòu)體與共用體2022/12/2328structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}xs[30];第九章結(jié)構(gòu)體與共用體2022/12/1628struct第九章結(jié)構(gòu)體與共用體2022/12/2329structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}xs[30];或者第九章結(jié)構(gòu)體與共用體2022/12/1629struct2結(jié)構(gòu)體數(shù)組的初始化結(jié)構(gòu)體數(shù)組的初始化是對結(jié)構(gòu)體數(shù)組元素成員的初始化,形式和多維數(shù)組的初始化類似。其一般形式是在定義結(jié)構(gòu)體數(shù)組的后面加上:={初值表列};

例如,structstudentxs[30]={{10001,"Lifun",'m',78,88},{10002,"Wangli",'f',89,90}};2022/12/23302結(jié)構(gòu)體數(shù)組的初始化結(jié)構(gòu)體數(shù)組的初始化是對結(jié)構(gòu)體數(shù)組元素成3結(jié)構(gòu)體數(shù)組的引用結(jié)構(gòu)體數(shù)組的引用也是引用結(jié)構(gòu)體數(shù)組元素的成員,與普通數(shù)組引用類似,其一般形式為:

數(shù)組名[下標(biāo)].成員名

例如,xs[0].number/*引用第一個學(xué)生的學(xué)號*/xs[1].name/*引用第二個學(xué)生的名字*/2022/12/23313結(jié)構(gòu)體數(shù)組的引用結(jié)構(gòu)體數(shù)組的引用也是引用結(jié)構(gòu)體數(shù)組元素的第九章結(jié)構(gòu)體與共用體2022/12/2332intmain(){inti,num=0;floatsum=0;structstudentclass[5]={{10001,"Liping",18,96},{10002,"Zhangping",19,88},{10003,"Hefang",18,79},{10004,"Chengling",17,69},{10005,"Wangming",17,57}};/*定義并初始化結(jié)構(gòu)體數(shù)組*/for(i=0;i<5;i++){sum+=class[i].math; /*引用結(jié)構(gòu)體數(shù)組成員計算總成績*/if(class[i].math<90)num++;}printf("sum=%.2f\naverage=%.2f\nnum=%d\n",sum,sum/5,num);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1632intma第九章結(jié)構(gòu)體與共用體2022/12/2333#include<stdio.h>structstudent/*定義結(jié)構(gòu)體類型,描述學(xué)生信息*/{longnumber;/*學(xué)號*/charname[20];/*姓名*/intage;/*年齡*/floatmath;/*成績*/};【例9-3】已知5名學(xué)生的信息,包含學(xué)號、姓名、年齡、數(shù)學(xué)成績,要求利用結(jié)構(gòu)體數(shù)組計算5個學(xué)生的數(shù)學(xué)平均分,并統(tǒng)計數(shù)學(xué)小于90分的學(xué)生人數(shù)。第九章結(jié)構(gòu)體與共用體2022/12/1633#includ2022/12/23349.3.1指向結(jié)構(gòu)體變量的指針9.3.2指向結(jié)構(gòu)體數(shù)組的指針9.3指向結(jié)構(gòu)體的指針2022/12/16349.3.1指向結(jié)構(gòu)體變量的指針指向結(jié)構(gòu)體變量的指針結(jié)構(gòu)體指針變量定義一般形式為:struct結(jié)構(gòu)體名*結(jié)構(gòu)體指針變量名;例如:2022/12/23359.3.1指向結(jié)構(gòu)體變量的指針結(jié)構(gòu)體指針變量定義一般形式為第九章結(jié)構(gòu)體與共用體2022/12/23信息與計算機學(xué)院計算機基礎(chǔ)教學(xué)部36structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;};structstudentstu1;structstudent*p=&stu1;第九章結(jié)構(gòu)體與共用體2022/12/16信息與計算機學(xué)院計定義了結(jié)構(gòu)體指針變量后,如何訪問該指針變量指向的結(jié)構(gòu)體成員呢?可以使用下面兩種運算符:(1)圓點運算符一般形式為:(*結(jié)構(gòu)體指針變量名).成員名。例如,(*p).name,表示指針變量p指向結(jié)構(gòu)體變量stu1的name成員。(2)指向運算符(也稱箭頭運算符)一般形式為:結(jié)構(gòu)體指針變量名–>成員名。例如,p->name,表示指針變量p指向結(jié)構(gòu)體變量stu1的name成員。2022/12/2337定義了結(jié)構(gòu)體指針變量后,如何訪問該指針變量指向的結(jié)構(gòu)體成員呢9.3.2指向結(jié)構(gòu)體數(shù)組成員的指針指針變量可以指向普通數(shù)組,同樣,指針變量也可以指向結(jié)構(gòu)體類型的數(shù)組。例如:2022/12/23389.3.2指向結(jié)構(gòu)體數(shù)組成員的指針指針變量可以指向普通數(shù)組第九章結(jié)構(gòu)體與共用體2022/12/23信息與計算機學(xué)院計算機基礎(chǔ)教學(xué)部39structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;};structstudentstu[20];structstudent*p=stu;第九章結(jié)構(gòu)體與共用體2022/12/16信息與計算機學(xué)院計第九章結(jié)構(gòu)體與共用體2022/12/2340#include<stdio.h>structstudent1

{longnumber;charname[20];charsex;intage;};/*定義結(jié)構(gòu)體變量和結(jié)構(gòu)體數(shù)組,并初始化*/structstudent1stu4={10101,"Lixiao",'m',19};structstudent1stu[3]={{10102,“Liping”,‘m’,18},{10103,"Zhangping",'m',20},{10104,"Hefang",'f',22}};【例9-4】熟悉如何用指針訪問結(jié)構(gòu)體變量和結(jié)構(gòu)體數(shù)組。第九章結(jié)構(gòu)體與共用體2022/12/1640#includ第九章結(jié)構(gòu)體與共用體2022/12/2341intmain(){inti;structstudent1*p,*q;/*定義結(jié)構(gòu)體指針*/p=&stu4; /*p指向結(jié)構(gòu)體變量*/printf("numbernamesexage\n");printf("%5d%-10s%2c%5d\n",(*p).number,p->name,(*p).sex,p->age);q=stu;/*q指向結(jié)構(gòu)體數(shù)組*/for(i=0;i<3;i++){printf("%5d%-10s%2c%5d\n",(*q).number,q->name,(*q).sex,q->age); q++;}return0;}第九章結(jié)構(gòu)體與共用體2022/12/1641intma2022/12/23429.4.1結(jié)構(gòu)體作函數(shù)參數(shù)9.4.2結(jié)構(gòu)體作函數(shù)返回值9.4結(jié)構(gòu)體與函數(shù)2022/12/16429.4.1結(jié)構(gòu)體作函數(shù)參數(shù).1結(jié)構(gòu)體作函數(shù)參數(shù)結(jié)構(gòu)體作函數(shù)參數(shù),既可以把結(jié)構(gòu)體變量作為函數(shù)參數(shù),實現(xiàn)值傳遞,也可以把指向結(jié)構(gòu)體的指針作為函數(shù)參數(shù),實現(xiàn)地址傳遞。2022/12/23439.4.1結(jié)構(gòu)體作函數(shù)參數(shù)結(jié)構(gòu)體作函數(shù)參數(shù),既可以把結(jié)構(gòu)體第九章結(jié)構(gòu)體與共用體2022/12/2344#include<stdio.h>structdate{intnian;intyue;intri;};【例9-5】值傳遞,結(jié)構(gòu)體變量作函數(shù)參數(shù)。第九章結(jié)構(gòu)體與共用體2022/12/1644#includ第九章結(jié)構(gòu)體與共用體2022/12/23信息與計算機學(xué)院計算機基礎(chǔ)教學(xué)部45intriqi(structdatea)/*結(jié)構(gòu)體變量作函數(shù)參數(shù)*/{a.nian=2018;a.yue=5;a.ri=22;return0;}intmain(){structdateb;b.nian=2017;b.yue=4;b.ri=26;printf("調(diào)用前:%d%d%d\n",b.nian,b.yue,b.ri);riqi(b);printf("調(diào)用后:%d%d%d\n",b.nian,b.yue,b.ri);return0;}第九章結(jié)構(gòu)體與共用體2022/12/16信息與計算機學(xué)院計第九章結(jié)構(gòu)體與共用體2022/12/2346#include<stdio.h>structdate{intnian;intyue;intri;};intriqi(structdate*p)/*結(jié)構(gòu)體指針變量作函數(shù)參數(shù)*/{(*p).nian=2018;(*p).yue=5;(*p).ri=22;return0;}【例9-6】地址傳遞,結(jié)構(gòu)體指針變量作函數(shù)參數(shù)。第九章結(jié)構(gòu)體與共用體2022/12/1646#includ第九章結(jié)構(gòu)體與共用體2022/12/2347intmain(){structdateb;b.nian=2017;b.yue=4;b.ri=26;printf("調(diào)用前:%d%d%d\n",b.nian,b.yue,b.ri);riqi(&b);printf("調(diào)用后:%d%d%d\n",b.nian,b.yue,b.ri);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1647intmai9.4.2結(jié)構(gòu)體作函數(shù)返回值函數(shù)的返回值除了可以是整型、實型、字符型和指向這些數(shù)據(jù)類型的指針以外,還可以返回結(jié)構(gòu)體類型的值。2022/12/23489.4.2結(jié)構(gòu)體作函數(shù)返回值函數(shù)的返回值除了可以是整型、實【例9-7】超市清點現(xiàn)有物品情況,有5種商品,要求從鍵盤輸入每種商品的名稱、數(shù)量、單價,編寫程序能實現(xiàn)以下功能:輸出庫存清單(包括商品名稱、數(shù)量、單價、合計),以及所有商品的總金額。程序用一個函數(shù)實現(xiàn)“輸入庫存商品信息”功能,其返回值為結(jié)構(gòu)體類型。2022/12/2349【例9-7】超市清點現(xiàn)有物品情況,有5種商品,要求從鍵盤輸分析:(1)商品信息可用結(jié)構(gòu)體來表示。structStoreLib{charname[12];intnum;/*商品數(shù)量*/floatprice;/*商品單價*/floatSumMoney;/*商品小計*/};(2)每次輸入的數(shù)據(jù)都是結(jié)構(gòu)體變量的各成員值,因此可以設(shè)計函數(shù):structStoreLibInputInfo();用于將商品信息輸入到結(jié)構(gòu)體數(shù)組Goods中。(3)使用函數(shù)intlist(structStoreLibGoods)輸出庫存信息。2022/12/2350分析:2022/12/1650第九章結(jié)構(gòu)體與共用體2022/12/2351#include<stdio.h>structStoreLib /*描述商品信息*/{charname[12];intnum;floatprice;floatSumMoney;};structStoreLibGoods;floatTotal=0;intlist(structStoreLibGoods)/*通過商品數(shù)量和單價,計算出每種商品的金額*/{Goods.SumMoney=Goods.num*Goods.price;Total=Total+Goods.SumMoney;printf("%-24s%d\t%.2f\t%.2f\n",G,Goods.num,Goods.price,Goods.SumMoney);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1651#includ第九章結(jié)構(gòu)體與共用體2022/12/23信息與計算機學(xué)院計算機基礎(chǔ)教學(xué)部52structStoreLibInputInfo(){scanf("%s",G); /*輸入商品名稱*/scanf("%d%f",&Goods.num,&Goods.price);/*輸入商品數(shù)量和商品單價*/returnGoods;}intmain(){structStoreLibiGoods[5];inti;printf("請輸入5種庫存商品信息:商品名稱

數(shù)量

單價\n");for(i=0;i<5;i++) iGoods[i]=InputInfo(); /*函數(shù)調(diào)用,輸入商品信息*/printf("\n----------------------------------------------\n");printf("庫存清單:\n");printf("商品名稱\t\t數(shù)量\t單價\t小計\n");for(i=0;i<5;i++) list(iGoods[i]); /*函數(shù)調(diào)用,輸出庫存清單*/printf("庫存商品金額總計:%.2f\n",Total);return0;}第九章結(jié)構(gòu)體與共用體2022/12/16信息與計算機學(xué)院計2022/12/23539.5.1共用體類型及其變量的定義9.5.2共用體變量的引用9.5共用體類型2022/12/16539.5.1共用體類型及其變量的定義9.5.1共用體類型及其變量的定義共用體的定義方法和定義結(jié)構(gòu)體類型相似,其一般形式為:union共用體名

{

成員表列};2022/12/23549.5.1共用體類型及其變量的定義共用體的定義方法和定義結(jié)union是關(guān)鍵字,是定義共用體類型必不可少的。一對{}中的內(nèi)容為共用體成員的類型說明,與結(jié)構(gòu)體類型的成員說明一致。例如:uniondata{doublea;inti;charch;};2022/12/2355union是關(guān)鍵字,是定義共用體類型必不可少的。一對{}中的定義共用體變量的方法與結(jié)構(gòu)體類似,有下面三種方法。1.先定義共用體類型,再定義變量一般形式為:union共用體名

{

成員表列};union共用體名變量表列;2022/12/2356定義共用體變量的方法與結(jié)構(gòu)體類似,有下面三種方法。2022/第九章結(jié)構(gòu)體與共用體2022/12/2357uniondata{doublea;inti;charch;};uniondatanum1,num2;例如:第九章結(jié)構(gòu)體與共用體2022/12/1657union2.定義共用體類型的同時定義共用體變量

一般形式為:union共用體名{

成員表列}變量表列;

2022/12/23582.定義共用體類型的同時定義共用體變量2022/12/165第九章結(jié)構(gòu)體與共用體2022/12/2359uniondata{doublea;inti;charch;}num1,num2;例如:第九章結(jié)構(gòu)體與共用體2022/12/1659union3.不出現(xiàn)共用體名,直接定義共用體變量一般形式為:union{

成員表列}變量表列;

2022/12/23603.不出現(xiàn)共用體名,直接定義共用體變量2022/12/166第九章結(jié)構(gòu)體與共用體2022/12/2361union{doublea;inti;charch;}num1,num2;例如:第九章結(jié)構(gòu)體與共用體2022/12/1661union例9.5.2共用體變量的引用共用體變量必須先定義,才能引用,而且不能整體引用,只能引用共用體變量的成員。其一般形式為:共用體變量名.成員名

如,num1.i(引用共用體變量num1中的整型變量i)?!纠?-8】了解共用體變量的引用。2022/12/23629.5.2共用體變量的引用共用體變量必須先定義,才能引用,第九章結(jié)構(gòu)體與共用體2022/12/2363#include<stdio.h>unionstudent{longnumber;charc;intage;};intmain(){unionstudents1,s2;s1.number=10001;s1.c='L';s1.age=65;printf("共用體變量s1成員的值為:\n");printf("s1.number=%d\ns1.c=%c\ns1.age=%d\n",s1.number,s1.c,s1.age);s1.c='W';s2=s1;printf("共用體變量s2的值為:\n");printf("s2is%c\n",s2.c);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1663#includ2022/12/23649.6枚舉類型2022/12/16649.6枚舉類型定義枚舉類型的一般形式為:enum枚舉變量名{取值表列};例如,enumresponse{no,yes,none};上面的語句定義了名為response的枚舉類型,取值范圍為:no、yes、none??梢杂迷擃愋蛠矶x變量,如

enumresponseanswer;2022/12/2365定義枚舉類型的一般形式為:2022/12/1665也可以同時定義枚舉類型和枚舉變量,如:enumresponse{no,yes,none}answer;或者不出現(xiàn)枚舉名,直接定義枚舉變量,如:enum{no,yes,none}answer;2022/12/2366也可以同時定義枚舉類型和枚舉變量,如:2022/12/166也可以同時定義枚舉類型和枚舉變量,如:enumresponse{no,yes,none}answer;或者不出現(xiàn)枚舉名,直接定義枚舉變量,如:enum{no,yes,none}answer;說明:(1)一對{}中的取值稱為枚舉常量,都是整型常量,用戶在定義時不指定其值,系統(tǒng)默認(rèn)第1個枚舉常量的值是0,后面的枚舉值依次增加1,如:enumresponse{no,yes,none}answer;,其中no=0,yes=1,none=2。(2)枚舉值也可指定,如:enum{no=1,yes=3,none=4}answer;2022/12/2367也可以同時定義枚舉類型和枚舉變量,如:2022/12/166【例9-9】從鍵盤輸入一個1~12的整數(shù),在屏幕上顯示與該整數(shù)對應(yīng)的月份的英文名稱。分析:在輸出較多的枚舉變量時,可以用switch結(jié)構(gòu)語句。

程序如下:2022/12/2368【例9-9】從鍵盤輸入一個1~12的整數(shù),在屏幕上顯示與該第九章結(jié)構(gòu)體與共用體2022/12/2369#include<stdio.h>#include<stdio.h>intmain(){enummonth{Jan=1,Feb=2,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}mon;intk;printf("pleaseinputanumber(1~12):");scanf("%d",&k);mon=(enummonth)k;/*強制類型轉(zhuǎn)換*/switch(mon){caseJan:printf("ThismonthisJanuary.\n");break;caseFeb:printf("ThismonthisFebruary.\n");break;caseMar:printf("ThismonthisMarch.\n");break;caseApr:printf("ThismonthisApril.\n");break;caseMay:printf("ThismonthisMay.\n");break;caseJun:printf("ThismonthisJune.\n");break;caseJul:printf("ThismonthisJuly.\n");break;caseAug:printf("ThismonthisAugust.\n");break;caseSep:printf("ThismonthisSeptember.\n");break;caseOct:printf("ThismonthisOctober.\n");break;caseNov:printf("ThismonthisNovember.\n");break;caseDec:printf("ThismonthisDecember.\n");break;default:printf("Inputiserror!\n"); }return0;}第九章結(jié)構(gòu)體與共用體2022/12/1669#includ2022/12/23709.7typedef類型2022/12/16709.7typedef類型typedef定義的一般形式為:typedef原類型名新類型名;一般情況,新類型名表示為大寫字母,只是為了與系統(tǒng)提供的標(biāo)準(zhǔn)類型的標(biāo)識符相區(qū)分。例如:typedefintINTEGER;typedeffloatREAL;2022/12/2371typedef定義的一般形式為:2022/12/1671typedef語句也可以給一些復(fù)雜數(shù)據(jù)類型定義新的名稱。例如:typedefstructstudentSTUDENT;等價于typedefstructstudent{longnum;charname[10];intage;}STUDENT;2022/12/2372typedef語句也可以給一些復(fù)雜數(shù)據(jù)類型定義新的名稱。202022/12/23739.8程序類型2022/12/16739.8程序類型【例9-10】輸入5個同學(xué)的姓名、數(shù)學(xué)成績、英語成績和計算機成績,確定總分最高的同學(xué),并打印其姓名及其3門課程的成績。分析:(1)使用長度為5的structstudent類型的結(jié)構(gòu)體數(shù)組存儲所有同學(xué)的相關(guān)信息。(2)定義structstudent類型指針pmax存儲總分最高的同學(xué)的地址。(3)定義structstudent類型指針pstu引用結(jié)構(gòu)體數(shù)組中的元素及其數(shù)組元素成員的值。(4)通過循環(huán)語句為每個數(shù)組元素成員賦值。(5)利用pmax輸出成績最高的同學(xué)的相關(guān)信息。2022/12/2374【例9-10】輸入5個同學(xué)的姓名、數(shù)學(xué)成績、英語成績和計算第九章結(jié)構(gòu)體與共用體2022/12/2375#include<stdio.h>structstudent /*定義結(jié)構(gòu)體類型*/{charname[20];intmath;intenglish;intcomputer;};intmain(){ structstudentstu[5]; /*定義structstudent類型的結(jié)構(gòu)體數(shù)組存儲所有同學(xué)的相關(guān)信息*/ structstudent*pmaxstu; /*定義structstudent類型指針存儲總分最高的同學(xué)的地址*/ structstudent*pstudent; /*定義structstudent類型指針來引用數(shù)組*/ intfmaxscore=0,ftotal; /*存儲最高分和總分的中間變量*/ intfmath,fenglish,fcomputer; /*存儲各科成績的中間變量*/ charszname[20]; printf("\npleaseinput5studentsandscore:\n"); printf("Name\tMath\tEnglish\tComputer\n"); pmaxstu=stu; /*給pmaxstu指針變量賦初值*/ /*將數(shù)組stu的地址賦給pstudent指針變量,通過pstudent為數(shù)組stu各元素賦值*/第九章結(jié)構(gòu)體與共用體2022/12/1675#includ第九章結(jié)構(gòu)體與共用體2022/12/2376

for(pstudent=stu;pstudent<stu+5;pstudent++) { /*鍵盤輸入當(dāng)前同學(xué)的相關(guān)信息*/ scanf("%s%d%d%d",szname,&fmath,&fenglish,&fcomputer); /*將中間變量的值通過結(jié)構(gòu)體指針引用,賦值到對應(yīng)數(shù)組元素的各個成員中*/ strcpy(pstudent->name,szname); pstudent->math=fmath; pstudent->english=fenglish; pstudent->computer=fcomputer; ftotal=pstudent->math+pstudent->english+pstudent->computer; /*獲得當(dāng)前最高分同學(xué)所對應(yīng)數(shù)組元素的地址*/ if(fmaxscore<ftotal) { fmaxscore=ftotal; pmaxstu=pstudent;/*將最高分同學(xué)所對應(yīng)的首地址賦值給最高分指針變量*/ } } printf("themaxis:"); printf("%s,%d,%d,%d\n",pmaxstu->name,pmaxstu->math,pmaxstu->english,pmaxstu->computer);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1676 for(p【例9-11】商品進(jìn)出庫管理,入庫商品的數(shù)據(jù)包括編號、商品名稱、數(shù)量、狀態(tài)(入庫)、貨架號,出庫商品的數(shù)據(jù)包括編號、商品名稱、數(shù)量、狀態(tài)(出庫)、部門。用同一個表格實現(xiàn)這個管理,如表所示。編寫程序輸入和輸出這些數(shù)據(jù)。2022/12/2377編號商品名稱數(shù)量狀態(tài)貨架號或部門101book19I1030102sugar20Ofood-group103cup48I1206104doll46Otoy-group

商品進(jìn)出庫管理信息表【例9-11】商品進(jìn)出庫管理,入庫商品的數(shù)據(jù)包括編號、商品第九章結(jié)構(gòu)體與共用體2022/12/2378#include<stdlib.h> /*包含atol()函數(shù)*/#include<stdio.h>structgoods /*商品信息*/{ longnumber; /*編號*/ charname[20]; /*商品名稱*/ intquantity; /*數(shù)量*/ charstate; /*商品狀態(tài)*/ union { longpart;/*貨架號*/ chargroup[20];/*部門*/ }depa; };intmain(){structgoodsitems[4]; /*保存入庫商品數(shù)據(jù)*/inti;chartmp[20]; /*中間變量,用來存儲鍵盤輸入的貨架號或部門*/printf("pleaseinputdata:\nnumbernamequantitystatedepartment\n");第九章結(jié)構(gòu)體與共用體2022/12/1678#includ第九章結(jié)構(gòu)體與共用體2022/12/2379for(i=0;i<4;i++) /*將鍵盤輸入數(shù)據(jù)保存到結(jié)構(gòu)體數(shù)組的每個元素中*/{ scanf("%ld%s%d%c%s", &items[i].number,items[i].name,&items[i].quantity,&items[i].state,tmp); if(items[i].state=='I') items[i].depa.part=atol(tmp); elseif(items[i].state=='O') strcpy(items[i].depa.group,tmp);}printf("\n----------------------------------------------\n");printf("outputdata:\n");printf("number\tname\tquantity\tstate\tdepartment\n");for(i=0;i<4;i++) /*輸出結(jié)構(gòu)體數(shù)組的數(shù)據(jù)*/{ if(items[i].state=='I') printf("%ld\t%s\t%d\t\t%c\t%d\n",items[i].number,items[i].name,items[i].quantity,items[i].state,items[i].depa.part);elseif(items[i].state=='O')printf("%ld\t%s\t%d\t\t%c\t%s\n",items[i].number,items[i].name,items[i].quantity,items[i].state,items[i].depa.group);elseprintf("進(jìn)出庫狀態(tài)不合理");}return0;}第九章結(jié)構(gòu)體與共用體2022/12/1679for(i=0【例9-12】編寫一個程序?qū)崿F(xiàn)下述要求。已知一個口袋中有紅、白、黃、藍(lán)4種球各若干,每次取3個球,打印輸出每次取出3種不同顏色球的所有可能的組合及組合數(shù)。分析:球只能是四色之一,可以采用枚舉類型變量來處理。判斷各個球是否同色,可以設(shè)取出的球為i、j、k,分別是4種顏色的球之一,并要求i、j、k各不相同。2022/12/2380【例9-12】編寫一個程序?qū)崿F(xiàn)下述要求。已知一個口袋中有紅第九章結(jié)構(gòu)體與共用體2022/12/2381#include<stdio.h>enumclolr{red,white,yellow,blue}i,j,k,p;/*定義枚舉變量*/intmain(){intn=0,loop;for(i=red;i<=blue;i++)for(j=red;j<=blue;j++) if(i!=j) for(k=red;k<=blue;k++) if((k!=i)&&(k!=j)) { n++; printf("\n%d",n);第九章結(jié)構(gòu)體與共用體2022/12/1681#includ第九章結(jié)構(gòu)體與共用體2022/12/2382

for(loop=1;loop<=3;loop++){switch(loop){case1:p=i;break;case2:p=j;break;case3:p=k;break;default:;}switch(p){casered:printf("\t%s","red");break;casewhite:printf("\t%s","white");break;caseyellow:printf("\t%s","yellow");break;caseblue:printf("\t%s","blue");break;default:;}}}printf("\ntotal:%5d\n",n);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1682for(2022/12/2383本章主要介紹了結(jié)構(gòu)體和共用體,可以將不同類型的數(shù)據(jù)放在一起,還有枚舉類型和typedef類型,它們都是用戶根據(jù)實際需要自己定義的類型,使用時要注意這些數(shù)據(jù)類型的定義和其變量的定義。本章小結(jié)2022/12/1683本章主要介紹了結(jié)構(gòu)體和

程序設(shè)計技術(shù)基礎(chǔ)第九章結(jié)構(gòu)體與共用體程序設(shè)計技術(shù)基礎(chǔ)第九章結(jié)構(gòu)體與共用體2022/12/23859.1.1結(jié)構(gòu)體類型的定義9.1.2結(jié)構(gòu)體變量的定義9.1.3結(jié)構(gòu)體變量的初始化和引用9.1結(jié)構(gòu)體類型2022/12/1629.1.1結(jié)構(gòu)體類型的定義.1結(jié)構(gòu)體類型的定義結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,需要先定義才能使用。定義一個結(jié)構(gòu)體類型的一般形式為:struct結(jié)構(gòu)體名{

成員說明表列};2022/12/23869.1.1結(jié)構(gòu)體類型的定義結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,需其中,成員說明表列是組成該結(jié)構(gòu)體類型的所有數(shù)據(jù)的說明,若有n個成員,則每個成員均需作數(shù)據(jù)類型說明,可表示為:{

數(shù)據(jù)類型

成員標(biāo)識符1;

數(shù)據(jù)類型

成員標(biāo)識符2; ……

數(shù)據(jù)類型

成員標(biāo)識符n;}2022/12/2387其中,成員說明表列是組成該結(jié)構(gòu)體類型的所有數(shù)據(jù)的說明,若有n【例9-1】有一個學(xué)生成績表,如表9-1所示,定義一個結(jié)構(gòu)體類型表示此結(jié)構(gòu)。2022/12/2388numbernamesexmathcomputer10001Lifunm788810002Lilinf8789學(xué)生成績表【例9-1】有一個學(xué)生成績表,如表9-1所示,定義一個結(jié)構(gòu)第九章結(jié)構(gòu)體與共用體2022/12/2389structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;};定義如下:第九章結(jié)構(gòu)體與共用體2022/12/166struct說明:(1)結(jié)構(gòu)體名和結(jié)構(gòu)體成員名遵循C語言標(biāo)識符的命名規(guī)則,建議用具有一定意義的單詞來命名。如【例9-1】中的student。(2)結(jié)構(gòu)體成員的類型定義形式與簡單變量的定義形式相同。2022/12/2390說明:2022/12/167(3)struct是關(guān)鍵字,不能省略。(4)“structstudent”作為一個整體表示類型名,和普通數(shù)據(jù)類型一樣都可用來定義變量的類型。(5)一對{}外面最后的分號是結(jié)構(gòu)體定義的結(jié)束標(biāo)志,不能省略。2022/12/2391(3)struct是關(guān)鍵字,不能省略。2022/12/169.1.2結(jié)構(gòu)體變量的定義1.先定義結(jié)構(gòu)體類型,再定義其變量

一般形式為:struct結(jié)構(gòu)體名{

成員說明表列};struct結(jié)構(gòu)體名結(jié)構(gòu)體變量列表;2022/12/23929.1.2結(jié)構(gòu)體變量的定義1.先定義結(jié)構(gòu)體類型,再定義其例如,前面已經(jīng)定義了一個結(jié)構(gòu)體類型structstudent,可以用它來定義具有該類型的結(jié)構(gòu)體變量stu1,如下:structstudentstu1;2022/12/2393例如,前面已經(jīng)定義了一個結(jié)構(gòu)體類型structstuden2.定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量一般形式為:struct結(jié)構(gòu)體名{

成員說明表列}變量名表列;例如,在定義structstudent的同時,定義與它具有相同結(jié)構(gòu)的結(jié)構(gòu)體變量stu2。2022/12/23942.定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量2022/12/16第九章結(jié)構(gòu)體與共用體2022/12/2395structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}stu2;第九章結(jié)構(gòu)體與共用體2022/12/1612struct3.不出現(xiàn)結(jié)構(gòu)體名,直接定義結(jié)構(gòu)體變量一般形式為:struct{

成員說明表列}變量名表列;例如,2022/12/23963.不出現(xiàn)結(jié)構(gòu)體名,直接定義結(jié)構(gòu)體變量2022/12/16第九章結(jié)構(gòu)體與共用體2022/12/2397structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}stu3;第九章結(jié)構(gòu)體與共用體2022/12/1614struct第三種方法只定義了結(jié)構(gòu)體變量stu3,沒有出現(xiàn)結(jié)構(gòu)體名,因此,該方法不能再用來定義其他同類型的結(jié)構(gòu)體變量。說明:在一個結(jié)構(gòu)體中也可以包含另一個結(jié)構(gòu)體。如:2022/12/2398第三種方法只定義了結(jié)構(gòu)體變量stu3,沒有出現(xiàn)結(jié)構(gòu)體名,因此第九章結(jié)構(gòu)體與共用體2022/12/2399structdate/*定義結(jié)構(gòu)體date*/{intmonth;intday;intyear;};structstudent{longnumber;charname[20];structdatebirthday; /*birthday是structdate類型*/charsex;floatmath;floatcomputer;};第九章結(jié)構(gòu)體與共用體2022/12/1616struct這里定義了一個結(jié)構(gòu)體類型structdate,代表“日期”,包含3個成員:month、day、year。在定義structstudent類型時,成員birthday的類型定義為structdate類型。structstudent的結(jié)構(gòu)如表9-2所示。2022/12/23100numbernamebirthdaysexmathcomputer

structstudent結(jié)構(gòu)這里定義了一個結(jié)構(gòu)體類型structdate,代表“日期9.1.3結(jié)構(gòu)體變量的初始化和引用1.結(jié)構(gòu)體變量的初始化對結(jié)構(gòu)體變量進(jìn)行初始化,也就是給結(jié)構(gòu)體變量的各個成員賦初值。(1)對已經(jīng)定義的結(jié)構(gòu)體變量初始化例如,在【例9-1】中已經(jīng)定義了結(jié)構(gòu)體類型structstudent,再定義一個結(jié)構(gòu)體變量stu1并進(jìn)行初始化。structstudentstu1={10001,"Lifun",'m',78,88};。2022/12/231019.1.3結(jié)構(gòu)體變量的初始化和引用1.結(jié)構(gòu)體變量的初始化(2)同時完成結(jié)構(gòu)體類型定義、結(jié)構(gòu)體變量定義和初始化structstudent{longnumber;charname[20];charsex;floatmath;floatcomputer;}stu2={10002,"Lilin",'f',87,89};2022/12/23102(2)同時完成結(jié)構(gòu)體類型定義、結(jié)構(gòu)體變量定義和初始化20222.結(jié)構(gòu)體變量的引用(1)引用結(jié)構(gòu)體變量的成員訪問結(jié)構(gòu)體變量的成員必須用成員運算符。其一般形式為:結(jié)構(gòu)體變量名.成員名例如,、stu2.math等。2022/12/231032.結(jié)構(gòu)體變量的引用2022/12/1620如果成員本身又是一個結(jié)構(gòu)體類型的變量(結(jié)構(gòu)體嵌套),則在訪問該結(jié)構(gòu)體變量的成員時,應(yīng)采取逐級訪問的方法,通過成員運算符逐級找到最底層的成員再引用。如想要得到學(xué)生的出生日期,則可以這樣引用:stu2.birthday.month、stu2.birthday.day、stu2.birthday.year2022/12/23104如果成員本身又是一個結(jié)構(gòu)體類型的變量(結(jié)構(gòu)體嵌套),則在訪問(2)整體引用結(jié)構(gòu)體變量同類型的結(jié)構(gòu)體變量,可以將一個結(jié)構(gòu)體變量整體賦值給另一個結(jié)構(gòu)體變量。例如:structstudentstu1={10001,"Lifun",'m',78,88};structstudentstu3;stu3=stu1;通過賦值,結(jié)構(gòu)體變量stu3中每個成員的值和結(jié)構(gòu)體變量stu1每個成員的值相同。2022/12/23105(2)整體引用結(jié)構(gòu)體變量2022/12/1622第九章結(jié)構(gòu)體與共用體2022/12/23106#include<stdio.h>structsalary/*定義結(jié)構(gòu)體類型,描述工資信息*/{floatbase;/*基礎(chǔ)工資*/floatallowances;/*津貼*/floattaxes;/*稅金*/};【例9-2】閱讀下面程序,了解結(jié)構(gòu)體成員的引用方法。第九章結(jié)構(gòu)體與共用體2022/12/1623#includ第九章結(jié)構(gòu)體與共用體2022/12/23107structworker/*定義結(jié)構(gòu)體類型,描述職工基本信息*/{longnumber;/*工號*/charname[12];/*姓名*/structsalarysal; /*工資*/};第九章結(jié)構(gòu)體與共用體2022/12/1624struct第九章結(jié)構(gòu)體與共用體2022/12/23108intmain(){structworkerwk1={120101,"Liyue",2780.5,1356.5,124.11};structworkerwk2;wk2=wk1;[0]='M';[1]='a';wk2.number=120102;wk2.sal.allowances=2168.5;wk2.sal.taxes=(wk2.sal.base+wk2.sal.allowances)*0.03;printf("工號\t姓名\t基礎(chǔ)工資\t津貼\t\t稅金\n");printf("%ld\t%s\t%.2f\t\t%.2f\t\t%.2f\n",wk1.number,, wk1.sal.base,wk1.sal.allowances,wk1.sal.taxes);printf("%ld\t%s\t%.2f\t\t%.2f\t\t%.2f\n",wk2.number,, wk2.sal.base,wk2.sal.allowances,wk2.sal.taxes);return0;}第九章結(jié)構(gòu)體與共用體2022/12/1625intma2022/12/231099.2結(jié)構(gòu)體數(shù)組2022/12/16269.2結(jié)構(gòu)體數(shù)組1結(jié)構(gòu)體數(shù)組的定義結(jié)構(gòu)體數(shù)組的定義方法如下:structstudentxs[30];它定義了一個有30個元素的結(jié)構(gòu)體數(shù)組xs,數(shù)組中每個元素都是structstudent類型。也可以直接定義結(jié)構(gòu)體數(shù)組,如:2022/12/231101結(jié)構(gòu)體數(shù)組的定義結(jié)構(gòu)體數(shù)組的定義方法如下:2022/12第九章結(jié)構(gòu)體與共用體2022/12/23111structstudent{longnumber;charname[20];

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論