SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
LSGroup (tinhocbk123.blogspot.com)

1 CÁC THÀNH PHẦN CƠ BẢN CỦA
NGÔN NGỮ LẬP TRÌNH C
 Chú thích, định danh, từ khóa, hằng
 Các thành phần cơ bản trong chương trình C
 Kiểu dữ liệu: char, int, long, float, double, sizeof
 Lệnh nhập, xuất, chuỗi định dạng
Bài 1.1

 Ép kiểu

Chỉ ra những định danh nào là đúng, định danh nào là sai dưới đây?
1 identifier;
6 2by2;
2 serven_11;
7 default;
3 _unique;
8 average_weight_of_a_large_pizza;
4 gross-income;
9 variable;
5 gross$income;
10 object.oriented;
Bài 1.2

Viết chương trình in ra dòng sau:
Ngon ngu lap trinh C phan biet chu hoa, chu thuong
Moi chuong trinh luon co mot va chi mot ham main.
Ham main se la noi thuc hien dau tien cua chuong trinh
Moi khi co mot dau mo ngoac thi phai co mot dau dong ngoac tuong ung
Tat ca cac cau lenh deu ket thuc bang dau cham phay

Bài 1.3

Cho đoạn chương trình sau:
1
2
3
4
5
6
7
8
9
10
11
12

#include<stdio.h>
#include<stdlib.h>
#define MAX 25
int main()
{
int sum;
sum = (MAX - 4) /4;
printf("Sum = %d", sum);
printf("n");
system("pause");
return 0;
}

Thực hiện lần lượt các yêu cầu sau, và ghi lại kết quả chương trình
 Bỏ câu lệnh số 9
 Bỏ dấu > dòng 1
 Bỏ câu lệnh số 10
 Bỏ dữ lib dòng 2
 Bỏ dấu mở ngoặc dòng 5
 Sửa chữ sum -> SUM
 Bỏ dấu đóng ngoặc dòng 12
 Bỏ dấu nháy đôi “ sau %d dòng số 8

152
Ngôn ngữ lập trình C
 Bỏ dấu ; dòng 6

 Bỏ dấu , sau %d” dòng thứ 8

Bài 1.4

Nhập từ bàn phím 1 số nguyên x, 1 số thực y, sau đó in ra màn hình theo qui cách sau:
 Dòng 1: in ra số nguyên canh lề phải với 5 khoảng trống
 Dòng 2: in ra số nguyên canh lề trái với 5 khoảng trống
 Dòng 3: in ra số nguyên canh phải với 3 khoảng trống
 Dòng 4: in số thực làm tròn 2 số thập phân
 Dòng 5: in số thực với 6 khoảng trống, canh lề phải, làm tròn 3 chữ số thập phân
 Dòng 6: in số thực 6 khoảng trống, canh lề trái, làm tròn 2 chữ số thập phân
Bài 1.5

Biết nhiệt độ C và F có công thức liên hệ sau: C = (F-32). Viết chương trình cho phép
nhập vào độ C và hiển thị lên độ F tương ứng.
Bài 1.6

Nhập vào số thực x, tính và in ra các giá trị y1, y2 lấy 2 số lẻ:
sin(
=
= 4( + 10 √ + 3 + 1)
Bài 1.7
Bài 1.8

)+√

+ cos(

4

+1
)

Viết chương trình nhập vào một kí tự, hiển thị mã ASCII của kí tự đó.
Viết chương trình nhập vào năm sinh của một người, tính tuổi của người đó.

2 KIỂU DỮ LIỆU – DATA TYPES
 Số học: +, -, *, /, %
 So sánh: >, >=, <, <=, ==, !=
 Luận lý: &&, ||, !
 Thao tác bit: &, | !
 Toán tử gán: +=, -=, *=, /=
 Toán tử tăng (++), giảm (--)

Bài 2.1

 Độ ưu tiên toán tử

Cho số giây, viết chương trình in giờ phút giây. Ví dụ cho 1000 giây thì:
1000 giay = 0 gio 16 phut 40 giay

153
Bài 2.2

LSGroup (tinhocbk123.blogspot.com)

Nhập số tiền nguyên n đồng. Đổi ra xem được bao nhiêu tờ 10 đồng, 5 đồng, 2 đồng, 1
đồng. Ví dụ: 543 đồng = 54 tờ 10đ + 0 tờ 5đ, 1 tờ 2đ, 1 tờ 1đ
Bài 2.3

Nhập vào số nguyên có 3 chữ số. Tính tổng các chữ số. Số lớn nhất là bao nhiêu? Ở vị
hàng nào (đơn vị, hàng chục, hoặc hàng trăm)
Bài 2.4
Bài 2.5

Nhập vào biển số xe có 5 chữ số. Tính điểm cho biển số xe đó.
Cho đoạn chương trình sau:
Chương trình A
int a=9, b=6;
a++;
a=a+b--;
a=a+(--b);

Chương trình B
int a =7, b=8;
a++;
a = a + b--;
--b;
a--;
a = --a + --b

Chương trình C
int b=5, a;
a=b++ + 5;
a*=6;
a=b%7;

3 LỰA CHỌN – SELECTION
 if, if-else, else-if, nested if
 switch
 while, do..while, for
Bài 3.1

 break, continue

Viết chương trình nh ập vào một kí tự. Kiểm tra xem nếu kí tự nhập vào là kí tự thường
trong khoảng từ 'a' đến 'z' thì đổi sang chữ in hoa và in ra “Kí tự in hoa là:...”, ngược
lại in ra thông báo "Kí tự bạn vừa nhập là: ..."
Bài 3.2

Cho biểu thức sau:
1+
⎧
1−
⎪
⎪
3 − lg(x)
P(x)=
⎨
5 cos(3 + 2) − ln( + 2)
⎪
⎪
1
⎩

154

>2

1<

=1
<1

≤2
Ngôn ngữ lập trình C
 Viết chương trình hàm tính P(x)
 Thử nghiệm với P(-5), P(1), P(2), P(10)
Bài 3.3

Viết chương trình nhập vào 2 số x, y và 1 trong 4 toán tử +, -, *, /.
 Nếu là + thì in ra kết quả x + y
 Nếu là – thì in ra x – y
 Nếu là * thì in ra x * y
 Nếu là / thì in ra x / y (nếu y = 0 thì thông báo không chia được)
Bài 3.4

Viết chương trình khi người dùng nhập vào kí tự:
 R hoặc r thì in ra câu: Bạn chọn màu đỏ
 G hoặc g thì in ra câu: Bạn chọn màu xanh
 W hoặc w thì in ra câu: Bạn chọn màu trắng
 B hoặc b thì in ra câu: Bạn chọn màu đen
Bài 3.5

Viết chương trình nhập vào số tiền phải trả của khách hàng. 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
Bài 3.6

Viết chương trình nh ập vào đ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.
Bài 3.7

Nhập độ dài 3 cạnh 1 tam giác (a, b, c). Cho biết 3 cạnh đó có lập thành 1 tam giác hay
không. Nếu có, cho biết là tam giác loại gì? (thư ờng, cân, vuông, vuông cân, đều)
Hướng dẫn:
 Điều kiện để 3 cạnh a, b, c thành lập tam giác là tổng của 2 cạnh lớn hơn cạnh còn
lại
 Tam giác đều có 3 cạnh bằng nhau
 Tam giác cân có 2 cạnh bằng nhau
 Tam giác vuông: có tổng bình phương của hai cạnh bằng bình phương của cạnh
còn lại
Bài 3.8

Viết chương trình gi ải phương trình b ậc 1, 2

155
Bài 3.9

LSGroup (tinhocbk123.blogspot.com)

Cho biết năm nhuận là năm chia hết cho 4 mà không chia hết cho 100 hoặc chia hết
cho 400. Viết chương trình nhập vào tháng, năm. Cho biết tháng đó có bao nhiêu
ngày.
Bài 3.10

Công thức tính thứ i trong tuần cho ngày d tháng m năm y như sau:
i = (d + 2*m +3*(m+1)/5 + y + y/4 – y/100 + y/400)%7
Thứ trong tuần được tính từ 0 đến 6 (0 là thứ 2, 1 là thứ 3, …, 6 là Chủ nhật). Tháng 1
và Tháng 2 được tính là Tháng 13 và Tháng 14 năm trước. Viết chương trình nhập d,
m, y và in ra màn hình thứ mấy.
Bài 3.11

Cho thời điểm hiện tại (giờ, phút, giây).
 Tính thời điểm trước đó 1 giây
 Tính thời điểm sau đó 1 giây
(n là số nguyên dương
 Tính thời điểm sau n giây
nhập từ bàn phím)
 Tinh thời điểm trước n giây

4 VÒNG LẶP - LOOP

Bài 4.1

 S1= 12 + 32 + 52... + (2n-1)2
 S2= 22 + 42 + 62... + 2n2
Bài 4.2

Viết chương trình tính Sn:
 S1 = 1 + 2 + 3 + … + n
 S2= + + + + ⋯ +
 S3= +

!

+

!

+ ⋯+

!

 S4= − + − ⋯ (−1 ) ∗
!
!
với n≥ 1 được nhập từ bàn phím
Bài 4.3





≈ 1 − + − ⋯ + (−1)
≈1+
≈

−

≈1−



156

+

!

!

!

+

+

+

!

!

!

+ ⋯+

!

!

+ ⋯ + (−1)

+ ⋯ + (−1)

dừng khi (−1)

(

(

)!

)!

!

< ε với ε đủ bé cho trước

dừng khi (−1)

dừng khi

< ε với ε đủ bé

dừng khi (−1)

(

(

)!

)!

< ε với ε đủ bé

< ε với ε đủ bé
Bài 4.4

Ngôn ngữ lập trình C

Viết chương trình tính chiều dài và chiều rộng của hình chữ nhật có chiều dài gấp đôi
chiều rộng và có diện tích bằng chu vi.
Bài 4.5

Viết chương trình nh ập vào năm hiện tại, năm sinh. In ra tuổi. Dùng do ... while để hỏi
người dùng có muốn tiếp tục hay ko? (Y/N). Tiếp tục thì bấm phím y hoặc Y.
Bài 4.6

Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1, các phần
tử sau đó được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,… Viết chương trình tìm số fibonacci nhỏ hơn n.
Bài 4.7

Viết chương trình in ra các hình sau:

5 HÀM - FUNCTION
 Hàm
Bài 5.1

 Kỹ thuật đệ qui (Recursion)

Nhập 1 số n >0. Tính n!! biết rằng:
= 1*3*5*…*n
n!!
= 2*4*6*…*n
Bài 5.2

nếu n lẻ
nếu n chẵn

 Viết hàm nhận 3 số nguyên dương (a, b, c > 0), kiểm tra và trả về các giá trị như
sau:
0:  thường, 1:  vuông, 2:  cân, 3:  vuông cân, 4:  đều, -1 không phải là 
 Viết chương trình nhập 3 cạnh (x, y, z>0). Sử dụng hàm trên để kết luận loại tam
giác
Bài 5.3

Viết chương trình nh ập vào số ≥ 0. Cho biết:
 Số chữ số của n, Ví dụ: 21432 trả về: 5 vì có 5 chữ số.
 Tìm số đảo của n (Số đảo của số 2564 là số 4652).
 Số n có phải là số đối xứng (Palindrome) hay không ? (Số 121, 1331 là số đối
xứng)

157
LSGroup (tinhocbk123.blogspot.com)
 Số n có phải là số hoàn hảo (Perfect) hay không? (Số hoàn hảo là các số nguyên
dương bằng tổng tất cả các ước thật sự của nó 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 +
14).
Bài 5.4

Viết chương trình in ra các số chính phương trong khoảng từ 100 đến 500. Cho biết có
bao nhiêu số chính phương trong khoảng này.
Bài 5.5

Viết chương trình nhập số 2 số a, b thỏa điều kiện 0 ≤
 Có bao nhiêu số nguyên tố thuộc [a, b].
 In ra các số nguyên tố trong khoảng này.
Bài 5.6

≤ .

Ước số chung lớn nhất (USCLN) được định nghĩa như sau
Bài 5.7

Viết hàm tìm USCLN của 2 số nguyên dương a, b
Một khách hàng gửi 1.000.000$ vào một tài khoản tiết kiệm tại ngân hàng với lãi suất
một năm là 11%. Sau 10 năm, tài khoản đó trở thành bao nhiêu?
Bài 5.8

Giả sử một loại vi trùng sẽ phát triển gấp 3 sau mỗi giờ. Lập công thức đệ qui cho số
vi trùng sau n giờ. Nếu 100 con vi trùng ban đầu, thì sau 10 giờ, chúng sẽ phát triển
thành bao nhiêu.

6 MẢNG – ARRAYS

 Nhập, xuất mảng
 Tìm kiếm, đếm, hoán đổi vị trí
 Thay thế, chèn, xóa
 Tách, gộp mảng
 Ma trận chuyển vị
Bài 6.1

 Đường chéo chính, đường chéo phụ

Viết chương trình nh ập n (5≤n≤20), th ực hiện các việc sau:
 Nhập mảng A gồm n phần tử.
 Liệt kê các số chẵn của mảng A.
 Đếm có bao nhiêu phần tử âm và tính tổng các phần tử âm, và giá trị trung binh các
phần tử trong mảng A.

158
Ngôn ngữ lập trình C
 Tính và in ra màn hình tổng và trung bình cộng của tất cả các số dương trong đoạn
[5;50] trong mảng A.
 Tính và in ra màn hình tổng và trung bình cộng của tất cả các số có giá trị tuyệt đối
lớn hơn 20 trong mảng.
 In ra màn hình giá trị của trung vị của N số. Trung vị là phần tử có một nửa dãy nhỏ
hơn nó và một nửa dãy lớn hơn nó. Nếu không có phần tử nào trong dãy thỏa mãn
tính chất trên thì trung vị bằng trung bình cộng 2 số giữa dãy.
Bài 6.2

Nhập ngẫu nhiên mảng A gồm n (10≤n≤20) phần tử các giá trị trong (100, 500)
 Hiển thị giá trị của các phần tử trong mảng.
 Tìm giá trị nhỏ nhất và cho biết có bao nhiêu số như thế.
 Tìm giá trị lớn nhất trong mảng và vị trí cuối cùng của giá trị lớn nhất.
 Nhập vào một số nguyên x, cho biết trong mảng có bao nhiêu số có giá trị bằng x
 Nhập một số x. Cho biết vị trí đầu tiên của số x có trong mảng.
 Nhập 2 số nguyên dương x và vt (0≤vt≤n). Chèn số x vào mảng A ở vị trí vt.
Bài 6.3

Nhập ngẫu nhiên mảng A gồm n (100≤n≤200) phần tử các số nguyên >0.
 In ra màn hình các giá trị phân biệt trong n số này và số lần xuất hiện của giá trị đó.
 Xóa các số trùng nhau trong mảng A.
 Tìm và in giá trị của phần tử Max, Min và vị trí của chúng trong mảng, sau đó đổi
chỗ 2 phần tử này cho nhau. In ra dãy sau khi đổi chỗ.
 Tạo mảng B từ A chỉ bao gồm các số nguyên tố. Thay thế các phần tử là số nguyên
tố của mảng A bằng số 0.
 Tạo mảng C từ A chỉ bao gồm các số chính phương. Thay các phần tử chính
phương của mảng A bằng số -1.
 Tạo mảng D gồm các phần tử của mảng B và C.
Bài 6.4

Viết chương trình thực hiện:
 Nhập vào một ma trận m x n các số nguyên.
 Hiển thị ma trận vừa nhập A. Ma trận M có phải là ma trận thưa không? (Ma trận
thưa là ma trận có phần lớn các phần tử có giá trị 0).
 Tìm và hiển thị ma trận chuyển vị của ma trận M
 Tạo một ma trận có mx4 cột. Mỗi hàng chứa chỉ số cột của giá trị lớn nhất, giá trị
lớn nhất, chỉ số cột của giá trị nhỏ nhất và giá trị nhỏ nhất.
Bài 6.5

Viết chương trình thực hiện:
 Nhập ngẫu nhiên ma trận M(nxn) vuông kích thướt n (n>0 nhập từ bàn phím). Xuất
M
 Ma trận M có bao nhiêu số chẵn, bao nhiêu số lẻ.

159
LSGroup (tinhocbk123.blogspot.com)
 Tạo mảng A gồm n phần tử chứa các giá trị trung bình của mỗi hàng. Xuất A
 Tạo mảng B gồm 6 phần tử sau: tổng các giá trị các phần tử thuộc đường chéo
chính và đường chéo phụ, các phần tử ở trên và dưới, trên đường chéo chính và phụ.
Xuất B.
Bài 6.6

Viết chương trình thực hiện:
 Nhập m,n, k >0. Nhập ngẫu nhiên ma trận M1(mxn) và M2(nxk). Xuất M1, M2
 Tính và in ra ma trận M3 = M1xM2.
 Tạo ma trận M4(i,j) là ma trận có các phần tử nếu M1(i,j)= M2(j, j), bằng 1 nếu M1
khác
 Tạo mảng B gồm các phần tử có mặt ở ma trận M1 và M2.
 Tạo mảng C gồm các phần tử hợp của ma trận M1 hoặc M2.
Bài 7.1

7 XÂU KÍ TỰ - STRING

Viết chương trình nhập vào một chuỗi kí tự và thực hiện các việc sau:
 Cho biết trong chuỗi có bao nhiêu ký tự là nguyên âm, bao nhiêu ký tự là phụ âm,
bao nhiêu ký tự là chữ số, bao nhiêu ký tự loại khác
 Xóa kí tự (được nhập từ bàn phím) có trong chuỗi.
 Đổi những kí tự đầu tiên của mỗi từ thành chữ in hoa
 Thay thế các chữ cái đầu đoạn và đầu câu thành kí tự chữ hoa tưng ứng với nó.
Bài 7.2

Viết chương trình th ực hiện các yêu cầu:
 Nhập vào một chuỗi văn bản không quá 70 ký tự. Xuất ra màn hình chuỗi đảo
ngược của chuỗi đó. Ví dụ đảo của “abcd egh” là “hge dcba”.
 Kiểm tra xem chuổi đó có đối xứng không. Ví dụ : Chuỗi ABCDEDCBA là chuỗi
đối xứng.
 Thay tất cả các kí tự ‘b’ trong chuỗi bằng kí tự ‘B’, in chuỗi sau khi thay thế
 Tìm số lần xuất hiện của ký tự ‘a‘ trong chuỗi.
 Chuẩn hóa chuỗi (xóa bỏ các kí tự trắng thừa, kí tự đầu đoạn và đầu câu phải viết
hoa), cho biết chuỗi có bao nhiêu từ.
Bài 7.3

Viết chương trình th ực hiện các yêu cầu
 Nhập vào một chuỗi S không quá 100 ký tự, hiển thị chuỗi vừa nhập
 Cho biết trong chuỗi có bao nhiêu ký tự là nguyên âm, bao nhiêu ký tự là phụ âm
(theo bảng chữ cái latin), bao nhiêu ký tự là chữ số, bao nhiêu ký tự loại khác
 Thay thế các chữ cái thường ở vị trí đầu tiên và các chữ cái thường sau dấu chấm
và 1dấu cách bằng chữ cái in tương ứng của nó, in chuỗi mới ra màn hình

160
Bài 7.4

Ngôn ngữ lập trình C

 Nhập vào một chuỗi là họ và tên của một người, xuất chuỗi đó ra màn hình dưới
dạng mỗi từ một dòng.
 Đưa chuỗi về dạng danh từ riêng (dạng chuẩn), cho biết chuỗi có bao nhiêu từ.
 Cắt chuỗi họ tên thành chuỗi họ lót và tên. Ví dụ: Nguyễn Văn A cắt thành chuỗi
họ lót là Nguyễn Văn, chuỗi tên là A.Sắp xếp danh sách tên theo thứ tự từ điển. In
danh sách họ và tên sau khi đã s ắp xếp.

8 CẤU TRÚC - STRUCTURE

Bài 8.1

 Struct, union,..

Điểm của sinh viên được quản lý như sau:
Mã sinh viên
Tên sinh viên (xâu kí tự dài 20 kí tự)
Điểm Toán, Điểm Lý, Điểm Hóa (kiểu nguyên)
 Định nghĩa cấu trúc (struct) DiemSV để lưu trữ các thông tin về điểm thi đại học
sinh viên như mô tả trên.
Giả sử dữ liệu điểm sinh viên như sau:
Mã SV
Tên
Toán
Lý
Hóa
SV01
Nam
6
7
9
SV02
Lien
4
6
5
SV03
Thuong
9
9
8
SV04
Luc
3
2
7
 Sử dụng mảng và struct để lưu các dữ liệu trên
 Hiển thị bảng điểm của sinh viên và điểm trung bình.
 Viết hàm cho phép thêm sinh viên và điểm.
 Hiển thị câu thông tin như sau:

Sinh vien co ma xxx, ten la xxx
co diem trung binh xxx la cao nhat.
 Xếp loại học lực cho sinh viên theo qui định sau:
Điểm trung bình
Xếp loại
Yếu
<5
Trung bình
<7
Khá
<8
Giỏi
<9
Xuất sắc
Còn lại
 Sắp xếp danh sách sinh viên theo thứ tự giảm dần của điểm trung bình.

161
Bài 8.2

LSGroup (tinhocbk123.blogspot.com)

Xây dựng chương trình quản lý dữ liệu và cấp biển số xe cho phép chọn thực hiện một
trong các công việc:
 In danh sách biển số chưa được cấp bao gồm STT, Số chưa cấp .
 Nhập thông tin biển số đăng kí mới (Bien so dang ki, Ten chu xe, Nhan hieu). Biến
số gồm 8 kí tự: 4 kí tự đầu là 43S2, 4 kí tự sau từ 0000 đến 9999
 In thông tin các biển số đã đăng kí. (STT, Bien so dang ki, Ten chu xe, Nhan hieu)
 Thoát.
Bài 8.3

Viết chương trình thực hiện các yêu cầu sau:
 Nhập danh sách n cán bộ (1<=n<=50, n nhập từ bàn phím), mỗi cán bộ gồm có các
thông tin: họ tên, ngày sinh (ngày, tháng, năm), giới tính, bậc lương. Hiển thị danh
sách cán bộ lên màn hình
 Hiển thị danh sách những cán bộ đã đ ến tuổi về hưu (nam là 60 tuổi, nữ là 55 tuổi)
 Tính và in ra màn hình tổng lương của tất cả các cán bộ
 Tìm người có lương cao nhất, in họ tên và lương của người này
 Nhập thông tin 1 cán bộ mới, chèn vào vị trí thứ 3 trong danh sách.
Bài 8.4

Thông tin của thuốc bao gồm: Tên thuốc (xâu không quá 30 ký tự), số lượng thuốc,
năm hết hạn (kiểu nguyên), đơn giá, thành tiền (số lượng * đơn giá) (kiểu thực). Viết
chương trình thực hiện các công việc sau:
 Nhập thông tin cho danh sách các loại thuốc từ bàn phím, tính thành tiền cho từng
loại thuốc biết rằng kết thúc nhập khi gặp số lượng thuốc là 0
 Đưa thông tin về các loại thuốc ra màn hình, yêu cầu thông tin về mỗi loại thuốc
trên một dòng.
 Đưa ra tên thuốc đã h ết hạn. Biết rằng thuốc hết hạn là thuốc có năm hết hạn nhỏ
hơn năm hiện tại với năm hiện tại nhập từ bàn phím
 Loại ra khỏi danh sách thuốc trên những thuốc đã hết hạn

9 TẬP TIN - FILE
 Các loại tập tin: mở, đóng, ghi, đọc
Bài 9.1

 Quản lý tập tin: tạo, xóa

Thông tin sinh viên bao gồm: Mã sinh viên (4 kí tự), Tên, điểm Toán, Lý, Hóa
 Định nghĩa cấu trúc “sinhvien” để lưu thông tin của sinh viên.
 Đọc thông tin danh sách sinh viên được lưu trữ ở file dssinhvien.txt có nội dung
như sau:
 Hàng đầu tiên chỉ số lượng sinh viên được lưu trong danh sách
 Mỗi hàng tiếp theo lưu thông tin của một sinh viên

162
Ngôn ngữ lập trình C
 Viết thủ tục thêm 1 sinh viên.
 Tính điểm trung bình cho sinh viên. Xếp loại học lực cho sinh viên dựa vào điểm
trung bình
 Xuất file ”hoclai.txt” gồm những sinh viên có điểm trung bình nhỏ hơn 5.
 Hiển thị danh sánh 5 sinh viên có điểm trung bình cao nhất sắp theo thứ tự giảm
dần của điểm
Bài 9.2

Một cửa hàng cần quản lý các mặt hàng, thông tin một mặt hàng bao gồm: Mã hang,
tên mặt hàng, số lượng, đơn giá, số lượng tồn, thời gian bảo hành
 Hãy nhập vào danh sách các mặt hàng
 Tìm mặt hàng có số lượng tồn kho nhiều nhất
 Tìm mặt hàng có số lượng tồn ít nhất
 Tìm mặt hàng có giá tiền cao nhất
 In ra những mặt hàng có thời gian bảo hành lớn hơn 12 tháng
 Sắp xếp các mặt hàng theo thứ tự tăng dần của số lượng tồn
 In ra các mặt hàng có giảm giá.

Bài 9.3

Viết chương trình thực hiện các yêu cầu sau:
 Nhập danh sách n cán bộ (1<=n<=50, n nhập từ bàn phím), mỗi cán bộ gồm có các
thông tin: họ tên, ngày sinh (ngày, tháng, năm), giới tính, bậc lương.
 Hiển thị danh sách cán bộ lên màn hình
 Hiển thị danh sách những cán bộ đã đ ến tuổi về hưu (nam là 60 tuổi, nữ là 55 tuổi)
 Tính và in ra màn hình tổng lương của tất cả các cán bộ
 Tìm người có lương cao nhất, in họ tên và lương của người này
 Nhập thông tin 1 cán bộ mới, chèn vào vị trí thứ 3 trong danh sách.

163

Contenu connexe

Tendances

Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
Huy Rùa
 

Tendances (20)

Toán lớp 5 - Chuyên đề số tự nhiên và cấu tạo số
Toán lớp 5 - Chuyên đề số tự nhiên và cấu tạo sốToán lớp 5 - Chuyên đề số tự nhiên và cấu tạo số
Toán lớp 5 - Chuyên đề số tự nhiên và cấu tạo số
 
Bài tập CTDL và GT 4
Bài tập CTDL và GT 4Bài tập CTDL và GT 4
Bài tập CTDL và GT 4
 
MỘT SỐ BÀI TOÁN VỀ DÃY SỐ - SỐ TRANG
MỘT SỐ BÀI TOÁN VỀ DÃY SỐ - SỐ TRANGMỘT SỐ BÀI TOÁN VỀ DÃY SỐ - SỐ TRANG
MỘT SỐ BÀI TOÁN VỀ DÃY SỐ - SỐ TRANG
 
BỘ ĐỀ ÔN THI HSG TOÁN LỚP 4
BỘ ĐỀ ÔN THI HSG TOÁN LỚP 4BỘ ĐỀ ÔN THI HSG TOÁN LỚP 4
BỘ ĐỀ ÔN THI HSG TOÁN LỚP 4
 
28 ĐỀ THI VÀO LỚP 6 MÔN TOÁN CÓ HDG THAM KHẢO
28 ĐỀ THI VÀO LỚP 6 MÔN TOÁN CÓ HDG THAM KHẢO28 ĐỀ THI VÀO LỚP 6 MÔN TOÁN CÓ HDG THAM KHẢO
28 ĐỀ THI VÀO LỚP 6 MÔN TOÁN CÓ HDG THAM KHẢO
 
TUYỂN TẬP ĐỀ KIỂM TRA 15' - 1 TIẾT - TOÁN LỚP 6 - CHƯƠNG 3 - PHÂN SỐ
TUYỂN TẬP ĐỀ KIỂM TRA 15' - 1 TIẾT - TOÁN LỚP 6 - CHƯƠNG 3 - PHÂN SỐTUYỂN TẬP ĐỀ KIỂM TRA 15' - 1 TIẾT - TOÁN LỚP 6 - CHƯƠNG 3 - PHÂN SỐ
TUYỂN TẬP ĐỀ KIỂM TRA 15' - 1 TIẾT - TOÁN LỚP 6 - CHƯƠNG 3 - PHÂN SỐ
 
Bài Luyện Tập Về Phân Số Lớp 5
Bài Luyện Tập Về Phân Số Lớp 5Bài Luyện Tập Về Phân Số Lớp 5
Bài Luyện Tập Về Phân Số Lớp 5
 
Tổng hợp kiến thức toán 6.pdf
Tổng hợp kiến thức toán 6.pdfTổng hợp kiến thức toán 6.pdf
Tổng hợp kiến thức toán 6.pdf
 
Bo de on luyen hsg tin hoc
Bo de on luyen hsg tin hocBo de on luyen hsg tin hoc
Bo de on luyen hsg tin hoc
 
Bài tập ôn tập chương 1 lớp 3
Bài tập ôn tập chương 1 lớp 3Bài tập ôn tập chương 1 lớp 3
Bài tập ôn tập chương 1 lớp 3
 
Tổng quan về số tự nhiên
Tổng quan về số tự nhiênTổng quan về số tự nhiên
Tổng quan về số tự nhiên
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
Một số dạng toán bồi dưỡng hsg môn Toán lớp 4
Một số dạng toán bồi dưỡng hsg môn Toán lớp 4Một số dạng toán bồi dưỡng hsg môn Toán lớp 4
Một số dạng toán bồi dưỡng hsg môn Toán lớp 4
 
Giả Một Số Bài Toán Dãy Số Trong Đề Thi Volympic
Giả Một Số Bài Toán Dãy Số Trong Đề Thi VolympicGiả Một Số Bài Toán Dãy Số Trong Đề Thi Volympic
Giả Một Số Bài Toán Dãy Số Trong Đề Thi Volympic
 
Đề Khảo sát số 2 môn Toán lớp 6 giữa học kỳ I
Đề Khảo sát số 2 môn Toán lớp 6 giữa học kỳ IĐề Khảo sát số 2 môn Toán lớp 6 giữa học kỳ I
Đề Khảo sát số 2 môn Toán lớp 6 giữa học kỳ I
 
Bai tap pascal tong hop
Bai tap pascal tong hopBai tap pascal tong hop
Bai tap pascal tong hop
 
Thuat toan tin hoc
Thuat toan tin hocThuat toan tin hoc
Thuat toan tin hoc
 
CÁC BÀI TOÁN ĐIỂN HÌNH LỚP 5
CÁC BÀI TOÁN ĐIỂN HÌNH LỚP 5CÁC BÀI TOÁN ĐIỂN HÌNH LỚP 5
CÁC BÀI TOÁN ĐIỂN HÌNH LỚP 5
 
Tổng hợp kiến thức toán lớp 4
Tổng hợp kiến thức toán lớp 4Tổng hợp kiến thức toán lớp 4
Tổng hợp kiến thức toán lớp 4
 
Bai tap mau pascal
Bai tap mau pascalBai tap mau pascal
Bai tap mau pascal
 

Similaire à Homework - C programming language

Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hoc
Hồ Lợi
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
Hồ Lợi
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
Hồ Lợi
 
1 de cuong c
1 de cuong c1 de cuong c
1 de cuong c
Phú Syd
 
300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdf300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdf
HuyPhc9
 

Similaire à Homework - C programming language (20)

Cac van de co so kh may tinh
Cac van de co so kh may tinhCac van de co so kh may tinh
Cac van de co so kh may tinh
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
Thực hành cơ sở lập trình C++ Fithou
Thực hành cơ sở lập trình C++ FithouThực hành cơ sở lập trình C++ Fithou
Thực hành cơ sở lập trình C++ Fithou
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hoc
 
Bai tapktlt phan1
Bai tapktlt phan1Bai tapktlt phan1
Bai tapktlt phan1
 
Tin học lớp 8
Tin học lớp 8Tin học lớp 8
Tin học lớp 8
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
 
Ontap ltc
Ontap ltcOntap ltc
Ontap ltc
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
 
PHÂN DẠNG TOÁN 6 THEO CHƯƠNG TRÌNH MỚI - NĂM 2023 (KẾT NỐI TRI THỨC, CHÂN TRỜ...
PHÂN DẠNG TOÁN 6 THEO CHƯƠNG TRÌNH MỚI - NĂM 2023 (KẾT NỐI TRI THỨC, CHÂN TRỜ...PHÂN DẠNG TOÁN 6 THEO CHƯƠNG TRÌNH MỚI - NĂM 2023 (KẾT NỐI TRI THỨC, CHÂN TRỜ...
PHÂN DẠNG TOÁN 6 THEO CHƯƠNG TRÌNH MỚI - NĂM 2023 (KẾT NỐI TRI THỨC, CHÂN TRỜ...
 
TỔNG HỢP CÔNG THỨC TOÁN LỚP 4
TỔNG HỢP CÔNG THỨC TOÁN LỚP 4TỔNG HỢP CÔNG THỨC TOÁN LỚP 4
TỔNG HỢP CÔNG THỨC TOÁN LỚP 4
 
250 bài ôn luyện Toán 4 và 25 đề tham khảo
250 bài ôn luyện Toán 4 và 25 đề tham khảo250 bài ôn luyện Toán 4 và 25 đề tham khảo
250 bài ôn luyện Toán 4 và 25 đề tham khảo
 
Dechinhthuc
DechinhthucDechinhthuc
Dechinhthuc
 
300 Bai ôn luyện toán 4
300 Bai ôn luyện toán 4300 Bai ôn luyện toán 4
300 Bai ôn luyện toán 4
 
BÀI TẬP DẠY THÊM CẢ NĂM TOÁN 7 DÙNG CHUNG 3 SÁCH KẾT NỐI TRI THỨC, CHÂN TRỜI ...
BÀI TẬP DẠY THÊM CẢ NĂM TOÁN 7 DÙNG CHUNG 3 SÁCH KẾT NỐI TRI THỨC, CHÂN TRỜI ...BÀI TẬP DẠY THÊM CẢ NĂM TOÁN 7 DÙNG CHUNG 3 SÁCH KẾT NỐI TRI THỨC, CHÂN TRỜI ...
BÀI TẬP DẠY THÊM CẢ NĂM TOÁN 7 DÙNG CHUNG 3 SÁCH KẾT NỐI TRI THỨC, CHÂN TRỜI ...
 
300 bài toán lớp 4 ôn luyện thi học sinh giỏi và violympic toán
300 bài toán lớp 4 ôn luyện thi học sinh giỏi và violympic toán300 bài toán lớp 4 ôn luyện thi học sinh giỏi và violympic toán
300 bài toán lớp 4 ôn luyện thi học sinh giỏi và violympic toán
 
1 de cuong c
1 de cuong c1 de cuong c
1 de cuong c
 
300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdf300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdf
 
Chuyên đề ôn thi vào Lớp 6 môn Toán
Chuyên đề ôn thi vào Lớp 6 môn ToánChuyên đề ôn thi vào Lớp 6 môn Toán
Chuyên đề ôn thi vào Lớp 6 môn Toán
 

Plus de Linh Lê

Nq bq-nd ro
Nq bq-nd roNq bq-nd ro
Nq bq-nd ro
Linh Lê
 
LAB - He thong ten mien (DNS)
LAB - He thong ten mien (DNS)LAB - He thong ten mien (DNS)
LAB - He thong ten mien (DNS)
Linh Lê
 
Kiểu cấu trúc và kiểu hợp
Kiểu cấu trúc và kiểu hợpKiểu cấu trúc và kiểu hợp
Kiểu cấu trúc và kiểu hợp
Linh Lê
 
Kiểu mảng
Kiểu mảngKiểu mảng
Kiểu mảng
Linh Lê
 
LTC-Cấu trúc rẽ nhánh
LTC-Cấu trúc rẽ nhánhLTC-Cấu trúc rẽ nhánh
LTC-Cấu trúc rẽ nhánh
Linh Lê
 
Xâu kí tự
Xâu kí tựXâu kí tự
Xâu kí tự
Linh Lê
 
Tong quan ve lap trinh
Tong quan ve lap trinhTong quan ve lap trinh
Tong quan ve lap trinh
Linh Lê
 
Abstract & Interface
Abstract & InterfaceAbstract & Interface
Abstract & Interface
Linh Lê
 
Cấu trúc lặp (loop)
Cấu trúc lặp (loop)Cấu trúc lặp (loop)
Cấu trúc lặp (loop)
Linh Lê
 
Hàm (function)
Hàm (function)Hàm (function)
Hàm (function)
Linh Lê
 

Plus de Linh Lê (17)

Nq bq-nd ro
Nq bq-nd roNq bq-nd ro
Nq bq-nd ro
 
LAB - He thong ten mien (DNS)
LAB - He thong ten mien (DNS)LAB - He thong ten mien (DNS)
LAB - He thong ten mien (DNS)
 
Network Address Translation (NAT)
Network Address Translation (NAT)Network Address Translation (NAT)
Network Address Translation (NAT)
 
nslookup - Quan tri mang (2)
nslookup - Quan tri mang (2)nslookup - Quan tri mang (2)
nslookup - Quan tri mang (2)
 
Access BaiGiang
Access BaiGiangAccess BaiGiang
Access BaiGiang
 
LTC File
LTC FileLTC File
LTC File
 
Kiểu cấu trúc và kiểu hợp
Kiểu cấu trúc và kiểu hợpKiểu cấu trúc và kiểu hợp
Kiểu cấu trúc và kiểu hợp
 
Các lệnh cơ bản
Các lệnh cơ bảnCác lệnh cơ bản
Các lệnh cơ bản
 
Word 2007 Labs
Word 2007 LabsWord 2007 Labs
Word 2007 Labs
 
Kiểu mảng
Kiểu mảngKiểu mảng
Kiểu mảng
 
LTC-Cấu trúc rẽ nhánh
LTC-Cấu trúc rẽ nhánhLTC-Cấu trúc rẽ nhánh
LTC-Cấu trúc rẽ nhánh
 
Xâu kí tự
Xâu kí tựXâu kí tự
Xâu kí tự
 
Tong quan ve lap trinh
Tong quan ve lap trinhTong quan ve lap trinh
Tong quan ve lap trinh
 
Collections
CollectionsCollections
Collections
 
Abstract & Interface
Abstract & InterfaceAbstract & Interface
Abstract & Interface
 
Cấu trúc lặp (loop)
Cấu trúc lặp (loop)Cấu trúc lặp (loop)
Cấu trúc lặp (loop)
 
Hàm (function)
Hàm (function)Hàm (function)
Hàm (function)
 

Homework - C programming language

  • 1. LSGroup (tinhocbk123.blogspot.com) 1 CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH C  Chú thích, định danh, từ khóa, hằng  Các thành phần cơ bản trong chương trình C  Kiểu dữ liệu: char, int, long, float, double, sizeof  Lệnh nhập, xuất, chuỗi định dạng Bài 1.1  Ép kiểu Chỉ ra những định danh nào là đúng, định danh nào là sai dưới đây? 1 identifier; 6 2by2; 2 serven_11; 7 default; 3 _unique; 8 average_weight_of_a_large_pizza; 4 gross-income; 9 variable; 5 gross$income; 10 object.oriented; Bài 1.2 Viết chương trình in ra dòng sau: Ngon ngu lap trinh C phan biet chu hoa, chu thuong Moi chuong trinh luon co mot va chi mot ham main. Ham main se la noi thuc hien dau tien cua chuong trinh Moi khi co mot dau mo ngoac thi phai co mot dau dong ngoac tuong ung Tat ca cac cau lenh deu ket thuc bang dau cham phay Bài 1.3 Cho đoạn chương trình sau: 1 2 3 4 5 6 7 8 9 10 11 12 #include<stdio.h> #include<stdlib.h> #define MAX 25 int main() { int sum; sum = (MAX - 4) /4; printf("Sum = %d", sum); printf("n"); system("pause"); return 0; } Thực hiện lần lượt các yêu cầu sau, và ghi lại kết quả chương trình  Bỏ câu lệnh số 9  Bỏ dấu > dòng 1  Bỏ câu lệnh số 10  Bỏ dữ lib dòng 2  Bỏ dấu mở ngoặc dòng 5  Sửa chữ sum -> SUM  Bỏ dấu đóng ngoặc dòng 12  Bỏ dấu nháy đôi “ sau %d dòng số 8 152
  • 2. Ngôn ngữ lập trình C  Bỏ dấu ; dòng 6  Bỏ dấu , sau %d” dòng thứ 8 Bài 1.4 Nhập từ bàn phím 1 số nguyên x, 1 số thực y, sau đó in ra màn hình theo qui cách sau:  Dòng 1: in ra số nguyên canh lề phải với 5 khoảng trống  Dòng 2: in ra số nguyên canh lề trái với 5 khoảng trống  Dòng 3: in ra số nguyên canh phải với 3 khoảng trống  Dòng 4: in số thực làm tròn 2 số thập phân  Dòng 5: in số thực với 6 khoảng trống, canh lề phải, làm tròn 3 chữ số thập phân  Dòng 6: in số thực 6 khoảng trống, canh lề trái, làm tròn 2 chữ số thập phân Bài 1.5 Biết nhiệt độ C và F có công thức liên hệ sau: C = (F-32). Viết chương trình cho phép nhập vào độ C và hiển thị lên độ F tương ứng. Bài 1.6 Nhập vào số thực x, tính và in ra các giá trị y1, y2 lấy 2 số lẻ: sin( = = 4( + 10 √ + 3 + 1) Bài 1.7 Bài 1.8 )+√ + cos( 4 +1 ) Viết chương trình nhập vào một kí tự, hiển thị mã ASCII của kí tự đó. Viết chương trình nhập vào năm sinh của một người, tính tuổi của người đó. 2 KIỂU DỮ LIỆU – DATA TYPES  Số học: +, -, *, /, %  So sánh: >, >=, <, <=, ==, !=  Luận lý: &&, ||, !  Thao tác bit: &, | !  Toán tử gán: +=, -=, *=, /=  Toán tử tăng (++), giảm (--) Bài 2.1  Độ ưu tiên toán tử Cho số giây, viết chương trình in giờ phút giây. Ví dụ cho 1000 giây thì: 1000 giay = 0 gio 16 phut 40 giay 153
  • 3. Bài 2.2 LSGroup (tinhocbk123.blogspot.com) Nhập số tiền nguyên n đồng. Đổi ra xem được bao nhiêu tờ 10 đồng, 5 đồng, 2 đồng, 1 đồng. Ví dụ: 543 đồng = 54 tờ 10đ + 0 tờ 5đ, 1 tờ 2đ, 1 tờ 1đ Bài 2.3 Nhập vào số nguyên có 3 chữ số. Tính tổng các chữ số. Số lớn nhất là bao nhiêu? Ở vị hàng nào (đơn vị, hàng chục, hoặc hàng trăm) Bài 2.4 Bài 2.5 Nhập vào biển số xe có 5 chữ số. Tính điểm cho biển số xe đó. Cho đoạn chương trình sau: Chương trình A int a=9, b=6; a++; a=a+b--; a=a+(--b); Chương trình B int a =7, b=8; a++; a = a + b--; --b; a--; a = --a + --b Chương trình C int b=5, a; a=b++ + 5; a*=6; a=b%7; 3 LỰA CHỌN – SELECTION  if, if-else, else-if, nested if  switch  while, do..while, for Bài 3.1  break, continue Viết chương trình nh ập vào một kí tự. Kiểm tra xem nếu kí tự nhập vào là kí tự thường trong khoảng từ 'a' đến 'z' thì đổi sang chữ in hoa và in ra “Kí tự in hoa là:...”, ngược lại in ra thông báo "Kí tự bạn vừa nhập là: ..." Bài 3.2 Cho biểu thức sau: 1+ ⎧ 1− ⎪ ⎪ 3 − lg(x) P(x)= ⎨ 5 cos(3 + 2) − ln( + 2) ⎪ ⎪ 1 ⎩ 154 >2 1< =1 <1 ≤2
  • 4. Ngôn ngữ lập trình C  Viết chương trình hàm tính P(x)  Thử nghiệm với P(-5), P(1), P(2), P(10) Bài 3.3 Viết chương trình nhập vào 2 số x, y và 1 trong 4 toán tử +, -, *, /.  Nếu là + thì in ra kết quả x + y  Nếu là – thì in ra x – y  Nếu là * thì in ra x * y  Nếu là / thì in ra x / y (nếu y = 0 thì thông báo không chia được) Bài 3.4 Viết chương trình khi người dùng nhập vào kí tự:  R hoặc r thì in ra câu: Bạn chọn màu đỏ  G hoặc g thì in ra câu: Bạn chọn màu xanh  W hoặc w thì in ra câu: Bạn chọn màu trắng  B hoặc b thì in ra câu: Bạn chọn màu đen Bài 3.5 Viết chương trình nhập vào số tiền phải trả của khách hàng. 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 Bài 3.6 Viết chương trình nh ập vào đ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. Bài 3.7 Nhập độ dài 3 cạnh 1 tam giác (a, b, c). Cho biết 3 cạnh đó có lập thành 1 tam giác hay không. Nếu có, cho biết là tam giác loại gì? (thư ờng, cân, vuông, vuông cân, đều) Hướng dẫn:  Điều kiện để 3 cạnh a, b, c thành lập tam giác là tổng của 2 cạnh lớn hơn cạnh còn lại  Tam giác đều có 3 cạnh bằng nhau  Tam giác cân có 2 cạnh bằng nhau  Tam giác vuông: có tổng bình phương của hai cạnh bằng bình phương của cạnh còn lại Bài 3.8 Viết chương trình gi ải phương trình b ậc 1, 2 155
  • 5. Bài 3.9 LSGroup (tinhocbk123.blogspot.com) Cho biết năm nhuận là năm chia hết cho 4 mà không chia hết cho 100 hoặc chia hết cho 400. Viết chương trình nhập vào tháng, năm. Cho biết tháng đó có bao nhiêu ngày. Bài 3.10 Công thức tính thứ i trong tuần cho ngày d tháng m năm y như sau: i = (d + 2*m +3*(m+1)/5 + y + y/4 – y/100 + y/400)%7 Thứ trong tuần được tính từ 0 đến 6 (0 là thứ 2, 1 là thứ 3, …, 6 là Chủ nhật). Tháng 1 và Tháng 2 được tính là Tháng 13 và Tháng 14 năm trước. Viết chương trình nhập d, m, y và in ra màn hình thứ mấy. Bài 3.11 Cho thời điểm hiện tại (giờ, phút, giây).  Tính thời điểm trước đó 1 giây  Tính thời điểm sau đó 1 giây (n là số nguyên dương  Tính thời điểm sau n giây nhập từ bàn phím)  Tinh thời điểm trước n giây 4 VÒNG LẶP - LOOP Bài 4.1  S1= 12 + 32 + 52... + (2n-1)2  S2= 22 + 42 + 62... + 2n2 Bài 4.2 Viết chương trình tính Sn:  S1 = 1 + 2 + 3 + … + n  S2= + + + + ⋯ +  S3= + ! + ! + ⋯+ !  S4= − + − ⋯ (−1 ) ∗ ! ! với n≥ 1 được nhập từ bàn phím Bài 4.3    ≈ 1 − + − ⋯ + (−1) ≈1+ ≈ − ≈1−  156 + ! ! ! + + + ! ! ! + ⋯+ ! ! + ⋯ + (−1) + ⋯ + (−1) dừng khi (−1) ( ( )! )! ! < ε với ε đủ bé cho trước dừng khi (−1) dừng khi < ε với ε đủ bé dừng khi (−1) ( ( )! )! < ε với ε đủ bé < ε với ε đủ bé
  • 6. Bài 4.4 Ngôn ngữ lập trình C Viết chương trình tính chiều dài và chiều rộng của hình chữ nhật có chiều dài gấp đôi chiều rộng và có diện tích bằng chu vi. Bài 4.5 Viết chương trình nh ập vào năm hiện tại, năm sinh. In ra tuổi. Dùng do ... while để hỏi người dùng có muốn tiếp tục hay ko? (Y/N). Tiếp tục thì bấm phím y hoặc Y. Bài 4.6 Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1, các phần tử sau đó được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,… Viết chương trình tìm số fibonacci nhỏ hơn n. Bài 4.7 Viết chương trình in ra các hình sau: 5 HÀM - FUNCTION  Hàm Bài 5.1  Kỹ thuật đệ qui (Recursion) Nhập 1 số n >0. Tính n!! biết rằng: = 1*3*5*…*n n!! = 2*4*6*…*n Bài 5.2 nếu n lẻ nếu n chẵn  Viết hàm nhận 3 số nguyên dương (a, b, c > 0), kiểm tra và trả về các giá trị như sau: 0:  thường, 1:  vuông, 2:  cân, 3:  vuông cân, 4:  đều, -1 không phải là   Viết chương trình nhập 3 cạnh (x, y, z>0). Sử dụng hàm trên để kết luận loại tam giác Bài 5.3 Viết chương trình nh ập vào số ≥ 0. Cho biết:  Số chữ số của n, Ví dụ: 21432 trả về: 5 vì có 5 chữ số.  Tìm số đảo của n (Số đảo của số 2564 là số 4652).  Số n có phải là số đối xứng (Palindrome) hay không ? (Số 121, 1331 là số đối xứng) 157
  • 7. LSGroup (tinhocbk123.blogspot.com)  Số n có phải là số hoàn hảo (Perfect) hay không? (Số hoàn hảo là các số nguyên dương bằng tổng tất cả các ước thật sự của nó 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14). Bài 5.4 Viết chương trình in ra các số chính phương trong khoảng từ 100 đến 500. Cho biết có bao nhiêu số chính phương trong khoảng này. Bài 5.5 Viết chương trình nhập số 2 số a, b thỏa điều kiện 0 ≤  Có bao nhiêu số nguyên tố thuộc [a, b].  In ra các số nguyên tố trong khoảng này. Bài 5.6 ≤ . Ước số chung lớn nhất (USCLN) được định nghĩa như sau Bài 5.7 Viết hàm tìm USCLN của 2 số nguyên dương a, b Một khách hàng gửi 1.000.000$ vào một tài khoản tiết kiệm tại ngân hàng với lãi suất một năm là 11%. Sau 10 năm, tài khoản đó trở thành bao nhiêu? Bài 5.8 Giả sử một loại vi trùng sẽ phát triển gấp 3 sau mỗi giờ. Lập công thức đệ qui cho số vi trùng sau n giờ. Nếu 100 con vi trùng ban đầu, thì sau 10 giờ, chúng sẽ phát triển thành bao nhiêu. 6 MẢNG – ARRAYS  Nhập, xuất mảng  Tìm kiếm, đếm, hoán đổi vị trí  Thay thế, chèn, xóa  Tách, gộp mảng  Ma trận chuyển vị Bài 6.1  Đường chéo chính, đường chéo phụ Viết chương trình nh ập n (5≤n≤20), th ực hiện các việc sau:  Nhập mảng A gồm n phần tử.  Liệt kê các số chẵn của mảng A.  Đếm có bao nhiêu phần tử âm và tính tổng các phần tử âm, và giá trị trung binh các phần tử trong mảng A. 158
  • 8. Ngôn ngữ lập trình C  Tính và in ra màn hình tổng và trung bình cộng của tất cả các số dương trong đoạn [5;50] trong mảng A.  Tính và in ra màn hình tổng và trung bình cộng của tất cả các số có giá trị tuyệt đối lớn hơn 20 trong mảng.  In ra màn hình giá trị của trung vị của N số. Trung vị là phần tử có một nửa dãy nhỏ hơn nó và một nửa dãy lớn hơn nó. Nếu không có phần tử nào trong dãy thỏa mãn tính chất trên thì trung vị bằng trung bình cộng 2 số giữa dãy. Bài 6.2 Nhập ngẫu nhiên mảng A gồm n (10≤n≤20) phần tử các giá trị trong (100, 500)  Hiển thị giá trị của các phần tử trong mảng.  Tìm giá trị nhỏ nhất và cho biết có bao nhiêu số như thế.  Tìm giá trị lớn nhất trong mảng và vị trí cuối cùng của giá trị lớn nhất.  Nhập vào một số nguyên x, cho biết trong mảng có bao nhiêu số có giá trị bằng x  Nhập một số x. Cho biết vị trí đầu tiên của số x có trong mảng.  Nhập 2 số nguyên dương x và vt (0≤vt≤n). Chèn số x vào mảng A ở vị trí vt. Bài 6.3 Nhập ngẫu nhiên mảng A gồm n (100≤n≤200) phần tử các số nguyên >0.  In ra màn hình các giá trị phân biệt trong n số này và số lần xuất hiện của giá trị đó.  Xóa các số trùng nhau trong mảng A.  Tìm và in giá trị của phần tử Max, Min và vị trí của chúng trong mảng, sau đó đổi chỗ 2 phần tử này cho nhau. In ra dãy sau khi đổi chỗ.  Tạo mảng B từ A chỉ bao gồm các số nguyên tố. Thay thế các phần tử là số nguyên tố của mảng A bằng số 0.  Tạo mảng C từ A chỉ bao gồm các số chính phương. Thay các phần tử chính phương của mảng A bằng số -1.  Tạo mảng D gồm các phần tử của mảng B và C. Bài 6.4 Viết chương trình thực hiện:  Nhập vào một ma trận m x n các số nguyên.  Hiển thị ma trận vừa nhập A. Ma trận M có phải là ma trận thưa không? (Ma trận thưa là ma trận có phần lớn các phần tử có giá trị 0).  Tìm và hiển thị ma trận chuyển vị của ma trận M  Tạo một ma trận có mx4 cột. Mỗi hàng chứa chỉ số cột của giá trị lớn nhất, giá trị lớn nhất, chỉ số cột của giá trị nhỏ nhất và giá trị nhỏ nhất. Bài 6.5 Viết chương trình thực hiện:  Nhập ngẫu nhiên ma trận M(nxn) vuông kích thướt n (n>0 nhập từ bàn phím). Xuất M  Ma trận M có bao nhiêu số chẵn, bao nhiêu số lẻ. 159
  • 9. LSGroup (tinhocbk123.blogspot.com)  Tạo mảng A gồm n phần tử chứa các giá trị trung bình của mỗi hàng. Xuất A  Tạo mảng B gồm 6 phần tử sau: tổng các giá trị các phần tử thuộc đường chéo chính và đường chéo phụ, các phần tử ở trên và dưới, trên đường chéo chính và phụ. Xuất B. Bài 6.6 Viết chương trình thực hiện:  Nhập m,n, k >0. Nhập ngẫu nhiên ma trận M1(mxn) và M2(nxk). Xuất M1, M2  Tính và in ra ma trận M3 = M1xM2.  Tạo ma trận M4(i,j) là ma trận có các phần tử nếu M1(i,j)= M2(j, j), bằng 1 nếu M1 khác  Tạo mảng B gồm các phần tử có mặt ở ma trận M1 và M2.  Tạo mảng C gồm các phần tử hợp của ma trận M1 hoặc M2. Bài 7.1 7 XÂU KÍ TỰ - STRING Viết chương trình nhập vào một chuỗi kí tự và thực hiện các việc sau:  Cho biết trong chuỗi có bao nhiêu ký tự là nguyên âm, bao nhiêu ký tự là phụ âm, bao nhiêu ký tự là chữ số, bao nhiêu ký tự loại khác  Xóa kí tự (được nhập từ bàn phím) có trong chuỗi.  Đổi những kí tự đầu tiên của mỗi từ thành chữ in hoa  Thay thế các chữ cái đầu đoạn và đầu câu thành kí tự chữ hoa tưng ứng với nó. Bài 7.2 Viết chương trình th ực hiện các yêu cầu:  Nhập vào một chuỗi văn bản không quá 70 ký tự. Xuất ra màn hình chuỗi đảo ngược của chuỗi đó. Ví dụ đảo của “abcd egh” là “hge dcba”.  Kiểm tra xem chuổi đó có đối xứng không. Ví dụ : Chuỗi ABCDEDCBA là chuỗi đối xứng.  Thay tất cả các kí tự ‘b’ trong chuỗi bằng kí tự ‘B’, in chuỗi sau khi thay thế  Tìm số lần xuất hiện của ký tự ‘a‘ trong chuỗi.  Chuẩn hóa chuỗi (xóa bỏ các kí tự trắng thừa, kí tự đầu đoạn và đầu câu phải viết hoa), cho biết chuỗi có bao nhiêu từ. Bài 7.3 Viết chương trình th ực hiện các yêu cầu  Nhập vào một chuỗi S không quá 100 ký tự, hiển thị chuỗi vừa nhập  Cho biết trong chuỗi có bao nhiêu ký tự là nguyên âm, bao nhiêu ký tự là phụ âm (theo bảng chữ cái latin), bao nhiêu ký tự là chữ số, bao nhiêu ký tự loại khác  Thay thế các chữ cái thường ở vị trí đầu tiên và các chữ cái thường sau dấu chấm và 1dấu cách bằng chữ cái in tương ứng của nó, in chuỗi mới ra màn hình 160
  • 10. Bài 7.4 Ngôn ngữ lập trình C  Nhập vào một chuỗi là họ và tên của một người, xuất chuỗi đó ra màn hình dưới dạng mỗi từ một dòng.  Đưa chuỗi về dạng danh từ riêng (dạng chuẩn), cho biết chuỗi có bao nhiêu từ.  Cắt chuỗi họ tên thành chuỗi họ lót và tên. Ví dụ: Nguyễn Văn A cắt thành chuỗi họ lót là Nguyễn Văn, chuỗi tên là A.Sắp xếp danh sách tên theo thứ tự từ điển. In danh sách họ và tên sau khi đã s ắp xếp. 8 CẤU TRÚC - STRUCTURE Bài 8.1  Struct, union,.. Điểm của sinh viên được quản lý như sau: Mã sinh viên Tên sinh viên (xâu kí tự dài 20 kí tự) Điểm Toán, Điểm Lý, Điểm Hóa (kiểu nguyên)  Định nghĩa cấu trúc (struct) DiemSV để lưu trữ các thông tin về điểm thi đại học sinh viên như mô tả trên. Giả sử dữ liệu điểm sinh viên như sau: Mã SV Tên Toán Lý Hóa SV01 Nam 6 7 9 SV02 Lien 4 6 5 SV03 Thuong 9 9 8 SV04 Luc 3 2 7  Sử dụng mảng và struct để lưu các dữ liệu trên  Hiển thị bảng điểm của sinh viên và điểm trung bình.  Viết hàm cho phép thêm sinh viên và điểm.  Hiển thị câu thông tin như sau: Sinh vien co ma xxx, ten la xxx co diem trung binh xxx la cao nhat.  Xếp loại học lực cho sinh viên theo qui định sau: Điểm trung bình Xếp loại Yếu <5 Trung bình <7 Khá <8 Giỏi <9 Xuất sắc Còn lại  Sắp xếp danh sách sinh viên theo thứ tự giảm dần của điểm trung bình. 161
  • 11. Bài 8.2 LSGroup (tinhocbk123.blogspot.com) Xây dựng chương trình quản lý dữ liệu và cấp biển số xe cho phép chọn thực hiện một trong các công việc:  In danh sách biển số chưa được cấp bao gồm STT, Số chưa cấp .  Nhập thông tin biển số đăng kí mới (Bien so dang ki, Ten chu xe, Nhan hieu). Biến số gồm 8 kí tự: 4 kí tự đầu là 43S2, 4 kí tự sau từ 0000 đến 9999  In thông tin các biển số đã đăng kí. (STT, Bien so dang ki, Ten chu xe, Nhan hieu)  Thoát. Bài 8.3 Viết chương trình thực hiện các yêu cầu sau:  Nhập danh sách n cán bộ (1<=n<=50, n nhập từ bàn phím), mỗi cán bộ gồm có các thông tin: họ tên, ngày sinh (ngày, tháng, năm), giới tính, bậc lương. Hiển thị danh sách cán bộ lên màn hình  Hiển thị danh sách những cán bộ đã đ ến tuổi về hưu (nam là 60 tuổi, nữ là 55 tuổi)  Tính và in ra màn hình tổng lương của tất cả các cán bộ  Tìm người có lương cao nhất, in họ tên và lương của người này  Nhập thông tin 1 cán bộ mới, chèn vào vị trí thứ 3 trong danh sách. Bài 8.4 Thông tin của thuốc bao gồm: Tên thuốc (xâu không quá 30 ký tự), số lượng thuốc, năm hết hạn (kiểu nguyên), đơn giá, thành tiền (số lượng * đơn giá) (kiểu thực). Viết chương trình thực hiện các công việc sau:  Nhập thông tin cho danh sách các loại thuốc từ bàn phím, tính thành tiền cho từng loại thuốc biết rằng kết thúc nhập khi gặp số lượng thuốc là 0  Đưa thông tin về các loại thuốc ra màn hình, yêu cầu thông tin về mỗi loại thuốc trên một dòng.  Đưa ra tên thuốc đã h ết hạn. Biết rằng thuốc hết hạn là thuốc có năm hết hạn nhỏ hơn năm hiện tại với năm hiện tại nhập từ bàn phím  Loại ra khỏi danh sách thuốc trên những thuốc đã hết hạn 9 TẬP TIN - FILE  Các loại tập tin: mở, đóng, ghi, đọc Bài 9.1  Quản lý tập tin: tạo, xóa Thông tin sinh viên bao gồm: Mã sinh viên (4 kí tự), Tên, điểm Toán, Lý, Hóa  Định nghĩa cấu trúc “sinhvien” để lưu thông tin của sinh viên.  Đọc thông tin danh sách sinh viên được lưu trữ ở file dssinhvien.txt có nội dung như sau:  Hàng đầu tiên chỉ số lượng sinh viên được lưu trong danh sách  Mỗi hàng tiếp theo lưu thông tin của một sinh viên 162
  • 12. Ngôn ngữ lập trình C  Viết thủ tục thêm 1 sinh viên.  Tính điểm trung bình cho sinh viên. Xếp loại học lực cho sinh viên dựa vào điểm trung bình  Xuất file ”hoclai.txt” gồm những sinh viên có điểm trung bình nhỏ hơn 5.  Hiển thị danh sánh 5 sinh viên có điểm trung bình cao nhất sắp theo thứ tự giảm dần của điểm Bài 9.2 Một cửa hàng cần quản lý các mặt hàng, thông tin một mặt hàng bao gồm: Mã hang, tên mặt hàng, số lượng, đơn giá, số lượng tồn, thời gian bảo hành  Hãy nhập vào danh sách các mặt hàng  Tìm mặt hàng có số lượng tồn kho nhiều nhất  Tìm mặt hàng có số lượng tồn ít nhất  Tìm mặt hàng có giá tiền cao nhất  In ra những mặt hàng có thời gian bảo hành lớn hơn 12 tháng  Sắp xếp các mặt hàng theo thứ tự tăng dần của số lượng tồn  In ra các mặt hàng có giảm giá. Bài 9.3 Viết chương trình thực hiện các yêu cầu sau:  Nhập danh sách n cán bộ (1<=n<=50, n nhập từ bàn phím), mỗi cán bộ gồm có các thông tin: họ tên, ngày sinh (ngày, tháng, năm), giới tính, bậc lương.  Hiển thị danh sách cán bộ lên màn hình  Hiển thị danh sách những cán bộ đã đ ến tuổi về hưu (nam là 60 tuổi, nữ là 55 tuổi)  Tính và in ra màn hình tổng lương của tất cả các cán bộ  Tìm người có lương cao nhất, in họ tên và lương của người này  Nhập thông tin 1 cán bộ mới, chèn vào vị trí thứ 3 trong danh sách. 163