C語言作業題 5

2021-08-14 01:32:35 字數 3302 閱讀 7264

1、設有下面的結構體和結構變數定義:

struct student

;struct student studl;

關於結構體型別變數賦值正確的是(a

a、 studl.id=1001;studl.name=」tom」;

b、id=1001;*studl.name=」tom」;

c、 studl.id=1001;studl.*name=」tom」;

d、studl.id=1001l;*studl.name=」tom」;

2、指向結構體物件的指標變數既可以指向結構體變數,也可以用來指向(結構體本身)。

2.1、結構體型別只有一種。請問這句話的說法是正確的嗎?(錯誤

a. 正確

b. 錯誤

3、當說明乙個結構體變數時系統分配給它的記憶體是(a

a. 各成員所需記憶體的總和

b. 結構中第乙個成員所需記憶體量

c. 成員中佔記憶體量最大者所需的容量

d. 結構中最後乙個成員所需記憶體量

4、在結構體中,成員的預設訪問許可權是公有有的

5、在32位cpu上選擇預設對齊的情況下,有如下結構體定義:

struct a;

則sizeof(struct a)的值為(16

9 12

16 20

6、下列**的功能包括:定義乙個x陣列,說明乙個結構體,同時對變數t進行初始化,使得t的a成員的值為50,b成員的值為x陣列的首位址。

請在空白處(方框內)填入合適的內容,一完成上述功能。

int x[5]=;

struct t=;

7、開發c**時,經常見到如下型別的結構體定義:

typedef struct list_t

list_t;

請問在32位系統中,sizeof(list_t)的值為? (8byte

4byte

8byte

5byte

9byte

8、定義乙個結構體變數(包括年、月、日),計算該日在本年中為第幾天?(注意考慮閏年問題),要求寫乙個函式days,實現上面的計算。由主函式將年月日傳遞給days函式,計算後將日子傳遞歸主函式輸出 。

#include 

struct data

a = ;

int func(struct data *p)

;//月份

int year = p->year;

if ((year % 400 == 0)|| (year % 4 == 0 && year % 100 != 0))//判斷閏年

month[1] = 29;

int i = 0, ret = 0;

for (i = 0; i < ((p->month)-1); i++)

ret += month[i];//當月之前月份天數之和

ret += p->day;//加上當月天數

return ret;

}int main(void)

9、假設有如下的關於職工資訊的結構體:

struct employee

; 其中eid表示職工編號,請編寫乙個函式:

struct employee *eidsequence(int eid, char *sname)

#include 

#include

#include

struct employee

;struct employee *eidsequence (int eid, char *sname)

10、請設計乙個名為student的結構體型別,該型別的成員有乙個名為***的字元型別變數,有乙個名為id的int型別,有個名為name的字元陣列的變數,請在主函式中建立乙個sruc student型別的陣列,陣列長度為10,然後再設計乙個自定義函式實現該結構體陣列的輸入,再設計乙個自定義函式,求出該結構體陣列中id值最大的元素並顯示其各成員的值。

#include 

#include

#define num 3

struct student//設計乙個名為student的結構體型別

;void input(struct student*p,int i)//乙個自定義函式實現該結構體陣列的輸入

void find(struct student*p,int len)//該結構體陣列中id值最大的元素並顯示其各成員的值

}printf("id:%d\n", (a+ret)->id);

printf("***:%c\n", (a+ret)->***);

printf("name:%s\n", (a + ret)->name);

}int main(void)

11、程式設計計算兩點間的直線距離。

要求:點座標採用結構體型別,螢幕獲取輸入兩點,並輸出距離(小數點後保留兩位)。

#include 

#include

struct point

a,b;

int main(void)

12、利用結構體型別陣列輸入五位使用者的姓名和**號碼,按姓名的字典順序排列後(姓名相同保持原位置),輸出使用者的姓名和**號碼。 已知結構體型別如下: struct user ;

#include 

#define num 3

struct user

;void inti(struct user* arr,int len)

}void cmp(struct user* arr,int len)

}}void pri(struct user* arr,int len)

}int main(void)

C語言作業題 2

1 如輸入 z2009 ashanghaiz 則輸出 lenth 8 事例說明 從a到z的子串為shanghai,其長度是8.如輸入 z2009 ashanghaiz 則輸出 lenth 8 事例說明 從a到z的子串為shanghai,其長度是8.include int func1 char arr...

C語言初階作業題 陣列

1.關於一維陣列初始化,下面哪個定義是錯誤的?a.int arr 10 b.int arr c.int arr 1,2,3,4,5,6 d.int arr 10 答案解析 a 正確,10個int的一段連續空間,前6個位置被初始化為1,2,3,4,5,6,其他位置為0 b 正確,陣列中有6個空間,並被...

科銳C語言01 作業題

1.程式設計輸出字元0 9 a z a z的acsii碼的十進位制 八進位制和十六進製制的表示形式。include main include main 3.已知a 3,b 2,c 2.5,計算 float a b 3 int c的值。include main 4.編寫乙個程式輸出5!10!的結果。改...