Đề cương ôn tập môn Tin học Khối 11 - Chương IV: Kiểu dữ liệu có cấu trúc - Trường THPT Đức Trọng

Câu 1. Giả sử mảng A được khai báo như sau: Var A:array[-2.10] of

integer; Để tham chiếu đến phần tử thứ 3 của mảng, ta viết

A. A[2] B. A[3]

C. A[0] D. không thể tham chiếu được vì kiểu chỉ số sai

Câu 2. Hãy cho biết phần tử thứ 10 của mảng C có giá trị là bao nhiêu?

For i:=1 to 100 do C[i]:=1;

A. 100 B. 1 C. 10 D. tất cả đều sai

Câu 3. Cho xâu S1='Dat chuan quoc gia' và xâu S2='Duc Trong'. Thủ tục

Copy(S1,1,Length(S2)) cho kết quả là:

A. 'Dat chuan' B. 'Duc Trong'

C. 'quoc gia' D. 'Duc Trong Dat chuan quoc gia'

Câu 4. Cho xâu S1='Tin hoc khoi 11 rat kho' và xâu S2='Hoc sinh'. Thủ

tục Delete(S1,9,Length(S2)) cho kết quả là:

A. 'khoi 11 ' B. 'Tin hoc' C. 'Hoc sinh' D. 'Tin hoc rat kho'

Câu 5. Cho S kiểu số thực, i và n thuộc kiểu số nguyên. Để tính tổng bình

phương các số chẵn từ 1 đến n, câu lệnh nào sau đây đúng?

A. For i:=3 to n do If i mod 2=0 then S:=S+sqt(i);

B. For i:=1 to n do S:=S+sqt(i);

C. For i:=1 to n do If i mod 2=0 then S:=S+sqr(i);

D. For i:=n downto 1 do If i mod 2<>0 then S:=S+sqt(i);

pdf10 trang | Chia sẻ: Đạt Toàn | Ngày: 06/05/2023 | Lượt xem: 111 | Lượt tải: 0download
Bạn đang xem nội dung Đề cương ôn tập môn Tin học Khối 11 - Chương IV: Kiểu dữ liệu có cấu trúc - Trường THPT Đức Trọng, để tải tài liệu về máy bạn hãy click vào nút TẢI VỀ
Trường THPT Đức Trọng 
Tổ: Sinh – Tin 
ĐỀ CƯƠNG ÔN TẬP MÔN TIN HỌC KHỐI 11 
CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC 
A/ TÓM TẮT LÍ THUYẾT 
 Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu đã có 
theo qui tắc, khuôn dạng do ngôn ngữ lập trình cung cấp 
 Mảng một chiều: 
 Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu 
 Khái báo: 
C1: Var : array[kiểu chỉ số] of ; 
C2: Type = array[kiểu chỉ số] of <kiểu phần 
tử>; 
 Var : ; 
 Tham chiếu phần tử mảng: tên biến mảng[chỉ số phần tử]. 
 Kiểu dữ liệu xâu: 
 Xâu là dãy kí tự trong bộ mã ASCII, số lượng kí tự trong xâu là 
độ dài của xâu, xâu có độ dài =0 gọi là xâu rỗng, kí hiệu: ’’, độ 
dài lớn nhất của xâu không vượt quá 255 
 Khai báo: 
C1: Var : String[độ dài lớn nhất của xâu]; 
C2: Type = string; 
 Var : ; 
 Tham chiếu phần tử xâu: tên biến xâu[chỉ số phần tử] 
 Các thao tác xử lí thường sử dụng 
o Phép ghép xâu: (+) 
o Phép so sánh: >, , >=, <= 
Các thủ tục chuẩn: 
+ Delete(s, vt, n); 
+ Insert(s1, s2, vt);a 
o Các hàm chuẩn: 
+ Length(s) 
+ Copy(s, vt, n) 
+ Pos (s1,s2) 
+ Upcase(ch) 
B/ CÂU HỎI VÀ BÀI TẬP 
1/ Một số câu hỏi trắc nghiệm: 
Câu 1. Giả sử mảng A được khai báo như sau: Var A:array[-2..10] of 
integer; Để tham chiếu đến phần tử thứ 3 của mảng, ta viết 
 A. A[2] B. A[3] 
 C. A[0] D. không thể tham chiếu được vì kiểu chỉ số sai 
 Câu 2. Hãy cho biết phần tử thứ 10 của mảng C có giá trị là bao nhiêu? 
For i:=1 to 100 do C[i]:=1; 
 A. 100 B. 1 C. 10 D. tất cả đều sai 
Câu 3. Cho xâu S1='Dat chuan quoc gia' và xâu S2='Duc Trong'. Thủ tục 
Copy(S1,1,Length(S2)) cho kết quả là: 
 A. 'Dat chuan' B. 'Duc Trong' 
 C. 'quoc gia' D. 'Duc Trong Dat chuan quoc gia' 
Câu 4. Cho xâu S1='Tin hoc khoi 11 rat kho' và xâu S2='Hoc sinh'. Thủ 
tục Delete(S1,9,Length(S2)) cho kết quả là: 
 A. 'khoi 11 ' B. 'Tin hoc' C. 'Hoc sinh' D. 'Tin hoc rat kho' 
Câu 5. Cho S kiểu số thực, i và n thuộc kiểu số nguyên. Để tính tổng bình 
phương các số chẵn từ 1 đến n, câu lệnh nào sau đây đúng? 
 A. For i:=3 to n do If i mod 2=0 then S:=S+sqt(i); 
 B. For i:=1 to n do S:=S+sqt(i); 
 C. For i:=1 to n do If i mod 2=0 then S:=S+sqr(i); 
 D. For i:=n downto 1 do If i mod 20 then S:=S+sqt(i); 
Câu 6. Cho biết kết quả của đoạn chương trình sau: 
 S:=0; For i:=1 to 6 do If (i mod 2=0) then S:=S+i; Write(S); 
 a 3 
 b 12 
 c 6 
 d 9 
Câu 7. Cho biết kết quả của đoạn chương trình sau: 
 S:=0; i:=0; While S<=10 do begin i:=i+1; S:=S+i; end; Write(S); 
 a 5 
 b 15 
 c 20 
 d 10 
Câu 8. Cho biết kết quả của đoạn chương trình sau: 
 S:=0; For i:=1 to 10 do If (i mod 3=0) Or (i mod 4=0) then S:=S+i; 
Write(S); 
 a 15 
 b 45 
 c 30 
 d 0 
Câu 9. Cho biết kết quả của đoạn chương trình sau: 
 T:=0; For i:=1 to 10 do T:=T+i; Write(i); 
 a 1 
 b 55 
 c 10 
 d 0 
Câu 10. Cho khai báo sau: Var C:array[1..5] of integer; . Để lưu trữ biến C 
cần bao nhiêu byte bộ nhớ? 
 a 2 
 b 5 
 c 10 
 d 1 
Câu 11. Mảng là kiểu dữ liệu có cấu trúc vì : 
 a Được xây dựng từ các kiểu dữ liệu chuẩn. 
 b Khai báo biến mảng ở dạng phức tạp. 
 c Là một dãy các phần tử khác kiểu mà mỗi phần tử có một chỉ số khác 
nhau. 
 d Là dãy các phần tử bất kì mà mỗi phần tử có một chỉ số khác nhau. 
Câu 12. Hãy cho biết dòng lệnh nào sau đây dùng để tạo ngẫu nhiên mảng 
gồm n số nguyên trong phạm vi từ 0 đến 299 
 a For i:=1 to n do A[i]:= random(0) - random(299); 
 b For i:=1 to n do A[i]:= random(1) - random(300); 
 c For i:=1 to n do A[i]:= random(300) - random(300); 
 d For i:=1 to n do A[i]:= random(299) - random(299); 
 Câu 13. Cho A={30, 15, 9, 23, 5, 27, 14} . Hãy cho biết khai báo nào sau 
đây là đúng nhất? 
 a Var A:array['a'..'g'] of byte; 
 b Var A:array[1..7] of char; 
 c Var A:array[1..7] of byte 
 d Var A:array[5..30] of byte; 
Câu 14. Giả sử mảng A được khai báo như sau: Var A:array[-2..3] of 
integer; . Để tham chiếu đến phần tử thứ 2 của mảng, ta viết 
 a A[6] 
 b A[2] 
 c A[-1] 
 d A(2) 
2/ Một số câu hỏi tự giải: 
Caâu 1: Vieát khai baùo xaâu cho chöông trình sau: 
Vieát chöông trình nhaäp töø baøn phím xaâu kí töï S1 coù ñoä daøi khoâng quaù 100. 
haõy taïo xaâu S2 goàm taát caû caùc chöõ soá coù trong S1. 
Caâu 2: Cho xaâu S1 = ‘Hinh .1’ vaø xaâu S2 = ‘2’. Thuû tuïc Insert(S2,S1,6) cho 
keát quaû laø? 
Caâu 3: Ñieàn vaøo choã troáng  trong caâu sau: 
“Xaâu laø daõy          trong boä maõ ASCII” 
Caâu 4: Giaù trò cuûa xaâu S = ‘Em se la mua xuan cua me’ Haõy söû duïng thuû 
tuïc Delete nhö theá naøo ñeå coù 
keát quaû laø ‘Em la mua xuan cua me’ ? 
Caâu 5: Haøm Pos(‘em’, ‘ngay mai em di bien nho ten em goi ve’) cho keát 
quảlaø? 
Caâu 6: Cho xaâu S1=’Dat chuan quoc gia’ vaø xaâu S2=’Duc Trong’ 
Haøm Copy(S1,1,Length(S2)); cho keát quaû laø? 
Caâu 7: Cho xaâu S=’500 dong’. Haøm Length(S); cho keát quaû laø? 
Caâu 8: Cho xaâu S=’Lop 11’. Haøm Upcase(S); cho keát quaû laø? 
Caâu 9: Vieát caáu truùc khai baùo bieán kieåu xaâu? 
Caâu 10: Cho xaâu S=’TRAN VAN AN’. Ñeå tham chieáu ñeán kí töï ñaàu tieân 
cuûa teân ta vieát nhö theá naøo? 
3/ Một số dạng bài tự luận: 
Câu 1: Taïo maûng B goàm n (n<=200) soá nguyeân, moãi soá coù trò tuyeät ñoái 
khoâng vöôïc quaù 500. Haõy cho bieát coù bao nhieâu soá haïng trong maûng B coù 
giaù trò baèng 0. 
Program zero; 
Uses Crt; 
Const Nmax = 200; 
Type ArrInt = Array[1..Nmax] of Integer; 
Var i,n,dem: byte; 
 B:ArrInt; 
Begin 
 Clrscr; 
 Write('Nhap so luong phan tu cua day so, N = '); 
 Readln(N); 
 For i:=1 to N do 
 Begin 
 Write('Phan tu thu ',i,' = '); 
 Readln(B[i]); 
 End; 
 dem:=0; 
 For i:=1 to N do 
 If B[i] = 0 then dem:=dem+1; 
 Write('Co ',dem,' so hang trong mang B co gia tri bang 0'); 
 Readln 
End. 
Câu 2: Taïo maûng C goàm n (n<=100) soá nguyeân, moãi soá coù trò tuyeät ñoái 
khoâng vöôïc quaù 300. Cho bieát Chæ soá vaø giaù trò nhoû nhaát trong daõy soá ñaõ 
cho (neáu coù nhieàu phaàn töû nhoû nhaát thì ñöa ra taát caû vò trí cuûa chuùng) 
Program cau2; 
Uses crt; 
Const Nmax = 100; 
Type ArrInt = array[1..Nmax] of Integer; 
Var i,n,min: integer; 
 C:ArrInt; 
Begin 
 Clrscr; 
 Write('Nhap so luong phan tu cua mang, N = '); 
 Readln(N); 
 For i:=1 to N do 
 Begin 
 Write('C[',i,']= '); 
 Readln(C[i]); 
 End; 
 For i:=1 to N do write(C[i]:5); 
 Writeln; 
 Min:=C[1]; 
 For i:=2 to N do 
 If C[i] < Min then Min:=C[i]; 
 Writeln('Ket qua la : ',Min); 
 For i:=1 to N do 
 If C[i] = Min then write(i:5); 
 Readln 
End. 
Câu 3: Vieát chöông trình Pascal nhaäp töø baøn phím daõy A goàm n (n<=100) 
soá nguyeân döông A1, A2,  , AN. Haõy xuaát ra nhöõng thoâng tin sau: 
a/ Toång caùc soá leû trong daõy 
b/ Soá löôïng vaø vò trí cuûa caùc soá chaün trong daõy 
Program kt_th1; 
Uses crt; 
Const Nmax = 100; 
Type ArrW = Array[1..Nmax] of word; 
Var A: ArrW; 
 i,n,d:byte; S:Word; 
Begin 
 clrscr; 
 write('Nhap so luong phan tu mang : '); Readln(N); 
 For i:=1 to n do 
 Begin 
 write('Nhap phan tu thu ',i,' = '); 
 Readln(A[i]); 
 End; 
 S:=0; 
 Writeln('Vi tri cac so chan nhu sau:'); 
 For i:=1 to n do 
 If A[i] mod 2 = 1 then S:=S+A[i] 
 Else 
 Begin 
 d:=d+1; 
 Write(i:5); 
 End; 
 Writeln; 
 Writeln('Co ',d,' so chan trong day'); 
 Writeln('Tong cac so le trong day la : ',S); 
 Readln 
End. 
Câu 4: Vieát chöông trình Pascal nhaäp töø baøn phím daõy A goàm n (n<=100) 
soá nguyeân A1, A2,  , AN. Haõy xuaát ra nhöõng thoâng tin sau: 
a/ Toång caùc soá aâm trong daõy 
b/ Soá löôïng vaø vò trí cuûa caùc soá döông trong daõy 
Program kt_th2; 
Uses crt; 
Const Nmax = 100; 
Type ArrInt = Array[1..Nmax] of Integer; 
Var A: ArrInt; 
 i,n,d:byte; S:Integer; 
Begin 
 clrscr; 
 write('Nhap so luong phan tu mang : '); Readln(N); 
 For i:=1 to n do 
 Begin 
 write('Nhap phan tu thu ',i,' = '); 
 Readln(A[i]); 
 End; 
 S:=0; d:=0; 
 Writeln('Vi tri cac so duong trong day la:'); 
 For i:=1 to n do 
 If A[i] < 0 then S:=S+A[i] 
 Else 
 Begin 
 d:=d+1; 
 Write(i:5); 
 End; 
 Writeln; 
 Writeln('Co ',d,' so duong trong day'); 
 Writeln('Tong cac so am trong day la : ',S); 
 Readln 
End. 
Câu 5: Sử dụng ngôn ngữ lập trình Pascal, viết chương trình nhập từ bàn 
phím số nguyên dương N (0<N  100) và dãy A gồm N số thực A1, A2,  , 
AN. Hãy đưa ra những thông tin sau: 
- Khi người sử dụng nhập N ngoài đoạn (0<N  100) thì yêu cầu nhập 
lại 
- Hãy tạo ra dãy B gồm các phần tử trong dãy A có chỉ số là lẻ và xuất 
kết quả ra màn hình 
Ví dụ: 
Dãy A 2.5 43.7 43.6 8.9 23.4 45.2 22.9 56.1 34.6 3.8 
 I 1 2 3 4 5 6 7 8 9 10 
Dãy B được tạo ra như sau: 
 B 2.5 43.6 23.4 22.9 34.6 
 J 1 2 3 4 5 
Giải 
Program mang_cau1; 
Uses crt; 
Var A, B : Array[1..100] of real; 
 i,j,n: Integer; 
Begin 
 clrscr; 
 write('So phan tu cua day A(0<N<=100), N = '); 
 readln(N); 
 While (N100) do 
 begin 
 write('Nhap lai, so phan tu cua day A(0<N<=100), N = '); 
 readln(N); 
 end; 
 For i:=1 to N do 
 begin 
 write('Phan tu thu ',i,' = '); 
 readln(A[i]); 
 end; 
 j:=0; 
 For i:=1 to N do 
 If i mod 2 0 then 
 begin 
 j:=j+1; 
 B[j]:=A[i]; 
 end; 
 writeln('Cac phan tu cua day B : '); 
 For i:=1 to j do write(B[i]:10:1); 
 readln 
End. 
Câu 6: Sử dụng ngôn ngữ lập trình Pascal, viết chương trình nhập từ bàn 
phím số nguyên dương N (0<N  100) và dãy A gồm N số nguyên A1, A2, 
 , AN coù giaù trò tuyeät ñoái khoâng lôùn hôn 1000. Hãy đưa ra những 
thông tin sau: 
- Khi người sử dụng nhập N ngoài đoạn (0<N  100) thì yêu cầu nhập 
lại 
- Hãy tạo ra dãy B gồm các phần tử trong dãy A có giá trị chia hết cho 
3 và 5 và xuất kết quả ra màn hình 
Ví dụ: 
Dãy A 5 15 7 39 45 75 22 56 60 38 
 I 1 2 3 4 5 6 7 8 9 10 
Dãy B được tạo ra như sau: 
 B 15 45 75 60 
 J 1 2 3 4 
Giải 
Program mang_cau2; 
Uses crt; 
Var A, B : Array[1..100] of Integer; 
 i,j,n: Integer; 
Begin 
 clrscr; 
 write('So phan tu cua day A(0<N<=100), N = '); 
 readln(N); 
 While (N100) do 
 begin 
 write('Nhap lai, so phan tu cua day A(0<N<=100), N = '); 
 readln(N); 
 end; 
 For i:=1 to N do 
 begin 
 write('Phan tu thu ',i,' = '); 
 readln(A[i]); 
 end; 
 j:=0; 
 For i:=1 to N do 
 If (A[i] mod 3 = 0) and (A[i] mod 5 = 0) then 
 begin 
 j:=j+1; 
 B[j]:=A[i]; 
 end; 
 writeln('Cac phan tu cua day B : '); 
 For i:=1 to j do write(B[i]:5); 
 readln 
End. 
4/ Một số bài tập tự giải: 
Câu 1: Viết chương trình nhập từ bàn phím một xâu kí tự. Cho biết độ dài của 
xâu vừa nhập? 
Câu 2: Viết chương trình nhập từ bàn phím một xâu kí tự. Cho biết trong xâu 
vừa nhập có bao nhiêu kí tự trắng ? 
Câu 3: Viết chương trình nhập từ bàn phím một xâu kí tự. Xuất ra màn hình 
xâu kí tự đó nhưng xóa đi tất cả các kí tự ’A’ hoặc ’a’. 
Câu 4: Viết chương trình nhập từ bàn phím một xâu kí tự. 
a/ Cho biết có bao nhiêu kí tự số 
b/ Cho biết có bao nhiêu kí tự chữ 
Câu 5: Viết chương trình nhập từ bàn phím một xâu kí tự và một kí tự ’k’. 
Cho biết có bao nhiêu kí tự ’k’? 
Câu 6: Viết chương trình nhập từ bàn phím một xâu kí tự. Cho biết trong xâu 
có bao nhiêu cụm kí tự ’anh’? 
Câu 7/ Cho xâu s:=’Truong THPT Duc Trong’; 
Cho biết kết quả của hàm và thủ tục sau: 
+ Delete(s, 5, 4); 
+ Cho s1:=’Duc’; Insert(s1, s, 4); 
+ Length(s) 
+ Copy(s, 3, 8) 
+ Cho s1:=’Duc’; vt:=Pos (s1,s) 
+ Upcase(S[5]); 
Câu 8/ Viết chương trình cho hàm copy và thủ tục Insert Sự khác nhau 
giữa hàm và thủ tục 
5/ Sách giáo khoa 
-Bài 1 đến bài 5 SGK trang 71 – 72 
-Bài 1; 2; 3 SGK trang 73 
-Bài 5; 6 SGK trang 79 
-Bài 10 SGK trang 80 

File đính kèm:

  • pdfde_cuong_on_tap_mon_tin_hoc_khoi_11_chuong_iv_kieu_du_lieu_c.pdf