HomeHọc sinh giỏi môn tin

Seri 100 bài tập Pascal nâng cao – CHƯƠNG X : CHUYÊN ĐỀ ĐA THỨC (Một biến)

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

CHƯƠNG X : CHUYÊN ĐỀ ĐA THỨC (Một biến).

  1. LÝ THUYẾT:

– Để lưu trữ một đa thức ta chỉ cần lưu các hệ số (bằng một mảng)và bậc của đa thức.

– Các phép toán đối với một đa thức gồm cộng, trừ, nhân, chia hai đa thức.

– Việc tính giá trị đa thức tại một giá trị của biến được thực hiện thông qua lược đồ hooc nơ hoặc tính trực tiếp.

  1. BÀI TẬP:

Bài tập 10.1:

Viết chương trình cho phép cộng hai đa thức. Kết quả in ra dạng:

nx^n + … + a1x + a0

Giải thuật:

– Dùng hai mảng A, B để lưu hệ số của hai đa thức. Có thể dùng mảng thứ ba C hoặc dùng lại một trong hai mảng A, B  để lưu hệ số của đa thức tổng.

– Khi in kết quả cần kiểm tra hệ số để in dấu cho đúng.

Cài đặt:

Program Cong_da_thuc;

uses crt;

Type KM = array[0..10] of integer;

Var A,B: KM;

n: byte;

Procedure NhapDT(Var A: KM; n:byte);

Var i: byte;

Begin

For i:=n downto 0 do

Begin Write(‘M[‘,i,’]=’); Read(A[i]);  End;

End;

Procedure CONG(Var A:KM;B:KM;n:byte);

Var i: byte;

Begin

For i:= 0 to n do A[i]:=A[i]+B[i];

End;

Procedure INDT(A:KM;n:byte);

Var i: byte;

Begin

if A[n] <> 0 then Write(A[n],’x^’,n);

For i:=n-1 downto 0 do

if A[i] <> 0 then

if A[i] < 0 then write(A[i],’x^’,i) else Write(‘+’,A[i],’x^’,i);

End;

Begin

clrscr;

Write(‘Nhap bac n: ‘);Readln(n);

Writeln(‘Nhap da thuc A: ‘); NhapDT(A,n);

Writeln(‘Nhap da thuc B: ‘); NhapDT(B,n);

clrscr;

Indt(A,n); Writeln;

Indt(B,n); Writeln;

Cong(A,B,n);

Writeln(‘Da thuc tong: ‘);

Indt(A,n);

Readln;

Readln

End.

Nhận xét:

Bài tập 10.2:

Viết chương trình cho phép tính giá trị của đa thức A(x) tại giá trị x = x0.

Giải thuật:

– Dùng chương trình con để tính xn.

Cài đặt:

Program Gia_tri_cua_da_thuc;

Var n,i: integer;

x,a,s:real;

Function XMU(x:real; n:integer):real;

Var i: integer;

Mu: real;

Begin

Mu:=1;

For i:=1 to n do Mu:=Mu*x;

XMU:=Mu;

End;

Begin

Write(‘Nhap bac cua da thuc n = ‘); Readln(n);

Write(‘Tinh f(x) tai x = ‘);Readln(x);

S:=0;

For i:=n downto 0 do

Begin

Write(‘a’,i,’= ‘); Readln(a);

S:=S+a*XMU(x,i);

End;

Writeln(‘F(‘,x:5:2,’)= ‘,S:5:2);

Readln;

End.

Nhận xét:

Bài tập 10.3:

Viết chương trình tính giá trị của đa thức A(x) với điều kiện không dùng biến mảng.

Viết chương trình tính giá trị của đa thức f(x) = anxn + … +a1x + a0 tại x = x0.

Thuật toán: f(x) = anxn + … +a1x + a0

                                                                                                = a0 + x(a1 + x(a2 + … x(an-1 + x(an))…))

Lặp lại việc: Đọc và cộng hệ số rồi nhân với x từ hệ số an  đến hệ số a0.

Chương trình:

Program Gia_tri_da_thuc;

Var S,a,x: real;

n,i: byte;

Begin

Write(‘Nhap bac cua da thuc. n = ‘); Readln(n);

Write(‘Tinh f(x) tai x = ‘);Readln(x);

S:=0;

For i:= n downto 0 do

Begin

Write(‘a’,i,’=’);Readln(a);

S:=(S+a)*x;

End;

Write(‘f(‘,x:3:1,’)=’,S:5:1);

Readln

End.

Nhận xét:

Bài tập 10.4:

Viết chương trình cho phép nhân hai đa thức đã sắp xếp.

Thuật toán: Tích đa thức A bậc m với đa thức B bậc n là đa thức C bậc m + n. Trong đó : C[m] = Tổng của các tích A[i] * A[j] sao cho i+j = m.

Program Nhan_da_thuc;

Var m,n,i,j:byte;

A, B, C: array[0..10] of real;

Begin

Write(‘ Nhap bac cua da thuc A: ‘); Readln(m);

For i:= m downto 0 do

Begin

Write(‘A[‘,i,’]= ‘); Readln(A[i]);

End;

Write(‘ Nhap bac cua da thuc B: ‘); Readln(n);

For i:= n downto 0 do

Begin

Write(‘B[‘,i,’]= ‘); Readln(B[i]);

End;

For i:=0 to m+n do C[i]:=0;

For i:=0 to m do

For j:=0 to n do C[i+j]:=C[i+j]+A[i]*B[j];

For i:= m+n downto 0 do if C[i]<>0 then Write(C[i]:3:1,’x^’,i,’ + ‘);

Readln

End.

 Nhận xét:

Bài tập 10.5:

Viết chương trình cho phép chia hai đa thức để tìm đa thức thương và đa thức dư.

Giải thuật:

Cài đặt:

Program Chia_da_thuc;

uses crt;

Type KM = array[0..10] of real;

Var A,B,C,AB,D: KM;

i,n,cs,bc: byte;

Procedure NhapDT(Var A: KM; n:byte);

Var i: byte;

Begin

For i:=n downto 0 do

Begin Write(‘M[‘,i,’]=’); Read(A[i]);  End;

End;

Function BAC(A:KM;n:integer):Byte;

Var i:Byte;

Begin

i:=n;

While (A[i]=0) and (i> 0) do i:=i-1;

BAC:=i;

End;

Procedure TRU(Var A:KM;B:KM;n:byte);

Var i: byte;

Begin

For i:= 0 to n do A[i]:=A[i]-B[i];

End;

Procedure NHAN(Var C:KM;A,B:KM; Var n:byte);

Var i,j:byte;

TAM:KM;

Begin

n:=Bac(A,n)+Bac(B,n);

For i:= 0 to 2*n do TAM[i]:=0;

For i:= 0 to n do

For j:=0 to n do TAM[i+j]:=TAM[i+j]+A[i]*B[j];

For i:=0 to 2*n do C[i]:=TAM[i];

End;

Procedure INDT(A:KM;n:byte);

Var i: byte;

Begin

if A[n] <> 0 then Write(A[n]:3:1,’x^’,n);

For i:=n-1 downto 0 do

if A[i] <> 0 then

if A[i] < 0 then write(A[i]:3:1,’x^’,i) else Write(‘+’,A[i]:3:1,’x^’,i);

End;

Procedure DT_BAC(Var A:KM;Bac:byte;gt:real);

Var i:byte;

Begin

For i:=1 to n do A[i]:=0;

A[Bac]:=gt;

End;

Begin

clrscr;

Write(‘Nhap bac cua da thuc bi chia: ‘);Readln(n);

Writeln(‘Nhap da thuc A: ‘); NhapDT(A,n);

Writeln(‘Nhap da thuc B: ‘); NhapDT(B,n);

clrscr;

Write(‘Da thuc bi chia: ‘);Indt(A,n); Writeln;

Write(‘Da thuc chia: ‘);Indt(B,n); Writeln;

bc:=Bac(A,n)-Bac(B,n); {Luu bac cua da thuc C}

For i:=1 to bc do C[i]:=0;

While BAC(A,n) >= BAC(B,n) do

Begin

cs:=BAC(A,n)-BAC(B,n);

C[cs]:=A[Bac(A,n)]/B[Bac(B,n)];

Writeln(‘C[‘,cs,’]=’,C[cs]:3:1);

DT_BAC(D,cs,C[cs]);Writeln;

Write(‘Da thuc D:’);

Indt(D,n);

NHAN(AB,B,D,n);Writeln;

Write(‘Da thuc AB:’);

Indt(AB,n);Writeln;

TRU(A,AB,n);

Write(‘Da thuc A moi:’);

Indt(A,n);

End;

Writeln(‘Da thuc thuong: ‘);

Indt(C,bc);

Readln;

Readln

End.

Nhận xét:

Bài tập 10.10:

Giải thuật:

Cài đặt:

Nhận xét:

Bài 1: Viết chương trình tính tổng tích các biểu thức S = 1*1+1*2+…1*10 + 2*1+2*2+…+…+ M*N.
Bài 2: Viết chương trình đưa ra màn hình 2 câu: “Chào bạn. Bạn có khỏe không!”. In 5 lần lên màn hình.
Bài 3: Viết chương trình vẽ hình chữ nhật và điền dấu * như hình sau:
* * * * *
* * * * *
* * * * *
Bài 4: Viết chương trình tìm ước chung lớn nhất của hai số nguyên. In kết quả ra màn hình.
Bài 5: Viết chương trình tính trung bình cộng của các số nhập vào từ bàn phím. Khi muốn kết thúc nhập để tính trung bình thì nhấn phím 0. In kết quả ra màn hình.
Bài 6: Viết chương trình tính tổng bình phương của n số nguyên đầu tiên. In kết quả ra màn hình.
Bài 7: Viết chương trình tính tổng bậc 3 của n số nguyên đầu tiên. In kết quả ra màn hình.
Bài 8: Viết chương trình nhập vào một số nguyên rồi in ra màn hình tất cả các ước số của số đó.
Bài 9: Viết chương trình vẽ 1 tam giác cân bằng dấu . In ra màn hình tam giác đó.
Bài 10: Viết chương trình tính tổng nghịch đảo của n số nguyên đầu tiên .
Bài 11: Viết chương trình tính tổng bình phương các số chẵn từ 1 đến n; với n được nhập từ bàn phím.
Bài 12: Viết chương trình nhập vào n số nguyên , tìm số lớn nhất trong các số đó. In kết quả ra màn hình.
Bài 13: Viết chương trình tính giai thừa của n, với n được nhập từ bàn phím.
Bài 14: Viết chương trình chứng minh rằng phép chia giữa hai số nguyên, chẳng qua chỉ là phép trừ. In kết quả ra màn hình là số thương và số dư.
Bài 15: Viết chương trình nhập vào một số và kiểm tra xem số đó có phải là số nguyên tố hay không?
Bài 16: Viết chương trình tính xn, với x, n được nhập từ bàn phím.
Bài 17: Viết chương trình nhập vào một số nguyên, in ra màn hình số nguyên đó có mấy ký tự số.
Bài 18: Viết chương trình tính tổng S = 1+2+3+…+ n sao cho S > 1000. Hỏi khi đó cụ thể S bằng bao nhiêu?
Bài 19: Viết chương trình tính tổng S = 12 +22 +…+n2 . In kết quả ra màn hình.
Bài 20: Viết chương trình tính tổng của n số nguyên đầu tiên. Số n và các số hạng của tổng được nhập từ bàn phím. In kết quả ra màn hình.

========================

Câu 1
var i,j,n,s: integer;
begin
s:= 0;
write(‘Nhap so lan lap: ‘); readln(n);
for i:= 1 to n do
for j:= 1 to 10 do
s:= s+(i*j);
write(‘S = ‘,s);
end.

————————————————-
Câu 2
var i: integer;
begin
for i:= 1 to 5 do
writeln (‘Chao ban. Ban co khoe khong?’);
end.

————————————————–
Câu 3
var i,j: integer;
begin
for i:= 1 to 3 do
begin
for j:= 1 to 5 do
write(‘*’);
writeln;
end;
end.
————————————————–
Câu 4
var x,y,u: longint;
begin
write(‘Nhap x: ‘); readln(x);
write(‘Nhap y: ‘); readln(y);
while x<>y do
if x>y then x:=x-y else y:=y-x;
u:=x;
write(‘Uoc chung lon nhat cua x va y la: ‘,u);
end.

—————————————————-
Câu 5
var t,i: integer;
k: real;
begin
t:=0; i:=0;
writeln(‘Nhap so muon tinh trung binh cong, nhan phim 0 de ket thuc’);
repeat
begin
i:=i+1;
write(‘Nhap so thu ‘,i,’: ‘); readln(t);
k:=k+t;
end;
until t=0;
k:=k/(i-1);
write(‘Trung binh cong cua day so vua nhap: ‘,k);
end.
————————————————————–

Câu 6
var i,n,m: integer;
begin
m:=0;
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
m:= m+i*i;
write(‘Tong binh phuong: ‘,m);
readln;
end.
————————————————————–
Câu 7
var i,n,m: integer;
begin
m:=0;
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
m:= m+i*i*i;
write(‘Tong binh phuong: ‘,m);
readln;
end.
—————————————————————-
Câu 8
var i,n: integer;
begin
write(‘Nhap n: ‘); readln(n);
write(‘Cac uoc so cua ‘,n,’:’);
for i:=1 to n do
if n mod i = 0 then
write(i:4);
readln;
end.
—————————————————————-
Câu 9
var i,j,n: integer;
begin
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
begin
for j:=0 to n-i do
write(‘ ‘);
for j:=0 to i-1 do
write(‘* ‘);
writeln;
end;
readln;
end.
————————————————————-
Câu 10
var i,n: integer;
t: real;
begin
t:=0;
write(‘Nhap n: ‘); readln(n);
for i:=1 to n do
t:= t+(1/i);
write(‘Tong nghich dao: ‘,t:2);
readln;
end.
————————————————————
Câu 11
var i,n,t: integer;
begin
t:=0; i:=2;
write(‘Nhap n: ‘); readln(n);
while i<=n do
begin
t:= t+i*i;
i:= i+2;
end;
write(‘Tong binh phuong cac so chan: ‘,t);
readln;
end.
———————————————————-
Câu 12
var i,n,min,max,a: integer;
begin
max:=0;
write(‘Nhap bao nhieu so de so sanh: ‘); readln(n);
for i:= 1 to n do
begin
write(‘Nhap so thu ‘,i,’: ‘);
readln(a);
min:=a;
if min>max then
max:=min;
end;
write(‘So lon nhat: ‘,max);
readln;
end.
Câu này có nhược điểm là không so sánh được số âm, các bạn tự cải tiến thuật toán nhe.

1/ Viết CT dảo ngược 1 chuỗi.


Var s,s1:string;
Begin
write(‘nhap chuoi s= ‘);readln(s);
S1:=‘’;
For i:= length(s) downto 1 do s1:=s1+s[i] ;
writeln(‘chuoi dao nguoc la :’, s1);
readln;
End.
——————————————————————–

2/ viết CT đổi 1 chuỗi thành toàn chữ in hoa .


Hướng giải :
Lời giải mẫu :
Var s:string;
Begin
write(‘nhap chuoi s= ‘);readln(s);
For i:=1 to length(s) do
s[i] := upcase(s[i]) ;
writeln(‘kq =‘ , s );
readln;
End.
——————————————————————–

3/ viết CT loại bỏ các dấu cách ở đầu và cuối 1 xâu.


Var s:string;
Begin
write(‘nhap chuoi s= ‘);readln(s);
while (s[1] =‘ ‘) and (length(s)>0) do
delete (s,1,1);
while (s[length(s)] =‘ ‘) and (length(s)>0) do
delete (s,length(s),1);
Writeln( ‘ kq = ‘ , s );
Readln;
End.
——————————————————————–

4/ Viết CT đếm số lần xuất hiện của xâu cần tìm trong 1 xâu cho trước


Vd : câu cho là : toi di hoc o truong trung hoc , di duong rat met nhoc

kết quả là 3à        Xâu cần tìm là : hoc
Lời giải mẫu :
Var s,a :string; vt,d,dem:byte;
Begin
write(‘nhap xau s= ‘);readln(s);
write(‘nhap xau can tim a= ‘);readln(a);
d:=length(a); Dem:=0;
While pos(a,s)>0 do
begin
vt:=pos(a,s) ;
dem:=dem+1;
s:=copy(s,vt+d,255);
end;
writeln(‘so lan =‘ , dem );
readln;
end.
——————————————————————–

5*/ viết CT đếm số lần xuất hiện của từ cần tìm a trong 1 câu s cho trước .


Hướng giải :  Lời giải mẫu :
Var s,a :string; vt,d,dem:byte;
Begin
write(‘nhap chuoi s= ‘);readln(s);
write(‘nhap tu can tim a= ‘);readln(a);
d:=length(a); Dem:=0;
While pos(a,s)>0 do
begin
vt:=pos(a,s) ;
if (vt-1=0) and (vt+d-1=length(s))  then dem:=dem+1 ;
if (vt-1=0) and (vt+d-1<length(s)) and (s[vt+d]=‘ ‘) then dem:=dem+1 ;
if (vt-1>0) and (s[vt-1]=‘ ‘) and (vt+d-1=length(s))  then dem:=dem+1 ;
if (vt-1>0) and (s[vt-1]=‘ ‘) and (vt+d-1<length(s)) and (s[vt+d]=‘ ‘) then dem:=dem+1 ;
delete(s,vt ,d );
end;
writeln(‘so lan =‘ , dem ); readln;
end.
——————————————————————–

6*/ Viết CT thay thế 1 từ cần tìm bằng 1 từ mới trong 1 câu cho trước .


Var s,a :string; vt,d,dem:byte;
Begin
write(‘nhap chuoi s= ‘);readln(s);
write(‘nhap tu can tim a= ‘);readln(a); write(‘nhap tu thay the b= ‘); readln(b);  d:=length(a); dem:=0;
While pos(a,s)>0 do
begin
vt:=pos(a,s) ;
if  ( (vt-1=0) and (vt+d-1=length(s)) ) or ( (vt-1=0) and (vt+d-
1<length(s))   and (s[vt+d]=‘ ‘) ) or ( (vt-1>0) and (s[vt-1]=‘ ‘) and  (vt+d-1=length(s))  ) or ( (vt-1>0) and (s[vt-1]=‘ ‘) and (vt+d-1<length(s))  and (s[vt+d]=‘ ‘) )    then
begin   delete(s,vt ,d ) ; insert(b,s,vt); dem:=dem+1 ;
end;
end;
writeln(‘so tu da thay the =‘ , dem );
writeln(‘chuoi kq=‘ , s); readln;
end.
——————————————————————–

7/ Tìm những chữ cái (không phân biệt chữ thường , chữ in hoa) có mặt trong cả 2 xâu.


Var s1,s2 ,s,kq :string; a:char; vt,i: byte;
Begin
write(‘nhap chuoi s1= ‘);readln(s1); write(‘nhap chuoi s2= ‘);readln(s2);
for i:=1 to length(s1) do s1[i]:=upcase(s1[i]);
for i:=1 to length(s2) do s2[i]:=upcase(s2[i]);
s:=s1 ; kq:=‘’ ;
while length(s)>0 do
begin
a:=s[1];
while pos(a,s)>0 do
begin
vt:=pos(a,s);
delete(s,vt,1);
end;
if pos(a,s2)>0 then kq:=kq+a;
end;
writeln(‘s1=‘,s1);
writeln(‘s2=‘,s2);
writeln(‘cac ky tu co trong 2 chuoi la :‘ , kq , ‘gom so ky tu la= ‘,length(kq));
readln;
end.
——————————————————————–

8/ Trong n tên học sinh (n <30), hãy tim những tên có chứa xâu x. Viết ra những tên tìm được.


Const    nmax=30;
Var  a:array [1..nmax] of string[8] ;
x :string; I,dem:byte;
Begin write(‘nhap so hs n= ‘);readln(n);dem:=0;
for i:=1 to n do
begin  write(‘nhap ten hs ‘ , I , ‘la= ‘);readln(a[i]);
end;
write(‘nhap xau x can tim la= ‘);readln(x);
writeln(‘Ket qua :’);
for i:=1 to n do
if pos(x,a[i]) >0 then  begin writeln(a[i]); dem:=dem+1; end;
writeln(‘So truong hop tim thay la =’ , dem);
readln;
end.
——————————————————————–
9/ Viết CT nhập ho , tên , diemtb của n học sinh (n<=30), sau đó viết ra
danh sách gồm 3 cột ho  ten diemtb theo thứ tự tăng dần của tên (hay  gọi
là thứ tự Alphabet).
Const    nmax=30;
Var  ten: array [1..nmax] of string[8] ; ho : array [1..nmax] of string[35] ;
tb  : array [1..nmax] of real ; n,i,j :byte; a:string[8]; b: string[35]; c:real;
Begin    write(‘nhap so hs n= ‘); readln(n);
for i:=1 to n do
begin   write(‘nhap ho dem  hs ‘ , I , ‘la= ‘);readln(ho[i]);
write(‘nhap ten hs ‘ , I , ‘la= ‘);readln(ten[i]);
write(‘nhap tb hs ‘ , I , ‘la= ‘);readln(tb[i]);
end;
for i:= n downto 2 do
for j:=1 to i-1 do
if ten[j]>ten[j+1] then
begin  a:=ten[j]; ten[j]:=ten[j+1]; ten[j+1]:=a;
b:=ho[j];  ho[j]:=ho[j+1]; ho[j+1]:=b;
c:=tb[j];tb[j]:=tb[j+1];tb[j+1]:=c;
end;
for  i:=1 to n do writeln(ho[i]:40,ten[i]:10,tb[i]:10:2); readln;
end.
——————————————————————–

10/ Viết CT nhập hotên , điểm các môn của n học sinh (n<=30, số môn học <=15), và sau đó viết ra danh sách dạng họtên  tbhk xloai, cuối cùng viết tỷ lệ % học sinh khá giỏi .


Const    nmax=30; mmax=15;
Var  hoten: array [1..nmax] of string[45] ;
tb  : array [1..nmax] of real ; n,m,i,j,dem : byte; tg,d : real; xl : string[8] ;
Begin   write(‘nhap so hs n= ‘);readln(n); write(‘nhap so mon m= ‘);readln(m);
for i:=1 to n do
begin   write(‘nhap hoten   hs ‘ , I , ‘la= ‘);readln(hoten[i]);  tg:=0;
for j:=1 to m do
begin   write(‘nhap diem mon ‘ , j , ‘la= ‘);readln(d); tg:=tg + d;
end; tb[i]:=tg/m;
end; dem:=0;
for i:= 1 to n do
begin write(hoten[i]:50,tb[i]:10:2);
if tb[i] <5 then xl:=‘yeu’ else if tb[i] <6.5 then xl :=‘tbinh’ else
begin dem:=dem+1; if tb[i] <8 then xl:=‘kha’ else xl:=‘gioi’; end;           writeln(xl :10);
end;
writeln(‘Ty le% kha gioi la=’,dem*100/n :10:2); readln;
end.

Câu 1: Xét chương trình sau:
Var    s, i : integer;
Begin
s:=0;
for i:= 1 to 5 do   s:= s + 1;
writeln(s);
End.
Kết quả của chương trình trên là:
A)    0                      B)  5                            C)  10                          D)  15
Câu 2: Xét chương trình sau:
Var    s, i : integer;
Begin
s:=0;
for i:= 1 to 5 do   s:= s + i;
writeln(s);
End.
Kết quả của chương trình trên là:
A)    0                B)  5                            C)  10                          D)  15
Câu 3: Xét chương trình sau:
Var    s, i : integer;
Begin
s:=1;
for i:= 1 to 5 do   s:= s*i;
writeln(s);
End.
Kết quả của chương trình trên là:
A)    1                      B)  5                            C)  100                        D)  120
Câu 4: Xét chương trình sau:
Var    s, i : integer;
Begin
s:=0;
for i:= 1 to 5 do
if  ( i mod 2 =1)   then      s:= s+1;
writeln(s);
End.
Kết quả của chương trình trên là:
A)    0                      B)  2                            C)  3                         D)  5Câu 4:
Câu 5:Xét chương trình sau:
Var    s1, s2, i : integer;
Begin
s1:=0;  s2:=0;
for i:= 1 to 5 do
begin
s1:= s1 + 1;
s2:= s2  +  2;
end;
writeln(s1,’   ‘,s2);
End.
Kết quả của chương trình trên là:
A) 5   2               B)  5   5              C)  5   10              D)  0   10
Câu 6:Xét chương trình sau:
Var    s1, s2, i : integer;
Begin
s1:=0;  s2:=0;
for i:= 1 to 5 do     s1:= s1 + 1;
s2:=s2 + 2;
writeln(s1,’   ‘,s2);
End.
Kết quả của chương trình trên là:
A) 5   2              B)  5   5              C)  5   10              D)  0   10
Câu 7:Xét chương trình sau:
Var    s1, s2, i : integer;
Begin
s1:=0;  s2:=0;
for i:= 1 to 5 do
begin
s1:= s1 + 1;
s2:= s2  +  i;
end;
writeln(s1,’   ‘,s2);
End.
Kết quả của chương trình trên là:
A) 0   15              B)  5   10              C)  0   10             D)  5   15
Câu 8:Xét chương trình sau:
Var    s1, s2, s3, i : integer;
Begin
s1:=0;  s2:=0;  s3:=1;
for i:= 1 to 5 do
begin
s1:= s1 + 1;    s2:= s2 + i;      s3:= s3 * i;
end;
writeln(s1,’   ‘,s2,’   ‘,s3);
End.
Kết quả của chương trình trên là:
A) 5   15   20           B)  5   15   120            C)  5   10   15             D)  1   5   10
Câu 9:Xét chương trình sau:
Var    s1, s2, i : integer;
Begin
s1:=0;  s2:=0;
for i:= 1 to 5 do
if i mod 2 =1 then
begin
s1:= s1 + 1;
s2:= s2 + 2;
end;
writeln(s1,’   ‘,s2);
End.
Kết quả của chương trình trên là:
A) 5   10               B)  3   6                 C)  5   6               D)  3   10
Câu 10:Xét chương trình sau:
Var    s1, s2, i : integer;
Begin
s1:=0;  s2:=0;
for i:= 1 to 5 do
if i mod 2 =1 then
begin
s1:= s1 + 1;
s2:= s2 + i;
end;
writeln(s1,’   ‘,s2);
End.
Kết quả của chương trình trên là:
A) 5   15                B)  5   9                  C)  3   9                 D)  3   15
Câu 11:Xét chương trình sau:
Var     s : integer;
Begin
s:=0;
while   (s < 5)  do      s:= s + 1;
writeln(s);
End.
Kết quả của chương trình trên là:
A) 0                B)  1                 C)  4                 D)  5
Câu 12:Xét chương trình sau:
Var     s : integer;
Begin
s:=0;
while   (s < 5)  do      s:= s + 1;
writeln(s);
End.
Kết quả của chương trình trên là:
A) 0               B)  1                 C)  4                    D)  5
Câu 13:Xét chương trình sau:
Var     s : integer;
Begin
s:=5;
while   (s>0)  do      s:= s – 2;
writeln(s);
End.
Kết quả của chương trình trên là:
A) -1                  B)  0                  C)  1                   D)  5
Câu 14:Xét chương trình sau:
Var     s, i : integer;
Begin
i:=5; s:=0;
while   (i  > 0)  do
begin
s:= s + 1;
i:= i -2;
end;
writeln(s);
End.
Kết quả của chương trình trên là:
A) -1                 B)  1                C)  3                   D)  5

 

1:Câu lệnh trong đoạn chương trình: IF <biểu thức điều kiện> Then
  1. Luôn thực hiện
  2. Thực hiện khi biểu thức điều kiện đúnG
  3. Thực hiện khi biểu thức điều kiện sai
  4. Cả ba lựa chọn trên ðều sai

 

2.Ðoạn chương trình: IF <biểu thức điều kiện> Then Else
  1. Thực hiện câu lệnh 1 khi biểu thức điều kiện đúng
  2. Thực hiện câu lệnh 1 khi biểu thức điều kiện sai
  3. Thực hiện câu lệnh 2 khi biểu thức điều kiện đúng
  4. Thực hiện câu lệnh 2 khi biểu thức điều kiện sai

 

3.Khi biểu thức điều kiện đúng, câu lệnh IF Then Else sẽ thực hiện
  1. Câu lệnh 1
  2. Câu lệnh 2
  3. Thực hiện câu lệnh 1 trước rồi đến câu lệnh 2
  4. Thực hiện câu lệnh 2 trước rồi đến câu lệnh 1

 

4.Khi biểu thức điều kiện sai, câu lệnh IF Then Else sẽ thực hiện
  1. Câu lệnh 1
  2. Câu lệnh 2
  3. Thực hiện câu lệnh 1 trýớc rồi ðến câu lệnh 2
  4. Thực hiện câu lệnh 2 trýớc rồi ðến câu lệnh 1

 

5.Cho a:=3; b:=5.
Câu lệnh IF a>b Then a:=4 Else b:=1. Sau khi thực hiện đoạn chương
trình trên ðáp án nào ðúng
  1. a=3, b=5
  2. a=4, b=5
  3. a=3, b=1
  4. a=4, b=1

 

6.Cho a:=3; b:=2. Câu lệnh IF a>b Then a:=4 Else b:=1. Sau khi thực hiện đoạn chương
trình trên ðáp án nào ðúng
  1. a=3, b=2
  2. a=4, b=2
  3. a=3, b=1
  4. a=4, b=1

 

7.Đoạn chương trình: Max:=a; IF b>Max Then Max:=b. Hãy cho biết đoạn chương trình trên dùng để:
  1. Tính giá trị a
  1. Tính giá trị b
  2. Tìm giá trị lớn nhất trong 2 số a và b
  3. Cả ba lựa chon trên

 

8.Ðoạn chương trình: IF b>a Then Max:=b Else Max:=a. Hãy cho biết đoạn chương trình trên dùng :
  1. Tính giá trị a
  2. Tính giá trị b
  3. Tìm giá trị lớn nhất trong 2 số a và b
  4. Cả ba lựa chon trên

 

9.Muốn kiểm tra giá trị X có lớn hơn 0 và nhỏ hơn 10 hay không ta viết câu lệnh IF thế nào cho đúng?
  1. If 0<X<10 then ….
  2. If 10>X>0 then ….
  3. If (X>0) OR (X<10) ….
  4. If (X>0) AND (X>10) …

 

10.Muốn kiểm tra đồng thời cả ba giá trị của A, B, C có cùng lớn hơn 0 hay không ta viết câu lệnh IF thế nào cho đúng?
  1. If A, B, C >0 then ….
  2. If A>0, B>0, C>0 then ….
  3. If (A>0) OR (B>0) OR (C>0) then ….
  4. If (A>0) AND (B>0) AND (C>0) then ….

 

11.Muốn kiểm tra hai giá trị A, B có khác nhau hay không ta viết câu lệnh If thế nào cho đúng?
  1. If A != B then ….
  2. If A ¹B then ….
  3. If A <> B then ….
  4. If A >< B then ….

 

  1. Xét đoạn chương trình sau:

Var A, B : integer;

Begin

A:= 10; B:= 11; A:= 2*A + 2; B:= 2*B-2

If (A<B) then writeln(A) Else writeln(B);

End.

Kết quả của chương trình trên là:

  1. 10
  2. 11
  3. 20
  4. 22

 

2.Xét đoạn chương trình sau:

Var A, B : integer;

Begin

A:= 100; B:= 50;

Write(‘Nhap nhap B’); Readln(B);

If (B = A) then Writeln(‘Xin chuc mung’);

End.

Nhập giá trị bao nhiêu cho B để khi chạy chương trình nhận được kết quả “Xin chúc mừng”?

  1. 50
  2. 100
  3. 125
  4. 150

 

3.Xét đoạn chương trình sau:

Var A, B : integer;

Begin

A:= 10; B:= 11;

If A>B then write(1);

End.

Kết quả của chương trình trên là:

  1. -1
  2. 0
  3. 1
  4. -101

 

4.Xét đoạn chương trình sau:

Var X, Y : integer;

Begin

X:= 11; Y:= 10;

If (X<Y) then

Begin X:= X +10; Y:= Y+10; End;

writeln(‘X=’, X, ‘ Y=’,Y);

End.

Kết quả của chương trình trên là:

  1. X=11 Y=10
  2. X=21 Y=20
  3. X=11 Y=20
  4. X=21 Y=10

 

  1. Xét đoạn chương trình sau:

Var X, Y, Z : integer;

Begin

X:= 3; Y:= 5; Z:= 7;

If (X<Y) then

Begin

X:= X +Y;

Y:= Y + X;

End

Else

Z := Z +X +Y;

writeln(‘X=’, X, ‘ Y=’,Y);

End.

Kết quả của chương trình trên là:

  1. A) X=8 Y=8 Z=15 B) X=8 Y=13 Z=15
  2. C) X=8 Y=13 Z=7 D) X=3 Y=5 Z=15

 

 

 

 

 

Comments (1)

Trả lời

Your email address will not be published. Required fields are marked *