Tải bản đầy đủ (.pdf) (7 trang)

Bài tập thực hành môn thiết kế lập trình C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (135.9 KB, 7 trang )

Bi tập thực hnh Môn Kỹ thuật lập trình
Biên soạn: Nguyễn Mạnh Cờng Trang: 1
Một số Bi tập thực hnh
môn kỹ thuật lập trình
---------------
Chơng I: Biến biểu thức các lệnh nhập xuất
1. Nhập hai số nguyên, tính tổng, hiệu, tích, thơng, đồng d.
2. Nhập một số nguyên, in ra mn hình cách đọc số nguyên đó (VD: số 1252 đọc
l: một ngn hai trăm năm chục hai đơn vị).
3. Viết chơng trình tính giá trị biểu thức:
F(x) = (x
2
+e
x
+sin
2
(x))/sqrt(x
2
+1)
Chơng II: các cấu trúc điều khiển
1. Viết chơng trình nhập vo một số nguyên n. Kiểm tra xem n chẵn hay lẻ.
2. Viết chơng trình giải v biện luận phơng trình bậc nhất theo hai hệ số a, b
nhập từ bn phím.
3. Viết chơng trình giải v biện luận phơng trình bậc hai với các hệ số a, b, c
nhập từ bn phím.
4. Viết chơng trình nhập vo số tiền phải trả của khách hng. In ra số tiền khuyến
mãi với quy định: nếu số tiền phải trả thuộc [200.000, 300.000) thì khuyến mãi
20%. Nếu số tiền phải trả từ 300.000 trở lên thì khuyến mãi 30%. Còn lại thì
không khuyến mãi.
5. Viết chơng trình nhập vo điểm tổng kết của một học sinh v in ra xếp loại cho
học sinh đó với quy định:


- Xếp loại giỏi nếu tổng điềm từ 8.00 trở lên.
- Xếp loại khá nếu tổng điểm từ 7.00 tới cận 8.00.
- Xếp loại trung bình nếu tổng điểm từ 5.00 tới cận 7.00.
- Còn lại, xếp loại yếu.
-------------------
6. Viết chơng trình nhập vo một tháng bất kỳ, sau đó in ra số ngy có trong tháng
(quy định tháng 2 có 28 ngy).
-------------------
7. Viết chơng trình tính n!
Bi tập thực hnh Môn Kỹ thuật lập trình
8. Nhập vo một số nguyên, kiểm tra xem một số vừa nhập có phải l số nguyên tố
không, in kết luận ra mn hình.
9. Viết chơng trình nhập vo một số nguyên n, sau đó tính giá trị biểu thức:
S =
n
1
...
3
1
2
1
1 ++++

10. Viết chơng trình nhập vo một số nguyên n, sau đó tính giá trị biểu thức
F =






+
+++++
lẻ n nếu
chẵn n nếu
1
2
1
...
2
1
2
1
2
1
1
2
32
n
n

11. Viết chơng trình nhập vo một số thực x v số nguyên n, sau đó tính giá trị biểu
thức:
S =
chẵn n nếu
lẻ n nếu






++++

0
3
...
3
3
12
32
n
n
xxx
x

12. Viết chơng trình nhập vo một số nguyên n trong khoảng [10, 20] (nếu số nhập
vo không thuộc khoảng đó thì yêu cầu nhập lại tới khi thoả mãn). Sau đó tính
tổng các số liên tiếp từ 1 tới n.
13. Viết chơng trình nhập vo một số nguyên dơng n, sau đó tính tổng các giá trị
chẵn, lẻ thuộc đoạn [1, n].
14. Viết chơng trình nhập vo các số nguyên dơng n, m, sau đó in ra:
- Tổng các số chẵn dơng trong khoảng [- n, m].
- Tổng các số chẵn âm trong khoảng [- n, m].
- Tổng các số lẻ dơng trong khoảng [- n, m].
- Tổng các số lẻ âm trong khoảng [- n, m].
15. Viết chơng trình nhập vo một số nguyên n, sau đó tính tổng các số nguyên tố
thuộc đoạn [1..n]. Cho biết có bao nhiêu số nguyên tố thuộc đoạn đó.
16. Dùng while (sau đó viết lại, dùng do/ while) để viết chơng trình in ra số l luỹ
thừa 2 bé nhất lớn hơn 1000.
17. Cho dãy số x[] = { 12.3, -45.4, 12, 15, 10.1, 12.5}. Viết chơng trình đảo ngợc
dãy số trên.

18. Viết chơng trình tìm số nguyên dơng n nhỏ nhất thoả mãn: 1 + 2 + 3 + + n
> 1000.
19. Để tính căn bậc hai của một số dơng a, ta sử dụng công thức lặp sau:
Biên soạn: Nguyễn Mạnh Cờng Trang: 2
Bi tập thực hnh Môn Kỹ thuật lập trình
x(0) = a;
x(n+1) = (x(n) * x(n) + a)/ (2* x(n)) với n >=0.
Quá trình lặp kết thúc khi abs((a(n+1) x(n))/x(n)) < .
v khi đó x(n+1) đợc xem l giá trị gần đúng của sqrt(a).
Viết chơng trình tính căn bậc hai của a với độ chính xác = 0.00001.
20. Lập trình để tính sin(x) với độ chính xác = 0.00001 theo công thức :
sin(x) = x x
3
/3! + x
5
/ 5! + + (-1)
n
x
(2n+1)
/ (2n+1)!.
21. Lập trình để tính tổ hợp chập m của n theo công thức:
C(m, n) = (n(n-1)(n-m+1))/ m!.
Chơng III: kỹ thuật lập trình đơn thể
1. Viết hm kiểm tra xem một số nguyên n có phải l số nguyên tố không. Sau đó,
trong chơng trình chính, nhập vo một số nguyên n, kiểm tra tính nguyên tố của
số n v thông báo ra mn hình.
2. Viết hm tính n! sau đó, trong chơng trình chính, nhập vo một số nguyên n v
tính, in ra kết quả của biểu thức:
S =
)!1(

1!
+
+
n
n

3. Viết hm tính giá trị biểu thức F (trong bi số 10 chơng II) với đối vo l n. Sau
đó, trong chơng trình chính, nhập vo hai số a, b, tính v in ra mn hình kết quả
của biểu thức:
S =
)(
)()(
baF
bFaF



4. Viết hm sắp xếp một chuỗi ký tự (từ A->Z). Sau đó, trong chơng trình chính,
nhập vo một xâu ký tự bất kỳ, in xâu đã đợc sắp lên mn hình.
5. Viết chơng trình giải phơng trình trùng phơng : ax
4
+ bx
2
+ c = 0.
Kỹ thuật Đệ quy
6. USCLN của hai số a, b đợc định nghĩa nh sau:
USCLN(a, b) = a nếu b = 0
= USCLN(b, a%b) nếu b <> 0
Viết hm đệ quy tìm USCLN của hai số nguyên a, b. Trong chơng trình
chính, nhập vo hai số nguyên a, b. Tìm v in USCLN của hai số đó lên mn hình.


Biên soạn: Nguyễn Mạnh Cờng Trang: 3
Bi tập thực hnh Môn Kỹ thuật lập trình
Biên soạn: Nguyễn Mạnh Cờng Trang: 4
7. USCLN của hai số a, b đợc định nghĩa nh sau:
USCLN(a, b) = a nếu a = b
= USCLN(a-b, b) nếu a > b
= USCLN(a, b-a) nếu a < b
Viết hm đệ quy tìm USCLN của hai số nguyên a, b. Trong chơng trình
chính, nhập vo hai số nguyên a, b. Tìm v in USCLN của hai số đó lên mn hình.
8. Viết hm tìm kiếm đệ quy trên một dãy số nguyên đã đợc sắp.
9. Các số Fibonacci F[i] đợc định nghĩa đệ quy nh sau:
F[0] =1; F[1] =1;
F[i] = F[i-1] + F[i-2] (với i > 1);
(VD: 1, 1, 2, 3, 5, 8, 13)
Viết hm đệ quy tìm số Fibonacci thứ n trong dãy.
10. Viết hm đệ quy tính n!. (n Z
+
)
11. Viết hm đệ quy tính f(x, n) = x
n
. (xR, n Z). Viết chơng trình chính sử dụng
hm trên để nhập vo số nguyên n, số thực x từ bn phím. Tính v in ra mn hình
giá trị của f(x, n).
12. Viết hm đệ quy tính f(x, n) = n!x
n
. (xR, n Z). Viết chơng trình chính sử
dụng hm trên để nhập vo số nguyên n, số thực x từ bn phím. Tính v in ra
mn hình giá trị của f(x, n).
13. Viết hm đệ quy để đếm số chữ số có trong một số nguyên bất bỳ (Ví dụ số 1263

có 4 chữ số). Viết chơng trình chính sử dụng hm trên để cho phép nhập vo
một số nguyên bất kỳ. In ra mn hình số chữ số của số nguyên vừa nhập.
14. Dãy Catalan đợc định nghĩa đệ quy nh sau:
C
1
= 1;
C
n
=

C
i
* C
n-i
n > 1.
Ví dụ: { 1, 1, 2, 5,}
Hãy xây dựng hm đệ quy tính số Catalan thứ n bất kỳ (n Z
+
). Viết
chơng trình chính sử dụng hm trên để tính số Catalan thứ n bất kỳ với n nhập từ
bn phím (n Z
+
).
Chơng IV: kỹ thuật lập trình dùng mảng.
Bi tập thực hnh Môn Kỹ thuật lập trình
Biên soạn: Nguyễn Mạnh Cờng Trang: 5
1. Cho hai vector x(x
1
, x
2

x
n
) v y(y
1
, y
2
y
n).
Viết chơng trình in ra Tích vô
hớng của hai vector trên.
2. Cho hai mảng a v b có các phần tử đều đã đợc sắp tăng. Lập chơng trình trộn
hai mảng trên để thu đợc một mảng thứ 3 cũng sắp theo thứ tự tăng bằng hai
phơng pháp.
3. Viết chơng trình nhập vo một mảng n số nguyên, sắp xếp mảng theo chiều
tăng dần v in kết quả lên mn hình bằng các phơng pháp:
- Sắp xếp nổi bọt.
- Sắp xếp chọn.
- Sắp xếp chèn.
4. Viết chơng trình nhập vo một mảng n số nguyên, tính tổng các phần tử chẵn,
các phần tử lẻ, các phần tử chia hết cho 3 v in kết quả ra mn hình.
5. Viết chơng trình nhập vo một dãy số thực, tìm phần tử lớn nhất (tơng tự, tìm
phần tử nhỏ nhất) của dãy v in kết quả ra mn hình.
6. Viết chơng trình nhập vo một dãy số nguyên. Tính tổng của các số nguyên tố
trong dãy v in kết quả ra mn hình.
7. Viết chơng trình nhập vo một dãy số nguyên v một số nguyên c. Đếm số lần
xuất hiện v vị trí xuất hiện của c trong dãy. In các kết quả ra mn hình.
8.
Viết chơng trình nhập vo một dãy n số nguyên. Tính trung bình cộng của dãy
v in kết quả tính đợc ra mn hình.
9. Một dãy số a gọi l đợc sắp tăng nếu a[i] <= a[i+1] với mọi i;

Dãy gọi l đợc sắp giảm nếu a[i] >= a[i+1] với mọi i;
Dãy gọi l đợc sắp tăng ngặt nếu a[i] < a[i+1] với mọi i;
Dãy gọi l đợc sắp giảm ngặt nếu a[i] > a[i+1] với mọi i;
Viết chơng trình nhập một dãy n số thực, kiểm tra xem dãy đã đợc sắp hay
cha. Nếu đã đợc sắp thì sắp theo trật tự no (tăng, tăng ngặt, giảm, giảm ngặt?).
Nếu cha thì sắp xếp dãy theo chiều tăng dần. In các kết quả lên mn hình.
10. Viết hm tìm kiếm lặp trên một dãy số nguyên đã đợc sắp với độ phức tạp tốt
hơn O(n).
11. Viết chơng trình nhập vo một ma trận m x n số nguyên. Tìm các phần tử lớn
nhất v bé nhất trên các dòng (tơng tự các cột) của ma trận. (sử dụng for sau đó
dùng while, do/ while).

×