Em hãy cho biết cấu trúc của một chương trình viết bằng ngôn ngữ lập trình turbo Pascal NNLT TP gồm mấy thành phần cơ bản?. Xác định các tên chuẩn, tên dành riêng mà em đã học.. Chỉ ra c
Trang 1SỞ GD & ĐT CAO BẰNG
MÔN: TIN HỌC - LỚP 11 NĂM HỌC 2010 – 2011
(Thời gian: 45 phút) Câu 1: (3 điểm)
a Em hãy cho biết cấu trúc của một chương trình viết bằng ngôn ngữ lập trình turbo Pascal (NNLT TP) gồm mấy thành phần cơ bản?
b Viết cấu trúc khai báo biến?
c Viết cấu trúc câu lệnh If dạng đủ trong NNLT TP?
Câu 2: (3 điểm)
Cho chương trình pascal sau:
Program chuong_Trinh_1;
Var x: byte;
y: real;
Begin
Write('x= '); readln(x);
Y:=(((x+2)*x+3)*x+4)*x+5;
Writeln('y=',y);
End
Em hãy :
a Xác định các tên chuẩn, tên dành riêng mà em đã học ?
b Em hãy viết biểu thức mà chương trình sẽ đưa ra ?
Câu 3: (3 điểm)
Cho chương trình pascal sau:
Var x, y, z = integer; ( *dong 1*)
z = x*y; ( *dong 5*) write( z ); ( *dong 6*)
Em hãy :
a Chỉ ra các lỗi dịch chương trình trên?
b Theo em trong chương trình trên có xảy ra lỗi thực hiện chương trình không? ( nếu có) hãy sửa lại?
Câu 4: (1 điểm)
Viết chương trình tính tổng các ước số của một số nguyên dương N được nhậpvào từ bàn phím (không kể ước là chính nó)
-HẾT -Từ viết tắt sử dụng trong đề : NNLT TP (Ngôn Ngữ Lập Trình Turbo Pascal)
(GV coi thi không giải thích gì thêm)
Trang 2SỞ GD & ĐT CAO BẰNG
TRƯỜNG THPT QUẢNG UYÊN
ĐỀ THI KIỂM TRA HỌC KỲ I MÔN: TIN HỌC - LỚP 11 NĂM HỌC 2010 – 2011
(Thời gian: 45 phút) Câu 1: (3 điểm)
a Em hãy khái niệm tên dành riêng, tên chuẩn trong Ngôn Ngữ Lập Trình Turbo Pascal (NNLT TP)?
b Viết cấu trúc, nêu hoạt động của câu lệnh lặp lùi trong NNLT TP?
Câu 2: (3 điểm)
Cho chương trình pascal sau:
Var i: word;
s: integer;
Begin
S:=0;
For i:= 5 downto 1 do s:= s+i;
Write(‘ tong la:’,s);
Readln
End.
Em hãy :
a Xác định các tên chuẩn, tên dành riêng mà em đã học ?
b Dự đoán kết quả của chương trình ?
Câu 3: (3 điểm)
Cho chương trình pascal sau:
Var x, y, z = integer; ( *dong 1*)
z = x*y; ( *dong 5*) write( z ); ( *dong 6*)
Em hãy :
a Chỉ ra các lỗi dịch chương trình trên?
b Theo em trong chương trình trên có xảy ra lỗi thực hiện chương trình không? ( nếu có) hãy sửa lại?
Câu 4: (1 điểm)
Viết chương trình tính tổng các ước số của một số nguyên dương N được nhậpvào từ bàn phím (không kể ước là chính nó)
-HẾT -Từ viết tắt sử dụng trong đề : NNLT TP (Ngôn Ngữ Lập Trình Turbo Pascal)
(GV coi thi không giải thích gì thêm)
Trang 3ĐÁP ÁN + THANG ĐIỂM
ĐIỂM
Câu 1 :(3 điểm)
a Tên dành riêng (từ khóa): là những tên được NNLT qui định dùng với ý nghĩa
xác định, người lập trình ko được dùng với ý nghĩa khác
Tên chuẩn: là những tên được NNLT qui định dùng với ý nghĩa nào đó, người
lập trình có thể định nghĩa lại để dùng với ý nghĩa khác
b cấu trúc lặp Dạng lùi:
FOR <biến đếm>:= <giá trị cuối> DOWNTO <giá trị đầu> DO <lệnh cần lặp>;
Trong đó:
+ <giá trị đầu> phải nhỏ hơn <giá trị cuối>
+ Biến đếm là kiểu nguyên, kí tự hoặc miền con
- Hoạt động:
Giá trị biến đếm tự động tăng(giảm) 1 đơn vị sau khi thực hiện câu lệnh cần lặp.
0.75 đ 0.75 đ 0.75 đ
0.75 đ
Câu 2 :(3 điểm)
a Tên dành riêng (từ khóa): Var, Begin, For, downto, do, End
Tên chuẩn: integer, word
b kết quả chương trình là 15
1 đ
1 đ
1 đ
Câu 3 : (3 điểm)
Lỗi dịch chương trình: ( *dong 1*), ( *dong 3*), ( *dong 5*)
Chương trình trên có xảy ra lỗi thực hiện chương trình
2 đ
1 đ
Câu 4 :(1điểm)
Var N, i: word; S: longint;
Begin write(‘Nhap N ’); Readln(N);
S:= 0;
For i:= 1 to N div 2 Do
if N mod i = 0 then S:=S+i;
writeln(‘Tong tinh duoc la: ’, S);
End.
0.25 đ 0.5 đ
0.25 đ
Trang 4ĐÁP ÁN THANG
ĐIỂM
Câu 1 :(3 điểm)
a Cấu trúc chung
Có 2 phần:
[<phần khai báo>]
<phần thân chtrình>
b Var <danh sách biến>: <kiểu dữ liệu>;
c Dạng đủ:
IF <điều kiện> THEN <câu lệnh 1> ELSE < câu lệnh 2>;
1 đ
1 đ
1 đ
Câu 2 :(3 điểm)
a Tên dành riêng (từ khóa): Program, Var, Begin, End
Tên chuẩn: byte, real
b Y= x 4 + 3x 3 + 2x 2 + 4x + 5
1 đ
1 đ
1 đ
Câu 3 : (3 điểm)
Lỗi dịch chương trình: ( *dong 1*), ( *dong 3*), ( *dong 5*)
Chương trình trên có xảy ra lỗi thực hiện chương trình
2 đ
1 đ
Câu 4 :(1điểm)
Var N, i: word; S: longint;
Begin write(‘Nhap N ’); Readln(N);
S:= 0;
For i:= 1 to N div 2 Do
if N mod i = 0 then S:=S+i;
writeln(‘Tong tinh duoc la: ’, S);
End.
0.25 đ 0.5 đ
0.25 đ