A. Chưa biết trước số lần lặp
B. Biết trước số lần lặp
C. Biết trước số lần lặp nhưng giới hạn là <=100
D. Biết trước số lần lặp nhưng giới hạn là >=100
Câu 3: Cách khai báo mảng sau đây cách nào khai báo đúng ?
A. var X : Array [10, 13] of integer; C. var X : Array [3.4..4.8] of integer;
B. var X : Array [10.. 1] of integer; D. var X : Array [1..10] of real;
Câu 4: Cho S và i là biến nguyên. Khi chạy đoạn chương trình :
A.11 B. 55 C. 12 D.13
Câu 5: Lần lượt thực hiện đoạn lệnh: a[1]:=2; a[2]:=3; t:=a[1]+a[2]+1;
Giá trị của t là
A. t=1 B. t=2 C. t=3 D. t=6
A.For i:= 1 to 10 do writeln(‘A’); B. For i:=1.5 to 10.5 do writeln(‘A’);
C. For i= 1 to 10 do writeln(‘A’); D. For i:=100 to 1 do writeln(‘A’);
Câu 7: Câu lệnh lặp while…do có dạng đúng là:
a. Readln(A[10]); b. Readln(A[k]);
c. Readln(A[i]); d. Readln(A10);
Câu 10: Phần mềm học vẽ hình là:
A. Sun Times B. Yenka C. Finger Break Out D. Geogebra
End.
A. While <điều kiện> do; ;
B. While <điều kiện> do;
C. While do <điều kiện>;
D. While <điều kiện> do ;
Câu 19: Các cách nhập dữ liệu cho biến mảng sau, cách nhập nào không hợp lệ?
A. B[1]:= 8; B. readln(chieucao[i]);
C. readln(chieucao5); D. read(dayso[9]);
Câu 20: Phần mềm học vẽ hình học phẳng là phần mềm:
A. Sun Times B. Yenka
end.
Câu 3: Đánh dấu [x] vào ô đúng hoặc sai tương ứng trong các câu lệnh Pascal sau nếu sai sửa lại?
Câu lệnh
|
Đúng
|
Sai
|
Sửa lại
|
Program Chuong trinh
|
|
|
|
Const n:=10
|
|
|
|
Var I,s : real;
|
|
|
|
Begin;
|
|
|
|
While i< n do;
|
|
|
|
Begin
|
|
|
|
S:=s+i
|
|
|
|
I =i+1;
|
|
|
|
End.
|
|
|
|
Writeln(s);
|
|
|
|
Readln
|
|
|
|
End;
|
|
|
|
Câu 4: Nêu cú pháp và hoạt động của vòng lặp với số lần biết trước
Câu 5: Nêu cú pháp và hoạt động của vòng lặp với số lần chưa biết trước.
Câu 6: Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần biết trước và lặp với số lần chưa biết trước.
Câu 7 Cấu trúc khai báo kiểu mảng trong pascal và nêu cac lợi ích của việc sử dụng biến mảng trong chương trình.
Câu 8: Viết chương trình nhập điểm của các bạn học sinh trong lớp. In ra màn hình số bạn đạt kết quả học tập loại Giỏi, Khá, Trung bình và Kém. Theo tiểu chuẩn xếp loại đánh giá học sinh.
------------------------Hết------------------------
III/ BÀI TOÁN THAM KHẢO
Bài 1:Viết chương trình đếm số lần xuất hiện của các kí tự thuộc bảng chữ cái trong 50 lần gõ kí tự bằng bàn phím (không phân biệt a với A, b với B …, dùng hàm Upcase để chuyển đổi chữ thường với chữ hoa) .
GIẢI
Uses Crt ; Var a : Array[ 'A'..'Z' ] of integer; (* mảng bộ đếm *)
ch : char ; (* biến nhập kí tựù *)
i : byte ; (* chỉ số của lần gõ phím *)
BEGIN
Clrscr ;
For ch :='A' to 'Z' Do a[ch] := 0 ; (* xả bộ đếm *)
Writeln (' Go phim 50 lan ') ;
For i := 1 To 50 Do (* thực hiện 100 lần *)
Begin
ch :=Readkey ; (* nhập kí tự vào Ch không cần gõ Enter *)
ch := Upcase(ch) ; (* Đỗi chữ thường thành chữ hoa *)
a[ch] := a[ch] + 1 ;
End;
Writeln (' So lan xuat hien cac ki tu la :') ;
For ch :='A' to 'Z' do (* Kiểm tra bộ đếm từ 'A' tới 'Z' *)
If a[ch] > 0 Then (* Nếu Ch có xuất hiện *)
Writeln (ch , a[ch] : 4 , ' lan . ') ; (* Viết ra màn hình kí tự và
số lần xuất hiện *)
Readln ; END .
* Bài 2 :Cho số tự nhiên n , hãy lập trình để tính các tổng sau :
-
a. 1 + 1/22 + 1/32 + … + 1/n2
-
b. 1 + 1/2! + 1/3! + … + 1/n!
GIẢI
a)
Var n , i : Word ;
S : Real ;
BEGIN
Write (' Nhap n : ') ; Readln (n) ;
S := 0 ;
For i := 1 To n Do
S := S + 1 / sqr(i) ;
Writeln (' S = ', S:0:2) ;
Readln ;
END .
b)
Var n , i , j , p : Word ;
S : Real ;
BEGIN
Write (' Nhap n : ') ; Readln(n) ;
p := 1 ;
s := 0 ;
For i :=1 To n Do
Begin
p := p * i ; (* tính i *)
S := S + 1 / p ;
End ;
Writeln (' S = ', S:0:2) ;
Readln ; END .
* Bài 3 :
Lập trình tính tổng :
A = 1 + 1/2 + 1/3 + … + 1/n
ở đây n là số tự nhiên được nhập vào từ bàn phím .
GIẢI
Uses Crt ;
Var i , n : Integer ;
tong: Real ;
BEGIN
Clrscr ;
Write (' Cho so tu nhien n : ') ; Readln (n) ;
tong :=0 ;
i :=1 ;
While i <= n Do
Begin
tong := tong + 1/i ;
i := i + 1 ;
End ;
Writeln (' Tong can tim la : ', tong:12:6 ) ;
Readln ; END .
* Bài 4 :
Tính hàm lũy thừa an , ở đây a thực và n tự nhiên được nhập vào từ bàn phím .
GIẢI
Uses Crt ;
Var i , n : Integer ;
a , giatri : Real ;
BEGIN
Clrscr ;
Write (' Cho so a : ') ; Readln(a) ;
Write (' Cho so mu n : ') ; Readln(n) ;
i := 1 ;
giatri := 1 ;
While i <= n Do
Begin
giatri := giatri * a ;
i:= i+1 ;
End ;
Writeln(' a mu n bang : ', giatri ) ;
Readln ; END .
*
Bài 5:
Viết chương trình nhập một dãy số tối đa 100 số , sau đó in ra màn hình các số khác nhau .
GIẢI
Uses Crt;
Var A : Array [1..100] Of Integer;
i , j , n : Integer ;
BEGIN
Clrscr ;
Write(' Do dai cua day so N = ') ; Readln (N) ;
For I := 1 To N Do
Begin
Write ('A[', i , ']= ') ; Readln ( A[i] ) ;
End ;
Writeln (' Cac so khac nhau la : ') ; Writeln ( A[1] ) ;
i := 2 ;
While i <= N Do
Begin
j := 1 ;
While ( j < i ) and ( A[j] <> A[i] ) Do inc(j) ;
If j = i Then Writeln( A[i] ) ;
i :=i + 1 ;
End ; Readln ; END .
*
Bài 6:
Viết chương trình nhập một dãy số tối đa 100 số , sau đó sắp xếp lại theo thứ tự tăng dần .
GIẢI
Uses Crt;
Var A : Array [1..100] Of Integer ;
i , j , n , T : Integer ;
BEGIN
Clrscr ;
Write(' Do dai cua day so N = ') ; Readln (N) ;
Writeln (' Nhap day so : ') ;
For i := 1 To N Do
Begin
Write('A[', i ,'] = ') ; Readln ( A[i] ) ;
End ;
i := 1 ;
While (i <= n-1) Do
Begin
j := i+1;
While j<=n do
Begin
If A[j] < A[i] then
Begin
T := A[j];
A[j ] := A[i];
A[i] := T ;
End ;
j := j + 1;
End ;
i := i + 1;
End ;
Writeln(' Day sau khi sap xep : ') ;
For i := 1 To N Do Write(A[i] : 4) ;
Readln ; END .
* Bài 7:
Viết chương trình nhập n số nguyên. Đếm các số vừa chia hết cho 2 vừa chia hết 3. Xuất kết quả ra màn hình.
Program bai19;
Uses crt;
Var i,n,dem:integer;
X;real;
Begin
Clrscr;
Write(‘nhap so luong so’); readln(n);
Dem:=0;
For i:=1 to n do
Begin
Write(‘nhap so thu tu’,i);readln(x);
If (x mod 2=0) and(x mod 3=0) then
Dem:=dem+1;
End;
Writeln(‘so luong cac so chia het cho 2 va 3 la:’dem);
Readln;
End.
*
Bài 8:
Viết chương trình tính tích của 10 số tự nhiên đầu tiên.
{ Dùng while......do…..}
Program tich;
Uses crt;
Const n=10;
Var i, tich:integer;
Begin
Clrscr;
Tich:=1;
i:=1;
while i<=n do
begin
tich:=tich*i;
end;
writeln(‘tich cua 10 so tu nhien dau tien la=’,tich);
readln;
End.
{ Dùng For......do…..}
Program tich;
Uses crt;
Var i,n:integer;
Begin
Clrscr;
Tich:=1;
For i:=1 to 10 do
begin
tich:=tich*i;
i:=i+1;
end;
writeln(‘tich cua 10 so tu nhien dau tien la=’,tich);
readln;
End.