C語言結構體

2023-01-06 20:33:13 字數 1676 閱讀 9174

一、 實訓目的

1、 掌握結構體型別和變數的定義及應用;

2、 掌握結構體陣列及應用;

3、 掌握結構體巢狀及應用。

二、 實訓內容

1、 輸入並執行如下程式,若有錯誤,請修改。

#include <>

#define stu struct student

void main()

;stu s1=,s2=;

stu *p;

if(>=60)

else

p=&s2;

if(p->cj>=60) p->dj=』p』;

else p->dj=』f』;

printf("%-10s %-20s%-5d%-10.1f%c\n",

printfn」);

printf("%-10s %-20s%-5d%-10.1f%c\n",p->xh,p->xm,p->nl,p->cj,p->dj);

}(1)除錯過程中遇到的問題及解決辦法:

(2)程式執行結果記錄:

思考:上述程式中,經過初始化後, lin___,

2、 從鍵盤輸入四名學生的學號、姓名、數學成績、語文成績,分別求出每位同學的總分,並按總分由高到低的順序輸出。(要求用結構體陣列存放學生資訊)。

(1)程式:

#include <>

#define stu struct stu

#define n 4

void main( )

; stu a[n],t;

int i,j;

for(i=0;i<=n-1;i

for(i=0;i for(j=i+1;j<=n-1;j++)

if(a[i].zj

t=a[i]; a[i]=a[j]; a[j]=t;

}for(i=0;i<=n-1;i++)

printf ("%d,%s,%d,%d,%.2lf\n",a[i].xh,a[i].xm,a[i].cj1, a[i].cj2,a[i].zj);

}(2)程式除錯過程中發現的問題及解決辦法:

(3)程式執行結果:

3、 修改上題的程式,增加每位學生的出生日期資訊。

(1)程式:

#include <>

#define stu struct stu

#define n 4

void main( )

; struct stu

;stu a[n],t;

int i,j;

for(i=0;i<=n-1;i

for(i=0;i for(j=i+1;j<=n-1;j++)

if(a[i].zj

for(i=0;i<=n-1;i++)

printf ("%d,%s,%d-%d-%d,%d,%d,%.2lf\n",a[i].xh,a[i].xm,

a[i].

}(2)程式除錯過程中發現的問題及解決辦法:

(3)程式執行結果:

輸入:0001 aa 1993-2-01 50 60

0002 bb 1993-2-02 55 65

0003 cc 1993-2-03 60 70

0004 dd 1993-2-04 65 75

輸出:三、實訓體會和小結:

繼續加油,好好努力!

C語言6 結構體,共用體

選票統計 time limit 1000ms memory limit 65536k 題目描述 某校學生會主席由全校學生投票選舉產生,共有 名候選人報名參選,編號為1到 0 1000 全校有 名學生 0 30000 每人都可以投票。但每人只能投一票,每票只能選1名候選人。請你設計乙個程式能夠統計出哪...

關於C語言中的結構體對齊

1 什麼是位元組對齊 乙個變數占用 n 個位元組,則該變數的起始位址必須能夠被 n 整除,即 存放起始位址 n 0,對於結構體而言,這個 n 取其成員種的資料型別佔空間的值最大的那個。2 為什麼要位元組對齊 記憶體空間是按照位元組來劃分的,從理論上說對記憶體空間的訪問可以從任何位址開始,但是在實際上...

2 C語言之結構體概述

1 c語言中的2種型別 原生型別和自定義型別。1 結構體定義時需要先定義結構體型別,然後再用型別來定義變數。2 也可以在定義結構體型別的同時定義結構體變數。定義型別 struct people 定義型別的同時定義變數。struct student s1 將型別struct student重新命名為s...