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

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

第7章結(jié)構(gòu)體了解結(jié)構(gòu)體的基本概念掌握結(jié)構(gòu)體的定義和使用掌握結(jié)構(gòu)體成員的訪問和操作學(xué)習(xí)嵌套結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組的使用理解‘typedef’的應(yīng)用本章目標(biāo)7.1.1程序解析7.1火星探測(cè)器知多少#include<stdio.h>structMarsProbe{charCName[20];charFName[20];charCountry[20];intLaunchTime;floatWeight;charSuccess;};intmain(){structMarsProbeMP[]={{"火星1A","Mars1M","USSR",1960,650.0,'N'},{"機(jī)遇號(hào)","Opport.","USA",2004,180.0,'Y'},{"勇氣號(hào)","Spirit","USA",2004,174.0,'Y'},{"毅力號(hào)","Persev.","USA",2021,174.0,'Y'},{"祝融號(hào)","Zhurong","CHN",2021,240.0,'Y'}};inti;printf("中文名\t英文名\t國家\t時(shí)間\t重量\t成功著陸?\n");for(i=0;i<5;i++)printf("%s\t%s\t%s\t%d\t%.1f\t%c\n",MP[i].CName,MP[i].FName,MP[i].Country,MP[i].LaunchTime,MP[i].Weight,MP[i].Success);return0;}中文名英文名國家時(shí)間重量成功著陸?火星1AMars1MUSSR1960650.0N機(jī)遇號(hào)Opport.USA2004180.0Y勇氣號(hào)SpiritUSA2004174.0Y毅力號(hào)Persev.USA2021174.0Y祝融號(hào)ZhurongCHN2021240.0Y定義結(jié)構(gòu)體類型的一般形式為:7.1火星探測(cè)器知多少7.1.2結(jié)構(gòu)體類型struct結(jié)構(gòu)體類型名{數(shù)據(jù)類型成員名1;數(shù)據(jù)類型成員名2;…數(shù)據(jù)類型成員名n;};Tips:(1)成員定義項(xiàng)后用分號(hào)結(jié)束,整個(gè)結(jié)構(gòu)體類型的定義也用分號(hào)結(jié)束。(2)結(jié)構(gòu)體類型定義只是描述結(jié)構(gòu)體組織結(jié)構(gòu)形式,并不意味著給它分配一段內(nèi)存單元,只是告訴C編譯器這個(gè)結(jié)構(gòu)體類型由哪些類型的成員構(gòu)成。1.先定義結(jié)構(gòu)體類型再定義結(jié)構(gòu)體變量這種形式一般用于需要明確指定結(jié)構(gòu)體成員類型的場(chǎng)景。structMarsProbe{charCName[20];/*中文名*/charFNa;/*英文名*/intLaunchTime;/*發(fā)射時(shí)間*/floatWeight;/*重量*/structSizeMarSize;/*大小*/charSuccess;/*是否成功著陸*/};structMarsProbemar1,mar2;7.1火星探測(cè)器知多少7.1.3結(jié)構(gòu)體變量的定義和初始化2.定義結(jié)構(gòu)體類型同時(shí)定義結(jié)構(gòu)體變量這種形式適用于需要在聲明結(jié)構(gòu)體類型的同時(shí)創(chuàng)建多個(gè)結(jié)構(gòu)體變量的場(chǎng)景。structMarsProbe{charCName[20];/*中文名*/charFNa;/*英文名*/intLaunchTime;/*發(fā)射時(shí)間*/floatWeight;/*重量*/structSizeMarSize;/*大小*/charSuccess;/*是否成功著陸*/};structMarsProbemar1,mar2;7.1火星探測(cè)器知多少7.1.4結(jié)構(gòu)體變量的引用結(jié)構(gòu)體變量是通過成員運(yùn)算符“.”來引用結(jié)構(gòu)體變量中的成員,一般形式為:“結(jié)構(gòu)體變量名.成員名”。說明:1.不能對(duì)結(jié)構(gòu)體變量直接進(jìn)行賦值2.結(jié)構(gòu)體變量的成員與普通變量一樣可進(jìn)行各種運(yùn)算。3.以使用取地址運(yùn)算符“&”,引用結(jié)構(gòu)體變量或成

員的地址。4.結(jié)構(gòu)體變量可以整體被賦值。7.1火星探測(cè)器知多少7.1.5結(jié)構(gòu)體變量的初始化C語言基本類型類似,在定義結(jié)構(gòu)體變量同時(shí)可對(duì)結(jié)構(gòu)體變量進(jìn)行初始化。例7-2初始化結(jié)構(gòu)體數(shù)據(jù),并輸出各個(gè)成員的內(nèi)容。#include<stdio.h>structMarsProbe{charCName[20];charFName[20];charCountry[20];intLaunchTime;floatWeight;charSuccess;};intmain(){structMarsProbemar1={"祝融號(hào)","Zhurong","CHN",2021,240.0,'Y'};printf("中文名\t英文名\t國家\t時(shí)間\t重量\t成功著陸?\n");printf("%s\t%s\t%s\t%d\t%.1f\t%c\n",mar1.CName,mar1.FName,mar1.Country,mar1.LaunchTime,mar1.Weight,mar1.Success);return0;}中文名 英文名 國家 時(shí)間 重量 成功著陸?祝融號(hào) Zhurong CHN 2021 240.0 Y#include<stdio.h>structMarsProbe{charCName[20];/*中文名*/charFName[20];/*英文名*/charCountry[20];/*國家*/intLaunchTime;/*發(fā)射時(shí)間*/floatWeight;/*重量*/charSuccess;/*是否成功著陸*/};intmain(){structMarsProbeMP[]={{"火星1A","Mars1M","USSR",1960,650.0,'N'},{"機(jī)遇號(hào)","Opport.","USA",2004,180.0,'Y'},{"勇氣號(hào)","Spirit","USA",2004,174.0,'Y'},{"毅力號(hào)","Persev.","USA",2021,174.0,'Y'},{"祝融號(hào)","Zhurong","CHN",2021,240.0,'Y'}};inti,j,maxIndex;7.2火星探測(cè)器重量排排坐7.2.1程序解析structMarsProbetemp;for(i=0;i<5-1;i++){maxIndex=i;for(j=i+1;j<5;j++)if(MP[maxIndex].Weight>MP[j].Weight)maxIndex=j;temp=MP[i];MP[i]=MP[maxIndex];MP[maxIndex]=temp;}printf("中文名\t英文名\t國家\t時(shí)間\t重量\t成功著陸?\n");for(i=0;i<5;i++)printf("%s\t%s\t%s\t%d\t%.1f\t%c\n",MP[i].CName,MP[i].FName,MP[i].Country,MP[i].LaunchTime,MP[i].Weight,MP[i].Success);return0;}中文名英文名國家時(shí)間重量成功著陸?勇氣號(hào)SpiritUSA2004174.0Y毅力號(hào)Persev.USA2021174.0Y機(jī)遇號(hào)Opport.USA2004180.0Y祝融號(hào)ZhurongCHN2021240.0Y火星1AMars1MUSSR1960650.0N7.3火星探測(cè)當(dāng)參數(shù)7.3.1結(jié)構(gòu)體變量作函數(shù)參數(shù)#include<stdio.h>structMarsProbe{charCName[20];/*中文名*/charFName[20];/*英文名*/charCountry[20];/*國家*/intLaunchTime;/*發(fā)射時(shí)間*/floatWeight;/*重量*/charSuccess;/*是否成功著陸*/};voidPrint(structMarsProbetemp){/*采用結(jié)構(gòu)體變量temp作為函數(shù)形參*/printf("%s\t%s\t%s\t%d\t%.1f\t%c\n",temp.CName,temp.FName,temp.Country,temp.LaunchTime,temp.Weight,temp.Success);}intmain(){structMarsProbeMP[]={{"火星1A","Mars1M","USSR",1960,650.0,'N'},{"機(jī)遇號(hào)","Opport.","USA",2004,180.0,'Y'},{"勇氣號(hào)","Spirit","USA",2004,174.0,'Y'},{"毅力號(hào)","Persev.","USA",2021,174.0,'Y'},{"祝融號(hào)","Zhurong","CHN",2021,240.0,'Y'}};inti;printf("中文名\t英文名\t國家\t時(shí)間\t重量\t成功著陸?\n");for(i=0;i<5;i++)Print(MP[i]);return0;}中文名英文名國家時(shí)間重量成功著陸?火星1AMars1MUSSR1960650.0N機(jī)遇號(hào)Opport.USA2004180.0Y勇氣號(hào)SpiritUSA2004174.0Y毅力號(hào)Persev.USA2021174.0Y祝融號(hào)ZhurongCHN2021240.0Y7.3火星探測(cè)當(dāng)參數(shù)7.3.2結(jié)構(gòu)體數(shù)組作函數(shù)參數(shù)#include<stdio.h>structMarsProbe{charCName[20];/*中文名*/charFName[20];/*英文名*/charCountry[20];/*國家*/intLaunchTime;/*發(fā)射時(shí)間*/floatWeight;/*重量*/charSuccess;/*是否成功著陸*/};voidsort(structMarsProbemar[],intn){inti,j;structMarsProbetemp;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++){if(mar[i].Weight>mar[j].Weight){temp=mar[i];mar[i]=mar[j];mar[j]=temp;}

}}intmain(){structMarsProbeMP[]={{"火星1A","Mars1M","USSR",1960,650.0,'N'},{"機(jī)遇號(hào)","Opport.","USA",2004,180.0,'Y'},{"勇氣號(hào)","Spirit","USA",2004,174.0,'Y'},{"毅力號(hào)","Persev.","USA",2021,174.0,'Y'},{"祝融號(hào)","Zhurong","CHN",2021,240.0,'Y'}};inti;sort(MP,5);printf("中文名\t英文名\t國家\t時(shí)間\t重量\t成功著陸?\n");for(i=0;i<5;i++)printf("%s\t%s\t%s\t%d\t%.1f\t%c\n",MP[i].CName,MP[i].FName,MP[i].Country,MP[i].LaunchTime,MP[i].Weight,MP[i].Success);return0;}中文名英文名國家時(shí)間重量成功著陸?勇氣號(hào)SpiritUSA2004174.0Y毅力號(hào)Persev.USA2021174.0Y機(jī)遇號(hào)Opport.USA2004180.0Y祝融號(hào)ZhurongCHN2021240.0Y火星1AMars1MUSSR1960650.0N#include<stdio.h>#include<string.h>typedefstructMarsProbe{charCName[20];/*中文名*/charFName[20];/*英文名*/charCountry[20];/*國家*/intLaunchTime;/*發(fā)射時(shí)間*/floatWeight;/*重量*/charSuccess;/*是否成功著陸*/}MARSPROBE;/*自定義結(jié)構(gòu)體類型名*/intFind(structMarsProbemar[],charKey[],intn){inti=-1;for(i=0;i<n;i++){if(strcmp(mar[i].Country,Key)==0){break;}}returni;}intmain(){MARSPROBEMP[]={

7.4火星探測(cè)找一找7.4.1程序解析{"火星1A","Mars1M","USSR",1960,650.0,'N'},{"機(jī)遇號(hào)","Opport.","USA",2004,180.0,'Y'},{"勇氣號(hào)","Spirit","USA",2004,174.0,'Y'},{"毅力號(hào)","Persev.","USA",2021,174.0,'Y'},{"祝融號(hào)","Zhurong","CHN",2021,240.0,'Y'}};inti=0;charKey[20];printf("請(qǐng)輸入待查找火星探測(cè)器國家\n");gets(Key);strupr(Key);/*轉(zhuǎn)換為大寫*/if((i=F

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論