Đề thi học kì 2 môn Tin học Lớp 8 - Năm học 2021-2022 - Trường THCS Nguyễn Hữu Thọ (Có đáp án)
I. Trắc nghiệm:
Câu 1: Các câu lệnh Pascal sau đúng hay sai? Hãy chỉ ra chỗ sai nếu có.
A. For i:=1 to 10; do x:= x+1;
B. For i:=10 to 1 do x:= x+1;
C. For i:=1 to 10 do x:= x+1;
D. For i:=1 to 10 for j:=1 to 10 do x:= x+1;
E. For i:=1 to 10 do for j:=1 to 10 do x:= x+1;
Câu 2: Trong câu lệnh lặp
For i:=1 to 10 do begin ... end;
Câu lệnh được thực hiện bao nhiêu vòng lặp?
A. 1
B. 2;
C. 10
D. Không lần nào
Câu 3: Dưới đây là một đoạn chương trình của Pascal:
For i:= 0 to 10 do
Begin
..................
End;
Sau khi thực hiện đoạn chương trình trên, giá trị của i là:
A. 0
B. 10
C. 11
Câu 1: Các câu lệnh Pascal sau đúng hay sai? Hãy chỉ ra chỗ sai nếu có.
A. For i:=1 to 10; do x:= x+1;
B. For i:=10 to 1 do x:= x+1;
C. For i:=1 to 10 do x:= x+1;
D. For i:=1 to 10 for j:=1 to 10 do x:= x+1;
E. For i:=1 to 10 do for j:=1 to 10 do x:= x+1;
Câu 2: Trong câu lệnh lặp
For i:=1 to 10 do begin ... end;
Câu lệnh được thực hiện bao nhiêu vòng lặp?
A. 1
B. 2;
C. 10
D. Không lần nào
Câu 3: Dưới đây là một đoạn chương trình của Pascal:
For i:= 0 to 10 do
Begin
..................
End;
Sau khi thực hiện đoạn chương trình trên, giá trị của i là:
A. 0
B. 10
C. 11
Bạn đang xem tài liệu "Đề thi học kì 2 môn Tin học Lớp 8 - Năm học 2021-2022 - Trường THCS Nguyễn Hữu Thọ (Có đáp án)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- de_thi_hoc_ki_2_mon_tin_hoc_lop_8_nam_hoc_2021_2022_truong_t.pdf
Nội dung text: Đề thi học kì 2 môn Tin học Lớp 8 - Năm học 2021-2022 - Trường THCS Nguyễn Hữu Thọ (Có đáp án)
- ĐỀ THI HỌC KÌ 2 NĂM HỌC 2021 - 2022 MÔN TIN HỌC 8 TRƯỜNG THCS NGUYỄN HỮU THỌ Thời gian làm bài : 45 phút (Không kể thời gian phát đề) 1. ĐỀ SỐ 1 I. Trắc nghiệm: Câu 1: Các câu lệnh Pascal sau đúng hay sai? Hãy chỉ ra chỗ sai nếu có. A. For i:=1 to 10; do x:= x+1; B. For i:=10 to 1 do x:= x+1; C. For i:=1 to 10 do x:= x+1; D. For i:=1 to 10 for j:=1 to 10 do x:= x+1; E. For i:=1 to 10 do for j:=1 to 10 do x:= x+1; Câu 2: Trong câu lệnh lặp For i:=1 to 10 do begin end; Câu lệnh được thực hiện bao nhiêu vòng lặp? A. 1 B. 2; C. 10 D. Không lần nào Câu 3: Dưới đây là một đoạn chương trình của Pascal: For i:= 0 to 10 do Begin End; Sau khi thực hiện đoạn chương trình trên, giá trị của i là: A. 0 B. 10 C. 11
- D. Không xác định Câu 4: Cho một đoạn chương trình của Pascal như sau: j:= 0; for i:=0 to 5 do j:= j+2; Sau khi thực hiện đoạn chương trình trên, giá trị của biến j là: A. 2 B. 7 C. 10 D. 12 Câu 5: Trong lệnh lặp For to do của Pascal, trong mỗi vòng lặp giá trị của biến đếm thay đổi như thế nào? A. + 1 B. +1 hoặc -1 C. Một giá trị bất kì D. Một giá trị khác 0. Câu 6: Các lệnh khai báo biến mảng sau đây của Pascal đúng hay sai? Chỉ ra chỗ sai nếu có? a) A: Array[1 . . . 100] of integer; b) B: Array[1 . . n] of real; c) C: Array[1 : 100] of integer; d) D: Array[100 . . 1] of real; e) E: Array[1 . .10] of byte; II. Tự luận: Câu 1: Em hiểu thế nào là câu lệnh lặp? Câu 2: Viết câu lệnh lặp với số lần biết trước của Pascal và nêu rõ hoạt động của lệnh? Câu 3: Viết chương trình bằng ngôn ngữ lập trình Pascal thực hiện công việc sau: Nhập vào từ bàn phím các phần tử của một dãy số nguyên; in ra màn hình giá trị lớn nhất của dãy số. ĐÁP ÁN I. Trắc nghiệm:
- Câu 1: A. Sai, thừa dấu chấm phẩy đầu tiên B. Sai, giá trị đầu phải nhỏ hơn giá trị cuối. C. Đúng D. Sai, thiếu từ khóa do trong lệnh For do thứ nhất E. Đúng Câu 2 3 4 5 Đáp án C B D A Câu 6: A. Sai, cần thay ba dấu chấm bằng hai dấu chấm. B. Sai, các chỉ số phải là các giá trị cụ thể. Tuy nhiên nếu n là một hằng đã được khai báo thì câu lệnh này hợp lệ. C. Sai, cần thay dâu hai chấm bằng hai dấu chấm. D. Sai, chỉ số đầu không được lớn hơn chỉ số cuối E. Đúng II. Tự luận: Câu 1: Câu lệnh lặp là câu lệnh được viết một lần nhưng lại được điều khiển để thực hiện lặp một số hữu hạn lần. Câu 2: * Cấu trúc lệnh: For to do ; Trong đó: for, to, do là các từ khóa, biến đếm là biến kiểu nguyên, giá trị đầu, giá trị cuối là các giá trị nguyên. * Hoạt động: - Khi thực hiện, ban đầu biến đếm sẽ nhận là giá trị đầu, sau mỗi vòng lặp, biến đếm tự động tăng thêm 1 đơn vị cho đến khi bằng giá trị cuối. - Câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần mỗi lần là một vòng lặp. Số vòng lặp của câu lệnh được tình bằng: Số vòng lặp = giá trị cuối - giá trị đầu + 1. Câu 3:
- Program Max; Uses crt; Var i, n,Max : integer; A: Array[1 50] of integer; Begin Clrscr; Write('Nhap so phan tu cua day so nguyen N='); Readln(N); Write('Nhap cac phan tu cua day so:'); For i:=1 to N do Begin Write('A[',i,’]=’); Readln(A[i]); End; Max:=A[1]; For i:=2 to N do If Max < A[i] then Max:=A[i]; Writeln('Gia tri lon nhat cua day so la Max = ', Max); Readln End. 2. ĐỀ SỐ 2 Câu 1: Hãy cho biết một số lệnh tính toán với đa thức và giải phương trình và ý nghĩa của các lệnh đó? Câu 2: - Viết cú pháp của câu lệnh lặp với số lần chưa biết trước? - Nêu các bước thực hiện của câu lệnh trong cú pháp trên? Câu 3: Cho biết cú pháp khai báo biếm mảng? Giải thích các thành phần của cú pháp? Câu 4: Sử dụng Free Pascal viết chương trình Pascal sử dụng biến mảng để nhập từ bàn phím các phần tử của một dãy N số tự nhiên, xét và tìm ra số lớn nhất đưa ra màn hình? Độ dài của dãy cũng được nhập từ bàn phím. ĐÁP ÁN Câu 1:
- Cú pháp lệnh Ý nghĩa Khai triển đa thức thành tích các thừa số trong phạm vi các số Factor[ ] hữu tỉ. Khai triển đa thức thành tích các thừa số trong phạm vi các số iFactor[ ] vô tỉ. Expand[ ] Khai triển biểu thức tính toán đa thức. Simplify[ ] Rút gọn biểu thức tính của đa thức. Div[ , ] Cho thương của phép chia đa thức 1 cho đa thức 2. Mod[ , ] Cho số dư của phép chia đa thức 1 cho đa thức 2. Division[ , ] Cho thương và số dư của phép chia đa thức 1 cho đa thức 2. Solve[ ] Cho kết quả là nghiệm của phương trình hoặc bất phương trình. hoặc Solve[ ] Solutions[ ] Cho kết quả là tất cả các giá trị nghiệm của phương trình, bất hoặc Solutions[ ] phương trình. Câu 2: *Cú pháp của câu lệnh lặp với số lần chưa biết trước: While do ; Trong đó: - While, do là các từ khóa. - thường là một phép so sánh. - có thể là câu lệnh đơn giản hay câu lệnh ghép. * Câu lệnh lặp với số lần chưa biết trước được thực hiện như sau: Bước 1: Kiểm tra điều kiện Bước 2: Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1. Câu 3:
- Cú pháp: Var : array[ ] of Trong đó chỉ số đầu và chỉ số cuối là hai số nguyên thỏa mãn chỉ số đầu A[i] then min:= A[i]; End; Write(' So nho nhat trong day so la ', min ); Readln; End. 3. ĐỀ SỐ 3 Câu 1. Viết cú pháp câu lệnh lặp với số lần chưa biết trước. Nêu hoạt động của câu lệnh.
- Câu 2. Viết chương trình nhập điểm kiểm tra học kỳ môn tin cho N học sinh và in ra màn hình. Với N và điểm kiểm tra được nhập từ bàn phím (sử dụng biến mảng). Câu 3. Viết chương trình tính diện tích của tam giác có ba cạnh là a,b,c (được nhập từ bàn phím). ĐÁP ÁN Câu 1. - Cú pháp câu lệnh: while do ; - Hoạt động: Khi thực hiện câu lệnh chương trình kiểm tra điều kiện. Nếu điều kiện đúng thực hiện câu lệnh sau từ khóa do và quay lại kiểm tra điều kiện. Nếu điều kiện sai bỏ qua câu lệnh sau từ khóa do và kết thúc. Câu 2. Program trung_binh; Uses crt; Var n, i: integer; Diem: array[1 50] of real; Begin Clrscr; Write(‘Nhap so luong hoc sinh N = ‘); Readln(n); Writeln(‘Nhap diem cho tung hoc sinh’); For i := 1 to n do Begin Write(‘Diem HS ‘,i,’ = ‘); readln(Diem[i]); End; For i : = 1 to n do Writeln(‘Diem cua HS ‘,i, ‘ = ‘,diem[i]); Readln; End. Câu 3. a. Hướng dẫn: - Nhập ba cạnh của tam giác vào ba biến a,b,c. - Nửa chu vi của tam giác p = (a+b+c)/2. - Diện tích của tam giác: s =.
- b. Mã chương trình: rogram TAM_GIAC; uses crt; Var a,b,c,p,S: real; Begin clrscr; Write('Nhap canh a:');readln(a); Write('Nhap canh b:');readln(b); Write('Nhap canh c:');readln(c); p:=(a+b+c)/2; S:= sqrt(p*(p-a)*(p-b)*(p-c)); Write('Dien tich tam giac la:',s:10:2); readln end.