SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH YÊN BÁI HD chấm đề thi chính thức Hướng dẫn chấm có 04 trang... Chỉ đúng Test1 được 05 điểm.[r]
(1)SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH YÊN BÁI HD chấm đề thi chính thức (Hướng dẫn chấm có 04 trang) HƯỚNG DẪN CHẤM KỲ THI CHỌN HỌC SINH GIỎI LỚP 11 THPT NĂM HỌC 2012 – 2013 Môn thi: TIN HỌC 11 Ngày thi: 08/10/2012 Câu Đáp án Dãy số Uses crt; Const Nmax=1000; Var A: array[1 Nmax] of longint; N,dmax,dmax2,slmax2,i,j,tg: longint; Begin Clrscr; Write('Nhap N='); Readln(N); For i:=1 to N begin write('a[',i,']='); readln(a[i]); end; //Sap xep For i:=1 to n-1 For j:=i+1 to n if a[i]>a[j] then Begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; End; write('Max=',a[n]); // Dem so luong max i:=n-1; while (i>0) and (a[i]=a[n]) dec(i); dmax:=n-i; // Tim max2 if dmax<> N then dmax2:=a[n-dmax] else dmax2:=-1; // Dem so luong Max2 if dmax2>0 then begin i:= n-dmax; while (i>0) and (a[i]=dmax2) dec(i); slmax2:=n-dmax-i; end; // Ghi ket qua For i:=1 to N write(a[i],#32); writeln; writeln('Gia tri lon nhat:',a[n]); writeln('So luong phan tu lon nhat: ',dmax); writeln('Gia tri lon thu 2: ',dmax2); writeln('So luong phan tu lon thu : ',slmax2); Readln; End Điểm 6,0 đ 1,0 đ 1,0 đ 1,0 đ 1,0 đ 0,5 đ 0,5 đ 1,0 đ (2) - Chấm bài và tính điểm sau: Test 1: N= và dãy số 4 Kết sau thực yêu cầu: Dãy số sau xếp là: 4 Số lượng phần tử đạt Max: Phần tử lớn thứ hai dãy số: Số lượng phần tử lớn thứ hai là: Test 2: N= và dãy 6 6 Kết sau thực yêu cầu: Dãy số sau xếp là: 6 6 Số lượng phần tử đạt Max: Phần tử lớn thứ hai dãy số: -1 Số lượng phần tử lớn thứ hai là: Xử lí xâu Uses Crt; Var S: string; i: byte; Begin Write('Nhap xau s='); Readln(s); Chỉ đúng Test1 05 điểm Đúng test1 và test2 06 điểm 6,0 đ 1,0 đ Writeln('Do dai cua xau: ', length(s)); 1,0 đ //xoa dau cach while s[1]=' ' delete(s,1,1); while s[length(s)]=' ' delete(s,length(s),1); i:=1; While i<= length(s) begin while (s[i]=' ') and (s[i+1]= ' ') delete(s,i,1); inc(i); end; 1,0 đ 1,0 đ //Xu li chu hoa dau Tu s[1]:=upcase(s[1]); For i:=2 to length(s) if s[i]=' ' then s[i+1]:=upcase(s[i+1]); Writeln('Xau S da xu li: ',s); Readln; End Chấm bài và tính điểm sau: Test 1: S = 'Toi Di Thi Hoc Sinh Gioi Mon 1,0 đ 1,0 đ Tin Hoc' (Ở ví dụ này: Giữa các từ có 03 dấu cách) Kết quả: Độ dài xâu S: 39 Xâu S sau xử lí là: 'Toi Di Thi Hoc Sinh Gioi Mon Tin Hoc' Test 2: S = 'hoc' (Ở ví dụ này: Đầu xâu S có dấu cách) Kết quả: Độ dài xâu S: Xâu S sau xử lí là: 'Hoc' Toà nhà Uses Crt; Const Nmax=1000+2; Đúng test1 05 điểm Đúng test và test2 06 điểm 5,0 đ (3) Var a: array[0 Nmax,0 Nmax] of longint; m,n,dem,i,j: longint; Begin Write('Nhap M=');readln(M); Write('Nhap N=');readln(N); For i:=1 to m For j:=1 to n Begin Write('a[',i,',',j,']='); readln(a[i,j]); End; dem:=0; For i:=1 to m For j:=1 to n if (a[i-1,j] >= a[i,j]) and (a[i+1,j] >= a[i,j]) and (a[i,j-1] >= a[i,j]) and (a[i,j+1] >= a[i,j]) then Begin inc(dem); writeln(i,#32,j); End; if dem=0 then Write(dem); Readln; End. Chấm bài và tính điểm sau: Test1 45 32323 32123 13131 22222 OUTPUT1 32 33 Test2 33 444 444 444 Test3 33 444 443 444 OUTPUT2 22 Số nguyên Uses crt; Const fi='cau4.inp'; fo='cau4.out'; Nmax=405;// 405 - int64; 121- longint Var f: text; N: longint; P: array[0 Nmax,0 Nmax] of longint; Procedure doctep; Begin Assign(f,fi); Reset(f); readln(f,N); Close(f); p[0,0]:=1; End; Procedure xuli(u: longint); Var v: longint; OUTPUT3 1,0 đ 1,0 đ 2,0 đ 1,0 đ Đúng test1 và test2 04 điểm Đúng 03 test 05 điểm 3,0 đ 1.0 đ (4) Begin if u=N+1 then exit else begin For v:=1 to N begin if u<v then p[u,v]:=p[u,v-1] else p[u,v]:=p[u,v-1]+p[u-v,v]; end; xuli(u+1); end; End; Procedure ghikq; Begin Assign(f,fo); Rewrite(f); write(f,p[n,n]); Close(f); End; Begin Doctep; Xuli(0); Ghikq; End 04 câu 1,5 đ 0,5đ - Chấm bài và tính điểm sau: Test 1: N=5 => Kq=7 1,5đ /3đ Test 2: N=122 =>Kq=2291320912 2,0đ /3đ Test 3: N= 500 => Kq= 2300165032574323995027 3,0đ /3đ Tổng điểm: 20đ (5)