I. TRẮC NGHIỆM (3 điểm) Khoanh tròn vào chữ cái trước câu trả lời đúng: Câu 1: Chọn đáp đúng nhất, những tên do người lập trình đặt cho các đối tượng, đại lượng trong chương trình bao gồm: A. Tên biến B. Tên hằng C. Tên chương trình D. Tất cả các đáp án trên Câu 2: Đâu là từ khóa trong các từ sau: A. program B. Begin_end C. start D. writeln Câu 3: Chương trình Pascal nào sau đây là hợp lệ: A. Begin end. B. Begin Var t:integer Write(‘Chao cac ban’); end. C. Begin Program ct_thu; Write(‘Chao cac ban’); end. D. Program ct1; Begin Write(‘Chao cac ban’); end. Câu 4: Để viết biểu thức toán học 3x3 + 2x + 5 trong ngôn ngữ lập trình Pascal, cách viết nào sau đây là đúng? A. 3xxx + 2x + 5 B. 3*3*x + 2*x +5 C. 3*x^3 + 2*x + 5 D. 3*x*x*x + 2*x + 5 Câu 5. Để nhập giá trị từ bàn phím cho biến a. Em thực hiện câu lệnh? A. Write (a) ; B. Cả C và D đều đúng ; C. Readln(a) ; D. Read(a); Câu 6: Em hãy cho biết giá trị của phép toán 5/6 trong pascal sau thuộc kiểu dữ liệu nào? A. real B. integer C. byte D. string Câu 7: Em hãy chỉ ra khai báo nào sai trong các khai báo sau? A. var so_thuc: integer; B. Const x: real ; C. const x=2; D. var x:real; Câu 8: Giả sử biến X được khai báo có kiểu dữ liệu là số nguyên, phép gán nào sau sau đây hợp lệ? A. X:=123; B. X:=’246/2’ ; C. X:=246/2; D. X:=’123’; Câu 9. Tính diện tích hình chữ nhật có hai cạnh A và B nhập vào từ bàn phím. Em hãy sắp xếp các bước sau để được thuật toán đúng: B1: S ← 2xAxB; B2: Nhập A, B; B3: Kết thúc ; A. B1 - B2 - B3 B. B2 - B3 - B1 C. B3 - B2 - B1 D. B2 - B1 - B3 Câu 10: Quá trình giải bài toán trên máy tính gồm mấy bước? A. 4 B. 3 C. 2 D. 1 Câu 11: Điều kiện hoặc biểu thức nào sau đây cho kết quả sai? A. 10 chia hết cho 2 B. -6 là số âm C. 152>200 D. 15+2>17 Câu 12: Nếu trước đó x=2, hãy xác định giá trị của x sau khi thực hiện lệnh sau: if (1+2=3) then x:=x+1; A. 3 B. 2 C. 4 D. 1 II. TỰ LUẬN (7 điểm) Câu 1 (2 điểm): Em hãy xác định các biến cần khai báo và kiểu dữ liệu tương ứng cho bài toán sau: Nhập vào từ bàn phím 2 số tự nhiên a và b, in ra màn hình tổng hai số đó............................................................................................................................ Câu 2 (2 điểm): Em hãy tìm lỗi sai trong câu lệnh điều kiện sau và viết lại cho đúng: a) if a :=1 then y:=x.......................................................................................................... b) if x>5 then write(x); else write(x-1); ................................................................................. Câu 3 (3 điểm): Cho bài toán sau: Nhập vào từ bàn phím hai số nguyên a và b , kiểm tra a chia hết cho b hay không: Nếu a chia hết cho b thì in ra màn hình “a chia hết cho b”, ngược lại thì in ra “a không chia hết cho b”. a) Hãy xác định bài toán và mô tả thuật toán để giải quyết bài toán trên. b) Viết câu lệnh điều kiện để thực hiện thuật toán đó. c) Viết chương trình bằng ngôn ngữ lập trình Pascal để giải bài toán trên.
1 câu trả lời
**Trắc nghiệm**
1: Chọn đáp đúng nhất, những tên do người lập trình đặt cho các đối tượng, đại lượng trong chương trình bao gồm: => Đáp án: D. Tất cả các đáp án trên
2: Đâu là từ khóa trong các từ sau: => Đáp án: A. program
3: Chương trình Pascal nào sau đây là hợp lệ: => Đáp án: D
Program ct1;
Begin
Write(‘Chao cac ban’);
end.
4: Để viết biểu thức toán học 3x3 + 2x + 5 trong ngôn ngữ lập trình Pascal, cách viết nào sau đây là đúng? => Đáp án: B. 3*3*x + 2*x +5
5: Để nhập giá trị từ bàn phím cho biến a. Em thực hiện câu lệnh? => Đáp án: C. Readln(a);
6: Em hãy cho biết giá trị của phép toán 5/6 trong pascal sau thuộc kiểu dữ liệu nào? => Đáp án: A. Real
7: Em hãy chỉ ra khai báo nào sai trong các khai báo sau? => Đáp án: C. const x=2;
8: Giả sử biến X được khai báo có kiểu dữ liệu là số nguyên, phép gán nào sau sau đây hợp lệ? => Đáp án: A. X:=123;
9: Tính diện tích hình chữ nhật có hai cạnh A và B nhập vào từ bàn phím. Em hãy sắp xếp các bước sau để được thuật toán đúng: => Đáp án: D. B2-1-3
10: Quá trình giải bài toán trên máy tính gồm mấy bước? => Đáp án: B. 3
11: Điều kiện hoặc biểu thức nào sau đây cho kết quả sai? => Đáp án: D. 15+2>17
12: Nếu trước đó x=2, hãy xác định giá trị của x sau khi thực hiện lệnh sau: => Đáp án: A. 3
--------------------------------------------
**Tự Luận**
1: Em hãy xác định các biến cần khai báo và kiểu dữ liệu tương ứng cho bài toán sau: Nhập vào từ bàn phím 2 số tự nhiên a và b, in ra màn hình tổng hai số đó:
=> Giải
var a, b: integer;
2: Em hãy tìm lỗi sai trong câu lệnh điều kiện sau và viết lại cho đúng:
=> Giải
a) if a:=1 then y:=x => Sửa lại: if a=1 then y:=x;
b) if x>5 then write(x); else write(x-1); => Sửa lại: if x>5 then write(x) else write(x-1);
3: Cho bài toán sau: Nhập vào từ bàn phím hai số nguyên a và b , kiểm tra a chia hết cho b hay không: Nếu a chia hết cho b thì in ra màn hình “a chia hết cho b”, ngược lại thì in ra “a không chia hết cho b”. a) Hãy xác định bài toán và mô tả thuật toán để giải quyết bài toán trên. b) Viết câu lệnh điều kiện để thực hiện thuật toán đó. c) Viết chương trình bằng ngôn ngữ lập trình Pascal để giải bài toán trên.
=> Giải
a)
*Xác định bài toán:
Input : hai số nguyên a và b.
Output : a chia hết cho b hoặc a không chia hết cho b.
* Mô tả thuật toán :
1: nhập hai số nguyên a và b.
2:
- nếu a mod b = 0 thì thông báo a chia hết cho b.
- ngược lại thông báo a không chia hết cho b.
3: kết thúc.
b) Câu lệnh điều kiện để thực hiện thuật toán đó:
=> Giải
if a mod b=0 then writeln('a chia het cho b') else writeln('a khong chia het cho b');
c) Viết chương trình bằng ngôn ngữ lập trình Pascal để giải bài toán trên:
=> GIải
Program Chiahet;
uses crt;
var a, b: integer;
begin
clrscr;
write('nhap so duong a: ');
readln(a);
write('nhap so duong b: ');
readln(b);
if a mod b=0 then writeln('a chia het cho b')
else writeln('a khong chia hết cho b');
readln;
end.