ĐỀ KIỂM TRA KHẢO SÁT CHẤT LƯỢNG
                    MÔN TIN HỌC - NĂM HỌC 2012 – 2013
                                           Thời gian: 90 phút
Câu 1 (3 điểm): Viết chương trình nhập số nguyên n đảm bảo sao cho n dương. (Nếu nhập n <= 0
thì chương trình phải bắt nhập lại), rồi thực hiện tính các biểu thức sau:
    S = 12 + 22 + 32 + ... + n2
    P = 1*2*3*...*n
    program khaosat1;
    uses crt;
    var       i,s,n:integer; p:longint;
    begin
     clrscr;
     write('nhap so nguyen duong n = ');readln(n);
     repeat
     if n<=0 then begin write('nhap lai n = '); readln(n); end
     until n>0;
     S:=0;P:=1;
     for i:= 1 to n do
       begin
        S:= S + sqr(i);
        P:= P *i;
       end;
     writeln('S = ', S:6);writeln('P = ',P:6);
     readln
    end.
    {
    program khaosat1;
    uses crt;
    var       i,s,n:integer; p:longint;
    begin
     clrscr;
     write('nhap n = ');readln(n);
     while n<=0 do
      begin
       write('nhap lai n = '); readln(n);
      end;
     S:=0;P:=1;
     for i:= 1 to n do
       begin
        S:= S + sqr(i);
        P:= P *i;
       end;
     writeln('S = ', S:6);writeln('P = ',P:6);
     readln
    end.
Câu 2 (2 điểm):Viết chương trình nhập độ dài ba cạnh a, b, c. Cho biết a, b, c có phải là ba cạnh
của một tam giác không; nếu là ba cạnh của một tam giác thì cho biết tam giác đều hay cân hay
vuông hay tam giác thường.
program khaosat2;
uses crt;
var a,b,c:integer;
begin
 clrscr;
write('nhap vao do dai 3 canh tam giac'); readln(a,b,c);
 writeln('a= ',a,' b= ',b,' c= ',c);
 if (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b)and (b+c>a) then
   if (a=b) and (b=c) then writeln('tam gian deu')
   else if (a=b) or (a=c) or (b=c) then writeln('tam giac can')
   else if (a*a=b*b+c*c) or (b*b=a*a+c*c) or (c*c=a*a+b*b) then writeln('tam giac vuong')
   else write('tam giac thuong')
 else writeln(a,' ',b,' ',c,' ','khonng la 3 canh cua tam giac');
 readln

end.
Câu 3 (2 điểm): Viết chương trình nhập vào một mảng số nguyên dương và tính tổng các phần tử
có 2 chữ số của mảng.
program khaosat3;
uses crt;
var i,n,s: word; a,b:array[byte] of integer;
begin
 clrscr;
 write('nhap so phan tu cua mang: '); readln(n);
 for i:=1 to n do
  begin
    write('a[',i,']= ');readln(a[i]);
    while a[i]<=0 do
      begin
      write('nhap lai a[',i,']= ');readln(a[i]);
      end;
    if (a[i]>=10)and (a[i]<=99) then s:=s+a[i];
  end;
 write('tong cac phan tu co 2 chu so cua mang la S= ',S);
 readln
end.
Câu 4: (1 điểm): Số hoàn thiện là số tự nhiên có tổng các ước của nó (không kể chính nó) bằng
chính nó. Viết chương trình kiểm tra xem một số được nhập vào từ bàn phím có phải là số hoàn
thiện hay không? Ví dụ: 6, 28 là các số hoàn thiện.
program sohoanthien_khaosat4;
uses crt;
var n:integer; i,s:word;
begin
 clrscr;
 write('nhap vao 1 so n= '); readln(n);
 while n<0 do
  begin
   writeln('nhap lai so tu nhien, n= ');readln(n);
  end;
 for i:=1 to n-1 do
   if n mod i=0 then s:=s+i;
 if s=n then writeln(n, ' la so hoan thien')
 else writeln(n, ' khong la so hoan thien');
 readln
end.
Câu 5 (2 điểm):
a. Viết chương trình nhập vào số nguyên dương N. In ra màn hình dãy nhị phân của số N vừa
nhập.
program khaosat5a;
uses crt;
var n,i,t,dem:integer; d:array[byte]of integer;
begin
  clrscr;
  write('nhap vao 1 so n= '); readln(n);
  while n<0 do
   begin
    writeln('nhap lai so nguyen duong, n= ');readln(n);
   end;
   t:=n;dem:=1;
   while t<>0 do
   begin
     d[dem]:=t mod 2;t:=t div 2; dem:=dem+1;
   end;
   write('day nhi phan cua ', n,' la: ');
   for i:= dem downto 1 do write(d[i]);
  readln
end.
b. Viết chương trình nhập vào từ bàn phím: giờ, phút, giây. Cộng thêm một số giây cũng được
nhập từ bàn phím. Hãy in ra kết quả sau khi cộng xong.
program khaosat5b;
uses crt;
var gio,phut,giay,ss:byte;
begin
clrscr;
 write('nhap vao gio phut giay ');readln(gio, phut, giay);
 write('ban muon cong them bao nhieu giay? ');readln(ss);
 giay:=giay+ss;
 if giay >=60 then begin phut:=phut + giay div 60; giay:=giay mod 60;end;
 if phut>=60 then begin gio:=gio + phut div 60;phut:= phut mod 60;end;
 if (gio>=24) then gio:=gio mod 24;
 writeln('gio phut giay sau khi cong la ', gio,': ', phut,': ',giay);

 readln
end.

Đáp án Bài 3 phần bài tập về nhà
program tuoichacon;
uses crt;
var con,cha:integer; t: byte;
begin
 clrscr;
 repeat
  write('nhap vao tuoi cha '); readln(cha);
 until cha>=20;
 repeat
  writeln('nhap vao tuoi con (nho hon 2 lan tuoi cha va nho hon tuoi cha it nhat 20 tuoi)');
  readln(con);
 until (2*con <cha) and (con<= cha - 20);
 while ( cha + t <> 2*(con + t)) do t:=t+1;
 writeln('sau ', t,' nam nua tuoi cha gap 2 lan tuoi con');
 readln
end.

Khao sat

  • 1.
    ĐỀ KIỂM TRAKHẢO SÁT CHẤT LƯỢNG MÔN TIN HỌC - NĂM HỌC 2012 – 2013 Thời gian: 90 phút Câu 1 (3 điểm): Viết chương trình nhập số nguyên n đảm bảo sao cho n dương. (Nếu nhập n <= 0 thì chương trình phải bắt nhập lại), rồi thực hiện tính các biểu thức sau: S = 12 + 22 + 32 + ... + n2 P = 1*2*3*...*n program khaosat1; uses crt; var i,s,n:integer; p:longint; begin clrscr; write('nhap so nguyen duong n = ');readln(n); repeat if n<=0 then begin write('nhap lai n = '); readln(n); end until n>0; S:=0;P:=1; for i:= 1 to n do begin S:= S + sqr(i); P:= P *i; end; writeln('S = ', S:6);writeln('P = ',P:6); readln end. { program khaosat1; uses crt; var i,s,n:integer; p:longint; begin clrscr; write('nhap n = ');readln(n); while n<=0 do begin write('nhap lai n = '); readln(n); end; S:=0;P:=1; for i:= 1 to n do begin S:= S + sqr(i); P:= P *i; end; writeln('S = ', S:6);writeln('P = ',P:6); readln end. Câu 2 (2 điểm):Viết chương trình nhập độ dài ba cạnh a, b, c. Cho biết a, b, c có phải là ba cạnh của một tam giác không; nếu là ba cạnh của một tam giác thì cho biết tam giác đều hay cân hay vuông hay tam giác thường. program khaosat2; uses crt; var a,b,c:integer; begin clrscr;
  • 2.
    write('nhap vao dodai 3 canh tam giac'); readln(a,b,c); writeln('a= ',a,' b= ',b,' c= ',c); if (a>0) and (b>0) and (c>0) and (a+b>c) and (a+c>b)and (b+c>a) then if (a=b) and (b=c) then writeln('tam gian deu') else if (a=b) or (a=c) or (b=c) then writeln('tam giac can') else if (a*a=b*b+c*c) or (b*b=a*a+c*c) or (c*c=a*a+b*b) then writeln('tam giac vuong') else write('tam giac thuong') else writeln(a,' ',b,' ',c,' ','khonng la 3 canh cua tam giac'); readln end. Câu 3 (2 điểm): Viết chương trình nhập vào một mảng số nguyên dương và tính tổng các phần tử có 2 chữ số của mảng. program khaosat3; uses crt; var i,n,s: word; a,b:array[byte] of integer; begin clrscr; write('nhap so phan tu cua mang: '); readln(n); for i:=1 to n do begin write('a[',i,']= ');readln(a[i]); while a[i]<=0 do begin write('nhap lai a[',i,']= ');readln(a[i]); end; if (a[i]>=10)and (a[i]<=99) then s:=s+a[i]; end; write('tong cac phan tu co 2 chu so cua mang la S= ',S); readln end. Câu 4: (1 điểm): Số hoàn thiện là số tự nhiên có tổng các ước của nó (không kể chính nó) bằng chính nó. Viết chương trình kiểm tra xem một số được nhập vào từ bàn phím có phải là số hoàn thiện hay không? Ví dụ: 6, 28 là các số hoàn thiện. program sohoanthien_khaosat4; uses crt; var n:integer; i,s:word; begin clrscr; write('nhap vao 1 so n= '); readln(n); while n<0 do begin writeln('nhap lai so tu nhien, n= ');readln(n); end; for i:=1 to n-1 do if n mod i=0 then s:=s+i; if s=n then writeln(n, ' la so hoan thien') else writeln(n, ' khong la so hoan thien'); readln end. Câu 5 (2 điểm): a. Viết chương trình nhập vào số nguyên dương N. In ra màn hình dãy nhị phân của số N vừa nhập. program khaosat5a;
  • 3.
    uses crt; var n,i,t,dem:integer;d:array[byte]of integer; begin clrscr; write('nhap vao 1 so n= '); readln(n); while n<0 do begin writeln('nhap lai so nguyen duong, n= ');readln(n); end; t:=n;dem:=1; while t<>0 do begin d[dem]:=t mod 2;t:=t div 2; dem:=dem+1; end; write('day nhi phan cua ', n,' la: '); for i:= dem downto 1 do write(d[i]); readln end. b. Viết chương trình nhập vào từ bàn phím: giờ, phút, giây. Cộng thêm một số giây cũng được nhập từ bàn phím. Hãy in ra kết quả sau khi cộng xong. program khaosat5b; uses crt; var gio,phut,giay,ss:byte; begin clrscr; write('nhap vao gio phut giay ');readln(gio, phut, giay); write('ban muon cong them bao nhieu giay? ');readln(ss); giay:=giay+ss; if giay >=60 then begin phut:=phut + giay div 60; giay:=giay mod 60;end; if phut>=60 then begin gio:=gio + phut div 60;phut:= phut mod 60;end; if (gio>=24) then gio:=gio mod 24; writeln('gio phut giay sau khi cong la ', gio,': ', phut,': ',giay); readln end. Đáp án Bài 3 phần bài tập về nhà program tuoichacon; uses crt; var con,cha:integer; t: byte; begin clrscr; repeat write('nhap vao tuoi cha '); readln(cha); until cha>=20; repeat writeln('nhap vao tuoi con (nho hon 2 lan tuoi cha va nho hon tuoi cha it nhat 20 tuoi)'); readln(con); until (2*con <cha) and (con<= cha - 20); while ( cha + t <> 2*(con + t)) do t:=t+1; writeln('sau ', t,' nam nua tuoi cha gap 2 lan tuoi con'); readln end.