ĐÁP ÁN ĐỀ THI KIỂM TRA HỌC KỲ II NĂM HỌC 2009 - 2010 MÔN: TIN HỌC - KHỐI: 11 THỜI GIAN: 45 Phút (Không kể thời gian chép đề) Câu Nội dung Điểm Phần lí thuyết 1 2 Viết cú pháp khai báo gián tiếp và trực tiếp mảng hai chiều. Giải thích các thành phần trong khai báo mảng hai chiều. Áp dụng: khai báo gián tiếp và trực tiếp mảng hai chiều B gồm 4 hàng, 7 cột, các phần tử kiểu số thực. Trả lời: Khai báo mảng 2 chiều: Trực tiếp: Var <tên biến mảng>:array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; Gián tiếp: Type <tên kiểu mảng> = array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; Var <tên biến mảng>:<tên kiểu mảng>; Giải thích: Var, type, array, of: là các từ khóa. Tên biến mảng, tên kiểu mảng: do người lập trình đặt. Kiểu chỉ số hàng, kiểu chỉ số cột: thường là một đoạn số nguyên liên tục có dạng n1 n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối. (n1<=n2) Kiểu phần tử là kiểu của các phần tử mảng. Áp dụng: TT: Var B: array[1 4,1 7] of real; GT: Type mang=array[1 4,1 7] of real; Var B: mang; Chương trình con là gì? Phân loại chương trình con. Viết cấu trúc của thủ tục. Áp dụng: Viết phần đầu của thủ tục để hoán đổi giá trị của hai biến nguyên x, y. Trả lời: Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình. Chương trình con được phân thành 2 loại: thủ tục và hàm. Cấu trúc của thủ tục: Procedure <tên thủ tục>[(<danh sách tham số>)]; [<phần khai báo>] Begin [<dãy các lệnh>] End; Áp dụng: Procedure hoandoi(var x, y: integer); (3điểm) (0.75 điểm) (0.75 điểm) (1 điểm) (0.25 điểm) (0.25 điểm) (3 điểm) (1 điểm) (0.5 điểm) (1 điểm) (0.5 điểm) Phần bài tập 2 Viết chương trình nhập dãy A gồm 10 số nguyên A 1 , A 2 , …, A 10 . a. Tìm và đưa ra màn hình phần tử lớn nhất của dãy số nguyên. b. Tính và đưa ra màn hình số lượng số chẳn và số lẻ. c. Tính và hiển thị giá trị trung bình của các phần tử trong mảng. Trả lời: Program baitap; Var A: array[1 10] of integer; i, max, csmax, sc, t: integer; Begin Write(‘ nhap cac phan tu cua day :’); For i:=1 to 10 do Begin Write(‘nhap pt thu ’,i,’=’); Readln(A[i]); End; max:=A[1]; csmax:=1; For i:=2 to 10 do If A[i] > max then Begin max:=A[i]; csmax:=i; end; writeln(‘gtri ptu max=’,max); writeln(‘chi so ptu max =’, csmax); sc:=0; For i:=1 to 10 do if A[i] mod 2 =0 then sc:=sc + 1; writeln(‘so luong so chan=’,sc); writeln(‘so luong so le=’, 10 - sc); t:=0; For i:=1 to 10 do t:= t + A[i]; writeln(‘ gia tri trung binh cua cac phan tu mang=’, t/10:10:4); readln end. (4 điểm) Khai báo 0.5đ Nhập mảng 0.5đ Câu a (Max) 1đ Câu b (sc, sl) 1đ Câu c (gtrị tb ) 1đ . ĐÁP ÁN ĐỀ THI KIỂM TRA HỌC KỲ II NĂM HỌC 2009 - 2010 MÔN: TIN HỌC - KHỐI: 11 THỜI GIAN: 45 Phút (Không kể thời gian chép đề) Câu Nội dung Điểm Phần lí thuyết 1 2 Viết cú pháp khai báo gián. mảng hai chiều. Giải thích các thành phần trong khai báo mảng hai chiều. Áp dụng: khai báo gián tiếp và trực tiếp mảng hai chiều B gồm 4 hàng, 7 cột, các phần tử kiểu số thực. Trả lời: Khai. tiếp: Var <tên biến mảng>:array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; Gián tiếp: Type <tên kiểu mảng> = array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần