新概念C語言能力教程練習10答案

2022-10-31 21:33:07 字數 2551 閱讀 2131

10.1答案:

結構型是一種資料型別,與int,float類似,用於規定相關儲存單元的型別,但結構型是使用者自己定義的資料型別。結構型變數與整型變數類似是相關儲存單元的標識。結構型用於定義結構型變數。

10.2答案:

結構型中成員的型別可以是其它結構型。

測試程式**:

#include <>

#include <>

struct date

;struct student

;int main()

10.3答案:

#include <>

#include <>

struct student

;int main()

else

return 0;

}10.4答案:

#include <>

struct student

;int main()

printf("按照數學成績公升序排列:\n");

for(i=0;i<5;++i)

printf("學號:%d 姓名:%s 數學成績:

%.1f 英語成績:%.

1f\n",stu[i].no,stu[i].name,stu[i].

fm,stu[i].fe);

return 0;

}10.5答案:

如有struct student stu1, stu2;,賦值時stu1=stu2可轉換成函式呼叫assign(&stu1, &stu2, sizeof(struct student))。函式assign定義如下。

void assign(void *x, void *y, unsigned size)

10.6答案:

通過指標變數以間接方式使用指向的結構型儲存單元的成員變數時,使用指向成員操作符->更簡便。通過變數直接使用結構型儲存單元的成員變數時使用成員操作符。

10.7答案:

例10-2中construct()函式將兩個double型小數「組合」成乙個結構型的複數變數。

#include <>

struct date

;struct date construct(int year,int month,int day)

else

return temp;

}int main()

10.8答案:

//函式中沒有必要檢測引數的合法性。

struct date addday(struct date d)

case 2:

if( && ||

else if( > 28)

default:

if( > 30)

flag = 1;

}if(flag == 1)

}return d2;

}10.9答案:

測試程式如下:

#include <>

struct student

;int main()

程式的輸出

結構型中成員分別佔4個、10個、4個、4個,原本為22位元組,但由輸出結果可知,實際上佔了24個位元組。結構型變數所佔儲存單元空間之和有時並不等於各成員變數所佔儲存單元之和。

在預設情況下,c編譯器為每乙個變數或是資料單元按其自然對界條件分配空間。

在結構中,編譯器為結構的每個成員按其自然對界(alignment)條件分配空間。各個成員按照它們被宣告的順序在記憶體中順序儲存(成員之間可能有插入的空位元組),第乙個成員的位址和整個結構的位址相同。

c編譯器預設的結構成員自然對界條件為「n位元組對齊」,n即該成員資料型別的長度。如int型成員的自然對界條件為4位元組對齊,而double型別的結構成員的自然對界條件為8位元組對齊。若該成員的起始偏移不位於該成員的「預設自然對界條件」上,則在前乙個節面後面新增適當個數的空位元組。

c編譯器預設的結構整體的自然對界條件為:該結構所有成員中要求的最大自然對界條件。若結構體各成員長度之和不為「結構整體自然對界條件的整數倍,則在最後乙個成員後填充空位元組

10.10答案:

**如下:

#include <>

#include <>

struct student

;int studentcmp(const void * p1, const void * p2)

int main()

{ struct student stu[5];

int i=0,j=0;

printf("請輸入5個學生的學號,姓名,數學和英語成績\n");

for(i=0;i<5;++i)

scanf("%d%s%f%f",&stu[i].no,&stu[i].name,&stu[i].fm,&stu[i].fe);

qsort(stu,5,sizeof(struct student),studentcmp);

printf("按照數學成績公升序排列後:\n");

for(i=0;i<5;++i)

printf("學號:%d 姓名:%s 數學成績:

%.1f 英語成績:%.

1f\n",stu[i].no,stu[i].name,stu[i].

fm,stu[i].fe);

新概念QA昂立新概念課程顧問培訓

1.q 新概念有哪些課程種類,課時一般是多少?a 新概念的課程種類 1.按類別分 少年新概念i,少年新概念ii,少年新概念iii 2.按授課篇幅 全冊班,半冊班 上半冊 下半冊 3.按課時分 120班 60班 全冊課時120h,半冊課時60h 150班 75班 全冊課時150h,半冊課時75h 寒暑...

新概念教學反思

新概念英語第三冊 lesson 10 the loss of the titanic 教學反思 牡丹江市第一高階中學 李平沒有反思的經驗是狹隘的經驗,至多只能是膚淺的認識。教師成長的公式 成長 經驗 反思。通過一節課,老師可以感受到學生對這節課的滿意程度,老師也應該能清醒地反思自己的教學行為,如何構...

新概念背誦方法

一 我的新概念背誦之旅 相關搜尋 新概念,背誦 二 新概念的背誦方法 三 117分托福考生發來的感言 2009 07 15 16 01 15 我個人的經驗對於想在半年或者更短的時間以內突擊考試的同學沒有太多的幫助,但是對於想在較長的時間段,比如一年或者更長,切實地提高英語能力而不僅是應試技巧的同學來...