結構體 共用體與列舉

2022-06-04 17:27:13 字數 2339 閱讀 8850

part 1

一、結構體型別與程式設計應用

學生的記錄由學號和成績組成。

n名學生的資料已在主函式中放入結構體陣列stu中。

編寫函式findminlist,實現: 把分數低的學生資料放在陣列t中,函式返回分數低的學生的人數。(注意:分數低的學生可能不止乙個)

#include const

int n=5;//

定義結構體型別struct student,並定義stu為其別名

typedef struct

student stu;

//函式宣告

void input(stu s, int

n);int findminlist(stu s, stu t, int

n);void output(stu s, int

n);int

main()

//輸入n個學生資訊,存放在結構體陣列s中

void input(stu s, int

n)

//輸出結構體s中n個元素資訊

void output(stu s, int

n)

//在結構體陣列s中,查詢最低分學生的記錄,將其存入結構體陣列s中

//形參n是結構體陣列s中元素個數

//函式返回最低分的學生人數

某省計算機等級考試的終成績是由兩部分組成的:客觀題和操作題組成。學生資訊包含准考證號、學生姓名、客觀題分數、操作題分數、總得分和等級。其中客觀題佔40%,操作題佔60%。

編寫函式,實現如下功能:

根據客觀題和操作題的分數計算學生的總得分,並對學生的總得分進行排序,

然後對前總得分前10%的學生的等級確定為"優秀",前10%-50%之間(不包含10%但包含50%的學生)確定為"合格",其餘學生等級確定為"不合格"

#include #include 

const

int n = 10;//

定義結構體型別struct student,並定義其別名為stu

typedef struct

student stu;

//函式宣告

void input(stu s, int

n);void output(stu s, int

n);void process(stu s, int

n);int

main()

//錄入考生資訊:准考證號,姓名,客觀題得分,操作題得分

void input(stu s, int

n) //

輸出考生完整資訊: 准考證號,姓名,客觀題得分,操作題得分,總分,等級

void output(stu s, int

n) //

對考生資訊進行處理:計算總分,排序,確定等級

二、共用體與結構體型別的區別

結構體:由於結構體中不同的成員分別使用不同的記憶體空間,因此乙個結構體所佔記憶體空間的大小應是結構體每個成員所佔記憶體大小總和,而且,結構體中每個成員相互獨立,不占用同一儲存單元。

part 3

三、

①列舉型別用於描述哪一類資料?

列舉型別用於描述一系列命名的整型常量。

②列舉變數使用過程中的注意事項能否直接輸入輸出?能否把乙個int型數值賦值給乙個列舉型別的變數?反過來呢?

列舉變數可以直接輸出,但不能直接輸入。

不能把乙個int型資料直接賦值給列舉變數,若要賦值必須進行強制型別轉換;反之,乙個列舉變數可以直接賦值給int型資料。

結構體 共用體 列舉

結構體 共用體 列舉 分析 首先宣告的結構體元素year的位址是最低的 0012ff74 而最後宣告的day的位址是最高的 0012ff7c 而我們又知道在棧中宣告變數的時候,位址是從高到低的分配的.因此,切記在結構體中宣告的變數與直接在外面宣告是不一樣的.在結構體中,最先宣告的變數放在最低位的.另...

列舉,結構體,共用體

列舉的定義 enum log level dbg,inf,war,err,fat,all,offvoid writeinfor log level level switch level case dbg printf d n dbg 上述定義的列舉型別,預設為dbg 0,inf 1,依次類推。1 列...

結構體 共用體 列舉

一 結構體 1.結構體和類一樣定義時最後要加分號 2.結構體型別定義變數時struct關鍵字不能省略 3定義好的結構體,系統對之不分配儲存單元 4.c99標準允許對某一成員初始化 5.不能企圖輸出結構體變數名來達到輸出結構體的目的 6.同類結構體間可以相互賦值 二 共用體 1.幾個不同的變數共享同一...