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!的結果。改...