Bài 1 (3 điểm) Tính tổng các số nguyên dương có trong một chuỗi. Yêu cầu: - Chương trình cho phép nhập vào một chuỗi gồm nhiều ký tự và có ít nhất một số nguyên dương - Xuất ra màn hình chuỗi đã nhập - Xuất tổng các số nguyên dương có trong chuỗi Ví dụ: Input Output abcAcb90acgH3abcb12bdcnhag Chuoi da nhap: abcAcb90acgH3abcb12bdcnhag Tong cac so co trong chuoi: 105 bacDgfhrthg Nhap sai! Yeu cau nhap lai: Bài 2 (3,5điểm) Đếm số lần xuất hiện của các ký tự trong xâu Yêu cầu: Nhập xâu ký tự bao gồm các chữ cái tiếng Anh. Hãy kiểm tra số lần xuất hiện của các ký tự trong xâu và ký tự xuất hiện nhiều lần nhất Dữ liệu vào: Gồm 3 dòng, mỗi dòng chứa một xâu ký tự, độ dài xâu ký tự không vượt quá 100 ký tự. Kết quả: Ghi trên các dòng số lần xuất hiện của các ký tự trong xâu và ký tự xuất hiện nhiều lần nhất trong xâu đó Ví dụ: Input Output -aaaaAabb - Ký tự “a” xuất hiện 6 lần trong xâu - Ký tự “b” xuất hiện 2 lần trong xâu - Ký tự “a” xuất hiện nhiều lần nhất Bài 3 (3,5 điểm). Viết chương trình nhập vào một dãy số nguyên n phần tử, n nhập từ bàn phím. Yêu cầu - In ra màn hình dãy số vừa nhập xếp theo thứ tự tăng dần. - In ra màn hình các số nguyên tố trong dãy số vừa nhập và đếm xem đã nhập vào bao nhiêu số nguyên tố. Ví dụ: Input Output N = 6 a[1]=3; a[2]=-12; a[3]=-789; a[4]=71; a[5]=8; a[6]=3456; Mang sau khi sap xep: -789, -12, 3, 8, 71, 3456 Nhung so nguyen to trong mang 3 71 So phan tu la so nguyen to trong mang la: 2 ----- Hết----- ĐÁP ÁN MÃ CODE Bài 1: 3đ program bai1; Uses crt; Var st,s1,tam:string; i,n,e,tong:integer; kt:boolean; BEGIN clrscr; kt:=false; repeat write('Nhap chuoi gom ky tu va so: '); readln(st); for i:=1 to length(st) do if st[i] in ['0'..'9'] then kt:=true; if kt = false then begin write('Nhap sai! Yeu cau nhap lai: '); readln(st) end; until kt=true; s1:=st; for i:=1 to length(s1) do if not(s1[i] in ['0'..'9']) then s1[i]:=#32; repeat delete(s1,pos(#32#32,s1),1); until pos(#32#32,s1) = 0; if s1[1]=#32 then delete(s1,1,1); if s1[length(s1)]=#32 then delete(s1,length(s1),1); tam:=''; s1:=s1+#32; tong:=0; for i:=1 to length(s1) do if s1[i]#32 then tam:=tam+s1[i] else begin val(tam,n,e); tong:=tong+n; tam:=''; end; writeln('Chuoi da nhap: ',st); write('Tong cac so co trong chuoi: ', tong); readln end. Bài 2: 3,5đ Program bai2; var st:string; max,i,n:integer; ch:char; a:string; dem:array['A'..'Z'] of integer; begin clrscr; writeln('xau can nhap la:'); readln(st) ; for i:=1 to length(st) do st[i]:=upcase(st[i]); for ch:='A' to 'Z' do dem[ch]:=0; for i:=1 to length(st) do if (st[i]>='A') and (st[i]<='Z') then dem[st[i]]:=dem[st[i]]+1; for ch:='A' to 'Z' do if dem[ch]>=1 then writeln('ki tu ',ch,' xuat hien ',dem[ch],' lan'); max:=0; for ch:='A' to 'Z' do if dem[ch]>=max then max:=dem[ch]; for ch:='A' to 'Z' do if dem[ch]=max then writeln('ki tu dai nhat co do dai la ’,max); readln; writeln; end. Bài 3 ( 3,5 điểm). Chương trình tham khảo Điểm Uses crt; Var A: Array[1..100] of Integer; n,i,j,dem: Byte; tg: Integer; function NT(n:longint):boolean; var i:longint; Kt:boolean; begin Kt:=true; for i:=2 to round(sqrt(n)) do if n mod i=0 then Kt:=false; NT:=Kt; end; Begin Write('Hay nhap vao so phan tu cua mang:'); Readln(n); For i:= 1 to n do Begin Write('Nhap a[',i,']= '); Readln(a[i]); End; For i:= 1 to n-1 do For j:= i to n do If a[i]>a[j] then Begin tg:= a[i]; a[i]:=a[j]; a[j]:= tg; End; Writeln('Mang sau khi da sap xep la'); For i:= 1 to n do Write(a[i]:3,’,’); Writeln;dem:=0; Writeln('Nhung so nguyen to trong mang la'); For i:=1 to n do If (a[i]>=2) and NT(a[i]) then Begin Write(a[i]:7); dem:= dem+1; End; Writeln; Writeln('so phan tu la so nguyen to trong mang la:',dem) ; Readln; End. 0,25 0,75 1,0 0,5 0,5 0,25 0,25 Ghi chú: Học sinh có thể không sử dụng chương trình con nhưng chạy đúng kết quả test vẫn cho điểm tối đa. Bộ Test thử N = 6;a[1]=3; a[2]=-12; a[3]=-789; a[4]=71; a[5]=8; a[6]=3456; Mang sau khi sap xep: -789 -12 3 8 71 3456 Nhung so nguyen to trong mang 3 71 So phan tu la so nguyen to trong mang la: 2
Tài liệu đính kèm: