Tổng hợp ví dụ và bài tập ngôn ngữ lập trình C trình bày nội dung về: Lập trình sử dụng ngôn ngữ C (Toán hạng, thực thi điều kiện sử dụng lệnh if-else, switch và break); Mảng và con trỏ,... Mời các bạn cùng tham khảo.
Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA Bảng nội dung 1, LẬP TRÌNH SỬ DỤNG NGƠN NGỮ C 1.1, Toán hạng 1.2, Thực thi điều kiện sử dụng lệnh If-Else 1.3, Switch Break 1.4, Vòng lặp While, vòng lặp Do-While, vòng lặp For, vòng lặp lồng nhau, câu lệnh Break câu lệnh Continue 1.4.1, Vòng lặp While 1.4.2, Vòng lặp Do-While 10 1.4.3, Vòng lặp For 11 1.4.4, Câu lệnh Break 21 1.4.5, Câu lệnh Continue 21 1.5, Bài tập 21 MẢNG VÀ CON TRỎ 22 Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA 1, LẬP TRÌNH SỬ DỤNG NGƠN NGỮ C 1.1, Tốn hạng Ví dụ 1: Viết chương trình C so sánh hai cách sử dụng toán tử ++ (hoặc )? Chú ý: Để hiểu toán hạng ++ (hoặc ) ta xét hai câu lệnh sau: cnt = count++; cnt = ++count; Ở câu lệnh đầu tiên, giá trị biến count gán vào cnt trước sau count bị tăng lên Còn câu lệnh thứ hai, giá trị biến count tăng lên 1, sau giá trị gán vào cnt Giải: #include void main() { int counter, precount, postcount; counter = 24; precount = ++counter; postcount = counter++; printf("\n%d %d", precount, postcount); counter = 50; postcount = counter ; precount = counter; printf("\n%d %d", postcount, precount); } Kết quả: 25 25 50 48 1.2, Thực thi điều kiện sử dụng lệnh If-Else Ví dụ 1: Viết chương trình C đọc số từ bàn phím kiểm tra xem có phải số dương hay không? Giải: #include void main() { int numb; Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA printf("Nhap vao so can kiem tra: "); scanf("%d", &numb); if (numb >= 0) { printf("So vua nhap la so duong."); } } Kết quả: Nhap vao so can kiem tra:2912 2912 So vua nhap la so duong Ví dụ 2: Viết chương trình C kiểm tra năm xem có phải năm nhuận hay khơng? Thuật giải: Năm nhuận năm chia hết cho không chia hết cho 100 chia hết cho 400 Giải: #include void main() { int y; printf("Nhap vao nam can kiem tra: "); scanf("%d", &y); if ((y % == && y % 100 != 0) || (y % 400 == 0)) { printf("Nam vua nhap la nam nhuan."); } else { printf("Nam vua nhap khong phai nam nhuan."); } } Kết quả: Nhap vao nam can kiem tra:2000 2000 Nam vua nhap la nam nhuan 1.3, Switch Break Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA 1.4, Vòng lặp While, vòng lặp Do-While, vòng lặp For, vòng lặp lồng nhau, câu lệnh Break câu lệnh Continue 1.4.1, Vịng lặp While Ví dụ 1: Viết chương trình C in đảo ngược số Giải: #include void main() { int n, k; printf("Nhap vao mot so: "); scanf("%d", &n); printf("Dao nguoc cua so la: "); while (k != 0) { int m = n % 10; k = n / 10; n = k; printf("%d", m); } } Kết quả: Nhap vao mot so:9123 9123 Dao nguoc cua so la: 3219 Ví dụ 2: Viết chương trình tìm ước số chung lớn hai số dương? Thuật giải 1: Ước số chung lớn hai số định nghĩa số bị chia lớn mà hai số chia hết, ví dụ USCLN 24 36 hiểu: Các số chia hết 24 là: 1, 2, 3, 4, 6, 8, 12, 24 Các số chia hết 36 là: 1, 2, 3, 4, 6, 9, 12, 18, 36 Như vậy, số bị chia lớn mà hai số 24 36 chia hết 12 Vậy USCLN 24 36 12 Thuật giải 2: Chúng ta sử dụng thuật toán Euclid sau để tìm USCLN hai số: WHILE m lớn DO IF n lớn m THEN hốn vị m n Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA trừ n từ m END Cuối n USCLN Thuật giải 3: Một thuật tốn khác để tìm USCLN hai số sau: 1, Đọc số a b 2, Lặp lại bước a khác 3, Đặt USCLN = a 4, a = b % a 5, b = USCLN 6, In USCLN 8, Thoát Giải 1: #include void main() { int n1, n2; printf("Nhap vao hai so: "); scanf("%d %d", &n1, &n2); int greaterNumber = n2; int gcd = 1; if (n1 > n2) greaterNumber = n1; int index = 2; while (index 2) { if ((n1 % index == 0) && (n2 % index == 0)) { gcd = index; } index++; } printf("Uoc so chung lon nhat cua hai so la: %d", gcd); } Giải 2: #include int gcd(int m1, int n1) { int m = m1; int n = n1; int temp; while (m > 0) { if (n > m) { temp = n; Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA n = m; m = temp; } m = m - n; } return n; } void main() { int n1, n2; printf("Nhap vao hai so: "); scanf("%d %d", &n1, &n2); printf("Uoc so chung lon nhat cua hai so la: %d", gcd(n1, n2)); } Giải 3: #include void main() { int a, b, gcd; a = b = gcd = 0; printf("Nhap vao hai so: "); scanf("%d %d", &a, &b); while (a != 0) { gcd = a; a = b % a; b = gcd; } printf("Uoc so chung lon nhat cua hai so la: %d", gcd); } Kết quả: Nhap vao hai so:24 36 24 36 Uoc so chung lon nhat cua hai so la: 12 Ví dụ 3: Nhập số từ bàn phím tìm dãy Fibonacci sử dụng vòng lặp while? Giải: #include void main() { int a = 0, b = 1, c = 0, size; printf("Nhap vao gioi han: "); scanf("%d", &size); while (c Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA 5, r = num % 10 6, s = (s*10) + r 7, num = num / 10 8, Nếu b s, in b số nguyên tố palindrome, ngược lại khơng phải số ngun tố palindrome 9, Thốt Giải: #include void main() { int num, b, s = 0, r; printf("Nhap vao so can kiem tra: "); scanf("%d", &num); b = num; while (num > 0) { r = num % 10; s = (s * 10) + r; num = num / 10; } if (b == s) { printf("So vua nhap la so nguyen to palindrome."); } else { printf("So vua nhap khong la so nguyen to palindrome."); } } Kết quả: Nhap vao so can kiem tra:121 121 So vua nhap la so nguyen to palindrome Ví dụ 6: Viết chương trình C kiểm tra số xem có phải số Armstrong hay không? Thuật giải: 1, Khởi tạo s = 2, Đọc number, num 3, đặt b = num 4, Lặp lại bước num lớn 5, r = num % 10 6, s = s + (r*r*r) 7, num = num / 10 8, Nếu b s, in số Armstrong, ngược lại in khơng phải số Armstrong 9, Thốt Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA Giải: #include void main() { int num, b, s = 0, r; printf("Nhap vao so can kiem tra: "); scanf("%d", &num); b = num; while (num > 0) { r = num % 10; s = s + (r * r * r); num = num / 10; } if (b == s) { printf("So vua nhap la so armstrong."); } else { printf("So vua nhap khong la so armstrong."); } } Kết quả: Nhap vao so can kiem tra:153 153 So vua nhap la so armstrong Ví dụ 7: Viết chương trình C kiểm tra số xem có phải số nhị phân hay khơng? Giải: #include void main() { int r = 0, c = 0, num, b; printf("Nhap vao so can kiem tra: "); scanf("%d", &num); b = num; while (num > 0) { if (num % 10 == || num % 10 == 1) c++; r++; num = num / 10; } if (c == r) { printf("So vua nhap la so nhi phan."); } else { printf("So vua nhap khong la so nhi phan."); } } Kết quả: Tổng hợp ví dụ tập ngơn ngữ lập trình C – Vũ Phát K58TDHB - VNUA Nhap vao so can kiem tra:100110101 100110101 So vua nhap la so nhi phan 1.4.2, Vịng lặp Do-While Ví dụ 1: Tự viết thuật toán phát triển bảng giá trị? Thuật giải: 1, Khởi tạo a=1 2, Khởi tạo b=1 3, In a*b 4, Tăng b lên (ví dụ, b = b + 1) 5, Lặp lại bước đến trừ b