Bài Tập C Có Lời Giải - Học Lập Trình C Online - Viettuts

Chuỗi (String) trong C Bài tập C - Nhập ma trận từ file trong C

Nội dung chính

  • Các cấp độ bài tập C
  • 1. Bài tập C kinh điển
  • 2. Bài tập C cơ bản
  • 3. Bài tập vòng lặp trong C
  • 4. Bài tập mảng trong C
  • 5. Bài tập mảng 2 chiều trong C
  • 5. Bài tập chuỗi trong C
  • 6. Bài tập Đệ quy trong C
  • 7. Bài tập về con trỏ (Pointer) trong C
  • 8. Bài tập về các thuật toán sắp xếp trong C
  • 9. Bài tập về Struct trong C
  • 10. Bài tập về danh sách liên kết (linked-list) trong C
  • 11. Bài tập về File I/O trong C
  • 12. Bài tập quản lý sinh viên trong C/C++

Các cấp độ bài tập C

Bài này cung cấp cho bạn danh sách các bài tập C có lời giải ở các cấp độ khác nhau để bạn thực hành khi học ngôn ngữ lập trình C:

  1. Bài tập C kinh điển.
  2. Bài tập C cơ bản.
  3. Bài tập vòng lặp trong C.
  4. Bài tập C về mảng một chiều và mảng 2 chiều (ma trận).
  5. Bài tập C về chuỗi trong C.
  6. Bài tập C về đệ quy.
  7. Bài tập C về con trỏ.
  8. Bài tập C về các thuật toán sắp xếp.
  9. Bài tập C về Struct (Cấu trúc).
  10. Bài tập C về danh sách liên kết (Linked List).
  11. Bài tập C về đọc ghi file.

1. Bài tập C kinh điển

  1. Dãy số Fibonacci
  2. Check Số nguyên tố
  3. Tính giai thừa
  4. Chuyển đổi hệ cơ số

Bài 01: Viết một chương trình C in ra dãy số Fibonacci

Gợi ý:

  • Sử dụng đệ quy
  • Không sử dụng đệ quy

Code mẫu: In dãy số Fibonacci trong C không sử dụng đệ quy.

/** * Tinh day so Fibonacci KHONG dung phuong phap de quy * * @author viettuts.vn */ #include<stdio.h> /** * Tinh so Fibonacci thu n * * @param n: chi so cua so Fibonacci tinh tu 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return So Fibonacci thu n */ int fibonacci(int n) { int f0 = 0; int f1 = 1; int fn = 1; int i; if (n < 0) { return -1; } else if (n == 0 || n == 1) { return n; } else { for (i = 2; i < n; i++) { f0 = f1; f1 = fn; fn = f0 + f1; } } return fn; } /** * Ham main */ int main() { int i; printf("10 so dau tien cua day so Fibonacci: \n"); for (i = 0; i < 10; i++) { printf("%d ", fibonacci(i)); } }

Kết quả:

10 so dau tien cua day so Fibonacci: 0 1 1 2 3 5 8 13 21 34

Bài 02: Viết một chương tình C kiểm tra số nguyên tố.

Code mẫu:

#include<stdio.h> /** * check so nguyen to trong C * * @author viettuts.vn * @param n: so nguyen duong * @return 1 la so nguyen so, * 0 khong la so nguyen to */ int isPrimeNumber(int n) { // so nguyen n < 2 khong phai la so nguyen to if (n < 2) { return 0; } // check so nguyen to khi n >= 2 int squareRoot = (int) sqrt(n); int i; for (i = 2; i <= squareRoot; i++) { if (n % i == 0) { return 0; } } return 1; } /** * Ham main */ int main() { int i; printf("Cac so nguyen to nho hon 100 la: \n"); for (i = 0; i < 100; i++) { if (isPrimeNumber(i)) { printf("%d ", i); } } }

Kết quả:

Cac so nguyen to nho hon 100 la: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Bài 03: Viết một chương trình C tính giai thừa của một số bằng cách không sử dụng đệ quy và có sử dụng đệ quy.

Gợi ý:

  • Sử dụng đệ quy
  • Không sử dụng đệ quy

Code mẫu: Tính giai thừa trong C không sử dụng đệ quy.

/** * Tinh giai thua KHONG dung phuong phap de quy * * @author viettuts.vn */ #include<stdio.h> /** * tinh giai thua * * @author viettuts.vn * @param n: so nguyen duong * @return giai thua cua so n */ long tinhGiaithua(int n) { int i; long giai_thua = 1; if (n == 0 || n == 1) { return giai_thua; } else { for (i = 2; i <= n; i++) { giai_thua *= i; } return giai_thua; } } /** * Ham main */ int main() { int a = 5; int b = 0; int c = 10; printf("Giai thua cua %d la: %d \n", a, tinhGiaithua(a)); printf("Giai thua cua %d la: %d \n", b, tinhGiaithua(b)); printf("Giai thua cua %d la: %d", c, tinhGiaithua(c)); }

Kết quả:

Giai thua cua 5 la: 120 Giai thua cua 0 la: 1 Giai thua cua 10 la: 3628800

Bài 04: Viết một chương trình C để chuyển đổi số nguyên N sang hệ cơ số B (2

Từ khóa » Bài Tập Cơ Bản C