![單元9-結(jié)構(gòu)類型的使用_第1頁](http://file4.renrendoc.com/view/384e411142ef204a659b1c90dc74c6c3/384e411142ef204a659b1c90dc74c6c31.gif)
![單元9-結(jié)構(gòu)類型的使用_第2頁](http://file4.renrendoc.com/view/384e411142ef204a659b1c90dc74c6c3/384e411142ef204a659b1c90dc74c6c32.gif)
![單元9-結(jié)構(gòu)類型的使用_第3頁](http://file4.renrendoc.com/view/384e411142ef204a659b1c90dc74c6c3/384e411142ef204a659b1c90dc74c6c33.gif)
![單元9-結(jié)構(gòu)類型的使用_第4頁](http://file4.renrendoc.com/view/384e411142ef204a659b1c90dc74c6c3/384e411142ef204a659b1c90dc74c6c34.gif)
![單元9-結(jié)構(gòu)類型的使用_第5頁](http://file4.renrendoc.com/view/384e411142ef204a659b1c90dc74c6c3/384e411142ef204a659b1c90dc74c6c35.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
<<C語言程序設(shè)計基礎(chǔ)>>課程單元九
結(jié)構(gòu)類型的使用主要內(nèi)容結(jié)構(gòu)類型概述結(jié)構(gòu)類型的說明結(jié)構(gòu)變量的定義(重點)結(jié)構(gòu)變量的引用(重點)結(jié)構(gòu)類型數(shù)據(jù)的處理用函數(shù)處理結(jié)構(gòu)類型(難點)考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796…………某單位招聘考試成績匯總表問題引入如何處理?數(shù)據(jù)特點:1.各行內(nèi)數(shù)據(jù)不盡相同;2.各行間數(shù)據(jù)情況相同;3.以行為單位處理數(shù)據(jù).unsignednum;charname[10];intexama;intexamb;inttotal;問題引入考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796繪制二維表格第一步:制作表頭第二步:畫出各行第三步:編輯各行數(shù)據(jù)使用結(jié)構(gòu)類型第一步:結(jié)構(gòu)說明第二步:結(jié)構(gòu)變量定義第三步:結(jié)構(gòu)變量引用某單位招聘考試成績匯總表如何轉(zhuǎn)換成C語言描述?9.1結(jié)構(gòu)類型的基本使用9.1.1結(jié)構(gòu)類型說明9.1.2結(jié)構(gòu)變量定義9.1.3結(jié)構(gòu)變量引用9.1結(jié)構(gòu)類型的基本使用9.1.1結(jié)構(gòu)類型說明unsignednum;charname[10];intexama;intexamb;inttotal;{};structjob_exam考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表例9-19.1結(jié)構(gòu)類型的基本使用9.1.1結(jié)構(gòu)類型說明unsignednum;charname[10];intexama;intexamb;inttotal;{};structjob_exam結(jié)構(gòu)類型說明的一般格式struct<結(jié)構(gòu)名>
{<類型名1><成員變量名1>;<類型名2><成員變量名2>;......<類型名n><成員變量名n>;};
結(jié)構(gòu)類型關(guān)鍵字結(jié)構(gòu)類型說明的標識符結(jié)構(gòu)類型成員列表結(jié)構(gòu)成員起始終止標志分號為結(jié)構(gòu)類型終止標記9.1結(jié)構(gòu)類型的基本使用9.1.2結(jié)構(gòu)變量定義考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表structjob_exam*p=&a;structjob_exam
a,b;structjob_exam
s[3];
(1)定義兩個結(jié)構(gòu)變量a和b(2)定義結(jié)構(gòu)變量數(shù)組s,有三個元素(3)定義結(jié)構(gòu)指針p,指向結(jié)構(gòu)變量aunsignednum;charname[10];intexama;intexamb;inttotal;{};structjob_exam例9-29.1結(jié)構(gòu)類型的基本使用9.1.2結(jié)構(gòu)變量定義結(jié)構(gòu)類型說明和變量定義合二為一unsignednum;charname[10];intexama;intexamb;inttotal;{};structjob_examstructjob_exam*p=&a;structjob_exam
a,b;structjob_exam
s[3];
unsignednum;charname[10];intexama;intexamb;inttotal;{}a,b,s[3],*p;structjob_exam9.1結(jié)構(gòu)類型的基本使用9.1.2結(jié)構(gòu)變量定義結(jié)構(gòu)體變量定義時同時初始化struct
job_exam
{unsignednum; charname[10]; intexama; intexamb; inttotal;
}a={1501,"王虎",89,92},s[3]={{1501,"王虎",89,92},{1502,"李雪",87,96},{1503,“張揚”,82,85}},
*p=&a;unsignednum;charname[10];intexama;intexamb;inttotal;{}a,b,s[3],*p;structjob_exam9.1結(jié)構(gòu)類型的基本使用9.1.2結(jié)構(gòu)變量定義結(jié)構(gòu)體變量的存儲特點系統(tǒng)為結(jié)構(gòu)變量分配內(nèi)存的字節(jié)總數(shù)為:結(jié)構(gòu)變量所包含的各個成員變量所占字節(jié)數(shù)之和。如結(jié)構(gòu)變量a所占內(nèi)存字節(jié)數(shù)為26。結(jié)構(gòu)體變量的存儲示意圖nameexamaexambtotalnum10字節(jié)4字節(jié)4字節(jié)4字節(jié)4字節(jié)astruct
job_exam
{unsignednum; charname[10]; intexama; intexamb; inttotal;
}a={1501,"王虎",89,92},s[3]={{1501,"王虎",89,92},{1502,"李雪",87,96},{1503,"張揚",82,85}},
*p=&a;9.1結(jié)構(gòu)類型的基本使用9.1.3結(jié)構(gòu)變量引用(1)用成員運算符“.”引用結(jié)構(gòu)變量成員(2)用指針引用結(jié)構(gòu)變量成員a.total=a.exama+a.examb;p->total=p->exama+p->examb;struct
job_exam
{unsignednum; charname[10]; intexama; intexamb; inttotal;
}a={1501,"王虎",89,92},s[3]={{1501,"王虎",89,92},{1502,"李雪",87,96},{1503,"張揚",82,85}};引用變量成員(*p).total=(*p).exama+(*p).examb;9.1結(jié)構(gòu)類型的基本使用9.1.3結(jié)構(gòu)變量引用#include<stdio.h>voidmain(){structjob_exam {unsignednum; charname[10]; intexama; intexamb; inttotal; }a={1501,"王虎",89,92};
a.total=a.exama+a.examb;//計算總成績
printf("編號姓名筆試面試總成績\n");printf("%4u%8s%6d%6d%6d\n",a.num,,a.exama,a.examb,a.total);}運行結(jié)果:程序演示
例9-3實例應(yīng)用1—引用變量成員9.1結(jié)構(gòu)類型的基本使用9.1.3結(jié)構(gòu)變量引用#include<stdio.h>voidmain(){structjob_exam {unsignednum; charname[10]; intexama; intexamb; inttotal; }*p,s[3]={{1501,"王虎",89,92},{1502,"李雪",87,96},{1503,"張揚",82,85}};p=s;
printf("編號姓名筆試面試總成績\n");for(inti=0;i<3;i++){(*p).total=(*p).exama+(*p).examb;printf("%4u%8s%6d%6d%6d\n",p->num,p->name,p->exama,p->examb,p->total);p++;}}運行結(jié)果:程序演示
例9-4實例應(yīng)用2—引用變量成員9.1結(jié)構(gòu)類型的基本使用9.1.3結(jié)構(gòu)變量引用#include<stdio.h>voidmain(){structjob_exam {unsignednum; charname[10]; intexama,intexamb,inttotal; }t,s[3]={{1501,"王虎",89,92},{1502,"李雪",87,96},{1503,"張揚",82,85}};for(inti=0;i<3;i++)s[i].total=s[i].exama+s[i].examb;
t=s[0];
if(t.total<s[1].total)t=s[1];
if(t.total<s[2].total)t=s[2];printf("總成績最高的考生信息:\n");printf("編號姓名筆試面試總成績\n");printf("%4u%8s%6d%6d%6d\n",t.num,,t.exama,t.examb,t.total);}運行結(jié)果:程序演示
結(jié)構(gòu)體變量整體的引用實例應(yīng)用3—引用變量整體例9-59.1結(jié)構(gòu)類型的基本使用有如下定義:
structjob_exama,b;請為結(jié)構(gòu)變量a,b輸入各成員值,交換a和b數(shù)據(jù)后輸出。
考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表【隨堂練習(xí)9-1】【提示與思考】1.結(jié)構(gòu)類型如何定義
2.結(jié)構(gòu)變量的定義方式3.結(jié)構(gòu)變量的賦值方式4.結(jié)構(gòu)變量的交換
(1)變量成員的交換
(2)變量的整體交換程序演示
9.2用函數(shù)處理結(jié)構(gòu)類型數(shù)據(jù)知識回顧:函數(shù)調(diào)用中的數(shù)據(jù)傳遞方式:
1.數(shù)值傳遞方式2.地址傳遞方式處理結(jié)構(gòu)類型數(shù)據(jù)時,函數(shù)間傳遞結(jié)構(gòu)變量的值還是地址?考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表用函數(shù)完成:查找最高總成績的考生信息。例9-69.2用函數(shù)處理結(jié)構(gòu)類型數(shù)據(jù)【分析】結(jié)構(gòu)變量不能作為一個整體輸入和輸出,但可以作為一個整體賦值、傳遞給函數(shù)以及作為函數(shù)返回值?!咎幚矸椒ā慨?dāng)用結(jié)構(gòu)變量作函數(shù)參數(shù)進行整體傳送時,要將全部成員逐個傳送,時間和空間開銷很大,降低了程序效率。一般我們不將結(jié)構(gòu)變量作為函數(shù)參數(shù),而采用結(jié)構(gòu)指針變量,實參傳向形參的只是地址,減少了時間和空間開銷。結(jié)構(gòu)體變量的存儲示意圖nameexamaexambtotalnum10字節(jié)4字節(jié)4字節(jié)4字節(jié)4字節(jié)a結(jié)構(gòu)類型變量特點分析9.2用函數(shù)處理結(jié)構(gòu)類型數(shù)據(jù)考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表用函數(shù)完成:查找最高總成績的考生信息。structjob_exam{unsignednum; charname[10]; intexama; intexamb; inttotal; }s[3]={{1501,“王虎”,89,92},{1502,“李雪”,87,96},{1503,"張揚",82,85} };例9-69.2用函數(shù)處理結(jié)構(gòu)類型數(shù)據(jù)【自定義函數(shù)】voidfind(structjob_exam*p){*p=s[0];for(inti=1;i<3;i++)if((*p).total<s[i].total) *p=s[i];}用函數(shù)完成:查找最高總成績的考生信息。例9-6【主函數(shù)】voidmain(){inti;structjob_examt; for(i=0;i<3;i++)s[i].total=s[i].exama+s[i].examb;
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代醫(yī)療設(shè)備研發(fā)中的專利保護問題研究
- 現(xiàn)代企業(yè)管理理念與企業(yè)文化建設(shè)
- 2025年度智能食堂運營管理服務(wù)合同
- 2025年度文化藝術(shù)品交易合同擔(dān)保執(zhí)行細則
- 人教版數(shù)學(xué)九年級上冊聽評課記錄21.2.4《一元二次方程的根與系數(shù)的關(guān)系》
- 華師大版數(shù)學(xué)八年級下冊17.5《實踐與探索》(第2課時)聽評課記錄
- 湘教版數(shù)學(xué)七年級下冊《3.2提取公因式法(2)》聽評課記錄
- 電信網(wǎng)絡(luò)詐騙的常見手段與防范策略培訓(xùn)
- 2025年度建筑工地安全防護腳手架采購協(xié)議
- 湘教版數(shù)學(xué)七年級上冊《4.3.2角的度量與計算》聽評課記錄
- 團播主持人協(xié)議
- 《招標投標法解讀》課件
- 施耐德低壓電器選型
- 醫(yī)風(fēng)醫(yī)德ppt課件2023年
- 2023城鎮(zhèn)給水排水管道原位固化法修復(fù)工程技術(shù)規(guī)程
- 高一必修二英語測試題
- 裝飾施工圖設(shè)計深度
- 100以內(nèi)的加減法練習(xí)1000題(可直接打印)
- 技術(shù)人員能力評價表
- 碳纖維加固定額B013
- 我是家務(wù)小能手(課堂PPT)
評論
0/150
提交評論