CÂU HỎI BÀI TẬP

NHẬP MÔN LẬP TRÌNH

Bài tập chương 2 1. Viết chương trình cho phép nhập vào một ký tự. In ra mã ASCII, ký tự đứng trước và ký tự đứng

sau của ký tự trên.

2. Viết chương trình cho phép nhập vào ký tự chữ thường, in ra ký tự hoa tương ứng và ngược lại. 3. Viết chương trình cho phép nhập vào một số nguyên trong khoảng 0 đến 255. In ra ký tự tương ứng

có mã ASCII là số vừa nhập

4. Viết chương trình cho phép nhập vào chiều rộng và chiều cao của một hình chữ nhật. In ra chu vi

và diện tích của hình chữ nhật đó.

5. Viết chương trình cho phép nhập vào bán kính đường tròn. In ra chu vi và diện tích.

6. Viết chương trình cho phép nhập vào 3 cạnh của một tam giác. In ra diện tích và chu vi của tam giác đó.

7. Viết chương trình cho phép nhập vào hai số nguyên. In ra các kết quả các phép toán +, - , *, /, chia

nguyên , lấy phần dư của hai số trên.

8. Viết chương trình cho phép nhập vào hai số nguyên. In ra kết quả các phép toán so sánh giữa hai số

trên.

9. Viết chương trình cho phép nhập vào hai ký tự đại diện cho hai giá trị logic với quy ước nếu ký tự

nhập là ‘T’ thì giá trị logic là TRUE. In ra kết quả các phép toán logic giữa hai giá trị logic nói trên. 10. Viết chương trình cho phép nhập vào một số dương có 2 chữ số. In ra số đảo ngược của số nói trên.

11. Làm lại bài 7 nhưng số nhập vào có 3 chữ số, 4 chữ số.

12. Viết chương trình cho phép nhập vào giờ, phút, giây. In ra tổng số giây tương ứng.

13. Viết chương trình cho phép nhập vào tổng số giây. In lại dưới dạng giờ:phút:giây.

14. Viết chương trình nhập hai số nguyên. In ra kết quả các phép toán logic trên từng bit giữa hai số

nguyên đó. 15. Viết chương trình cho phép nhập vào một số thực. In ra căn bậc 2, arctan, exp, ln của số đó.

16. Viết chương trình cho phép nhập vào một số thực. In ra giá trị các hàm lượng giác sin, cos, tan của

số thực đó. 17. Viết chương trình cho phép nhập vào cơ số a và số mũ x. Tính và in ra ax và logax. 18. Viết chương trình cho phép nhập vào một số dương A và một số nguyên n. Tính và in ra căn bậc n

của số A.

Bài tập Chương 3

Các phát biểu rẽ nhánh 1. Viết chương trình cho phép nhập vào một ký tự. In ra cho biết ký tự đó là chữ hoa, chữ thường, chữ

số hay không phải các loại trên.

2. Viết chương trình cho phép nhập vào một số nguyên. In ra cho biết số đó dương hay âm, chẵn hay

lẻ.

3. Viết chương trình cho phép nhập vào một 4 số nguyên. In ra giá trị nhỏ nhất và giá trị lớn nhất của

4 số nguyên đó

4. Viết chương trình cho phép nhập vào năm. In ra cho biết năm đó có nhuận không.

5. Viết chương trình cho phép nhập vào tháng và năm. In ra thông báo tháng trong đó có bao nhiêu

ngày.

6. Viết chương trình cho phép nhập vào một số dương có trong khoảng 0 đến 15. In ra giá trị hexa của

số nói trên.

7. Viết chương trình cho phép nhập vào một số dương có trong khoảng 0 đến 255. In ra giá trị hexa

của số nói trên.

8. Viết chương trình cho phép nhập vào một số có 4 chữ số, hai số đầu có giá trị trong khoảng từ 0

đến 23 đại diện cho giờ, hai số sau có giá trị trong khoảng từ 0 đến 59 đại diện cho phút. In lại giá

trị giờ, phút dưới dạng hh:mm {am|pm}.

9. Ví dụ:

10. Nhập: 0915

11. In : 9:15 am

12. Nhập: 2130

13. In: 9:30 pm

14. Viết chương trình giải phương trình bậc nhất một ẩn số 15. Viết chương trình giải hệ phương trình bậc nhất hai ẩn số

16. Viết chương trình giải phương trình bậc hai

17. Viết chương trình cho phép nhập vào một số thực. Tính và in ra arcsin, arccos, arctan của số thực

đó.

18. Viết chương trình cho phép nhập vào ba số. In ra cho biết đó có phải là ba cạnh của một tam giác

không. Nếu có cho biết đó là tam giác gì.

19. Viết chương trình cho phép nhập vào ba số. In ra cho biết đó có phải là ba cạnh của một tam giác

không. Nếu có in ra ba góc của tam giác đó.

20. Viết chương trình cho phép nhập vào 3 đỉnh (6 số nguyên) của một tam giác. In ra cho biết ba cạnh

và ba góc của tam giác trên. Vẽ tam giác trên.

21. Viết chương trình cho phép nhập vào 3 đỉnh của một tam giác. Tính tâm và bán kính vòng tròn

ngoại tiếp của tam giác đó. Vẽ tam giác và vòng tròn ngoại tiếp.

Vòng lặp FOR 22. Viết chương trình in các ký tự từ ‘A’ đến ‘Z’ xuôi và ngược, chữ hoa và chữ thường.

23. Viết chương trình cho phép nhập vào hai số nguyên M, N. In ra ma trận có kích thước MxN và có

các số hạng nguyên tăng dần bắt đầu từ 1.

Ví dụ: Nhập m,n : 3 4 In ra: 1 2 3 4 5 6 7 8 9 10 11 12

24. Viết chương trình in bảng cửu chương.

25. Viết chương trình in bảng chân trị các phép toán AND, OR và XOR.

26. Viết chương trình cho phép nhập vào một số nguyên N. Tính tổng N số nguyên dương đầu tiên,

tổng bình phương N số nguyên dương đầu tiên.

27. Viết chương trình in N số hạng đầu tiên của dãy Fibonacci.

28. Viết chương trình tính N!.

29. Viết chương trình in tam gíac Pascal.

30. Viết chương trình cho phép nhập vào chiều cao. In ra tam giác vuông cân đặc có chiều cao tương

ứng.

Ví dụ: Chiều cao 4

* * * * * * * * * * * * * * * * 31. Viết chương trình cho phép nhập vào chiều cao. In ra tam giác vuông cân đặc có chiều cao tương

ứng theo dạng sau.

Ví dụ: Chiều cao 4

! ! * ! ! * ! * ! ! * ! * ! * ! 32. Viết chương trình cho phép nhập vào chiều cao. In ra tam giác vuông cân rỗng có chiều cao tương

ứng.

Ví dụ: Chiều cao 4

* * * * * * * * * * * *

CÁC CẤU TRÚC LẬP TRÌNH - CẤU TRÚC CHỌN

int x; printf("Nhap x = "); scanf("%d", &x);

printf("\nGia tri cua x la 100");

printf("\nGia tri cua x khac 100");

if(x == 100) if(x != 100)

return 0;

int x; printf("Nhap x = "); scanf("%d", &x);

printf("\nGia tri cua x la 100");

if(x == 100) else

printf("\nGia tri cua x khac 100");

return 0;

BÀI TẬP MINH HOẠ Bài tập 1 Viết chương trình nhập vào một số x, nếu x = 100 thì xuất ra thông báo “Gia tri cua x la 100”, ngược lại, xuất ra thông báo “Gia tri của x khac 100”. Bài tập minh hoạ sử dụng cấu trúc if #include "stdio.h" int main() { } Bài tập minh hoạ sử dụng cấu trúc if ... else #include "stdio.h" int main() { } Bài tập 2 Giải phương trình bậc 1: ax + b = 0 #include int main()

float a, b; printf("Nhap a = "); scanf("%f", &a); printf("Nhap b = "); scanf("%f", &b);

printf("\nPhuong trinh co vo so nghiem.\n");

if(b == 0) else

printf("\nPhuong trinh vo nghiem.\n");

if(a == 0) { } else {

printf("\nPhuong trinh co nghiem duy nhat: x = %0.2f", -

}

return 0;

{ b/a); }

Bài tập 3

nhuan = 1;

// Thang co 31 ngay: 1, 3, 5, 7, 8, 10, 12 // Thang co 30 ngay: 4, 6, 9, 11 // Thang 2 co 28 hoac 29 ngay #include void main() {

//khai bao bien int ngay, thang, nam; int nhuan; //nhap du lieu printf("Nhap vao mot thang: "); scanf("%d",&thang); printf("Nhap vao mot nam: "); scanf("%d",&nam); //kiem tra nam nhuan nhuan = 0; if ((nam%400 == 0) || (nam%4 == 0 && nam%100 != 0)) ngay = 0; switch (thang) {

case 1: case 3: case 5: case 7: case 8: case 10: case 12:

Nhập vào 1 tháng, năm, cho biết tháng đó có bao nhiêu ngày.

ngay = 31; break;

ngay = 30; break;

case 4: case 6: case 9: case 11: case 2:

if (nhuan == 1) ngay = 29; else ngay = 28; break;

} printf("So ngay cua thang %d cua nam %d la: %d",thang, nam,

ngay); } CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ TRUNG BÌNH

1. Giải phương trình bậc 2: ax2 + bx + c = 0.

2. Nhập vào 3 số a, b, c. In ra màn hình 3 số này theo thứ tự tăng dần. 3. Nhập vào 4 số a, b, c, d.

a. In ra số lớn nhất và số nhỏ nhất. b. In ra 2 số không phải số lớn nhất và số nhỏ nhất.

4. Nhập vào độ dài 3 cạnh a, b, c của 1 tam giác.

a. Cho biết 3 cạnh đó có lập thành một tam giác không? b. Nếu có, cho biết loại tam giác này (thường, cân, vuông, đều, vuông cân).

5. Nhập 1 chữ cái, nếu là chữ thường thì đổi thành chữ hoa, ngược lại đổi thành chữ thường.

6. Tính tiền đi taxi từ số km đã được nhập vào, biết:

• 1 km đầu giá 15000đ • Từ km thứ 2 đến km thứ 5 giá 13500đ • Từ km thứ 6 trở đi giá 11000đ • Nếu đi hơn 120km sẽ được giảm 10% trên tổng số tiền.

7. Xếp loại các học sinh trong lớp. Nhập vào họ tên, điểm toán, lý, hóa của các học sinh. Tính điểm trung bình 3 môn và phân loại như sau:

trung bình: 6.5 > đtb >= 5.0

• suất xắc: đtb >=9.0 • giỏi: 9.0 > đtb >= 8.0 • khá: 8.0 > đtb >= 6.5 • • yếu: 5.0 > đtb >= 3.0 • kém: 3.5 > đtb

CÁC BÀI TẬP THÊM CÓ ĐỘ KHÓ CAO

8. Viết chương trình nhập vào ngày, tháng, năm. Hãy cho biết ngày kế tiếp và ngày

nhuan = 1;

ngaytruoc = 29; ngayke = 1;

ngaytruoc = ngay-1; ngayke = ngay+1;

if (ngay == 30) { } else { } break;

#include void main() {

//khai bao bien int ngay, thang, nam; int ngaytruoc, ngayke; int nhuan; //nhap du lieu printf("Nhap vao mot ngay: "); scanf("%d",&ngay); printf("Nhap vao mot thang: "); scanf("%d",&thang); printf("Nhap vao mot nam: "); scanf("%d",&nam); //kiem tra nam nhuan nhuan = 0; if ((nam%400 == 0) || (nam%4 == 0 && nam%100 != 0)) ngaytruoc = ngay-1; ngayke = ngay+1; switch (thang) {

case 1: case 5: case 7: case 10: case 12: case 4: case 6: case 9: case 11: case 2:

if (nhuan == 1) {

if (ngay == 29) {

trước của ngày đó. (có code tham khảo bên dưới)

ngaytruoc = 28; ngayke = 1;

ngaytruoc = 31; ngayke = 2;

} else if (ngay == 1) { }

ngaytruoc = 27; ngayke = 1;

ngaytruoc = 31; ngayke = 2;

if (ngay == 28) { } else if (ngay == 1) { }

ngaytruoc = 30; ngayke = 1;

ngaytruoc = 29; ngayke = 2;

ngaytruoc = 28; ngayke = 2;

if (nhuan == 1) { } else { }

if (ngay == 31)

ngaytruoc = 30; ngayke = 1;

ngaytruoc = 31; ngayke = 2;

} else break; case 3: if (ngay == 31) { } else if (ngay == 1) { } break; case 8: { } else if (ngay == 1) { } break;

}

printf("Ngay truoc cua ngay %d cua thang %d cua nam %d la:

%d",ngay, thang, nam, ngaytruoc);

printf("\n"); printf("Ngay ke tiep cua ngay %d cua thang %d cua nam %d la:

%d",ngay, thang, nam, ngayke); }

33. Viết chương trình cho phép nhập vào chiều rộng và chiều cao. In ra hình chữ nhật đặc có chiều

rộng và chiều cao tương ứng.

34. Viết chương trình cho phép nhập vào chiều rộng và chiều cao. In ra hình chữ nhật rỗng có chiều

rộng và chiều cao tương ứng.

35. Viết chương trình cho phép nhập vào chiều rộng và chiều cao. In ra các chữ I, O, H, T có chiều

rộng và chiều cao tương ứng.

36. Viết chương trình cho phép nhập vào chiều cao. In ra tam giác có dạng sau:

a b c b c d e d c d e f g f d d 37. Viết chương trình cho phép nhập vào tháng và năm. In lịch của tháng trong năm đó. Vòng lặp không xác định (for, while, do..while) 38. Viết chương trình cho phép nhập vào một số thực, Tính ex, cosx, sinx, lnx bằng vòng lặp. 39. Tính pi dùng vòng lặp.

40. Viết chương trình cho phép nhập vào một số nguyên. In đảo ngược số nguyên đó.

41. Viết chương trình kiểm tra một số nguyên có đối xứng không, ví dụ: số 12521, 127721 là các số

đối xứng.

42. Viết chương trình tính căn bậc 2, bậc 3 của một số dùng vòng lặp. 43. Viết chương trình tính căn bậc N của một số dùng vòng lặp. 44. Viết chương trình giải phương trình bậc ba x3+px+q = 0 với p > 0 45. Viết chương trình nhập vào một số nguyên dương N. In ra N số nguyên tố đầu tiên.

46. Viết chương trình tính tổng các số hạng của một số nguyên.

47. Viết chương trình kiểm tra một số có nửa đầu và nửa cuối giống nhau không. Ví dụ số 173173 là số

có nửa đầu và nửa cuối trùng nhau.

48. Viết chương trình tính giá trị lớn nhất của kiểu số nguyên, kiểu số LongInt. 49. Viết chương trình cho phép nhập vào hai số, tính và in ra ước số chung lớn nhất, bội số chung nhỏ

nhất của hai số đó.

50. Viết chương trình cho biết kích thước theo bit của một số nguyên.

51. Viết chương trình đếm số bit 1 của một số nguyên.

52. Viết chương trình cho phép nhập vào một số nguyên N. Phân tích số đó thành thừa số nguyên tố.

53. Viết chương trình cho phép nhập vào một số nguyên dương. Tính căn bậc hai nguyên của số đó.