Sinh viên: Đoàn Thị Thu Huyền Lớp: 56A_CNTT_ĐHSP Hà Nội KIỂM TRA 45’ (CHƯƠNG 3 – LỚP 11) 1. Mục tiêu đánh giá: Đánh giá kết quả học tập về cấu trúc rẽ nhánh và lặp 2. Mục đích, yêu cầu của đề: - Hiểu biết cơ bản về cách dùng câu lệnh ghép, rẽ nhánh và lặp - Lựa chọn sao cho thích hợp các lệnh FOR…TO… DO, WHILE… DO 3. Ma trận đề: Cấu trúc rẽ nhánh Cấu trúc lặp Nhận biết Câu 1 Thông hiểu Câu 1, Câu 2 Câu 2 Vận dụng Câu 3 4. Nội dung đề: Kiểm tra tin học 11 _ Chương 3 Ngày…….tháng ……năm…… Thời gian làm bài: 45 phút ĐỀ BÀI Câu 1: (2 điểm) Cho 3 điểm A, B, C trên mặt phẳng tọa độ nguyên tương ứng là (x1, y1), (x2, y2), (x3, y3). Xét chương trình: Program C1; Uses crt; Var x1, y1, x2, y2, x3, y3, u, v: integer; BEGIN Write (“Toa do diem A: ”); Readln(x1, y1); Write (“Toa do diem B: ”); Readln(x2, y2); Write (“Toa do diem C: ”); Readln(x3, y3); If(x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)>(x2-x3)*(x2-x3)+(y2-y3)*(y2-y3) then Begin u := x2; v :=y2; end else begin u:= x1; v:=y1; end; Writeln( “X= ”, u, “ Y= ”,v); END. ĐIều khẳng định nào sau đây là đúng? a. Chương trình đưa ra tọa độ của điểm gần C hơn trong số 2 điểm A và B. b. Chương trình đưa ra tọa độ của điểm xa C hơn trong số 2 điểm A và B. c. Chương trình đưa ra tọa độ của điểm gần gốc tọa độ hơn trong số 2 điểm A và B. Câu 2: (4 điểm) Hãy chọn 1 đáp án đúng nhất: 2.1. Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là đúng? a. If <biểu thức logic>; then <câu lệnh 1>; else <câu lệnh 2>; b. If <biểu thức logic> then <câu lệnh 1>; else <câu lệnh 2>; c. If <biểu thức logic>; then <câu lệnh 1> else <câu lệnh 2>; d. If <biểu thức logic> then <câu lệnh 1> else <câu lệnh 2>; 2.2 Trong ngôn ngữ lập trình Pascal, về mặt cú pháp, câu lệnh nào sau đây là đúng với cấu trúc vòng lặp For có 1 lệnh con? a. For i:=1 to 100 do a:= a – 1; c. For i:=1 to 100 do; a:= a – 1; b. For i:=1 to 100 do a:= a – 1 d. For i:=1; to 100 do a:= a – 1; 2.3. Trong ngôn ngữ lập trình Pascal, về mặt cú pháp, câu lệnh nào sau đây là đúng với cấu trúc vòng lặp For có nhiều lệnh con? a. For i:=1 to 100 do a:= a-1; a:= a – c; EndFor; b. For i:=1 to 100 do Begin a:= a-1; a:= a – c; End; c. For i:=1 to 100 do; Begin a:= a-1; a:= a – c; End; d. For i:=1 to 100 do a:= a-1; a:= a – c; 2.4. Cho đoạn chương trình sau: Begin x:= a; If a < b then x:= b; End. Cho a = 20; b = 15. Kết quả x bằng bao nhiêu? a. 10 c. 15 b. 20 d. 25 2.5. Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì? T:= 0; For i:= 1 to N do If (i mode 3 = 0) or (i mode 5 = 0) then T:= T + i; a. Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến N. b. Tính tổng các ước thực sự của N. c. Tính tổng các số chia hết cho cả 3 và 5 trong phạm vi từ 1 đến N. d. Tìm một ước số của số N. 2.6. Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau cho kết quả gì? For i:= 10 to 1 do Write(i, ‘ ‘) a. 1 2 3 4 5 6 7 8 9 10 c. Đưa ra 10 dấu cách b. 10 9 8 7 6 5 4 3 2 1 d. Không đưa kết quả gì 2.7. Câu lệnh sau đây cho kết quả nào? If b > a then c:= b else c:= a; a. Hoán đổi giá trị 2 biến a, b. c. Tìm giá trị c= Min(a, b). b. Tìm giá trị c= Max (a,b). d. Câu lệnh sai ngữ pháp. 2.8. Trong ngôn ngữ lập trình Pascal, để tính tổng các ước thực sự của một số nguyên N, ta cần dùng đoạn chương trình nào trong các đoạn sau: (ước thực sự là ước mà không kể chính nó) a. T:= 1; For i:= 1 to N div 2 do If N mode i = 0 then T:= T + i; c. T:= 0; For i:= 1 to N div 2 do If N mode i = 0 then T:= T + i; b. T:= 1; For i:= 1 to N div 2 do If Ndiv i = 0 then T:= T + i; d. T:= 0; For i:= 1 to N div 2 do If N div i = 0 then T:= T + i; Câu 3: (4 điểm) Viết chương trình Pascal giải bài toán sau: Một người có số tiền ban đầu là a đồng. Họ quyết định gửi vào ngân hàng đến khi có được số tiền không ít hơn b đồng. Hỏi họ phải gửi vào ngân hàng tối thiểu trong bao nhiêu tháng. Biết rằng lãi suất ngân hàng định gửi là 2% tháng (sau mỗi tháng, tiền lời được cộng vào vốn để tiếp tục sinh lãi). - Hết - ĐÁP ÁN Câu 1: (2 điểm) a. Câu 2: (0.5 x 8 câu = 4 điểm) 2.1. d 2.2. a 2.3. b 2.4. b 2.5. a 2.6. b 2.7. b 2.8. c Câu 3: (4 điểm) Chương trình chạy thông: 1 điểm Nắm được thuật toán: 1 điểm Kết quả đúng: 2 điểm Chương trình: Program cau3; Uses crt; Var month: integer; a, b: real; BEGIN Write (“So tien ban dau la a= ”); Readln(a); Write (“So tien cuoi muon co la b= ”); Readln(b); Month:= 0; While a<b do Begin a:= a + a*0.02; month:= month + 1; End; Writeln(“So thang can gui la: ”, month); Readln; END. - Hết- . vòng lặp For có 1 lệnh con? a. For i:=1 to 100 do a:= a – 1; c. For i:=1 to 100 do; a:= a – 1; b. For i:=1 to 100 do a:= a – 1 d. For i:=1; to 100 do a:= a – 1; 2.3. Trong ngôn ngữ lập. i:=1 to 100 do a:= a-1; a:= a – c; EndFor; b. For i:=1 to 100 do Begin a:= a-1; a:= a – c; End; c. For i:=1 to 100 do; Begin a:= a-1; a:= a – c; End; d. For i:=1 to 100 do. trình Pascal, đoạn chương trình sau cho kết quả gì? For i:= 10 to 1 do Write(i, ‘ ‘) a. 1 2 3 4 5 6 7 8 9 10 c. Đưa ra 10 dấu cách b. 10 9 8 7 6 5 4 3 2 1 d. Không đưa kết quả gì 2.7. Câu