《明解C語言》筆記及課後習題答案 第五章

2021-08-20 11:21:23 字數 3113 閱讀 8514

練習5-1

/*---從頭順次為陣列中的元素賦值0,1,2,3,4---*/

#include int main(void)

return 0;

}

練習5-2

/*---從頭順次為陣列中的元素賦值5,4,3,2,1。---*/

#include int main(void)

return 0;

}

練習5-3

/*---修改程式,從頭開始依次使用5,4,3,2,1進行初始化。---*/

#include int main(void);

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

printf("v[%d] = %d\n", i, v[i]);

return 0;

}

練習5-4

/*---將初始化了的陣列倒序賦值到b陣列中---*/

#include int main(void)

; int b[5];

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

b[i] = a[5-i-1];

puts(" a b");

puts("-------");

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

printf("%4d%4d\n", a[i], b[i]);

return 0;

}

練習5-5

/*---對程式進行修改,改為用物件式巨集來定義元素個數。---*/

#include #define number 7

int main(void)

for (i = 0; i < number/2; i++)

puts("倒序排列了。");

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

printf("x[%d] = %d\n", i, x[i]);

return 0;

}

練習5-7

/*---讀取陣列中的資料個數和元素值並顯示。顯示時,

各值之間用逗號和空格分割,並用大括號將所有值括起來---*/

#include int main (void)

putchar('

putchar('}');

return 0;

}

練習5-8

/*

輸入學生的分數並顯示出分布情況

*/#include #define number 80 /* 人數上限 */

int main(void)

; /* 分布圖 */

printf("請輸入學生人數:");

do while (num < 1 || num > number);

printf("請輸入%d 人的分數。\n", num);

for (i = 0; i < num; i++) while (tensu[i] < 0 || tensu[i] > 100);

bunpu[tensu[i] / 10]++;

} puts("\n---分布圖---");

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

printf(" 100:");

for (j = 0; j < bunpu[10]; j++) /* 100分 */

putchar('*');

putchar('\n');

return 0;

}

練習5-10

/*---求4行3列矩陣和3行4列矩陣的乘積。各構成元素的值從鍵盤輸入。---*/

#include #define a 3

#define b 4

int main(void) }

printf("請輸入乙個4行3列矩陣的值。");

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

} for(i = 0; i < a; i++) }

return 0;

}

練習5-11

/*---輸入6名學生2門課程(語文,數學)的分數,顯示各門課程的

總分和平均分,以及各個學生的總分和平均分。---*/

#include #define stu 6

#define lesson 2

int main (void)

} while (la[a][b] > 100 || la[a][b] < 0);

sum0+=la[a][b];

} printf("第%d名學生的總分為%f,平均分為%f\n",a+1,sum0,sum0/lesson);

} printf("語文成績的總分為%f,平均分為%f,數學成績的總分為%f,平均分為%f\n",sum1,sum1/stu,sum2,sum2/stu);

return 0;

}

練習5-12

/*

兩次考試的分數儲存在三維陣列中。

*/#include int main(void)

, }, , }, , }, , } };

/* 輸出三維陣列 */

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

return 0;

}

注意事項:

c語言不支援可變引數。n未輸入之前是乙個隨機值,一般都很大。那麼int v[n+1]就可能是乙個很大的陣列,可能會導致棧溢位,再加上idx[n]更可能會導致棧溢位。

《明解C語言》筆記及課後習題答案 第十一章

練習11 1 將 清單進行修改 include int main void 練習11 2 將 中的常量用程式計算出來 include int count const char c int main void char p for i 0 i count a i printf a d s n i,a ...

《明解C語言》筆記及課後習題答案 第十章

練習10 1 編寫函式adjust point,如果n指向的值小於0,就將其改為0 如果值大於100,就將其改為100 如果是0 100的值,則不修改 include void adjust point int n int main void 練習10 2 將 y 年 m 月 d 日的日期,修改為其...

《明解C語言》筆記及課後習題答案 第十二章

練習12 1 編寫顯示物件takao各成員位址的程式。include define name len 64 struct student int main void printf 姓名 p n takao.name printf 姓名 d n takao.name printf 身高 d n tak...