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

lập trình cơ sở

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 (531.49 KB, 18 trang )

KHOA CNTT – ÑH MÔÛ TP.HCM
1

ĐỀ THI LÝ THUYẾT CƠ SỞ LẬP TRÌNH
KHOA CÔNG NGHỆ THÔNG TIN
Thời gian: 90 phút
GV ra đề: Tô Oai Hùng

1. Trình bày giải thuật để tính và hiển thị chu vi và diện tích của hình vuông với
cạnh cho trước.
2. Trình bày giải thuật để tính và hiển thị đường kính, chu vi và diện tích của hình
tròn với bán kính cho trước. Cho PI = 3.14159.
3. Trình bày giải thuật để chuyển một nhiệt độ được đo theo thang nhiệt Celsius
(C) sang thang nhiệt Fahrenheit (F). Trong đó F =
5
9
C + 32.
4. Giả sử 350 foot sợi nặng 1 pound và 5280 foot = 1 mile (dặm) = 1609.7 mét.
Trình bày giải thuật tính chiều dài sợi cần có để quấn thành quả cầu khi biết bán
kính và tỷ trọng của nó (như trong Hình 1.2) theo đơn vị là dặm và mét.
5. Viết chương trình in các số từ 1 đến 4 trên cùng một dòng, các số được phân
cách nhau bằng một ký tự trắng. Chương trình được sử dụng một trong các cách
sau:
a) Dùng bốn câu lệnh xuất.
b) Dùng một câu lệnh xuất với bốn toán tử chèn.
c) Dùng một câu lệnh xuất với một toán tử chèn.
KHOA CNTT – ÑH MÔÛ TP.HCM
2
d) CHÖÔNG 2
1. Viết một khai báo để biến distanceTraveled có kiểu int.
2. Viết các khai báo để biến idNumber có kiểu unsigned, salary có kiểu


float và employeeCode có kiểu char.
3. Viết lại câu 1 với trị ban đầu của biến distanceTraveled là không.
4. Viết lại câu 2 với trị ban đầu của biến idNumber là 9999, salary là không và
employeeCode là ký tự trắng.
5. Viết các khai báo biến sau:
a) item, number và job có kiểu double.
b) shoeSize có kiểu int.
c) mileage có kiểu double, cost và distance có kiểu unsigned.
d) alpha và beta có kiểu long, code kiểu char và root kiểu double.
6. Viết chương trình với các khai báo hằng để kết hợp mỗi tên với giá trị được chỉ
định dưới đây và hiển thị ra màn hình:
a) GRAVITY với giá trị nguyên 32.
b) EARTH với 1.5E10 và MARS với 1.2E12.
c) RATE với 1.25.
d) REGULAR_HOURS với 40.0 và OVERTIME_FACTOR với 1.5.
e) YEAR với 1776, FEMALE với ký tự F và BLANK với ký tự trắng.
f) ZERO với 0, ASTERISK với * và APOSTROPHE với dấu nháy đơn.
7. Viết chương trình để chuyển đổi một đơn vị đo tính theo foot (ft) thành giá trị
tương ứng tính theo:
a) yard (yd)
b) inch (in)
c) centimeter (cm)
d) meter (m)
Biết rằng 1 ft = 12 in, 1 yd = 3 ft, 1 in = 2.54 cm, 1 m = 100 cm.
8. Viết chương trình để chuyển đổi một đơn vị trọng lượng tính theo ounce (oz)
thành giá trị tương ứng tính theo:
a) pound (lb)
b) tấn (ton)
c) gram (g)
d) kilogram (kg)

Biết rằng 1 lb = 16 oz, 1 ton = 2000 lb, 1 oz = 28.349523 g, 1 kg = 1000g.
9. Viết chương trình tìm tổng trở r của một mạch điện tử có ba điện trở mắc song
song là r1, r2 và r3. Tổng trở r có thể được tính theo công thức sau:
r3
1
r2
1
r1
1
1
r



KHOA CNTT – ÑH MÔÛ TP.HCM
3
CHÖÔNG 3
1. Viết biểu thức C++ cho mỗi yêu cầu sau:
a) 10 + 5B – 4AC.
b) Ba lần 4 – n chia cho hai lần m
2
+ n
2
.
c) a + 3b
2
.
d) Trung bình cộng của m và n.
2. Viết biểu thức luận lý C++ để biểu diễn các điều kiện sau:
a) y nằm trong đoạn từ 2 đến 5.

b) r là số âm và z là số dương.
c) Cả hai alpha và beta là các số dương.
d) alpha và beta có cùng dấu.
e) -5 < x < 5.
f) a nhỏ hơn 6 hoặc lớn hơn 10.
g) p bằng q và q bằng r.
h) x nhỏ hơn 3 hoặc y nhỏ hơn 3 (nhưng không đồng thời nhỏ hơn 3).
3. Giả sử a, b và c là các giá trị luận lý:
a) Viết biểu thức luận lý C++ để cho kết quả là true nếu và chỉ nếu a và b là
true và c là false.
b) Viết biểu thức luận lý C++ để cho kết quả là true nếu và chỉ nếu a là
true và có ít nhất một trong hai b hay c là true.
4. Viết một câu lệnh gán để thay đổi giá trị của biến nguyên number như sau:
a) Tăng biến number thêm 77.
b) Giảm biến number bớt đi 3.
c) Tăng biến number thêm hai lần giá trị của nó.
d) Giảm biến number bớt đi hai lần giá trị của nó.
e) Tăng biến number thêm một đại lượng là số bên phải nhất của nó.
f) Giảm number một đại lượng là phần nguyên của giá trị thực xCoord.
5. Viết một câu lệnh gán C++ mà nó tính giá trị của biểu thức đã cho và gán kết
quả vào biến được chỉ định. Giả sử tất cả các biến có kiểu double (nếu không
có ghi chú gì thêm).
a) rate nhân với time và gán đến distance.
b) xCoord được tăng thêm deltaX và gán đến xCoord
c) resistance bằng
res3
1
res2
1
res1

1
1

.
d) Gán diện tích của một tam giác được cho bởi cạnh đáy base và chiều cao
height đến biến area.
e) Gán ba số cuối cùng của biến nguyên stockNumber đến biến thực price
sao cho dấu chấm thập phân được đặt phía trước hai số bên phải nhất của ba
KHOA CNTT – ÑH MÔÛ TP.HCM
4
số đó (nghĩa là nếu stockNumber là 1758316 thì price được gán là
3.16).
2. Viết chương trình nhập hai cạnh góc vuông của tam giác, tính và hiển
thị diện tích và cạnh huyền của nó.
Lưu ý: Để tính căn bậc hai của một số thực, sử dụng hàm sqrt() và phải
thêm chỉ dẫn #include <math.h> ở đầu chương trình. Ví dụ:
cout << sqrt(9.0); // hiển thị 3.0
3. Viết chương trình nhập các hệ số a, b và c của phương trình bậc hai
ax
2
+ bx + c = 0, tính và hiển thị giá trị của hai biểu thức
a
acbb
2
4
2


Thực hiện chương trình với nhiều giá trị khác nhau của a, b và c sao cho biểu
thức

acb 4
2

có giá trị không âm. Cho a = 4, b = 0, c = –36; a = 1, b = 5, c =
–36; và a = 2, b = 7.5, c = 6.25.
6. (*) Giả sử có các khai báo sau:
int n1 = 39, n2 = -5117;
char c = 'F';
double r1 = 56.7173, r2 = -0.00247;
Bằng cách sử dụng các biến này, hãy viết các câu lệnh xuất để màn hình được
hiển thị như sau (mỗi dấu gạch dưới là một ký tự trắng):
a) 56.7173 F 39

-5117PDQ-0.00247

b) 56.717 -0.0025***39 F

56.72 39-5117

c) Roots are 56.717 and –0.00247

d) Approximate angles: 56.7 and –0.0

Magnitudes are 39 and 5117

7. (*) Giả sử n1 và n2 là các biến số nguyên có giá trị là 987 và -6789; r1 và r2
là các biến số thực có giá trị là 12.3456 và -0.00246; và ch là biến ký tự có
giá trị là 'T'. Hãy viết các lệnh xuất có sử dụng các biến này và tác tử định
dạng để màn hình hiển thị như sau (mỗi dấu gạch dưới là một ký tự trắng):
a) 12.3 T 987


KHOA CNTT – ÑH MÔÛ TP.HCM
5
-6789TTT-0.00246

b) 12.35 -0.0025

12.345600T***987

c) Values: 12.34560 and -0.00246

d) Observations: 12.3 and -0.0

Locations: 987 and 6789

8. (*) Viết chương trình đọc hai số nguyên: số thứ nhất có ba chữ số và số thứ hai
có hai chữ số. Sau đó tính và hiển thị tích, thương số và số dư của số thứ nhất
chia cho số thứ hai. Kết quả được xuất ra màn hình theo dạng sau:
739 61 R 7
 12
12) 739
8868
9. (*) Viết chương trình nhập tổng số tiền đã mua và tổng số tiền đã trả ( tiền
mua) theo đơn vị là xu. Sau đó, tính và hiển thị tiền còn lại theo đơn vị là dollar
(100 xu), nửa dollar, đồng 25 xu, đồng 10 xu, đồng 5 xu và đồng xu.
10. (*) Các góc thường được đo theo độ (
o
), phút (  ) và giây (  ). Một vòng tròn
có 360 độ, một độ bằng 60 phút và một phút bằng 60 giây. Viết chương trình
đọc vào giá trị đo của hai góc gồm ba thành phần là độ, phút và giây. Sau đó

tính và hiển thị tổng của chúng. Sử dụng chương trình để kiểm tra các giá trị
sau:
74
o
2913 + 105
o
816 = 179
o
3729
7
o
1455 + 5
o
2455 = 12
o
3950
20
o
3119 + 0
o
3130 = 21
o
249
122
o
1748 + 237
o
4212 = 0
o
00

11. (*) Viết chương trình đọc vào hai số nguyên có ba chữ số và hiển thị tích của
chúng theo dạng sau:
749
 381

749
5992
2247

285369
Thực hiện chương trình với các giá trị sau: 749 và 381, -749 và 381, -749 và
-381, 999 và 999.
KHOA CNTT – ÑH MÔÛ TP.HCM
6
12. (*) Viết chương trình thực hiện nhập hai giá trị a và b. Sau đó, sử dụng các toán
tử luận lý để tính sum và carry được cho trong bảng sau:






Lưu ý: Các giá trị a, b, sum và carry là các bit vào và ra của mạch cộng nhị
phân bán phần (binary half-adder), do đó giá trị của chúng chỉ là 0 hay 1.

Lưu ý: Các câu đánh dấu (*) từ 6 – 12 là những câu tương đối khó.
a
b
sum
carry

0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
KHOA CNTT – ÑH MÔÛ TP.HCM
7
CHÖÔNG 4
1. Viết chương trình đọc các hệ số A, B, C, D, E và F của hai phương trình đường
thẳng:
Ax + By = C
Dx + Ey = F
Cho biết hai đường thẳng này song song hay giao nhau.
2. Viết chương trình đọc vào toạ độ của ba điểm và xác định chúng có cùng nằm
trên một đường thẳng hay không.
3. Từ máy bay, người ta chỉ có thể phun thuốc trừ sâu xuống đồng lúa nếu như
nhiệt độ ít nhất là 70oF, độ ẩm không khí từ 15 đến 35% và tốc độ gió nhiều
nhất là 10 dặm mỗi giờ. Viết chương trình nhập ba giá trị tương ứng với nhiệt
độ, độ ẩm và tốc độ gió. Tính và gán true hay false đến biến okToSpray.

Hiển thị kết quả ra màn hình.
4. Một công ty tín dụng sẽ chấp nhận cho vay nếu như thu nhập của người vay ít
nhất là $25,000 mỗi năm hoặc tài sản của người vay ít nhất là $100,000. Ngoài
ra, khoản nợ trước đây của người vay phải nhỏ hơn $50,000. Viết chương trình
nhập ba giá trị tương ứng với thu nhập, tài sản và tiền nợ. Tính và gán true hay
false đến biến creditOK. Hiển thị kết quả ra màn hình.
5. Viết chương trình đọc ba số thực, gán giá trị luận lý thích hợp vào các biến luận
lý sau và hiển thị kết quả ra màn hình:
- triangle là true nếu các số thực có thể dùng để biểu diễn chiều dài ba
cạnh của tam giác (tổng hai cạnh bất kỳ phải lớn hơn cạnh thứ ba), ngược lại
là false.
- equilateral là true nếu triangle là true và là tam giác đều (ba cạnh
bằng nhau), ngược lại là false.
- isosceles là true nếu triangle là true và là tam giác cân (ít nhất hai
cạnh bằng nhau), ngược lại là false.
- right là true nếu triangle là true và là tam giác vuông (bình phương
cạnh huyền bằng tổng bình phương hai cạnh góc vuông), ngược lại là false.
- scalence là true nếu triangle là true và là tam giác thường (không có
cạnh nào bằng nhau), ngược lại là false.
6. Viết các biểu thức điều kiện với các biến month, day và year để chúng được
hiển thị theo dạng sau:
month day year Hiển thị
12 25 1999 12/25/99
10 1 1980 10/01/80
7 4 1976 07/04/76
2 2 2002 02/02/02
7. Viết biểu thức điều kiện để biến number được hiển thị theo dạng sau:
number Hiển thị
123 123
KHOA CNTT – ÑH MÔÛ TP.HCM

8
23 023
3 003
8. Sử dụng biểu thức điều kiện lồng nhau để hiển thị số lớn nhất và số nhỏ nhất
trong ba số nguyên.
9. Viết lệnh switch để tăng biến số thực balance bằng cách cộng nó với biến số
thực amount nếu giá trị của biến ký tự transCode là 'D'; giảm balance
bằng cách trừ nó với amount nếu transCode là 'W'; hiển thị giá trị của
balance nếu transCode là 'F'; và hiển thị thông báo giao tác không hợp lệ
trong các trường hợp còn lại.
10. Cho hai biến nguyên a và b và một biến ký tự operation. Viết câu lệnh
switch để tính và hiển thị a + b, a – b, a * b, hay a / b tùy thuộc vào
operation là '+', '-', '*', hay '/' và hiển thị thông báo toán tử không
hợp lệ trong các trường hợp còn lại.
11. Viết chương trình nhập vào số thứ tự của tháng (1, 2, , 12) và hiển thị tên
tương ứng của tháng đã nhập (hoặc xuất thông báo số nhập không hợp lệ).
12. Viết chương trình nhập vào tháng và năm. Xuất kết quả xác định số ngày của
tháng trong năm đã nhập.
Lưu ý: Năm nhuận (leap year) là bội số của 4 và nếu nó là bội số của 100 thì
nó cũng phải là bội số của 400. Hay nói cách khác, năm nhuận là năm chia hết
cho 4 và cứ 400 năm phải bỏ đi 3 ngày của năm có số tận cùng là 00 và không
chia hết cho 400. Biểu thức để tính năm nhuận là
(year % 400 == 0) || (year % 4 == 0 && year % 100 != 0).
13. Viết chương trình nhập một số nguyên n. Xuất thông báo cho biết n là số âm,
dương, hay bằng không.
14. Viết chương trình nhập vào ba số nguyên. Xuất ra màn hình số lớn nhất và số
nhỏ nhất trong ba số đã nhập.
15. Viết chương trình giải phương trình bậc hai ax
2
+ bx + c  0.

Lưu ý: Để tính căn bậc hai của một số thực, sử dụng hàm sqrt() (xem ví dụ
trong mục 4.3.3) và phải thêm chỉ dẫn #include <math.h> ở đầu chương
trình.
16. Viết chương trình nhập một số nguyên không âm, tính và in giai thừa của nó.
17. Viết chương trình hiển thị 50 số nguyên dương chẵn đầu tiên.
18. Viết chương trình tính x
n
, trong đó x là số thực và n là số nguyên không âm
được nhập từ bàn phím.
19. Tương tự như câu 20 nhưng cho phép n là số nguyên bất kỳ. Biết rằng x
-n
được
định nghĩa là 1/x
n
, với x  0.
KHOA CNTT – ÑH MÔÛ TP.HCM
9
20. Viết chương trình hiển thị bảng cửu chương như sau:
1 2 3 4 5 6 7 8 9
1 1
2 2 4
3 3 6 9
4 4 8 12 16
5 5 10 15 20 25
6 6 12 18 24 30 36
7 7 14 21 28 35 42 49
8 8 16 24 32 40 48 56 64
9 9 18 27 36 45 54 63 72 81
21. Viết chương trình tính và in số đảo ngược của một số nguyên dương n nhập từ
bàn phím. Ví dụ nhập 2341, xuất 1432.

22. Viết chương trình nhập một số nguyên dương lớn hơn 1 và cho biết nó có phải
là số nguyên tố không.
23. Viết chương trình nhập một số nguyên dương n, hiển thị số nguyên nhỏ nhất k
sao cho 2
k
 n.
24. Viết chương trình xác định ước số chung lớn nhất của hai số tự nhiên.
25. Viết chương trình tìm và hiển thị số lớn nhất trong 10 số nguyên ra màn hình.
26. Viết chương trình nhập một tập giá trị nguyên. Hiển thị số lớn nhất, nhỏ nhất và
thứ tự của chúng trong tập giá trị đó ra màn hình.
27. (*) Viết chương trình nhập vào số nguyên dương n (lớn hơn 1), tính n số hạng
đầu tiên của mỗi chuỗi sau đây:
a) S1  1 + 2 + 3 + + n
b) S2  1 – 2 + 3 – 4 + + (–1)
n–1
n
c) S3  1 + 3 + 5 + 7 + + (2n – 1)
d) S4  1
3
+ 2
3
+ 3
3
+ 4
3
+ + n
3

e) S5  1! + 2! +3! + + n!
f) S6  1! – 2! + 3! – 4! + + (–1)

n–1
n!
28. (*) Dãy Fibonacci 1, 1, 2, 3, 5, 8, 13, 21, bắt đầu bằng hai số 1, các số sau
đó là tổng của hai số đứng trước. Viết chương trình hiển thị dãy số Fibonacci
nhỏ hơn 500.
29. (*) Viết chương trình nhập một số nguyên dương n, hiển thị tổng của các ước
số nhỏ hơn n. Ví dụ n = 10, tổng các ước số nhỏ hơn n là 8, vì 1 + 2 + 5 = 8.
30. (*) Viết chương trình nhập một số nguyên dương dạng nhị phân. Sau đó in trị
của nó dưới dạng thập phân. Ví dụ nhập 1101, xuất 13.
31. (*) Số "hoàn hảo" (perfect number) là số tự nhiên có tổng các ước số (kể cả 1)
bằng chính nó. Ví dụ 6 là số hoàn hảo, vì 1 + 2 + 3  6. Viết chương trình hiển
thị ra màn hình tất cả các số hoàn hảo nhỏ hơn 1000.
KHOA CNTT – ÑH MÔÛ TP.HCM
10
32. (*) Viết chương trình tính trị của các công thức sau. Trong đó số hạng thứ n
trong công thức có trị lớn hơn hay bằng một giá trị khá bé Epsilon được nhập
vào từ bàn phím.

33. (*) Viết chương trình phân tích một số nguyên dương thành tích các thừa số
nguyên tố. Ví dụ: 360 = 2 * 2 * 2 * 3 * 3 * 5.
34. (*) Tương tự như câu 31 nhưng xuất kết quả dưới dạng lũy thừa thay cho tích
các thừa số giống nhau. Ví dụ: 360 = 2^3 * 3^2 * 5.
35. (*) Phương pháp chia và trung bình được sử dụng để tính giá trị gần đúng với
căn bậc hai của một số dương bất kỳ a được thực hiện như sau: Lấy số dương
xấp xỉ khởi đầu x và tìm số xấp xỉ mới bằng cách tính trung bình của x và a/x,
đó là (x + a/x)/2. Lặp lại quá trình này với x được thay bằng giá trị xấp xỉ
mới cho đến khi hiệu giữa x và a/x nhỏ hơn hay bằng độ chính xác khá bé cho
trước. Viết chương trình nhập a, x và độ chính xác, sau đó tìm giá trị gần đúng
với căn bậc hai của a. Chương trình phải hiển thị giá trị gần đúng trong mỗi
bước lặp. Thực hiện chương trình với:

a) a = 3, độ chính xác = 0.00001 và x là các giá trị sau: 1, 10, 0.01 và 100.
b) a = 4, độ chính xác = 0.00001 và x là 1 và 2.
36. (*) Viết chương trình thực hiện nhiều lần công việc nhập giá trị nguyên dương
n dạng thập phân và cơ số b, sau đó hiển thị giá trị của n được biểu diễn theo b.
Giả sử b trong phạm vi từ 2 đến 10. Ví dụ, n = 26 và b = 2 thì hiển thị 11010.
37. (*) Không sử dụng các tác tử oct, hex, hay dec, viết chương trình thực hiện
nhiều lần công việc nhập giá trị nguyên dương dạng thập phân 16 bit (4 chữ số
thập lục phân), có giá trị từ 0 đến 65535, chuyển thành dạng thập lục phân và
hiển thị ra màn hình. Ví dụ, nhập 26 thì hiển thị 001Ah.
38. (*) Tương tự như câu 37 nhưng chương trình nhập giá trị nguyên dương có số
bit mặc định và không hiển thị các số 0 bên trái của giá trị kết quả. Ví dụ, nhập
26 thì hiển thị 1Ah; nhập 434 thì hiển thị 1B2h.
Lưu ý: Các câu đánh dấu (*) từ 27 đến 38 là những câu tương đối khó.
KHOA CNTT – ÑH MÔÛ TP.HCM
11
CHÖÔNG 5
1. Viết chương trình có sử dụng hàm để tính tổng 1 + 2 + + n, trong đó n là giá
trị nguyên dương được nhập từ bàn phím.
2. Viết chương trình có sử dụng hàm để tính tổng m + (m + 1) + (m + 2) + + n,
trong đó m và n là các giá trị nguyên dương được nhập từ bàn phím. Biết rằng m
 n.
3. Viết chương trình có sử dụng hàm celsiusToFahr() để chuyển nhiệt độ từ
Celsius thành Fahrenheit.
4. Viết chương trình có sử dụng các hàm để tính chu vi và diện tích của vòng tròn
với bán kính cho trước.
5. Viết chương trình có sử dụng các hàm để tính chu vi và diện tích của tam giác
với ba cạnh cho trước.
6. Định nghĩa và viết chương trình áp dụng cho các hàm sau:
a) Nhận vào số giây và trả về số phút (giá trị nguyên) tương ứng.
b) Nhận vào số phút và trả về số giờ (giá trị nguyên) tương ứng.

c) Nhận vào số giờ và trả về số ngày (giá trị nguyên) tương ứng.
d) Sử dụng các hàm của câu a), b) và c) để nhận vào số giây và trả về số ngày
tương ứng.
7. Viết chương trình làm nhiều lần công việc nhập vào một số nguyên, truyền nó
đến hàm even(). Hàm này trả về true nếu số nguyên là số chẵn và false
cho trường hợp ngược lại. Dựa vào kết quả trả về, hàm main() sẽ in ra số đã
nhập là chẵn hay lẻ. Quá trình kết thúc khi số 0 được nhập.
8. Viết hàm kiểm tra một số nguyên dương lớn hơn 1 có phải là số nguyên tố
không. Viết chương trình áp dụng.
9. Viết hàm xác định số lớn nhất trong hai số nguyên. Viết chương trình áp dụng
để xuất ra màn hình số lớn nhất trong năm số nguyên.
10. Viết hàm xác định ước số chung lớn nhất của hai số tự nhiên. Viết chương trình
áp dụng.
11. Số vi khuẩn trong một mẻ cấy có thể được tính bởi công thức N·e
kt
, trong đó N
là số vi khuẩn ban đầu, k là hằng số tốc độ phát triển và t là thời gian. Định
nghĩa hàm để tính tổng số vi khuẩn ứng với các giá trị N, k và t. Viết chương
trình áp dụng.
12. (*) Viết một chương trình làm nhiều lần công việc nhập vào hai số nguyên,
truyền nó đến hàm multiple(). Hàm này trả về true nếu số nguyên thứ hai
là bội số của số nguyên thứ nhất và false cho trường hợp ngược lại. Dựa vào
kết quả trả về, hàm main() sẽ hiển thị thông báo lên màn hình. Quá trình kết
thúc khi một trong hai số nhập có giá trị là 0.
13. (*) Viết hàm xác định số nguyên tố thứ n. Viết chương trình áp dụng.
KHOA CNTT – ÑH MÔÛ TP.HCM
12
14. (*) Dãy số Fibonacci bắt đầu bằng các số nguyên 1, 1, 2, 3, 5, 8, 13, 21,
Viết hàm để xác định một số nguyên dương có phải là số Fibonacci không. Sau
đó, viết chương trình đọc số nguyên dương n và hiển thị n số Fibonacci.

15. (*) Tỷ số của các số Fibonacci liên tiếp 1/1, 1/2, 2/3, 3/5, sẽ hội tụ trên
một giá trị được gọi là tỷ số vàng (golden ratio)
2/)15( 
. Sửa lại chương
trình trong câu 11 để hiển thị giá trị tỉ số của các số Fibonacci liên tiếp.
16. (*) Viết hàm để xác định số Fibonacci thứ n. Viết chương trình áp dụng.
17. (*) Viết hàm kiểm tra một số nguyên có là số đối xứng không. Viết chương
trình áp dụng.
18. (*) Viết chương trình có sử dụng hàm để nhập vào một tập giá trị thực x
1
, x
2
,
…, x
n
, đếm có bao nhiêu giá trị, tính và hiển thị trung bình (mean), phương sai
(variance) và độ lệch chuẩn (standard deviation) của tập giá trị đó. Biết rằng,
phương sai là bình phương của độ lệch chuẩn và được cho bởi công thức sau:
mean =


n
i
i
x
n
1
1
, variance =
2

1
2
1
2
11









n
i
i
n
i
i
x
n
x
n

19. (*) Viết chương trình có sử dụng hàm để nhận vào một số nguyên có 7 chữ số
tương ứng cho số điện thoại và hiển thị nó theo dạng 123-4567.
20. (*) Định nghĩa bốn hàm printZero(), printOne(), printTwo() và
printThree() để biểu diễn các số 0, 1, 2 và 3 theo dạng sau:


Viết chương trình thực hiện nhiều lần công việc nhập các giá trị 0, 1, 2 và 3 rồi
hiển thị dạng tương ứng của chúng.
21. (*) Viết một chương trình chơi trò "đoán số". Chương trình sẽ chọn một số để
đoán là số ngẫu nhiên trong phạm vi từ 1 đến 100. Người chơi gõ vào một số và
chương trình hiển thị thông báo kết quả đoán đó. Quá trình kết thúc khi người
chơi đoán đúng.
22. (*) Một người chơi gieo hai súc sắc, mỗi súc sắc có sáu mặt, các mặt được đánh
số 1, 2, 3, 4, 5 và 6. Sau khi hai súc sắc ngừng lại, tổng giá trị trên hai mặt
ngửa được tính. Nếu tổng là 7 hoặc 11 ở lần gieo đầu tiên, thì người chơi thắng.
Nếu tổng là 2, 3, hay 12 ở lần gieo đầu tiên thì người chơi thua. Nếu tổng là 4,
5, 6, 8, 9, hay 10 ở lần gieo đầu tiên, thì tổng đó trở thành điểm của người chơi.
Để thắng, người chơi phải tiếp tục gieo các súc sắc này cho đến khi tổng của
một lần gieo nào đó bằng với điểm có trước đây, ngoại trừ tổng là 7 thì người
chơi thua.
23. Viết chương trình để kiểm tra một hàm nhận vào một trọng lượng tính theo
ounce và trả về trọng lượng tính theo gram (1 oz = 28.349523 g).
KHOA CNTT – ÑH MÔÛ TP.HCM
13
24. Viết chương trình để kiểm tra một hàm nhận vào một trọng lượng tính theo
gram và trả về trọng lượng tính theo pound và ounce tương ứng (1 lb =
453.592368 g).
25. Viết chương trình để kiểm tra một hàm nhận vào một số đo tính theo inch và trả
về số đo tính theo centimeter (1 in = 2.54001 cm).
26. Viết chương trình để kiểm tra một hàm nhận vào một số đo tính theo centimeter
và trả về số đo tính theo yard, feet và inch tương ứng (1 ft = 12 in, 1 yd = 3
ft).
27. Viết chương trình để kiểm tra một hàm nhận vào giờ (0-12), phút (0-59) và một
ký tự ‘A’ hay ‘P’ để cho biết là A.M hay P.M rồi hiển thị thời gian theo dạng
hh:mm A.M./P.M.
28. Viết chương trình để kiểm tra một hàm nhận vào giá trị thời gian có dạng hhmm

và hiển thị thời gian có dạng như câu 5. Trong đó, hh có giá trị từ 0-23 và mm có
giá trị từ 0-59. Ví dụ, thời gian là 0100 thì hiển thị
01:00 A.M.
và thời gian là 1545 thì hiển thị
03:45 P.M.
Lưu ý là một giá trị nguyên bắt đầu bằng 0, được xem là giá trị nguyên đó ở
dạng bát phân.
29. Điểm P trong hệ tọa độ cực được định bởi (r, ). Trong đó, tọa độ cực r là
khoảng cách từ gốc tọa độ đến điểm P, gọi là bán kính cực; và tọa độ cực  là
góc được tạo bởi trục Ox với OP theo chiều ngược kim đồng hồ, gọi là góc cực.

Công thức quan hệ giữa các tọa độ cực của một điểm với tọa độ vuông góc (x,
y) của nó là


sin
cos
ry
rx



Định nghĩa hàm convert() để chuyển đổi tọa độ cực thành tọa độ vuông góc.
Sử dụng nó trong chương trình để đọc nhiều tọa độ cực của nhiều điểm và gọi
convert() để tính và trả về tọa độ vuông góc cho mỗi điểm. Chương trình
phải hiển thị cả hai tọa độ cực và tọa độ vuông góc.
30. Viết chương trình sử dụng hàm inline là sphereVolume() để tính và hiển
thị thể tích của hình cầu với bán kính r cho trước.
31. Viết chương trình sử dụng hàm template là minimum() để xác định trị nhỏ
nhất của hai số có kiểu dữ liệu lần lượt là số nguyên, ký tự và số thực.

KHOA CNTT – ÑH MÔÛ TP.HCM
14
32. (*) Giải thuật Euclid (Euclidean algorithm) để tìm ước số chung lớn nhất
(greatest common divisor) của hai số tự nhiên a và b là GCD(a, b) như sau:
Chia a cho b để được thương số q và số dư r, vì thế a = bq + r. Sau đó thay a
bằng b và b bằng r, ta được GCD (a, b) = GCD(b, r). Quá trình này được lặp
lại, cuối cùng số dư b sẽ bằng 0. Khi này, giá trị a là ước số chung lớn nhất của
a và b ban đầu. Ví dụ:

Viết chương trình nhập vào hai số tự nhiên và thực hiện lời gọi hàm để tính và
trả về hàm gọi ước số chung lớn nhất (GCD) và bội số chung nhỏ nhất (least
common multiple – LCM) của hai số đó.
33. (*) Viết chương trình nhập vào hai số tự nhiên, cho biết hai số này có phải là
nguyên tố cùng nhau không? (hai số tự nhiên a và b được gọi là nguyên tố cùng
nhau nếu ước số chung lớn nhất của chúng bằng 1).
34. (*) Viết chương trình nhập một dãy các số tự nhiên a
1
, a
2
, , a
n
, cho biết các
số này có phải là đôi một nguyên tố cùng nhau không? (các số tự nhiên được
gọi là đôi một nguyên tố cùng nhau nếu GCD(a
i
, a
j
) = 1 với mọi 1 ≤ i, j ≤ n).
Lưu ý: Các câu đánh dấu (*) từ 12 – 22, 32 – 34 là những câu tương đối khó.
KHOA CNTT – ÑH MÔÛ TP.HCM

15
CHÖÔNG 6
1. Viết chương trình để kiểm tra hàm trả về giá trị nhỏ nhất được chứa trong một
mảng số nguyên.
2. Viết chương trình để kiểm tra hàm trả về giá trị lớn nhất được chứa trong một
mảng số nguyên.
3. Viết chương trình để kiểm tra hàm trả về miền trị được chứa trong một mảng số
nguyên, đó là hiệu giữa giá trị lớn nhất và nhỏ nhất.
4. Viết chương trình để kiểm tra hàm trả về true nếu các giá trị được chứa trong
một mảng số nguyên có thứ tự tăng dần và false trong trường hợp ngược lại.
5. (*) Viết chương trình để kiểm tra hàm chèn một giá trị vào một mảng số nguyên
tại vị trí được chỉ định.
6. (*) Viết chương trình để kiểm tra hàm di chuyển một giá trị khỏi một mảng số
nguyên tại vị trí được chỉ định.
7. (*) Công ty Rinky Dooflingy có hai nhà kho, một nhà kho ở Chicago và một
nhà kho ở Detroit. Mỗi nhà kho có nhiều nhất 25 mặt hàng khác nhau. Mỗi mặt
hàng được phân biệt bằng số hiệu của nó là một số nguyên. Viết chương trình
đọc vào số mặt hàng và số hiệu của chúng được chứa trong nhà kho ở Chicago,
chứa dữ liệu đã đọc vào mảng chicago. Tương tự cho các mặt hàng ở nhà kho
Detroit, chứa dữ liệu đã đọc vào mảng detroit. Sau đó, chương trình tìm và
hiển thị phần giao (intersection) của các phần tử trong hai mảng, đó là tập hợp
các mặt hàng chung cho cả hai nhà kho. Giả sử số phần tử được chứa trong mỗi
mảng bằng nhau.
8. (*) Tương tự như câu 7, nhưng tìm và hiển thị phần hội (union) của các phần tử
trong hai mảng, đó là tập hợp các mặt hàng mà mỗi mặt hàng tồn tại ít nhất
trong một nhà kho.
9. (*) Gọi
_
x
là giá trị trung bình của dãy số x

1
, x
2
, , x
n
và độ lệch chuẩn được
tính bởi công thức
2
_
1
)(
1
xx
n
n
i
i




Hãy định nghĩa hàm để tính
_
x
và độ lệch chuẩn của các giá trị được chứa trong
mảng số thực. Viết chương trình để kiểm tra các hàm này.
10. (*) Nhà toán học Hy lạp Eratosthenes đã phát triển một giải thuật được gọi là
giải thuật sàng Eratosthenes (Sieve of Eratosthenes) để tìm tất cả các số nguyên
tố nhỏ hơn hay bằng số n cho trước, đó là tất cả các số nguyên tố từ 2 đến n.
Giải thuật sàng như sau:

Xét danh sách gồm các số từ 2 đến n. Số 2 là số nguyên tố đầu tiên, nhưng
bội số của 2 (4, 6, 8, ) không phải là số nguyên tố, vì thế chúng được bỏ khỏi
danh sách (sàng). Số còn lại đầu tiên sau 2 là 3, đó là số nguyên tố kế tiếp.
Chúng ta bỏ khỏi danh sách tất cả bội số của 3 (6, 9, 12, ). Số còn lại đầu tiên
KHOA CNTT – ÑH MÔÛ TP.HCM
16
sau 3 là 5, đó là số nguyên tố kế tiếp, vì thế chúng ta bỏ tất cả các bội số của 5
(10, 15, 20, ) khỏi danh sách. Lặp lại quá trình này cho đến khi tìm được số
còn lại đầu tiên trong danh sách mà bình phương của nó lớn hơn n. Tất cả các
số còn lại trong danh sách là các số nguyên tố từ 2 đến n. Viết chương trình sử
dụng phương pháp sàng để chứa các số nguyên tố từ 2 đến n vào một mảng và
hiển thị chúng ra màn hình. Thực hiện với n = 50 và n = 500.
11. Viết chương trình kiểm tra phương pháp sắp xếp bubble sort với số phần tử
(nhỏ hơn hay bằng 10) và giá trị của mỗi phần tử là các số nguyên được nhập từ
bàn phím.
12. Viết chương trình kiểm tra phương pháp tìm kiếm tuyến tính với số phần tử
(nhỏ hơn hay bằng 10) và giá trị của mỗi phần tử là các số nguyên được nhập từ
bàn phím.
13. Viết chương trình kiểm tra phương pháp tìm kiếm nhị phân với số phần tử (nhỏ
hơn hay bằng 10) và giá trị của mỗi phần tử là các số nguyên được nhập từ bàn
phím.
14. Công ty kinh doanh của Pickum và Loozem muốn theo dõi giá bán của các mặt
hàng trong kho của họ. Viết chương trình đọc giá bán của các mặt hàng này và
sắp xếp chúng theo thứ tự tăng dần. Chương trình phải hiển thị giá thấp nhất,
cao nhất và trung bình của chúng.
15. Công ty Rinky Dooflingy sản xuất các mặt hàng khác nhau, mỗi mặt hàng được
phân biệt bằng số hiệu sản phẩm của nó. Viết chương trình đọc số hiệu của các
mặt hàng và giá của chúng rồi chứa vào hai mảng là number và price:
number[0] và price[0] là số hiệu và đơn giá của mặt hàng đầu tiên,
number[1] và price[1] là số hiệu và đơn giá của mặt hàng thứ hai, vân vân.

Chương trình phải cho phép người sử dụng chọn một trong hai thao tác:
a) Hiển thị giá của một sản phẩm mà số hiệu của nó được nhập vào.
b) Hiển thị toàn bộ số hiệu và giá của mỗi sản phẩm dưới dạng bảng.
Lưu ý: Các câu đánh dấu (*) từ 5 – 10 là những câu tương đối khó.














KHOA CNTT – ĐH MỞ TP.HCM
17
NỘI DUNG CỦA CÁC BUỔI THỰC HÀNH
MÔN CƠ SỞ LẬP TRÌNH
(1 tiết = 45 phút)
BUỔI
MỤC TIÊU
LÀM
TRƯỚC
THỰC
HÀNH
VỀ NHÀ

1
 Viết và thực thi chương trình C++
đơn giản, thực hiện các bước để
chuyển bài tốn thành chương
trình.
 Biết khai báo biến, hằng theo u
cầu của bài tốn.
 Câu 1 – 4
chương 1.
 Câu 1 – 5
chương 2.
 Câu 5 – 8
chương 1.
 Câu 6 – 9
chương 2.
 Câu 9 – 10
chương 1.

2
 Viết biểu thức đại số thành biểu
thức C++ trong chương trình.
 Sử dụng các phép tốn số học,
luận lý, gán, nhập/xuất và định
dạng sự hiển thị dữ liệu.
 Câu 1 – 5
chương 3.
 Câu 6 –11
chương 3.
 Câu 12
chương 3.

3
 Áp dụng được các lệnh if,
if/else và switch để viết
chương trình cho bài tốn.
 Tạo được biểu thức điều kiện bằng
tốn tử ? và :.
 Câu 1 – 7
chương 4.

 Câu 8, 9,
10, 11, 13,
14, 15
chương 4.

 Câu 12
chương 4.
4
 Áp dụng được các lệnh for,
while và do/while để viết
chương trình cho bài tốn.
 Chuyển đổi giữa lệnh for với
while; sử dụng lệnh break và
continue.
 Áp dụng được các phương pháp
sử dụng lệnh lặp để nhập một tập
giá trị cho chương trình:
- Phương pháp giá trị canh.
- Phương pháp đếm.
 Phương pháp truy vấn.
 Câu 16–26

chương 4.
 Câu 27–35
chương 4.
 Câu 36–38
chương 4.
5
 Biết định nghĩa và sử dụng hàm
từ bài tốn: kiểu trả về, số lượng
tham số, kiểu của mỗi tham số,
hàm trả trị, hàm khơng trả trị.
 Sử dụng được một số hàm trong
thư viện C++.
 Câu 1 – 11
chương 5.
 Câu 12–20
chương 5.
 Câu 21–22
chương 5.
6
 Thực hiện được cách truyền
tham số đến hàm: truyền bằng
trị, truyền bằng tham chiếu,
 Câu 23–26
chương 5.
 Câu 27–33
chương 5.
 Câu 34
chương 5.
KHOA CNTT – ÑH MÔÛ TP.HCM
18

truyền bằng tham chiếu const.
 Biết khai báo và sử dụng biến
toàn cục, biến cục bộ.
 Biết định nghĩa và sử dụng hàm
nạp chồng.
7
 Hiểu cách giải quyết những bài
toán cần lưu trữ nhiều giá trị có
cùng kiểu dữ liệu bằng cấu trúc
dữ liệu mảng (một chiều).
 Áp dụng được các thao tác trên
mảng: khai báo, khởi tạo trị,
nhập và xuất.
 Biết truyền mảng đến hàm.
 Biết sắp thứ tự và tìm kiếm giá
trị trong mảng.
 Câu 1 – 4
chương 6.
 Câu 5 – 13
chương 6.
 Câu 14–15
chương 6.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×