# GÓC SÁNG TẠO > Khu vực lập trình > C/C++ >  em có vài bài C RẤT Ư CƠ BẢN mời mọi người tham khảo

## chuyenxemay

:book: *(MỚI POST LẦN ĐẦU SAI SÓT XIN THÔNG CẢM NHA)*
*CÂU LỆNH ĐIỀU KIỆN VÀ RẼ NHÁ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: 
· suất xắc: đtb >=9.0
· giỏi: 9.0 > đtb >= 8.0
· khá: 8.0 > đtb >= 6.5
· trung bình: 6.5 > đtb >= 5.0
· yếu: 5.0 > đtb >= 3.0
· kém: 3.5 > đtb 

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 trước của ngày đó.(bài này hơi bị dài nghen)


*VÒNG LẶP*
1. Tính S = 13 +23 + 33 + ……+ N3
2. Tính S = 12 +22 + 32 + ……+ N2
3. Tính S = 1 + 1/2 + 1/3 + …. + 1/n
4. Tính S = 1/(1x2) + 1/(2x3) + 1/(3x4) + ….. + 1/(n x (n+1))
5. Tính S = 1 + 1.2 + 1.2.3 + …. + 1.2.3….n
6. Tính S = 1 + x + x2 + ….. + xn
7. Tính S = 1! + 2! + 3! +….. + n!
8. Tìm số nguyên dương n nhỏ nhất sao cho 1 + 2 + 3 + …… + n > 1000
9. Tìm và in lên màn hình tất cả các số nguyên trong phạm vi từ 10 đến 99 sao cho tích của 2 chữ số bằng 2 lần tổng của 2 chữ số đó.
10. Tìm các ước số chung nhỏ nhất của 2 số nguyên dương 
11. Kiểm tra 1 số có phải là số nguyên tố hay không.
12. In ra tất cả các số nguyên tố nhỏ hơn số n được nhập vào từ bàn phím.


*CÁC BÀI TẬP THÊM 
1. Kiểm tra xem các chữ số của số nguyên dương n có giảm dần/ tăng dần từ trái sang phải không.
2. Kiểm tra xem 1 số nguyên dương n có phải là số đối xứng/ số toàn số lẻ/ số toàn số chẵn không
3. Tìm chữ số lớn nhất, nhỏ nhất của số nguyên dương n.
16. Nhập số nguyên dương n. (i) Kiểm tra có phải là số nguyên tố; (ii) Tìm các thừa số nguyên tố của nó; (iii) In các chữ số từ phải qua trái, (iv) In các chữ số từ trái qua phải (chú ý số 0); (v) In ra tất cả các cặp số nguyên dương a và b (a ¹ b) sao cho: . (vi) Nhập số nguyên k. In ra k số thập phân đứng sau dấu thập phân (chú ý: 10k có thể tràn số).
17. Nhập 2 số nguyên dương a, b khác không. (i) Tìm USCLN(a, b); (ii) Tìm hai số nguyên x và y sao cho: USCLN(a, b)= a * x + b * y.
18. Nhập số nguyên dương n. Cho biết đó là (i) số đối xứng, (ii) số gần đối xứng, (iii) các chữ số xếp tăng dần hay giảm dần không? (iv) tổng các chữ số cho đến khi nhỏ hơn 10, (v) chữ số lớn và nhỏ nhất.
19. Xác định phần tử thứ k của dãy Fibonacci: , với k ³ 2. 
20. In ra bình phương của n số nguyên dương đầu tiên, nhưng (i) chỉ dùng phép ‘+’ và phép ‘–‘; (ii) Chỉ dùng phép ‘+’.


MẢNG
1. Đếm số lần xuất hiện của các số nguyên dương.
2. Tính tổng tẩt cả các phần tử không âm.
3. Nối 2 mảng một chiều thành một.
4. Đếm số phần tử là số nguyên tố và tính tổng các phần tử này.
5. Đếm số phần tử là số chính phương và tính tổng các phần tử này.
6. Tìm một phần tử x bất kỳ trên mảng theo kiểu nhị phân.
7. Kiểm tra xem mảng có tăng dần hay giảm dần không.
8. Đếm số mảng con tăng dần hoặc giảm dần trong mảng.
9. Cho mảng n phần tử và k < n. In ra tổng lớn nhất của k phần tử liên tiếp xuất hiện trên mảng.
10. Đếm số lượng các phần tử khác nhau xuất hiện trong mảng.
11. Cũng với yêu cầu cho biết số lượng phần tử khác nhau, nhưng biết rằng, các giá trị xuất hiện nằm trong khoảng từ 1 ® k. (tạo mảng từ 1 ® k, ban đầu bằng 0).
12. Mảng x và y chứa hoành độ và tung độ của các điểm trên mặt phẳng hai chiều. In ra khoảng cách xa nhất giữa 2 điểm.
13. Mảng a chứa hệ số của đa thức . Nhập x. Tính giá trị đa thức.
14. Cho 2 mảng a và b có m và n phần tử. Nhập số q (nguyên dương). Tìm tổng a + b[j] nhỏ nhất nhưng lớn hơn q.

CÁC BÀI TẬP THÊM 
1. Trộn 2 mảng một chiều có cùng độ dài thành một mảng một chiều với mỗi phần tử của mảng mới là tổng của 2 phần tử tương ứng từ 2 mảng cho trước.
2. Xóa n phần tử liên tục trên mảng bắt đầu từ một vị trí x cho trước.
3. Nhập vào 2 mảng có cùng kích thước, tạo mảng mới gồm các phần tử là UCLN của 2 phần tử tương ứng.
1. Tính tổng giai thừa của các phần tử trong mảng cho trước.
2. Nhập vào 2 mảng một chiều, xóa trên 2 mảng này tất cả các phần tử trùng nhau của 2 mảng.
3. Sắp xếp các phần tử trên mảng sao cho các số dương tăng dần và ở đầu mảng, các số âm giảm dần và ở cuối mảng, các số 0 ở giữa.
4. Sắp xếp các phần tử trên mảng sao cho các số chẵn tăng dần, các số lẻ giảm dần.
5. Sắp xếp các phần tử trên mảng sao cho các số chẵn tăng dần và ở đầu mảng, các số lẻ giảm dần và ở cuối mảng.
6. Kiểm tra xem có tồn tại mảng con tăng dần hay giảm dần không. Nếu có, in mảng con tăng dần dài nhất xuất hiện trong mảng. Nếu có nhiều mảng cùng dài nhất thì chỉ cần in ra một.
7. Cho mảng có n phần tử. Nhập m là số nguyên dương nhỏ hơn n. Chia mảng làm 2 đoạn a[0] ® a[m – 1] và a[m] ® a[n – 1]. Không dùng thêm mảng phụ. Chuyển chỗ các phần tử để thành a[m] ® a[n – 1] ® a[0] ® a[m – 1].
8. Mảng a (k phần tử) và b (l phần tử) chứa hệ số của 2 đa thức. Tính tích của 2 đa thức trên.
9. Cho 2 mảng a và b có m và n phần tử. Các phần tử trong mỗi mảng là khác nhau. Tìm số lượng phần tử chung. Mở rộng: giả sử có phần tử trùng. (while)

HÀM
1. Viết hàm để xác định số nhỏ hơn trong 2 số, sau đó sử dụng hàm này để xác định số nhỏ hơn trong 3 số.
2. Viết hàm tính ước số chung lớn nhất và bội số chung nhỏ nhất của hai số nguyên dương a,b.
3. Viết hàm tính giá trị n! , với n là số nguyên dương và n > 1.
n ! = 1 x 2 x ... x (n-1) x n
4. Viết hàm tính không dùng đệ quy.
5. Viết chương trình tính hàm tổ hợp trong đó cần cài đặt hàm tính n!.
6. Viết hàm tính chu vi và diện tích hình chữ nhật khi biết độ dài 2 cạnh. Sau đó vẽ hình chữ nhật ra màn hình bằng các dấu *. Hàm tính chu vi, diện tích và hàm vẽ hình chữ nhật phải độc lập nhau.
* * * * * * * * * * * * * * * 
* *
* *
* *
* *
* * * * * * * * * * * * * * *
7. Viết chương trình con xuất ra tam giác Pascal như sau :
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
8. Viết hàm nhập vào tháng bằng số rồi in ra tên tháng bằng chữ ra màn hình.
9. Viết hàm để kiểm tra một ngày nào đó có hợp lệ hay không, kiểm tra năm nhuần.
10. Viết hàm đổi ngày tháng năm thành thứ trong tuần.
11. Viết hàm để nhận biết một số nguyên dương có phải là số nguyên tố hay không.
12. Viết chương trình in ra tất cả các số nguyên tố nhỏ hơn số nguyên dương M cho trước ( sử dụng hàm kiểm tra số nguyên tố đã cài đặt ở trên ).
13. Viết hàm kiểm tra một số nguyên dương có phải là số chính phương hay không. Xuất tất cả các số chính phương trong khoảng A,B.
14. Một số tự nhiên được gọi là số hoàn thiện nếu nó bằng tổng tất cả các ước số của nó, kể cả 1. Hãy viết hàm kiểm tra một số có phải là số hoàn thiện hay không, và in ra tất cả các số hoàn thiện nhỏ hơn số N cho trước.
15. Viết hàm tính tổng nghịch đảo của n số nguyên.
16. Viết hàm đếm số các số chẵn trong khoảng từ M đến N, tính tổng các số đó.
17. Tính Sin của giá trị x bất kì theo công thức :
 So sánh kết quả với hàm sin(double) đã có.
18. Viết chương trình con xuất ra màn hình dãy số Fibonanci cấp n, xác định theo công thức :
Fib(1) = 1
Fib(2) = 1
Fib(n) = Fib(n-1) + Fib(n-2) với n> 2.
19. Ta có các loại tiền 50.000, 20.000, 10.000, 5.000, 2.000, 1.000. Viết hàm cho biết số tờ của từng loại tiền để tổng của chúng bằng một số tiền nào đó mà người dùng nhập vào. Cho biết tất cả các phương án có thể có, sau đó thông biết phương án nào cho kết quả có số tờ ít nhất.
20. Cho trước mảng số nguyên n phần tử và số M. Tìm tập hợp các phần tử trong A sao cho tổng của chúng bằng M.
21. Viết hàm đổi một số hệ 10 sang hệ 16 và ngược lại.
22. Viết hàm làm tròn một số thực với 2 tham số đầu vào : số cần phải làm tròn và số chữ số phần thập phân có nghĩa sau khi làm tròn.
23. Viết chương trình đảo vị trí các kí số trong một số. Dữ liệu input là một số nguyên dương n, giá trị của n sẽ thay đổi sau khi gọi thực hiện chương trình con đảo kí số.
24. Viết chương trình con rút gọn một phân số.
25. Viết hàm tính khoảng cách giữa 2 điểm trong hệ tọa độ vuông góc khi biết tọa độ của chúng.
26. Viết hàm tính chu vi diện tích của một hình chữ nhật, hình tam giác trong hệ trục tọa độ vuông góc khi biết tọa độ các đỉnh.
27. Trong hệ tọa độ Đề-các vuông góc, cho hai điểm A, B có tọa độ lần lược là (X1, Y1) và (X2, Y2) . Viết chương trình xác định hai hệ số a,b trong phương trình đường thằng y = ax + b đi qua 2 điểm A, B đó.
28. Cho 3 điểm A, B, C với các tọa độ tương ứng ( X1, Y1) , (X2, Y2) và (X3, Y3). Viết chương trình xác định trọng tâm của tam giác đó.
29. Cho trước trong hệ tọa độ cuông góc các điểm A, B, C và một điểm X có tọa độ bất kì. Hãy xác định xem X có nằm trong tam giác hay không.
30. Viết chương trình in theo trật tự tăng dần tất cả các phân số tối giản trong khoảng (0,1) có mẫu số không vượt quá 7.
31. Viết chương trình con đổi chữ thường thành chữ hoa.






CÒN NỮA MỐT MÌNH POST TIẾP (NẾU MỌI NGƯỜI CHO PHÉP:d :d )*_
_

----------


## hajdajgja

*ac...em ngu toán ! nhìn zô pó tay !*

----------


## nguyenvinh16121993

hix C hay thế mà ko ai giải vài bài à

----------


## sangame

may bai nay em chi can hoc chac may cai vong lap cau lenh la duoc ma 
chu y cac dieu kien cua vong lap

----------


## hocnauan

mấy bài này rất cơ bản mà, chỉ cần học C qua là làm được, mà tự làm thì mới giỏi được chứ.

----------


## dunghoang

^_^Đây là những bài mà ai mới bắt đầu học đều phải làm cả. Ko thể thoát được đâu bạn ơi. Toàn bài cơ bản mà, cố gắng lên bạn, làm xong đống này, bạn sẽ có một số kiến thức cơ bản về biến, mảng, string ... khá vững đấy ;-)

----------


## seowebsitetv

> ^_^Đây là những bài mà ai mới bắt đầu học đều phải làm cả. Ko thể thoát được đâu bạn ơi. Toàn bài cơ bản mà, cố gắng lên bạn, làm xong đống này, bạn sẽ có một số kiến thức cơ bản về biến, mảng, string ... khá vững đấy ;-)


co phai thinh hoc HCD07CNTT02n o BCVT khong vay,nhan ra tui ko???

----------


## quynhhoa

> co phai thinh hoc HCD07CNTT02n o BCVT khong vay,nhan ra tui ko???


Mình không phải là Thịnh học ở HCD07CN02, mình học ở D05CN1 cơ bạn à ! Rất tiếc nhưng cũng rất mong được làm quen với bạn ! [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA  l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR  EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

----------


## thoitrangpk

*Khó quá :| nhìn mà choáng cả lên*

----------


## ananhhoang

Hay nhỉ! Làm thử coi! 
Uh! Sao mà nhiều chử thế! 
Loạn cả mắt!

----------


## thanhvan

Hi, mấy bài này toàn là bài cơ bản thôi. Mấy em chịu khó làm đi, cũng vỡ ra được nhiều điều. Bài nào không làm được thì xem thêm sách Nguyễn Văn Ất hoặc contact anh, anh chỉ cho nhé.

----------


## akakavn

ơ thế post mỗi đề thôi ak bài làm ở đâu thế

----------


## noithatquangvinh

Thế không có ai làm thật à 
Chán thật

----------


## phamhuanmko

Tui có một số bài đây bạn tham khảo nhá. Trong máy nhìu nhưng mà chưa tìm đc hết.ok...
*DOWNLOAD HERE*
2M

----------

