結構體練習題

2021-03-03 23:52:30 字數 2809 閱讀 4948

第1 題:計算日期的差值

(1)編寫一函式,計算兩個日期之間的時間差,並將其值返回。

日期以年、月、日表示。

「時間差」以天數表示。

注意考慮日期之間的閏年。

函式的輸入引數為日期1和日期2,

函式的返回值為時間差,單位為天數。

(2)編寫一程式,在主函式中輸入兩個日期,呼叫上述函式計算兩個日期之間的時間差,並

將結果輸出。

為了計算簡便,假設使用者輸入的日期1總是早於日期2。

參考**:

#include

struct date

;int isleap(int year);

int dif(struct date a, struct date b);

void main()

int isleap(int year) //判斷乙個年份是否是閏年的函式

int dif(struct date a, struct date b)

,};// day變數為年份a到年份b前一年的年份總天數

for(i=a.year; iif(isleap(i))

day += 366;

else

day += 365;

// day1變數為年份a年初到當天的年內總天數

for(i=1; iday1 += d[isleap(a.year)][i];

day1 += a.day;

// day1變數為年份b年初到當天的年內總天數

for(i=1; iday2 += d[isleap(b.year)][i];

day2 += b.day;

return day + day2 - day1;

}參考截圖:

第2 題:結構體陣列應用

請定義乙個描述學生基本資訊的結構,包括姓名,學號,籍貫,身份證號,年齡,家庭

住址,性別,****等。並定義乙個結構體陣列。程式設計:

a) 編寫函式 input() , 輸入基本資訊(3~5 條記錄);

b) 編寫函式 print(),輸出全體記錄資訊;

c) 編寫函式 search(), 檢索乙個指定的學生資訊並返回, 由主函式列印到螢幕上;

d) 說明,訪問結構的時候,什麼時候應該用運算子「.」,什麼時候應該用運算子「->」。

(運算子前是結構體變數時用「.」,是指向結構體變數的指標時用「->」)

參考**:

#include

#include

#define n 3 //增加程式的可擴充套件性

struct student

stu[n];

void input(struct student stu);

void print(struct student stu);

void search(struct student stu, char name);

void main()

void input(struct student stu)

}void print(struct student stu)

void search(struct student stu, char name)

if(flag == 0)

printf("沒有該學生的資訊!\n\n");

}參考截圖:

第3 題:一元多項式加法

編寫一元多項式加法器,輸入兩個一元稀疏多項式,然後對它們進行加法操作。

在具體實現上,要求用線性鍊錶形式來儲存乙個多項式,每個鍊錶的節點包括兩個成員

變數,係數和指數(均為整數)。例如

a(x) 75 30x 95x8 50x9, b(x) 80x 25x7 90x8

可以用下面的鍊錶表示:

說明:(1) 每個鍊錶節點都是根據需要動態建立的;

(2) 程式採用多函式形式來實現,至少包括建立鍊錶、列印鍊錶、加法函式等。

(3) 多項式係數可正、可負;指數肯定是非負整數,且按照遞增順序排列

輸入格式:第一行是乙個整數m,表示第乙個多項式的項數。

接下來有m行,每行有兩個整數ci和ei,分別表示第i項的係數和指數。

再接下來是輸入第二個多項式,方法同第乙個多項式輸入。

輸出格式:輸出兩個多項式相加的結果。第一行是整數k,表示新多項式的項數。

接下來有k行,每一行為兩個整數,分別代表係數和指數。

參考**:

#include

#include

#define len sizeof(struct polynomial)

struct polynomial

;struct polynomial *create(int);

void print(struct polynomial *);

struct polynomial *add(struct polynomial *, struct polynomial *);

void main()

printf("\n相加後的多項式項數為:%d\n", n);

printf("\n相加後的多項式為:\n");

print(p0);

}struct polynomial *create(int m)

{struct polynomial *p1, *p2, *head=null;

p1 = p2 = (struct polynomial *) malloc(len);

scanf("%d %d", &p1->a, &p1->x);

head = p1;

for(int i=1; i{

p1 = (struct polynomial *) malloc(len);

短語結構練習題

1 指出下列短語的結構 1 風俗習慣 2 變化規律3 歷史悠久 4 整修一新 5 交頭接耳6 思維敏捷 7 廢寢忘食 8 前程遠大9 全神貫注 10 襟懷坦白 11 揮手之間 12 愚公移山 13 競選州長 14 銷售計畫 15 色彩繽紛 16.交通規則 17 風和日麗18 激動不已 19.禁止吸菸...

工程結構練習題

混凝土結構設計原理 練習題2 一 選擇題 1分 10 10分 1 對於有流幅的鋼筋,混凝土結構設計規範 取 作為鋼筋設計強度的取值。a 彈性極限 b 屈服強度 c 極限強度 d 條件屈服強度 2 受彎構件在正截面工作的第一階段末期,即將開裂的 a狀態時,鋼筋的應力大約為 a 5 10mpa b 20...

C語言程式設計練習題之陣列與結構體

在每小題列出的四個備選項中只有乙個是符合題目要求的。1 若有定義int a 4 則a a 0 2 a 2 a 3 等於 a 1 b 2 c 3 d 4 2 設有陣列定義 char array china 則陣列 array所佔的空間為 a 4個位元組 b 5個位元組 c 6個位元組 d 7個位元組 ...