RSS

HỆ THỐNG BÀI TẬP

  1. A.   PHẦN CƠ BẢN.

 

Bài 1: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Đổi xâu ký tự đó sang chữ in hoa rồi in kết quả ra màn hình.

Hướng dẫn giải:

F Xác định Input và Output của bài toán:

Input: xâu A.

Output: Xâu A chứa các kí tự in hoa.

F Ý tưởng: Duyệt qua từng phần tử của xâu sau đó sử dụng hàm upcase(S[i]) để đổi kí tự đó sang chữ hoa.

F Bộ test:

Xâu nhập vào

Kết quả

abcdAbcD ABCDABCD
Asdbcd ASDBCD
Dantri DANTRI
Tuoi Tre TUOI TRE
TinHoc TINHOC

Bài 2: Viết chương trình đếm số ký tự chữ số trong một xâu ký tự được nhập vào từ bàn phím.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Số kí tự là chữ số trong xâu S.

F Ý tưởng:

Đầu tiên ta đặt một biến kq =0;

Sau đó duyệt qua các phần từ của xâu nếu gặp các kí tự là chữ số từ ‘1,2…9’ thì tăng biến kq:=kq+1;

F Bộ test:

Xâu nhập vào

Kết quả

abcdAbcD 0
A1b2cc3d4e5 5
Dantri123 3
A12h3333h11112 11

Bài 3: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Tìm xâu đảo ngược của xâu đó.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Xâu đảo ngược của xâu S.

Xâu đảo ngược của xâu S là xâu có các kí tự được viết theo thứ ngược lại của xâu S.

F Ý tưởng:

Trước tiên khởi tạo xâu một xâu rỗng A:= ‘’;

Sau đó duyệt xâu S từ phần tử cuối cùng về phần tử đầu tiên và ghi vào xâu A.

Cuối cùng xuất xâu kết quả là xâu ngược của xâu S.

F Bộ test:

Xâu nhập vào

Kết quả

‘AN NAM’ ‘MAN NA’
‘CHU NHAT’ ‘THAN UHC’
‘ABCD’ ‘DCBA’
‘MUA XUAN’ ‘NAUX AUM’

Bài 4:  Viết chương trình nhập một xâu vào từ bàn phím và thông báo lên màn hình xâu đó có phải đối xứng không.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Xuất câu thông báo xâu S có phải là xâu đối xứng hay không.

F Ý tưởng:

Khởi tạo một xâu rỗng sau đó tạo xâu đảo ngược của xâu S.

Kiểm tra xâu đảo ngược của xâu S có trùng với xâu S hay không.

Sau đó xuất ra màn hình câu thông báo về kết quả. Nếu trùng với nhau thì xâu S là xâu đối xứng còn không là xâu không đối xứng.

F Bộ test:

Xâu nhập vào

Kết quả

‘ABCD’ Xau khong doi xung
‘ABCDCBA’ Xau la doi xung
‘A1B2C33C2B1A’ Xau la doi xung
‘NGUYEN VAN A’ Xau khong doi xung

Bài 5: Viết chương trình nhập vào 2 xâu ký tự s1 và s2. Kiểm tra xem xâu s2 xuất hiện bao nhiêu lần trong xâu s1. (Lưu ý: length(s2)<= length(s1)).

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: hai xâu s1 và s2.

Output: Số lần xuất hiện của xâu s2 trong xâu s1.

F Ý tưởng:

Khởi tạo biến dem:=0;

Sao đó dùng câu lệnh while kiểm tra xem trong xâu s1 còn xuất hiện xâu s2 hay không. Nếu có thì xóa xâu s2.

Mỗi lần gặp xâu s2 trong xâu s1 thì tăng biến dem lên 1. Sau đó xuất câu thông báo ra màn hình kết quả số lần xuất hiện xâu s2 trong xâu s1(dem).

F Bộ test:

Xâu nhập s1 và s2

Kết quả

‘Viet Nam co len’ và ‘viet’ 1
‘TIN HOC’ và ‘TINH’ 0
‘Nguyen Van A’ và ‘Nguyen’ 1
‘LON CON LON TON’ và ‘ON’ 4

Bài 6:Viết chương trình nhập vào 2 xâu S1 và S2 kiểm tra xem kí tự thứ 5 của xâu S1 có trùng với kí tự đầu tiên của xâu S2 hay không.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: hai xâu S1 và S2.

Output: Câu thông báo xâu trùng nhau hay khác nhau.

F Ý tưởng:

Kiểm tra S1[5] = S2[1] nếu thì xuất câu thông báo trùng nhau.

Nếu S1[5] <> S2[1] thì xuất câu thông báo khác nhau.

F Bộ test:

Xâu nhập S1 và S2

Kết quả

‘Viet Nam co len’ và ‘viet’ Khac nhau.
‘TIN HOC’ và ‘HINH’ Trung nhau.
‘Nguyen Van A’ và ‘Nguyen’ Khac nhau.
‘LON CON LON TON’ và ‘CON’ Trung nhau.

Bài 7: Nhập vào một xâu từ bàn phím. Thay thế tất cả các cụm từ ‘anh’ bằng cụm từ ‘em’.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output:  Xuất ra xâu S sau khi đã thay thế tất cả các cụm từ ‘anh’ bằng cụm từ ‘em’.

F Ý tưởng:

Sử dụng hàm pos(‘anh’, S) nếu kết quả trả về khác 0 thì xóa xâu ‘anh’ tại vị trí đó delete(S,pos(‘anh’,S),3). Sau đó insert(‘em’,S,pos(‘anh’,S)). Duyệt lần lượt từ đầu đến cuối xâu S nếu hàm pos(‘anh’,S) còn trả về giá trị khác 0 thì thực hiện tiếp tục như trên.

Xuất xâu S sau khi đã thay thế tất cả các cụm từ ‘anh’ bằng cụm từ ‘em’.

F Bộ test:

Xâu nhập S

Kết quả

‘Viet Nam co len’ ‘Viet Nam co len’
‘Hom nay hoc anh van’ ‘Hom nay hoc em van’
‘anh hai, anh ba hoc tieng anh’ ‘em hai, em ba hoc tieng em’
‘Thanh cong, thanh cong, dai thanh cong’ ‘Them cong, them cong, dai them cong’.
  1. B.     PHẦN NÂNG CAO.

 

Bài 8: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Thông báo lên màn hình các chữ cái có trong xâu và số lượng của chúng ( Không phân biệt chữ hoa hay chữ thường).

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Các chữ cái và số lượng của chúng trong xâu S.

F Ý tưởng:

Dùng một mảng dem với chỉ số là các chữ cái để lưu trữ số lượng của các chữ cái trong xâu.

Duyệt qua tất cả các ký tự của xâu S: Nếu ký tự đó là chữ cái thì tăng ô biến mảng dem[S[i]] lên 1 đơn vị.

F Bộ test:

Xâu nhập vào

Kết quả

‘AN NAM’ A: 2;       N: 2;           M: 1
‘THUC HANH TIN HOC’ T: 2;        H: 4;           U: 1;         C: 2A: 1;       N: 2;            I: 1;          O: 1
‘ABCD’ A: 1;       B: 1;            C: 1;         D: 1
‘LOP 11’ L: 1;       O: 1;            P:  1;

Bài 9: Viết chương trình xóa các ký tự chữ số trong một xâu ký tự được nhập vào từ bàn phím.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Xâu S sau khi đã xóa các kí tự là chữ số.

F Ý tưởng:

Duyệt qua tất cả các ký tự của xâu S: Nếu ký tự đó là chữ số thì xóa kí tự đó bằng thủ tục delete(S,vt,n);

F Bộ test:

Xâu nhập vào

Kết quả

‘SO 12 LON HON 11’ ‘SO  LON HON ’
‘THUC HANH TIN HOC LOP 11’ ‘THUC HANH TIN HOC LOP ’
‘A11BC43455D’ ‘ABCD’
‘LOP 11’ ‘LOP ’

Bài 10: Viết chương trình  nhập vào một xâu ký tự từ bàn phím. Tìm và in ra màn hình một từ có độ dài lớn nhất trong xâu.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: In ra từ dài nhất của xâu, nếu xâu có nhiều từ dài nhất thì in ra tất cả.

F Ý tưởng:

Dùng một mảng vitri để lưu vị trí xuất hiện của các từ dài nhất. Biến max để lưu lại độ dài từ dài nhất đã tìm thấy.

Duyệt từ đầu xâu đến cuối xâu, với mỗi kí tự ‘ ’ thì kiểm tra xem nó có phải là kết thúc của một từ không, nếu phải thì kiểm tra độ dài của từ vừa tìm thấy, nếu từ này có đọ dài lớn hơn độ dài lớn nhất thì gán lại giá trị mới có độ dài lớn nhất, khởi tạo lại mảng chứa vị trí các từ dài nhất, còn nếu nó bằng từ có độ dài lớn nhất thì thêm vị trí vào mảng vitri.

Chú ý trước khi duyệt xâu thì nên thêm kí tự ‘ ’ vào cuối xâu để duyệt từ cuối cùng. Sau bước duyệt thì in các từ dài nhất ra, dựa vào mảng vitri và biến max.

F Bộ test:

Xâu nhập vào

Kết quả

‘SO 12 LON HON 11’ LONHON
‘THUC HANH TIN HOC LOP 11’ THUCHANH
‘Nguyen Van A’ Nguyen
‘LOP 11’ LOP

Bài 11: Viết chương trình nhập một xâu ký tự S từ bàn phím và một ký tự ch. In ra màn hình xâu S sau khi xóa hết các ký tự ch trong xâu đó.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Xâu S sau khi đã xóa các kí tự ch.

F Ý tưởng:

Dùng hàm pos(ch,S) nếu hàm này trả về một số khác 0 thì dùng thủ tục delete(S,pos(ch,S),length(ch)) để xóa các kí tự ch trong xâu.

Sau đó xuất ra màn hình xâu S đã xóa các kí tự ch.

F Bộ test:

Xâu nhập vào và kí tự ‘ch’

Kết quả

‘SO 12 LON HON 11’ và ‘ON’ ‘SO 12 L H 11’
‘ABCD’ và ‘A’ ‘BCD’
‘TIN HOC 11’ và ‘TIN’ ‘ HOC 11’
‘THO CON LON TON’ và ‘ON’ ‘THO C L T’

Bài 12: Viết chương trình nhập một xâu từ bàn phím. In ra xâu đó sau khi xóa hết các kí tự trắng thừa trong xâu. (Kí tự trắng thừa là các kí tự trắng đầu xâu, cuối xâu và nếu ở giữa xâu có 2 kí tự trắng liên tiếp nhau thì có 1 kí tự trắng thừa).

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Xâu S đã xóa các kí tự trắng thừa.

Kí tự trắng thừa là kí tự  trắng đầu xâu, cuối xâu và nếu ở giữa xâu có 2 kí tự trắng liên tiếp nhau thì có 1 kí tự trắng thừa.

F Ý tưởng:

Trước tiên khởi tạo xâu A:= ‘ ’;

Sau đó kiểm tra xem vị trí xuất hiện của xâu A trong xâu S có bằng 1 hay length(S) hay không. Nếu có thì xóa bỏ kí tự trắng đó.

Tiếp tục kiểm tra xem xâu S có chứa hai kí tự trắng liên tiếp hay không. Nếu có thì xóa bớt một kí tự trắng.

Cuối cùng xuất xâu kết quả không chứa những kí tự trắng thừa.

F Bộ test:

Xâu nhập vào

Kết quả

‘    Nguyen Van      A’ ‘Nguyen Van A’
‘   Tin      Hoc’ ‘Tin Hoc’
‘Thanh    Pho   Ho Chi     Minh    ’ ‘Thanh Pho Ho Chi Minh’
‘Kien Giang Minh     Dep   Lam   ’ ‘Kien Giang Minh Dep Lam’

Bài 13: Viết chương trình liệt kê các từ của một xâu ký tự được nhập vào từ bàn phím, mỗi từ phải được viết trên một dòng.

Hướng dẫn giải.

F Xác định Input và Output của bài toán:

Input: Xâu S.

Output: Các từ trong xâu S mỗi từ viết trên một dòng.

F Ý tưởng:

Trước tiên phải xóa các kí tự trắng thừa trong xâu S (áp dụng câu 3).

Sau đó thêm vào cuối xâu một kí tự ‘ ’. Rồi dùng hàm pos(‘ ’,st) kiểm tra xem còn kí tự trắng nào ở giữa không nếu còn thì tạo một xâu mới bằng hàm copy(st,1,pos(‘ ’,st)) và xóa đi xâu vừa tìm được trong xâu st.

Sau đó xuất ra các xâu vừa mới tạo để được kết quả.

F Bộ test:

Xâu nhập vào

Kết quả

‘    Nguyen Van      A’ NguyenVan

A

‘   Tin      Hoc’ TinHoc
‘Kien Giang’ KienGiang
 

Gửi phản hồi

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Thay đổi )

Twitter picture

You are commenting using your Twitter account. Log Out / Thay đổi )

Facebook photo

You are commenting using your Facebook account. Log Out / Thay đổi )

Google+ photo

You are commenting using your Google+ account. Log Out / Thay đổi )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

%d bloggers like this: