C 語言函數練習題:乘法表、數值交換與閏年判斷完整解析
題目一:列印乘法表 (指定行列數)
#include <stdio.h>
void print_multiplication_table(int n) {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= i; ++j) {
printf("%dx%d=%-3d ", j, i, i*j);
}
putchar('\n');
}
}
int main() {
int n;
printf("輸入乘法表大小 (如 9 或 12): ");
scanf("%d", &n);
print_multiplication_table(n);
return 0;
}
題目二:函數交換兩數 (指標傳遞)
#include <stdio.h>
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main() {
int a = 12, b = 34;
printf("交換前: a=%d, b=%d\n", a, b);
swap(&a, &b);
printf("交換後: a=%d, b=%d\n", a, b);
return 0;
}
題目三:判斷閏年
#include <stdio.h>
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int year;
printf("輸入年份: ");
scanf("%d", &year);
if (is_leap_year(year))
printf("%d 是閏年\n", year);
else
printf("%d 不是閏年\n", year);
return 0;
}
核心概念總結
- 函數封裝:將重複邏輯抽離為可重用函數。
- 指標參數:交換函數必須傳址才能修改原變數。
- 布林返回:閏年判斷回傳 1/0,語意清晰。
- 輸入驗證:實務中應檢查
scanf 返回值。