Bài tập ôn tập học kì 2 môn Tin học Lớp 7 (Có đáp án)

docx 13 trang Trần Thy 09/02/2023 8600
Bạn đang xem tài liệu "Bài tập ôn tập học kì 2 môn Tin học Lớp 7 (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:

  • docxbai_tap_on_tap_hoc_ki_2_mon_tin_hoc_lop_7_co_huong_dan_cham.docx

Nội dung text: Bài tập ôn tập học kì 2 môn Tin học Lớp 7 (Có đáp án)

  1. BÀI TẬP ÔN TẬP HỌC KÌ 2 MÔN TIN HỌC LỚP 11 I. LÝ THUYẾT: CHƯƠNG IV. KIỂU DỮ LIỆU CÓ CẤU TRÚC Kiểu mảng ❖Khái niệm mảng: - Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu. - Mảng được đặt tên và mỗi phần tử của nó có một chỉ số. - Để mô tả màng một chiều cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó (mỗi phần tử của nó có một chỉ số). ❖ Khai báo Cách 1: Khai báo trực tiếp Var :array [kiểu chỉ số] of ; Cách 2: Khai báo gián Type = array [kiêu chỉ số] of ; Var : ; ❖ Tham chiếu: Tham chiếu tới phần tử của mảng một chiều được xác định bởi tên mảng cùng với chỉ số, được viết trong cặp dấu ngoặc [ và ]. ❖Vận dụng để viết chương trình đơn giản Kiểu xâu ❖Khái niệm - Xâu: Là một dãy kí tự trong bảng mã ASCII. Mỗi kí tự được gọi là một phần tử của xâu. - Số lượng kí tự trong xâu được gọi là độ dài của xâu . - Xâu có độ dài bằng 0 gọi là xâu rỗng. ❖ Khai báo Var :string[độ dài lớn nhất của xâu]; Hoặc Var :string; ❖ Các thao tác xử lí xâu: - Ghép xâu: + - So sánh: , <>, = ❖ Hàm, thủ tục trên xâu: - Hàm copy(S, vt, N) Ý nghĩa: Tạo xâu gồm N kí tự liên tiếp bắt đầu từ vị trí vt của xâu S. - Hàm length(S) Ý nghĩa: Cho giá trị độ dài xâu S. - Hàm pos(s1, s2) Ý nghĩa: Cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2. - Hàm upcase(ch): Ý nghĩa: Giới thiệu ý nghĩa của hàm upcase và cách sử dụng. - Thủ tục Delete(S,vt,n) Ý nghĩa: Xoá n kí tự của xâu S bắt đầu từ vị trí vt.
  2. Câu 3: Cú pháp câu lệnh lặp với số lần chưa biết trước. Chọn cấu trúc đúng? A. While do ; B. For := to do ; C. For := downto do ; D. While Then ; Câu 4: Trong cấu trúc While-do, câu lệnh được thực hiện khi: A. Điều kiện còn đúng B. Điều kiện sai C. Điều kiện không xác định D. Không cần điều kiện Câu 5: Trong cấu trúc While-do, điều kiện là: A. Biểu thức logic hoặc biểu thức quan hệ B. Biểu thức số học C. Biểu thức quan hệ D. Biểu thức logic Câu 6: Cú pháp câu lệnh lặp với số lần biết trước. Chọn cấu trúc đúng? A. For := to do ; B. Repeat Until ; C. For := to do ; D. While do ; Câu 7: Cú pháp cấu trúc lặp For – do dạng tiến là: A. For := to do ; B. For := to do ; C. For := downto do ; D. For := downto do ; Câu 8: Cú pháp cấu trúc lặp For – do dạng lùi là: A. For := downto do ; B. For := down do ; C. For := downto do ; D. For := to do ; Câu 9: Kiểu dữ liệu của biến đếm trong cấu trúc lặp For – do là: A. Cùng kiểu với giá trị đầu, giá trị cuối B. Chỉ cần khác kiểu với giá trị đầu C. Cùng kiểu với các biến trong câu lệnh D. Không cần xác định kiểu dữ liệu Câu 10: Hãy chọn phương án ĐÚNG ở cấu trúc lặp For – do dạng tiến là: A. Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối B. Giá trị đầu phải nhỏ hơn giá trị cuối C. Giá trị đầu phải lớn hơn giá trị cuối D. Giá trị đầu bằng giá trị cuối Câu 11: Trong cấu trúc For – do, câu lệnh được thực hiện đúng 1 lần khi nào? A. Biến đếm có giá trị đầu bằng giá trị cuối B. Biến đếm có giá trị bằng 1 C. Biến đếm có giá trị nhỏ hơn giá trị cuối
  3. D. Chương trình sai Câu 16: Đoạn chương trình sau làm công việc gì? S:=0; For i:=1 to N do S:=S+i; A. Tổng các số trong phạm vi từ 1 đến N B. Tổng N số hạng liên tiếp C. Tổng các số tự nhiên đầu tiên D. Chương trình sai Câu 17: Đoạn chương trình sau thực hiện công việc? For i:=1 to M do If (i mod 3 = 0) and (i mod 5 = 0) then t:= t+i; A. Tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến M B. Tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến M C. Tổng các số chia hết cho 3 trong phạm vi từ 1 đến M D. Tổng các số chia hết cho 5 trong phạm vi từ 1 đến M Câu 18: Phát biểu nào sau đây là ĐÚNG về mảng một chiều? A. Là dãy hữu hạn các phần tử có cùng kiểu dữ liệu B. Chỉ là dãy các số nguyên C. Mảng không chứa các kí tự là chữ cái D. Là dãy vô hạn các phần tử có cùng kiểu dữ liệu Câu 19: Phát biểu nào sau đây là SAI? A. Số phần tử trong mảng tối đa là 255 phần tử B. Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu dữ liệu C. Có thể xây dựng mảng n chiều D. Cần xác định kiểu phần tử của mảng Câu 20: Cú pháp khai báo gián tiếp mảng một chiều là: A. Type = array[kiểu chỉ số] of ; Var : ; B. Type = array[kiểu chỉ số] of ; Var : ; C. Type : array[kiểu chỉ số] of ; Var = ; D. Type : array[Kiểu chỉ số] of ; Var : ; Câu 21: Cú pháp để khai báo trực tiếp mảng một chiều là: A. VAR : ARRAY[Kiểu chỉ số] OF ; B. TYPE : ARRAY[Kiểu chỉ số] OF ; C. VAR : ARRAY[Kiểu phần tử] OF ; D. VAR : ARRAY[Kiểu chỉ số]: ; Câu 22: Cách tham chiếu đến một phần tử trong mảng một chiều: A. Tên biến mảng, tiếp theo là chỉ số viết trong cặp ( và ) B. Tên biến mảng, tiêp theo là chỉ số viết trong cặp [ và ] C. Tên kiểu mảng, tiếp theo là chỉ số viết trong cặp [ và ] D. Tên kiểu mảng, tiếp theo là chỉ số viết trong cặp ( và )
  4. C.Var S:array[1 10] of byte; D. Var S=array[1 100] of integer; Câu 32: Yêu cầu khai báo mảng một chiều gồm 100 phần tử có kiểu thực. Chọn khai báo ĐÚNG? A. Var x:array[1 100] of real; B. Var S:array[1 100] of integer; C. Var X:array[1 100] of real; D. Var S:string[100]; Câu 33: Khai báo mảng một chiều gồm 50 phần tử có kiểu số nguyên byte. Chọn khai báo đúng? A. Type Xa=array[1 50] of integer; Var A:Xa; B. Type MANG=array[1 50] of byte; Var A:MANG; C. Type KB:array[1 50] of byte; Var A:KB; D. Type KB=array[1 50] of byte; Var kb:KB; Câu 34: Cho khai báo mảng: Var a:array[1 50] of byte; và đoạn chương trình như sau: Begin Write(' Nhap so luong phan tu n='); Readln(n); For i:=1 to n do Begin Write('a[', i, ']='); Readln(a[i]); End; S:=0; For i:=1 to n do S:=S+a[i]; Đoạn chương trình trên thực hiện công việc gì? A. Nhập vào một dãy số và tính tổng của dãy số đó B. Nhập vào một dãy số và đếm số lượng phần tử của dãy đó C. Nhập vào một mảng A và in ra màn hình dãy số vừa nhập D. Không thực hiện công việc gì cả Câu 35: Cho khai báo mảng: Var a:array[1 150] of real; và đoạn chương trình như sau: Begin Write(' Nhap so luong phan tu n='); Readln(n); For i:=1 to n do Begin Write('a[', i, ']='); Readln(a[i]); End; For i:=1 to n do If a[i] > 0 then write(a[i]:4); Đoạn chương trình trên thực hiện công việc gì? A. Nhập vào một dãy số và liệt kê các số dương B. Nhập vào một số N và in ra các số dương
  5. Câu 42: Khai báo xâu một biến xâu có độ dài lớn nhất của kiểu xâu. Chọn khai báo ĐÚNG? A. Var st,s:string; B. Var x:string[256]; C. Var s:string; D. Var s:string[1 255]; Câu 43: Cú pháp để khai báo xâu? A. Var :array[độ dài lớn nhất của xâu] of char; B. Var = String[độ dài lớn nhất của xâu]; C. Var = string; D. Var : String[độ dài lớn nhất của xâu]; Câu 44: Thực hiện yêu cầu khai báo một biến xâu có độ dài là 50. Chọn khai báo đúng? A. Var A: string(50); B. Var A: string[1 49]; C. Var A: string[50]; D. Var A:array[50]; Câu 45: Trong các khai báo sau, khai báo nào dùng để khai báo kiểu xâu? A. Var St:array[1 4,1 7] of char; B. Var St:string[256]; C. Var st:string[25]; D. Var st:char; Câu 46: Chọn khai báo xâu đúng? A. Var st: string; B. Var st: String[266]; C. Var st= string[200]; D. Var st=String; Câu 47: Cho xâu X:='kiem tra';. Tham chiếu đến phần tử thứ 5 của xâu X cho kết quả là: A. 5 B.'' C. ' ' D. ‘ ’ Câu 48: Cho xâu X:='ABCABC';. Ta viết X[4]=? A. A B. B C. 'A' D. ‘A’ Câu 49: Để cho kết quả là độ dài của một xâu X, ta sử dụng hàm (thủ tục) nào? A. Delete(x) B. Pos(x) C. Length(X) D. Copy(x) Câu 50: Trong NNLT Pascal, hàm Length(S) cho kết quả là: A. Độ dài xâu S B. Số lượng kí tự của xâu không tính dấu cách cuối cùng C. Độ dài tối đa của xâu S khi khai báo D. Số lượng kí tự của xâu không tính các dấu cách Câu 51: Hãy chọn phương án ĐÚNG khi thực hiện thủ tục Insert(s1,s2,vt); A. Chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt B. Chèn xâu s2 vào xâu s1 bắt đầu từ vị trí vt C. Nối xâu S1 vào xâu S2 D. Sao chép vào cuối s1 một phần của s2 từ vị trí vt Câu 52: Hàm Pos(s1,s2) có ý nghĩa là: A. Vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2 B. Chèn xâu s1 vào xâu s2
  6. 60. Các biến của chương trình con là: A. Biến toàn cục B. Biến cục bộ. C. Tham số hình thức. D. Tham số thực sự 61. Cho CTC sau: Procedure thutuc(a,b: integer); Begin End; Trong chương trình chính có thể gọi lại chương trình con như thế nào là hợp lệ: A. thutuc; B. thutuc(5,10); C. thutuc(1,2,3); D. thutuc(5); 62. Khi viết một chương trình muốn trả về một giá trị duy nhất ta nên dùng : A. Hàm. B. Thủ tục. C. Chương trình con. D. Thủ tục hoặc hàm 63. Cách khai báo nào sau đây là hợp lệ: A. Function Ham(x,y: integer): integer; B. Function Ham(x,y: integer); C. Function Ham(x,y: real): integer; D. Function Ham(x,y: real): Longint; 64. Trong lời gọi thủ tục, các tham số hình thức được thay bằng các giá trị cụ thể gọi là: A. Tham số giá trị B. Tham số hình thức C. Tham số biến D. Tham số thực sự. 65. Cho thủ tục sau: Procedure Thutuc(x,y,z: integer); Các biến x,y,z được gọi là: A. Tham số hình thức. B. Tham số thực sự. C. Biến toàn cục D. Biến cục bộ. 66. Trong chương trình chính, khi gọi một thủ tục các tham số biến phải: A. Khác kiểu, khác số lượng biến. B. Khác kiểu, cùng số lượng biến C. Cùng kiểu, khác số lượng biến. D. Cùng kiểu, cùng số lượng biến. 67. Cho chương trình sau Program VD; Var x, y : integer Procedure CT( Var m,n: integer); Var a, b: Integer; Begin End; Trong chương trình trên các biến cục bộ là A. x, y B. a, b C. m,n D. a, b, m, n 68. Để khai báo hàm trong Pascal bắt đầu bằng từ khoá: A. Procedure B. Function C. Program D. Var 69. Khẳng định nào sau đây là đúng: A. CTC nhất thiết phải có tham số hình thức, không nhất thiết phải có biến cục bộ. B. CTC nhất thiết phải có biến cục bộ C. CTC nhất thiết phải có tham số hình thức và biến cục bộ. D. CTC có thể có hoặc không có tham số hình thức cũng như biến cục bộ. 70. Nói về cấu trúc của chương trình con, khẳng định nào sau đây là đúng:
  7. Var a:array[1 100] of integer; I,n:byte; s:word; 0.25 Begin Write(‘Nhap so phan tu’,n); readln(n); For i:=1 to n do 0.25 Begin Write9’Nhap phan tu thu’,i); readln(a[i]); End; S:=0; For i:=1 to n do 0.25 If a[i] mod 2 =0 then s:=s+a[i]; Write(‘Tong la’,s); Readln. End. Bài 2. {đếm các ký tự A có trong xâu S) Program bt2; Var s:string; 0.25 I:byte; Begin Write(‘Nhap xau s’,); Readln(s); 0.25 Dem:=0; For i:=1 to length(s) do 0.25 If a[i]=’A’ then dem:=dem+1; Write(dem): 0.25 Readln; End. Bài 3. {Viết hàm tính ch vi, diện tích hình chữ nhật} Function chuvi(a,b:byte):word; 0.25 Begin Chuvi:=(a+b)*2; 0.25 End; Function dientich(a,b:byte):word; 0.25 Begin Dientich:=a*b; 0.25 End;