版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
<<C語言程序設計基礎>>課程單元九
結構類型的使用主要內容結構類型概述結構類型的說明結構變量的定義(重點)結構變量的引用(重點)結構類型數據的處理用函數處理結構類型(難點)考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796…………某單位招聘考試成績匯總表問題引入如何處理?數據特點:1.各行內數據不盡相同;2.各行間數據情況相同;3.以行為單位處理數據.unsignednum;charname[10];intexama;intexamb;inttotal;問題引入考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796繪制二維表格第一步:制作表頭第二步:畫出各行第三步:編輯各行數據使用結構類型第一步:結構說明第二步:結構變量定義第三步:結構變量引用某單位招聘考試成績匯總表如何轉換成C語言描述?9.1結構類型的基本使用9.1.1結構類型說明9.1.2結構變量定義9.1.3結構變量引用9.1結構類型的基本使用9.1.1結構類型說明unsignednum;charname[10];intexama;intexamb;inttotal;{};structjob_exam考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表例9-19.1結構類型的基本使用9.1.1結構類型說明unsignednum;charname[10];intexama;intexamb;inttotal;{};structjob_exam結構類型說明的一般格式struct<結構名>
{<類型名1><成員變量名1>;<類型名2><成員變量名2>;......<類型名n><成員變量名n>;};
結構類型關鍵字結構類型說明的標識符結構類型成員列表結構成員起始終止標志分號為結構類型終止標記9.1結構類型的基本使用9.1.2結構變量定義考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表structjob_exam*p=&a;structjob_exam
a,b;structjob_exam
s[3];
(1)定義兩個結構變量a和b(2)定義結構變量數組s,有三個元素(3)定義結構指針p,指向結構變量aunsignednum;charname[10];intexama;intexamb;inttotal;{};structjob_exam例9-29.1結構類型的基本使用9.1.2結構變量定義結構類型說明和變量定義合二為一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結構類型的基本使用9.1.2結構變量定義結構體變量定義時同時初始化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結構類型的基本使用9.1.2結構變量定義結構體變量的存儲特點系統(tǒng)為結構變量分配內存的字節(jié)總數為:結構變量所包含的各個成員變量所占字節(jié)數之和。如結構變量a所占內存字節(jié)數為26。結構體變量的存儲示意圖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結構類型的基本使用9.1.3結構變量引用(1)用成員運算符“.”引用結構變量成員(2)用指針引用結構變量成員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結構類型的基本使用9.1.3結構變量引用#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);}運行結果:程序演示
例9-3實例應用1—引用變量成員9.1結構類型的基本使用9.1.3結構變量引用#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++;}}運行結果:程序演示
例9-4實例應用2—引用變量成員9.1結構類型的基本使用9.1.3結構變量引用#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);}運行結果:程序演示
結構體變量整體的引用實例應用3—引用變量整體例9-59.1結構類型的基本使用有如下定義:
structjob_exama,b;請為結構變量a,b輸入各成員值,交換a和b數據后輸出。
考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表【隨堂練習9-1】【提示與思考】1.結構類型如何定義
2.結構變量的定義方式3.結構變量的賦值方式4.結構變量的交換
(1)變量成員的交換
(2)變量的整體交換程序演示
9.2用函數處理結構類型數據知識回顧:函數調用中的數據傳遞方式:
1.數值傳遞方式2.地址傳遞方式處理結構類型數據時,函數間傳遞結構變量的值還是地址?考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表用函數完成:查找最高總成績的考生信息。例9-69.2用函數處理結構類型數據【分析】結構變量不能作為一個整體輸入和輸出,但可以作為一個整體賦值、傳遞給函數以及作為函數返回值?!咎幚矸椒ā慨斢媒Y構變量作函數參數進行整體傳送時,要將全部成員逐個傳送,時間和空間開銷很大,降低了程序效率。一般我們不將結構變量作為函數參數,而采用結構指針變量,實參傳向形參的只是地址,減少了時間和空間開銷。結構體變量的存儲示意圖nameexamaexambtotalnum10字節(jié)4字節(jié)4字節(jié)4字節(jié)4字節(jié)a結構類型變量特點分析9.2用函數處理結構類型數據考號姓名筆試成績面試成績總成績1501王虎89921502李雪82851503張揚7796某單位招聘考試成績匯總表用函數完成:查找最高總成績的考生信息。structjob_exam{unsignednum; charname[10]; intexama; intexamb; inttotal; }s[3]={{1501,“王虎”,89,92},{1502,“李雪”,87,96},{1503,"張揚",82,85} };例9-69.2用函數處理結構類型數據【自定義函數】voidfind(structjob_exam*p){*p=s[0];for(inti=1;i<3;i++)if((*p).total<s[i].total) *p=s[i];}用函數完成:查找最高總成績的考生信息。例9-6【主函數】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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版毛石擋土墻施工安全防護設施采購合同4篇
- 二零二五年度出國勞務人員福利待遇協(xié)議4篇
- 二零二五年度太陽能路燈照明工程設計與設備供應合同3篇
- 2025版教育行業(yè)學徒制實習協(xié)議范本3篇
- 2025年機場車庫租賃與行李托運服務協(xié)議4篇
- 二零二五年度女方離婚上訴狀法律援助合同
- 2025年度文化產業(yè)投資基金入股協(xié)議
- 2025年度沿海漁船租賃及捕撈作業(yè)合同范本4篇
- 2025年度農副產品電商平臺數據共享與安全協(xié)議
- 2025版協(xié)議離婚糾紛解決與財產保全合同3篇
- 電化學儲能電站安全規(guī)程
- 幼兒園學習使用人民幣教案教案
- 2023年浙江省紹興市中考科學真題(解析版)
- 語言學概論全套教學課件
- 大數據與人工智能概論
- 《史記》上冊注音版
- 2018年湖北省武漢市中考數學試卷含解析
- 測繪工程產品價格表匯編
- 《腎臟的結構和功能》課件
- 裝飾圖案設計-裝飾圖案的形式課件
- 護理學基礎教案導尿術catheterization
評論
0/150
提交評論