Câu 1: Phát biểu nào sau đây là đúng ?
A. Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn.
B. Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp.
C. Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh while do
D. Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp chưa biết trước bằng câu lệnh For do
Câu 2: Lệnh lặp nào sau đây là đúng?
A. For
B. For
C. For
D. For
ĐỀ CƯƠNG ÔN TẬP HỌC KỲ 2 MÔN: TIN HỌC 8 (Năm học 2010 – 2011) I. PHẦN TRẮC NGHIỆM. Câu 1: Phát biểu nào sau đây là đúng ? A. Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện nào đó được thoả mãn. B. Chỉ ngôn ngữ lập trình Pascal mới có các câu lệnh lặp để thể hiện cấu trúc lặp. C. Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trước bằng câu lệnh whiledo D. Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp chưa biết trước bằng câu lệnh Fordo Câu 2: Lệnh lặp nào sau đây là đúng? A. For = to do ; B. For := to do ; C. For := to do ; D. For : to do ; Câu 3: Câu lệnh lặp whiledo có dạng đúng là: A. While do; ; B. While do; C. While do ; D. While do ; Câu 4: Để tính tổng S=1+2+3+ 4+ 5 + + n; em chọn đoạn lệnh: A. s:=0; i:=0; While i<=n do S:=S + 1; B. s:=0; i:=0; While i<=n do If (I mod 2)= 1 Then S:=S + i; C. s:=0; i:=0; While i<=n do begin S:=S + i; I:=i+1; End; D. s:=0; i:=0; While i<=n do begin if (i mod2)=1 Then S:=S + i; Else i:=i+1; End; Câu 5: Chọn cách khai báo biến mảng đúng: A. Var a: array[1100] of integer; B. Var a: array[1..n] of integer; C. Var a: array[1..50] of integer; D. Var a: array[1..24.5] of integer; Câu 6: Cho S và i là biến nguyên. Khi chạy đoạn chương trình: s:=0; i:=1 while i<=5 do begin i:=i+1; s := s+i; end; writeln(s); Kết quả in lên màn hình là của s là : A. 6 B. 9 C. 14 D. 20 Câu 7: Trong vòng lặp For := to do củaPascal, trong mỗi vòng lặp, biến đếm thay đổi như thế nào A. +1 B. -1 C. Một giá trị bất kỳ D. Một giá trị khác không Câu 8: Câu lệnh lặp whiledo có dạng đúng là: A. x:=10; While x:=10 do x:=x+5; B. x:=10; While x:=10 do x=x+5; C. x:=10; While x=10 do x=x+5; D. x:=10; While x=10 do x:=x+5; Câu 9: Câu lệnh Pascal nào sau đây là hợp lệ? A. For i:=100 to 1 do writeln(‘A’); B. For i:= 1 to 10 do writeln(‘A’); C. For i:=1.5 to 10.5 do writeln(‘A’); D. For i= 1 to 10 do writeln(‘A’); Câu 10: Cho S và i là biến nguyên. Khi chạy đoạn chương trình: S:=0; For i:=1 to 5 do s:=s+1; Writeln(s); Kết quả in lên màn hình của s là : A. 11 B. 15 C. 10 D. 5 Câu 11: Lần lượt thực hiện câu lệnh for i:= 1 to 3.5 do writeln(i:3:1); sẽ viết ra màn hình? A. Thứ tự của biến đếm, chiếm 3 chỗ và lấy 1 chữ số sau phần thập phân B. Viết số 1 rồi viết số 3.5 C. Chỉ viết số 3.5 mà thôi D. Không thực hiện được vì giá trị của biến đếm có kiểu thứ tự là Real Câu 12: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp S:=0; n:=0; While S< =10 do Begin n:=n+1; s:=s+n; end; A. 4 lần B. 6 lần C. 5 lần D. 10 Câu 13: Câu lệnh nào sau đây lặp vô hạn lần A. s:=5; i:=0; While i<=s do s:=s + 1; B. s:=5; i:=1; While i<=s do i:=i + 1; C. s:=5; i:=1; While i> s do i:=i + 1; D. s:=0; i:=0; While i<=n do if (i mod2)=1 then S:=S + I else i:=i+1; Câu 14: Để tính tổng S=1 + 2 +3 +4 + n; em chọn đoạn lệnh: A. for i:=1 to n do if ( i mod 2)=0 then S:=S + i; B. for i:=1 to n do if ( i mod 2)=1 then S:=S + i; C. for i:=1 to n do S:= S + i ; D. for i:=1 to n do if ( i mod 2)0 then S:=S + i; Câu 15: Để tính tổng S=2 + 4 + 6 + n; em chọn đoạn lệnh: A. For i:=1 to n do if ( i mod 2)=0 then S:=S + i; B. For i:=1 to n do S:= S + i ; C. For i:=1 to n do if ( i mod 2)=1 then S:=S + i; D. for i:=1 to n do if ( i mod 2)0 then S:=S + i; Câu 16: Để tính tổng S=1/2+1/4 + 1/6 + +1/ n; em chọn đoạn lệnh: A. for i:=1 to n do if ( i mod 2)=0 then S:=S + 1/i; B. for i:=1 to n do if ( i mod 2) 0 then S:=S + i; C. for i:=1 to n do if ( i mod 2)=0 then S:=S – 1/i else S:= S + 1/i; D. for i:=1 to n do if ( i mod 2)=0 then S:=S +1/ i else S:=S-1/i; Câu 17: Để đếm có bao nhiêu số lẻ nhỏ hơn hay bằng n ; em chọn đoạn lệnh: A. for i:=1 to n do if ( I mod 2)0 then S:=S + 1; B. for i:=1 to n do if ( I mod 2) =0 then S:=S + 1; C. for i:=1 to n do if ( I mod 2)=0 then S:=S + I ; D. for i:=1 to n do if ( I mod 2)=0 then S:=S + I; Câu 18: Với ngôn ngữ lập trình Passcal câu lệnh lặp for i:=1 to 10 do x:=x+1; thì biến đếm i phải được khai báo là kiểu dữ liệu A. Integer; B. Real; C. String D. Tất cả các kiểu trên đều được Câu 19: Sau khi thực hiện đoạn chương trình j:= 0; for i:= 1 to 3 do j:=j+2; thì giá trị in ra màn hình là? A. 4 B. 6 C. 8 D. 10 Câu 20: Đoạn lệnh sau đây So:=1; While so<10 do writeln(so); So:=so+1; Sẽ cho kết quả gì? A. In ra các số từ 1 đến 9 B. In ra các số từ 1 đến 10 C. Không phương án nào đúng D. In vô hạn các số 1, mỗi số trên một dòng Câu 21: Tìm hiểu đoạn lệnh sau và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp S:=0; n:=0; While S< =10 do n:=n+1; s:=s+n; A. 9 lần B. 10 lần C. 11 lần D. Vô hạn lần Câu 22: Hãy tìm hiểu đoạn chương trình sau đây. Sau khi đoạn chương trình này được thực hiện, giá trị của x bằng bao nhiêu? X:=0; Tong:=0; While tong<=20 do Begin Writeln(tong); Tong:=tong+1; End. X:=tong; A. 20 B. 21 C. Không xác định D. 0 Câu 23: Cú pháp khai báo biến mảng trong Pascal là: var ; array [..] of ; var : array [] of ; var : array [..] of ; var : array [] for ; Câu 24: Chọn khai báo hợp lệ: A. Var a,b: array[1 .. n] of real; C. Var a,b: array[1 : n] of Integer; B. Var a,b: array[1 .. 100] of real; D. Var a,b: array[1 100] of real; Câu 25: Trong phần mềm Finger Break Out mức chơi Advanced là mức chơi: A. Bắt đầu B. Bình thường C. Trung bình D. Nâng cao Câu 26: Trong phần mềm Sun Times để biết thời gian giữa trưa, ta chọn mục nào A. Sunset B. Sunrise C. Day lengh D. Midday Câu 27: Để cố định vị trí và thời gian quan sát ta vào: A. Option \ Maps \ Show Sky Clour B. Option \ Maps \ Anchor Time To C. Option \ Maps \ Hover Update D. Option \ Maps \ Currenttly Sunset Câu 28: Để xem chi tiết thời gian mặt trời mọc, lặn trong suốt 365 ngày của một năm của một địa điểm, vị trí trên trái đất, ta vào A. View \ Today’s Sun Times B. View \ Sunrise / Sunset for the year C. View \ Currenttly Sunset / Sunrise D. View \ Sunset / Sunrise for the year Câu 29: Phần mở rộng của tệp hình trong phần mềm Geogebra là gì: A. bgg B. gsb C. ggb D. Gbb Câu 30: Trong phần mềm Geogebra, công cụ tạo trung điểm đoạn thẳng là : A. B. C. D. Câu 31: Phần mềm nào sau đây xem được hiện tượng nhật thực và nguyệt thực? A. Finger Break Out B. Sun Times. C. Sun Times và Yenka D. Câu B và C. Câu 32: Phần mềm Finger Break Out dùng để làm gì? A. Xem thông tin thời gian ngày và đêm B. Xem thông tin nhật thực, nguyệt thực. C. Luyện gõ bàn phím nhanh, chính xác D. Không có đáp án đúng Câu 33 : Phần mềm học vẽ hình là : A. Sun Times B. Toolkit Math C. Geogebra D.Finger Breakout Câu 34: Ghép nội dung ở cột A sao cho phù hợp ở cột B Cột A Cột B Trả lời 1. Fi nger Bre ck out là pm 2. Quan sát toàn cảnh thế giới 3. Geogebra là phần mềm 4. Tạo hình không gian a. Phần mềm Sun ti mes b. Vẽ biểu đồ toán học c. Phần m ềm Yen ka d. Vẽ hình h ọc đơn giản e. Luyện gõ phím nhanh băn g 10 ngón tay 1 ........................... 2 ........................... 3............................ 4............................ Câu 35: Điền X vào các ô sao cho phù hợp và giải thích vì sao Câu Đúng Sai Giải thích a) for i=1 to 10 do writeln('A'); b) var X: Array[5..10] Of Real; c) X:=10; while X<30 do X: = X+5; d) if x>5 then a:=b; else m := n; Câu 36: Nhận xét nội dung và đánh dấu “X” vào cột ĐÚNG hoặc SAI. Nội dung Đúng Sai 1. Không nên thay đổi giá trị của biến đếm trong câu lệnh lặp For do, ví dụ câu lệnh lặp sau đây là không nên sử dụng For i:=1 to n do i:=i+2; 2. Trong câu lệnh lặp for biến đếm:=giá trị đầu to giá trị cuối do câu lệnh; Nếu giá trị đầu < giá trị cuối thì chương trình dịch sẽ báo lỗi để ta chỉnh sữa lại 3. Câu lệnh lặp For do rất thuận tiện và hữu ích trong việc tránh phải viết lặp đi lặp lại nhiều lần một câu lệnh nào đó. Chẳng hạn để in ra các số nguyên hơn kém nhau 1 đơn vị từ 1 đến 15 ta chỉ viết 1 câu lệnh sau For i:=1 to 15 do writeln(i:3:1); 4. Mọi câu lệnh lặp Whiledo đều có thể thay thế một cách thích hợp bởi câu lệnh For..do 5. Câu lệnh sau do trong câu lệnh lặp while do có thể không được thực hiện lần nào nếu ngay từ đầu điều kiện điều khiển vòng lặp có giá trị “sai” II. PHẦN TỰ LUẬN: Câu 1: Viết đoạn chương trình tính tổng các số từ 10 đến 100 (sử dụng For ... do và While do). Câu 2: Viết chương trình nhập vào điểm toán và ngữ văn của các bạn, gồm n bạn nhập từ bàn phím, sau đó in ra điểm trung bình mỗi bạn theo công thức (điểm trung bình = (điểm toán + điểm ngữ văn)/2) Câu 3: Viết chương trình tính trung bình cộng các số của dãy số gồm n số nhập từ bàn phím? Câu 4: Viết chương trình tính tổng: Trong đó n là số nguyên nhập từ bàn phím Câu 5: Viết chương trình thực hiện các công việc sau: a. Cho phép nhập vào 1 dãy số gồm n số (với n>1 và nhập từ bàn phím) b. In ra màn hình số lớn nhất. c. In ra màn hình những số lớn hơn 5 và không chia hết cho 2. Câu 6: Vẽ hình: (Sử dụng phần mềm Geogebra) a). Trình bày các bước vẽ hình tròn nội tiệp tam giác ABC ( cho trước) b). Trình bày các bước vè hình vuông cạnh 4 Cm. Chúc các em thành công! GVBM Nguyễn Văn Phong HƯỚNG DẪN Câu 1: Viết đoạn chương trình tính tổng các số từ 10 đến 100 (sử dụng For ... do và While do). * Sử dụng For Do Var s, i : integer; Begin s:=0; For i:=10 to 100 do s:=s+i; Writeln(‘Tổng cần tìm là ‘, s); Readln; End. * Sử dụng While DO Var s, i : integer; Begin s:=0; i:=10; While i<=100 do Begin s:=s+i; i:=i+1; end; Writeln(‘Tổng cần tìm là:’,s); Readln; End. Câu 2: Viết chương trình nhập vào điểm toán và ngữ văn của các bạn, gồm n bạn nhập từ bàn phím, sau đó in ra điểm trung bình mỗi bạn theo công thức (điểm trung bình = (điểm toán + điểm ngữ văn)/2) Program bai2; Uses crt; Var DT, DV:array[1..100] of real; i, n: integer; TB:real; Begin Write(‘Nhập số bạn trong lớp, n=’); Readln(n); Writeln(‘Nhập điểm Toán và Văn ‘); For i:=1 to n do Begin Write(‘DT[‘, i,’]=’); Readln(DT[i]); Write(‘DV[‘, i,’]=’); Readln(DV[i]); End; Writeln(‘ĐIỂM TB CỦA CÁC BẠN LÀ’); For i:= 1 to n do Begin TB:=(DT[i]+DV[i])/2; Writeln(‘Bạn sô’,i,’là’,TB:3:2); End; Readln; END. {----------------------------------------------------------------------------------------------------------------------------} Câu 3: Viết chương trình tính trung bình cộng các số của dãy số gồm n số nhập từ bàn phím? Program bai3; Uses crt; Var A : array[1..100] of integer ; i, n, t: integer; tb: real; Begin Write(‘Nhập số phần tử của dãy n = ‘); Readln(n); Writeln(‘Nhập các giá trị phần tử ‘); For i:= 1 to n do Begin Write(‘A[‘, i,’]=’); Readln(A[i]); End; t:=0; For i:=1 to n do t:= t + A[i]; tb:=t/n; Write(‘Trung bình các số của dãy số là: ‘, tb); Readln; End. {--------------------------------------------------------------------------------------------------------------} Câu 4: Viết chương trình tính tổng: Trong đó n là số nguyên nhập từ bàn phím Giải: Program Tong_Nghich_Dao; Uses crt; Var S: real; n, i: integer; Begin Clrscr; Write(‘Nhap so n = ‘); Readln(n); S:= 0; For i:= 1 to n do S: = S + 1/i; Writeln(‘Tong can tim la: ‘, S:6:2); Readln; End. {----------------------------------------------------------------------------------------------------------------------} Câu 5: Một số ngôn ngữ lập trình, ví dụ Pascal, không có sẵn hàm tính lũy thừa. Hãy mô tả thuật toán và sử dụng câu lệnh lặp với số lần xác định trước để viết chương trình Pascal tính lũy thừa bậc n của số nguyên X. Giải: Program bai5; Var n,i,x: integer; a: longint; Begin Write('Nhap x='); readln(x); Write('Nhap n='); readln(n); A:=1; For i:=1 to n do A:=A*X; Writeln(x,' mu ',n,' bang ',A); End. Câu 31: Câu Đúng Sai Giải thích a) for i=1 to 10 do writeln('A'); x Thiếu dấu : sau biến i b) var X: Array[5..10] Of Real; x c) X:=10; while X<30 do X: = X+5; x d) if x>5 then a:=b; else m := n; x Thừa dấu ; trước else
Tài liệu đính kèm: