A. Phần trắc nghiệm: (2,0 điểm) Hãy chọn một đáp án đúng nhất.
Câu 1. Trong Pascal, câu lệnh nào sau đây được viết đúng?
A. for i:= 4 to 1 do writeln(‘A’);
B. for i= 1 to 10 writeln(‘A’);
C. for i:= 1 to 10 do writeln(‘A’);
D. for i to 10 do writeln(‘A’);
Câu 2. Trong câu lệnh lặp: For i := 1 to 10 do j:= j + 2; write( j );
Khi kết thúc câu lệnh lặp trên, câu lệnh write( j ); được thực hiện bao nhiêu lần?
A. 10 lần
B. 5 lần
C. 1 lần
D. Không thực hiện.
Câu 3. Cho đoạn chương trình:
J:= 0;
For i:= 1 to 5 do J:= j + i;
Sau khi thực hiện đoạn chương trình trên, giá trị của biến j bằng bao nhiêu?
A. 12
B. 22
C. 15
D. 42.
Câu 4. Trong Pascal, câu lệnh nào sau đây là đúng?
A. S:=1;
While S<10 do write(S);
B. i:=0; S:=1;
while s<10 do S:=S+i; i:=i+1;
C. n:=2; while n<5 do write(‘A’);
D. Cả A và B.
Câu 5. Khi thực hiện đoạn chương trình sau: n:=1; T:=50;
While n>20 do begin n:=n+5; T:=T - n end;
Hãy cho biết giá trị của biến T bằng bao nhiêu?
A. 14
B. 15
C. 16
D. 17
Câu 6. Khai báo biến mảng: A : array[1..7] of real;. Sử dụng câu lệnh For i:= 1 to 5 do readln(A[i]); để gán giá trị cho các phần tử trong biến A từ bàn phím, ta sẽ nhập được bao nhiêu giá trị?
A. 4
B. 5
C. 6
D. 7
Câu 7. Trong câu lệnh khai báo biến mảng, phát biểu nào sau đây đúng:
A. Chỉ số đầu và chỉ số cuối là 2 số nguyên.
B. Chỉ số đầu chỉ số cuối.
C. Kiểu dữ liệu có thể là integer hoặc real.
D. Cả ba ý trên.
Câu 8. Giả sử biến mảng A có 5 phần tử và giá trị của các phần tử lần lượt là 1, 4, 7, 2, 6. Khi thực hiện câu lệnh sau: tb:= 0; For i:= 1 to 5 do tb := tb + A[i]; Giá trị của biến tb là bao nhiêu?
A. 20
B. 18
C. 21
D. 22
B. Phần tự luận: (8.0 điểm)
Câu 1. (2 điểm) Viết chương trình tính tổng 10 số tự nhiên đầu tiên.
Câu 2. (2 điểm) Viết chương trình tính tổng các số tự nhiên đầu tiên cho đến khi tổng đó bằng 100 thì dừng lại.
Câu 3. (4 điểm) Viết chương trình nhập điểm kiểm tra học kỳ môn tin cho N học sinh và in ra màn hình. Với N và điểm kiểm tra được nhập từ bàn phím (sử dụng biến mảng).
C. Thực hành
Câu 1. (2 điểm) Viết chương trình tính tổng 10 số tự nhiên đầu tiên.
Câu 2. (2 điểm) Viết chương trình tính tổng các số tự nhiên đầu tiên cho đến khi tổng đó bằng 100 thì dừng lại.
Câu 3. (3 điểm) Viết chương trình nhập điểm kiểm tra học kỳ môn tin cho N học sinh và in ra màn hình. Với N và điểm kiểm tra được nhập từ bàn phím (sử dụng biến mảng).
Câu 4. (3 điểm) Viết chương trình tìm phần tử nhỏ nhất và lớn nhất của dãy n số nhập vào từ bàn phím.
A. Phần trắc nghiệm: (2 điểm – mỗi câu đúng 0,25 điểm).
Câu |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Đáp án |
B |
C |
C |
A |
D |
B |
D |
A |
B. Phần tự luận: (8 điểm)
CÂU |
ĐÁP ÁN |
ĐIỂM |
Câu 1 |
Var s,i:integer; begin S:= 0; For i:= 1 to 10 do s:=s+1; Writeln (‘tong cua 10 so tu nhien dau tien la:’,s); Readln End. |
1
1
|
Câu 2 |
Var s,n:integer; Begin S:=0; n:=1; While (s<=100) do Begin S:=s+n; n:=n+1; End; Writen(‘tong cac so tu nhien dau tien:’,s); Readln End. |
1
1 |
Câu 3 |
Var n, i: integer; Diem: array[1..50] of real; Begin Write(‘Nhap so luong hoc sinh N = ‘); Readln(n); Writeln(‘Nhap diem cho tung hoc sinh’); For i := 1 to n do Begin Write(‘Diem HS ‘,i,’ = ‘); readln(Diem[i]); End; For i : = 1 to n do Writeln(‘Diem cua HS ‘,i, ‘ = ‘,diem[i]); Readln; End. |
1
1
1
1
|
C. Thực hành
CÂU |
ĐÁP ÁN |
ĐIỂM |
Câu 1 |
Var s,i:integer; begin S:= 0; For i:= 1 to 10 do s:=s+1; Writeln (‘tong cua 10 so tu nhien dau tien la:’,s); Readln End. |
1
1
|
Câu 2 |
Var s,n:integer; Begin S:=0; n:=1; While (s<=100) do Begin S:=s+n; n:=n+1; End; Writen(‘tong cac so tu nhien dau tien:’,s); Readln End. |
1
1 |
Câu 3 |
Var n, i: integer; Diem: array[1..50] of real; Begin Write(‘Nhap so luong hoc sinh N = ‘); Readln(n); Writeln(‘Nhap diem cho tung hoc sinh’); For i := 1 to n do Begin Write(‘Diem HS ‘,i,’ = ‘); readln(Diem[i]); End; For i : = 1 to n do Writeln(‘Diem cua HS ‘,i, ‘ = ‘,diem[i]); Readln; End. |
1
1
1
|
Câu 4 |
Var n,i: integer; S,ptmax, ptmin: real; A: array [1..100] of real; Begin Write (‘nhap so phan tu cua day:’); readln(n); Writeln (‘hay nhap’,n,’ phan tu cua day:’); For i:=1 to n do readln(a[i]); Ptmax:=a[i]; ptmin:=a[i]; For i:=2 to n do Begin If a[i] > ptmax then ptmax:=a[i]; If a[i] < ptmin then ptmin:=a[i]; End; Writeln (‘phan tu max cua day la: ‘,ptmax:0:2); Writeln(‘phan tu min cua day la: ‘,ptmin:0:2); Readln End. |
1
1
1
|