Đề cương ôn tập Tin học 11 - HKII 2021-2022

 

ĐỀ CƯƠNG TIN HỌC 11 HỌC KỲ II NĂM HỌC 2020 – 2021

Phần trắc nghiệm:

Chương III. Vòng lặp While … do

Câu 1.     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ì?

i := 0 ; while i <> 0 do write(i, ‘ ’) ;

A. Đưa ra màn hình 10 chữ số 0.                       B. Đưa ra màn hình một chữ số 0.

C. Không đưa ra thông tin gì.                            D. Lặp vô hạn việc đưa ra màn hình số 0.

Câu 2.     Trong ngôn ngữ lập trình Pascal, hãy cho biết đoạn chương trình sau làm công việc gì?

I := 0 ; T := 0 ;

While I < 10000 do

Begin

  T := T + I ;

  I := I + 2 ;

End ;

A. Tính tổng các số tự nhiên nhỏ hơn hoặc bằng 10000.

B. Tính tổng các số tự nhiên chẵn nhỏ hơn hoặc bằng 10000.

C. Tính tổng các số tự nhiên nhỏ hơn10000.

D. Tính tổng các số tự nhiên chẵn nhỏ hơn 10000.

Chương IV. Kiểu dữ liệu có cấu trúc

Bài 11 Kiểu mảng

Câu 3.     Đâu là khai báo trực tiếp đúng cho biến mảng 1 chiều:

A. var <tên biến mảng> : array <kiểu chỉ số> of <kiểu phần tử>;

B. type <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>;

C. var <tên biến mảng> : array[kiểu chỉ số] of <kiểu mảng>;

D. var <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>;

Câu 4.     Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất ?

A. Dùng trong vòng lặp với mảng để quản lí kích thước của mảng.

B. Dùng để quản lí kích thước của mảng.

C. Dùng trong vòng lặp với mảng.

D. Dùng để truy cập đến một phần tử bất kì trong mảng.

Câu 5.     Phương án nào dưới đây là khai báo mảng hợp lệ ?

A. var mang : integer of array[0..10];                  B. var mang : array[0..10] of integer;

C. var mang : array[0..10] : integer;                     D. var mang : array(0..10) : integer;

Câu 6.     Cho khai báo sau: Var a : array[0..16] of integer ;

Câu lệnh nào dưới đây sẽ in ra tất cả các phần tử của mảng trên ?

A. for k := 16 to 0 write(a[k]);                               B. for k := 1 to 16 do write(a[k]);

C. for k:= 0 to 15 do write(a[k]);                           D. for k := 0 to 16 do write(a[k]);

Câu 7.     Cho khai báo mảng như sau : Var a : array[0..11] of integer ;

Phương án nào dưới đây chỉ phần tử thứ 11 của mảng

A. a(11);                                B. a[10];                      C. a(11);                                D. a[11];

Câu 8.     Phát biểu nào sau đây là đúng ?

A. Mảng một chiều là một dãy hữu hạn các số nguyên.

B. Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu dữ liệu

C. Có thể dùng bất cứ một kiểu dữ liệu chuẩn nào để đánh chỉ số cho các phần tử của mảng một chiều.

D. Khi xây dựng kiểu mảng một chiều, người lập trình không cần khai báo kiểu dữ liệu của phần tử của mảng.

Câu 9.     Phát biểu nào dưới đây về kiểu mảng là phù hợp ?

A. Là một dãy hữu hạn các phần tử cùng kiểu.

B. Độ dài tối đa của mảng là 255.

C. Là một tập hợp các số nguyên.

D. Mảng không thể chứa kí tự.

Câu 10.     Phát biểu nào sau đây về mảng là không chính xác ?

A. Chỉ số của mảng không nhất thiết bắt đầu từ 1;

B.  Có thể xây dựng mảng nhiều chiều;

C. Xâu kí tự cũng có thể xem như là một loại mảng;

D.  Độ dài tối đa của mảng là 255;

Câu 11.     Cho biến t := random(200) – random(200). Hỏi biến t không nhận giá trị nào?

A. 0.                                       B. 200.                         C. -199.                                 D. 199.

Câu 12.     Thế nào là khai báo biến mảng gián tiếp ?

A. Khai báo mảng hai chiều.                            B.  Khai báo mảng xâu kí tự.

C. Khai báo thông qua kiểu mảng đã có.        D.  Khai báo mảng của các bản ghi.

Câu 13.     Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện việc nào trong các việc sau (A là mảng số có N phần tử) ?

S := 0 ;
For i := 1 to N do    S := S + A[i] ;

A.  Tính tổng các phần tử của mảng A.

B.  In ra màn hình mảng A.

C. Đếm số phần tử của mảng A.

D.  Không làm gì.

Câu 14.     Cho biến temp cùng kiểu với  hai phần tử A[5] và A[6] thuộc mảng. Đoạn chương trình tráo đổi giá trị A[5] và A[6] cho nhau là:

A. A[5] := temp; temp := A[6]; A[6] := A[5];       B. A[6] := A[5]; temp := A[6]; A[5] := temp;

C. temp := A[5]; A[5] := A[6]; A[6]:= temp;        D. A[5] := A[6]; temp := A[5]; A[6]:= temp;

Câu 15.     Hãy chọn phương án ghép đúng nhất. Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần

A. khai báo một hằng số là số phần tử của mảng.   B. khai báo chỉ số kết thúc của mảng.

C. khai báo chỉ số bắt đầu và kết thúc của mảng.   D. không cần khai báo gì, hệ thống sẽ tự xác định.

Bài 12 Kiểu xâu

Câu 16.     Trong ngôn ngữ lập trình Pascal, xâu kí tự không có kí tự nào gọi là ?

A.  Xâu không;

B.  Xâu rỗng; 

C.  Xâu trắng;

D.  Không phải là xâu kí tự;

Câu 17.     Biểu thức quan hệ nào dưới đây cho giá trị True?

A.‘large’ < ‘hight’;    B.‘MOOK’ < ‘MOOKR’;        C.‘ABC123CD’< ‘’;       D.‘math’ < ‘biological’;

Câu 18.      Biểu thức quan hệ nào dưới đây cho giá trị FALSE ?

A.  “MOOR” < “LOOK”;

B.  “MOOR” < “MOORK”;

C.  “AB123CD” < “ABCDAB”;

D.  “ABCDOR” < “ABDOR”;

Câu 19.     Cho khai báo sau: Var hoten : String;

Phát biểu nào sau đây là đúng?

A. Xâu có độ dài lớn nhất là 255.                              B. Cần phải khai báo kích thước của xâu sau đó.

C. Câu lệnh sai vì thiếu độ dài tối đa của xâu.        D. Xâu có độ dài lớn nhất là 0.

Câu 20.     Cho S=’tin_hoc_pascal’ hàm copy(s,5,3) cho giá trị bằng:

A. ‘n hoc’.                             B. ‘pascal’.                  C. ‘oc_’.                                D. ‘hoc’.

Câu 21.     Cho xâu S là ‘Hanoi-Vietnam’. Kết quả của hàm Pos(‘Vietnam’,S) là:

A. 6.                                       B. 7.                              C. 8.                                       D. 5.

Câu 22.     Hãy chọn phương án ghép đúng nhất. Thủ tục chuẩn Insert(S1,S2,vt) thực hiện

A.  chèn xâu S1 vào S2 bắt đầu từ vị trí vt ; 

B.  chèn xâu S2 vào S1 bắt đầu từ vị trí vt ; 

C.  nối xâu S2 vào S1;

D.  sao chép vào cuối S1 một phần của S2 từ vị trí vt ;

Câu 23.     Phát biểu nào dưới đây là sai ?

A. Xâu là một dãy các kí tự trong bảng mã ASCII. Kiểu xâu là một kiểu dữ liệu có cấu trúc.

B.  Có thể xem mỗi xâu có cấu trúc giống như một mảng một chiều mà mỗi phần tử của mảng là một kí tự trong bảng mã ASCII, được đánh chỉ số từ 1.

C.  Số lượng kí tự trong một xâu chính là độ dài của xâu.

D.  Các phép toán thao tác với xâu tương tự như các phép toán thao tác với mảng.

 

Câu 24.     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ì ? (giá trị của biến đếm)

dem := 0 ;
For ch := ‘a’ to ‘z’ do
    If pos(ch,S) <> 0 then dem := + 1 ;

A.  Đếm số lượng ký tự khác dấu cách của xâu S.

B.  Đếm số lượng ký tự là chữ cái in hoa của xâu S.

C.  Đếm số lượng ký tự là chữ cái thường trong xâu S.

D.  Đếm số lượng chữ cái thường khác nhau có trong xâu S.

Câu 25.     Cho str là một xâu kí tự, đoạn chương trình sau thực hiện công việc gì 

for i := 1 to length(str) – 1 do

str[i+1] := str[i] ;

A.  Dịch chuyển các kí tự của xâu về sau 1 vị trí;

B. Dịch chuyển các kí tự của sâu lên trước một vị trí;

C.  Khởi tạo lại mọi kí tự của xâu bằng kí tự đầu tiên;

D. Khởi tạo lại mọi kí tự của xâu bằng kí tự cuối cùng;

Chương V. Tệp và thao tác với tệp

Bài 14 Kiểu dữ liệu tệp

Bài 15. Thao tác với tệp

Câu 26.     Dữ liệu kiểu tệp

A. được lưu trữ trên ROM.                                                   B. chỉ được lưu trữ trên đĩa cứng.

C. được lưu trữ trên RAM.                                                   D. được lưu trữ trên bộ nhớ ngoài

Câu 27.     Để biết khi nào thì kết thúc tệp, người ta dùng hàm

A. eofln(f);                           B. eof(f);                      C. eoln(f);                             D. foe(f);

Câu 28.     Khi sử dụng kiểu dữ liệu tệp. Câu lệnh dùng thủ tục ghi có dạng:

A. Writeln(<danh sách kết quả>,(<biến tệp>);   B. Writeln(<danh sách kết quả>);

C. Writeln(<biến tệp>, <danh sách kết quả>);    D. Writeln(<tên tệp>);

Câu 29.     Giả sử a = 5; b = 9; c = 15; để ghi các giá trị trên vào tệp f có dạng là  5 9 15 ta sử dụng thủ tục ghi:

A. Write(f, a ‘’, b‘’, c);       B. Write(a, ‘  ’, b, ‘  ’, c);    C. Write(f, a, ‘  ’, bc);   D. Write(f, a, ‘ ’,b,’ ‘,c);

Câu 30.     Trong Pascal để đóng tệp ta dùng thủ tục

A. Stop(<tên tệp>);                                            B. Close(<danh sách biến tệp>);

C. Close(<tên tệp>);                                          D. Close(<tên biến tệp>);

Câu 31.     Khi sử dụng kiểu dữ liệu tệp. Câu lệnh dùng thủ tục đọc có dạng:

A. Read(<danh sách biến>, <biến tệp>);       B. Read(<danh sách biến>);

C. Read(<biến tệp>);                                         D. Read(<biến tệp>,<danh sách biến>);

Câu 32.     Dữ liệu kiểu tệp:

A. Không bị mất khi tắt máy hoặc mất điện.  B. Sẽ mất hết khi tắt điện đột ngột.

C. Sẽ mất hết khi tắt máy.                                 D. Sẽ bị mất khi tắt trình biên dịch Pascal.

Câu 33.     Vị trí của con trỏ tệp sau lời gọi thủ tục Reset

A. Nằm ở cuối tệp.   B. Nằm ở đầu tệp.    C. Nằm ở giữa tệp.      D. Nằm ngẫu nhiên ở bất kỳ vị trí nào.

Câu 34.     Trong Pascal, khi khai báo tệp văn bản ta sử dụng cú pháp?

A. Var <tên tệp> : Text;                                    B. Var <tên tệp> : String;

C. Var <tên biến tệp> : String;                         D. Var <tên biến tệp> : Text;

Câu 35.     Để gắn tệp output.txt cho biến tệp f1ta sử dụng lệnh:

A. Assign(f1,‘output.txt’);                                B. Assign(‘output.txt’,f1);

C. output.txt := f1;                                             D. f1 := ‘output.txt’;

Câu 36.     Hãy chọn các thao tác đọc trên tệp văn bản chứa dữ liệu là:

A. Thông báo mở file để ghi dữ liệu mới => Gán biến tệp với tên tệp => Ghi dữ liệu mới => Đóng tệp.

B. Gán biến tệp với tên tệp => Thông báo mở tệp để đọc => Đọc dữ liệu trong tệp => Đóng tệp.

C. Thông báo mở file để ghi dữ liệu mới => Ghi dữ liệu mới => Gán biến tệp với tên tệp => Đóng tệp.

D. Gán biến tệp với tên tệp => Thông báo mở file để ghi dữ liệu mới => Ghi dữ liệu mới => Đóng tệp.

Câu 37.     Để biết con trỏ tệp đã ở cuối dòng của tệp f hay chưa, ta sử dụng hàm:

A. eof(f, ‘trai.txt’);              B. eof(f);                               C. foe(f);                             D. eoln(f);


Phần tự luận:

Câu 1.         Viết chương trình nhập sỉ số lớp theo từng khối. Thông báo ra màn hình :

- Sỉ số lớp lớn nhất của từng khối. Liệt kê danh sách những lớp có sỉ số lớn nhất?

- Tổng số học sinh từng khối.

Câu 2.         Viết chương tình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S (không phân biệt chữ hoa hay chữ thường).

Câu 3.         Viết chương trình nhập từ bàn phím số nguyên dương N (N ≤100) và dãy A gồm N số nguyên A1...AN có giá trị tuyệt đối không lớn hơn 1000. Hãy cho biết dãy A có phải là một cấp số cộng hay không và thông báo kết quả ra màn hình.

Câu 4.         Dùng hàm Random tạo 1000 số ngẫu nhiên có giá trị tuyệt đối không lớn hơn 500 lưu vào mảng. Sau đó ghi ra tệp văn bản SOCHAN.TXT các số chẳn và tệp SOLE.TXT các số lẻ theo cấu trúc sau:

- Mỗi dòng có 8 số.

- Các số cách nhau 2 khoảng trắng.


Bài 1
var lop:array[1..50] of byte;
    i,n,max:byte;
    tong:integer;
Begin
 write('Nhap so lop cua khoi 11');
 readln(n);
 writeln('Nhap si so cua tung lop');
 for i:=1 to n do
   begin
       write('Nhap si so lop 11A',i,':');
       readln(lop[i]);
   end;
 max:=lop[1];
 for i:=2 to n do
       if max<lop[i] then max:=lop[i];
 Writeln('Lop co so hoc sinh nhieu nhat la: ',max);
 tong:=0;
 Writeln('Danh sach cac lop co si so hoc sinh nhieu nhat:');
 for i:=1 to n do
    begin
         tong := tong + lop[i];
         if lop[i]=max then write('11A',i,'   ');
    end;
 writeln;
 write('Tong so hoc sinh cua toan khoi 11 la:', tong);
 readln;
 End.

Program bai1;

Bài 2:

Program bai2;
var  s:string;
     a:array['A'..'Z']of byte;
     i:byte; j:char;
Begin
  write('Nhap xau ki tu:');
  readln(s);
  for i:=1 to length(s) do
     s[i]:=upcase(s[i]);

  for i:=1 to length(s) do
     if (s[i]>='A') and (s[i]<='Z') then a[s[i]]:=a[s[i]]+1;

  for j:='A' to 'Z' do
    if a[j]>0 then writeln('Ki tu ',j,' xuat hien ',a[j], ' lan');
  readln;
End.

Bài 3

Program bai3;
var a:array[1..100] of integer;
  i,n,d,dem:integer;


Begin
   write('Nhap so phan tu cua day so:');
   readln(n);

   while not( (n>1)  and (n<=100)) do
      begin
         write('Nhap lai so phan tu cua day so:');
         readln(n);
      end;
   writeln('Nhap gia tri tung phan tu cua day so');
   for i:=1 to n do
      begin

         write('Nhap gia tri phan tu thu ',i,':');
         readln(a[i]);
        while abs(a[i])>1000 do
                begin
                        write('Nhap lai gia tri phan tu thu ',i,':');
                         readln(a[i]);
               end;
end;

   d:=a[2]-a[1];
   dem:=0;
   for i:=2 to n do
      if a[i]-a[i-1]= d then dem :=dem +1;
   if dem=n-1 then writeln('Day so vua nhap la cap so cong')
      else writeln('Day so vua nhap khong la cap so cong');
  readln;
End.

Bài 4

Program cau4;

Var f,g:text;

  A:array[1..1000] of integer;

 ch,le,i: integer;

Begin

Randomize;

For i:=1 to 1000 do

A[i]:=random(501)-random(501);

Assign(f,’sochan.txt’);

Assign(g,’sole.txt’);

Rewrite(f);

Rewrite(g);

ch:=0; le:=0;

For i:=1 to 1000 do

If (a[i] mod 2= 0)  and  then

  begin    

     Write(f,a[i],'    ');

     ch:=ch+1;

     If ch mod 8 = 0 then writeln(f);

   end

else    

  begin    

     Write(g,a[i],'    ');

     le:=le+1;

     If le mod 8 = 0 then writeln(g);

   end;

Close(f);

Close(g);

End.

Không có nhận xét nào:

Đăng nhận xét