Đề thi HK1 môn Tin học 11 năm 2021-2022 - Trường THPT Thanh Đa
-
Hocon247
-
40 câu hỏi
-
60 phút
-
38 lượt thi
-
Trung bình
Tham gia [ Hs Hocon247.com ] - Cộng Đồng Luyện Thi Trực Tuyến để được học tập những kiến thức bổ ích từ HocOn247.com
Phát biểu nào sau đây về chức năng của kiểu bản ghi là phù hợp nhất?
Kiểu dữ liệu bản ghi dùng để mô tả hay lưu trữ các đối tượng có cùng một số thuộc tính (thông tin), mà các thuộc tính có thể có các kiểu dữ liệu khác nhau.
Phát biểu nào sau đây về bản ghi là không phù hợp?
Kiểu dữ liệu bản ghi dùng để mô tả hay lưu trữ các đối tượng có cùng một số thuộc tính cần quản lý mà các thuộc tính có thể có các kiểu dữ liệu khác nhau. Đối với kiểu mảng thì dùng để mô tả các đối tượng có cùng thuộc tính nhưng kiểu dữ liệu giống nhau. Vì vậy không thể dùng bản ghi để thay thế mảng.
Cho biến bản ghi sinh_vien gồm các trường ho_ten, ngay_sinh. Biểu thức nào truy cập đến trường ho_ten của bản ghi này?
Cấu trúc tham chiếu đến một trường trong bản ghi là: sinh_vien.ho_ten;
Phát biểu nào dưới đây là đúng khi nói về kiểu bản ghi?
Kiểu bản ghi là một kiểu dữ liệu có cấu trúc. Mỗi bản ghi mô tả một đối tượng, mỗi bản ghi có thể gồm một số thành phần gọi là trường, mỗi trường mô tả một thuộc tính của đối tượng. Giống như kiểu mảng, các trường tạo thành một bản ghi có thể có các kiểu dữ liệu khác nhau.
Trong ngôn ngữ lập trình Pascal, có thể gán giá trị cho bản ghi bằng cách?
Trong ngôn ngữ lập trình Pascal, có thể gán giá trị cho bản ghi bằng cách:
+ Gán giá trị cho từng trường: có thể thực hiện bằng lệnh gán hoặc nhập từ bàn phím
+ Dùng lệnh trực tiếp: nếu A. B là hai bản ghi cùng kiểu, ta có thể gán giá trị của B cho A bằng câu lệnh A:= B;
Trong ngôn ngữ lập trình Pascal, để khai báo kiểu bản ghi để xử lý danh sách cán bộ của một cơ quan, khai báo kiểu bản ghi nào trong các khai báo sau là đúng? (Bản ghi có cấu trúc gồm 5 trường: Họ tên, năm sinh, địa chỉ, mức lương, phụ cấp)
Cấu trúc khai báo kiểu bản ghi:
Type = record
: ;
…
: ;
End;
Vậy đáp án ở đây là A
Type CanBo = Record
HoTen : String[30] ;
Namsinh : Integer;
Diachi : String[100] ;
MucLuong : Real ;
PhuCap : Real;
End;
Câu lệnh nào trong các câu lệnh sau không dùng để gán giá trị cho trường của bản ghi A? (với bản ghi A có 3 trường là Ten, Lop, Diem)
Để gán giá trị cho trường có thể thực hiện bằng lệnh gán giá trị cụ thể hoặc nhập từ bàn phím (readln).
Trong kiểu dữ liệu bản ghi, mỗi bản ghi thường được dùng để?
Trong kiểu dữ liệu bản ghi, mỗi bản ghi thường dùng để mô tả hay lưu trữ các đối tượng có cùng một số thuộc tính cần quản lý mà các thuộc tính có thể có các kiểu dữ liệu khác nhau.
Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho:
Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho truy cập đến phần tử bất kì. Theo cú pháp Tên mảng[chỉ số];
Khai báo mảng hai chiều nào sau đây là sai?
Các cách khai báo mảng hai chiều:
+ Cách 1: Trực tiếp
Var : array [kiểu chỉ số hàng, kiểu chỉ số cột] of ;
+ Cách 2: Gián tiếp
Type : array [kiểu chỉ số hàng, kiểu chỉ số cột] of ;
Var : ;
Cho khai báo mảng như sau: Var a : array[0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng?
Tham chiếu (truy cập) đến một phần tử bất kì trong mảng.
Cú pháp: Tên mảng[chỉ số];
Cho khai báo mảng và đoạn chương trình như sau:
Var a : array[0..50] of real ;
k
:= 0 ;
for i := 1 to 50 do
if a[i] > a[k] then k := i ;
Đoạn chương trình trên thực hiện công việc gì dưới đây?
Var a : array[0..50] of real ; {khai báo mảng a}
k := 0 ; {gán chỉ số 0 cho k}
for i := 1 to 50 do {vòng lặp chạy từ 1 đến 50}
if a[i] > a[k] then k := i ; {kiểm tra từ phần tử thứ 2 đến phần tử 50 so sánh với phần tử đầu và đưa ra chỉ số lớn nhất}
Phương án nào dưới đây là khai báo mảng hợp lệ?
Cấu trúc khai báo mảng trực tiếp:
Var : array [kiểu chỉ số] of ;
Trong đó:
+ Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1..n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2).
+ Kiểu phần tử là kiểu của các phần tử trong mảng.
Phát biểu nào sau đây về mảng là không chính xác?
Chỉ số của mảng không nhất thiết bắt đầu từ 1 tùy theo người lập trình. Xâu kí tự cũng có thể xem như mảng một chiều, mỗi phần tử là một kí tự. Trong lập trình có thể xây dựng mảng nhiều chiều. Và không có giới hạn cụ thể về độ dài của mảng.
Để khai báo số phần tử của mảng trong Pascal, người lập trình cần gì?
Để khai báo số phần tử của mảng trong Pascal (kiểu chỉ số), người lập trình cần khai báo chỉ số bắt đầu và kết thúc của mảng. Kiểu chỉ số thường là một đoạn số nguyên liên tục có dạng n1...n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và cuối (n1 ≤ n2).
Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp?
Mảng một chiều là một 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ả ta 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ó.
Cho khai báo sau: Var hoten : String;
Phát biểu nào dưới đây là đúng ?
Trong mô tả xâu có thể bỏ qua phần khai báo độ dài, khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.
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:
Thủ tục chuẩn Insert(S1,S2,vt) thực hiện chèn xâu S1 vào S2 bắt đầu từ vị trí vt.
Đoạn chương trình sau in ra kết quả nào ?
Program Welcome ;
Var a : string[10];
Begin
a := ‘tinhoc ’;
writeln(length(a));
End.
Hàm Length(s) là hàm cho biết độ dài của xâu s (số kí tự có trong xâu bao gồm cả dấu cách, dấu -, các dấu đặc biệt).
Xâu ‘tinhoc ’ có 7 kí tự nên kết quả chương trình là 7.
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 := length(str) downto 1 do
write(str[i]) ;
Đoạn chương trình trên dùng để in từng kí tự ra màn hình theo thứ tự ngược, sử dụng vòng lặp chạy từ kí tự cuối về kí tự đầu. Mỗi lần chạy in ra một kí tự.
Trong ngôn ngữ lập trình Pascal, khai báo nào trong các khai báo sau là sai khi khai báo xâu kí tự ?
Cấu trúc khai báo kiểu xâu
Var : string [độ dài lớn nhất của xâu];
Trong đó: Biến xâu được đặt theo quy tắc đặt tên trong Pascal.
Độ dài xâu có thể có hoặc không, độ dài lớn nhất không quá 255 kí tự.
Trong ngôn ngữ lập trình Pascal, sau khi chương trình thực hiện xong đoạn chương trình sau, giá trị của biến S là ?
S := ‘Ha Noi Mua thu’;
Delete(S,7,8);
Insert(‘Mua thu’, S, 1);
+ Câu lệnh Delete(S,7,8); có nghĩa là xóa 8 kí tự trong xâu S bắt đầu từ vị trí thứ 7 -> xâu S còn lại sau khi thực hiện lệnh là ‘Ha Noi’
+ Câu lệnh Insert(‘Mua thu’, S, 1); có nghĩa là chèn xâu ‘Mua thu’ vào xâu S trên tại vị trí thứ nhất -> giá trị biến S sau khi thực hiện xong chương trình là ‘Mùa thu Ha Noi’.
Chương trình dịch Pascal sẽ cấp phát bao nhiêu byte bộ nhớ cho các biến trong khai báo sau?
VAR
M, N, P : Integer;
A, B: Real;
C: Longint;
Trong khai báo trên, chương trình dịch Pascal sẽ cấp phát 22 byte bộ nhớ cho các biến
Biến x nhận giá trị nguyên trong đoạn [-300 ; 300], kiểu dữ liệu nào sau đây là phù hợp nhất để khai báo biến x?
Biến x nhận giá trị nguyên trong đoạn [-300 ; 300], kiểu dữ liệu phù hợp nhất để khai báo biến x là Integer
Biến X nhận giá trị là 0.7. Khai báo nào sau đây là đúng?
Biến X nhận giá trị là 0.7. Khai báo đúng là var X: real;
Biến X có thể nhận các giá trị 1; 100; 150; 200 và biến Y có thể nhận các giá trị 1; 0.2; 0.3; 10.99. Khai báo nào trong các khai báo sau là đúng nhất?
Biến X có thể nhận các giá trị 1; 100; 150; 200 và biến Y có thể nhận các giá trị 1; 0.2; 0.3; 10.99. Khai báo đúng nhất là Var X: byte; Y: real;
Biến x có thể nhận các giá trị -5, 100, 15, 20. Hãy chọn kiểu dữ liệu phù hợp với biến x?
Biến x có thể nhận các giá trị -5, 100, 15, 20. Kiểu dữ liệu phù hợp với biến x là Integer
Bộ nhớ sẽ cấp phát cho các biến dưới đây tổng cộng bao nhiêu byte?
Var
x,y:integer;
c:char;
ok:boolean;
z: real;
Bộ nhớ sẽ cấp phát cho các biến tổng cộng 12 byte
Trong 1 chương trình, biến M có thể nhận các giá trị: 10, 15, 20, 30, 40, và biến N có thể nhận các giá trị: 1.0 , 1.5, 2.0, 2.5 , 3.0. Khai báo nào trong các khai báo sau là đúng?
Trong 1 chương trình, biến M có thể nhận các giá trị: 10, 15, 20, 30, 40, và biến N có thể nhận các giá trị: 1.0 , 1.5, 2.0, 2.5 , 3.0. Khai báo đúng là Var M: Word; N: Real;
Danh sách các biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau bởi:
Trong khai báo biến, danh sách các biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau bởi dấu phẩy (,). Sau từ khóa var có thể khai báo nhiều danh sách biến khác nhau, tức là cấu trúc : ; có thể xuất hiện nhiều lần.
Cho đoạn chương trình:
Begin
a := 100;
b := 30;
x := a div b;
Write(x);
End.
Cho biết kết quả sau khi thực hiện lệnh:
Ta có a := 100; gán cho a giá trị là 100
b := 30; gán cho b giá trị là 30
x := a div b =100 div 30 =3 (div là phép lấy nguyên)
Cho biểu thức sau: (a mod 3 = 0) and (a mod 4 = 0). Số a nhận giá trị nào sau đây để biểu thức cho kết quả là TRUE?
Ta có:
a mod 3 = 0 → phần dư bằng 0 → a chia hết cho 3
a mod 4 = 0 → Phần dư bằng 0 → a chia hết cho 4
⇒ a chia hết cho 12
Để tính diện tích S của hình vuông có cạnh A với giá trị nguyên nằm trong phạm vi từ 10 đến 100, cách khai báo S nào dưới đây là đúng và tốn ít bộ nhớ nhất.
Hình vuông có cạnh A với giá trị nguyên -> kiểu nguyên (integer, longint, byte, word). Vì nằm trong phạm vi từ 10 đến 100 nên để tốn ít bộ nhớ nhất ta chọn kiểu word (0 đến 65535).
Trong Turbo Pascal, đang ở cửa sổ chương trình nguồn muốn xem lại màn hình Output:
Trong Turbo Pascal, đang ở cửa sổ chương trình nguồn muốn xem lại màn hình Output ta nhấn tổ hợp phím Alt + F5.
Hãy chọn cách dùng sai.
Muốn dùng biến X lưu giá trị nhỏ nhất trong các giá trị của hai biến A, B có thể dùng cấu trúc rẽ nhánh như sau:
Câu lệnh if A B thì không đưa ra được giá trị nhỏ nhất trong hai biến.
Hãy chọn phương án ghép đúng.
Với cấu trúc rẽ nhánh IF THEN , câu lệnh đứng sau THEN được thực hiện khi:
Cấu trúc rẽ nhánh IF THEN , câu lệnh đứng sau THEN được thực hiện khi điều kiện được tính toán và cho giá trị đúng. Nếu sai câu lệnh không được thực hiện.
Đoạn chương trình sau giải bài toán nào?
For I:=1 to M do
If (I mod 3 = 0) and (I mod 5 = 0) then
T := T + I;
Đoạn chương trình:
For I:=1 to M do {I chạy trong phạm vi từ 1 đến M}
If (I mod 3 = 0) and (I mod 5 = 0) then {kiểm tra I chia hết cho 3 và cho 5 không}
T := T + I; {Cộng dồn vào tổng}
Tính tổng S = 1 + 2 + 3 + … + n + … cho đến khi S > 108. Điều kiện nào sau đây cho vòng lặp while – do là đúng:
Cấu trúc câu lệnh While - do có dạng:
While do ;
Ý nghĩa: Câu lệnh được thực hiện khi điều kiện được thỏa mãn. Do vậy mỗi lần thực hiện câu lệnh nó sẽ kiểm tra điều kiện, đúng sẽ thực hiện, sai thì dừng vòng lặp.
Mà điều kiện của bài là S > 108 vì vậy nó sẽ kiểm tra S 108 thì dừng. Trong Pascal S
Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên cấu trúc cơ bản là:
Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên cấu trúc cơ bản là cấu trúc tuần tự, cấu trúc rẽ nhánh, cấu trúc lặp. Tùy theo từng bài toán mà lựa chọn cấu trúc cho hợp lí.
Hãy chọn phương án ghép đúng nhất . Để mô tả cấu trúc rẽ nhánh trong thuật toán, nhiều ngôn ngữ lập trình bậc cao dùng câu lệnh IF – THEN, sau IF là . Điều kiện là
Câu lệnh IF – THEN, sau IF là . Điều kiện là biểu thức lôgic (biểu thức cho giá trị đúng hoặc sai)