Chỉ viết một chương trình a Nhập vào mảng một chiều C kiểu số nguyên gồm n phần tử n... Kiểu xâuchuỗi Có phân biệt chữ HOA và chữ thường Ví dụ1: ‘A’... Sau khi thực hiện đoạn chương tr
Trang 1Trắc nghiệm (5đ)
1./ Sau khi thực hiện đoạn chương trình:
S:= ‘a_b_c_h_f’;
write(S[5]); Kết quả là:
2./ Sau khi thực hiện đoạn chương trình:
S:= ‘Kiem_Tra’;
Delete(S,2,4);
Writeln(S); Kết quả là:
3./ Hãy cho biết giá trị của A sau khi thực hiện
câu lệnh sau:
A:=length(‘Trung_Phu’);
4./ S1:= ‘Nam_2013’;
S2:=Copy(S,1,5); Write(S2); Kết quả là:
5./ S:= ‘Truong_Trung_Phu’;
vitri:=pos(‘T’,S);
Write(vitri);
Kết quả là:
6./ S1:= ‘Mai’; S2:= ‘HoaTrang’;
Để có S2 có giá trị là ‘HoaMaiTrang’ thì ta cần
thực hiện:
a) Insert(S2,S1,4); b) Insert(S2,S1,3); c) Insert(S1,S2,4); d) Insert(S1,S2,3);
7./ Sau khi thực hiện đoạn chương trình:
S:=‘Lap_Trinh_Pascal’;
write(upcase(S[7]));
Kết quả là:
8./ S1:=’Truong’; S2:=’Trung’; S3:=’Phu’;
Write(S1+S2+S3); Kết quả là:
c) Truong+Trung+Phu d) a,b,c đều sai 9./ tự học thêm các thủ tục và hàm lòng ghép 10./ tự học thêm các thủ tục và thủ tục lòng ghép
Phần 2: (5đ) Học sinh đọc kỹ đề bài Chỉ viết một chương trình
a) Nhập vào mảng một chiều B kiểu số nguyên gồm n phần tử (n <= 70)
b) Xuất ra màn hình các phần tử B[i] khác 0 theo chiều ngược với thứ tự nhập
c) Tính tích các phần tử B[i] chia hết cho 7 Xuất kết quả tính được ra màn hình
d) Đếm các phần tử B[i] âm Xuất kết quả tính được ra màn hình
e) Tìm giá trị lớn nhất Max trong mảng B[i] và xuất Max ra màn hình
f) Tăng giá trị mỗi phần tử B[i] của mảng B lên 3 lần Xuất kết quả của mảng sau khi tăng lên 3 lần g) Tính tổng bình phương các phần tử B[i] chia hết cho 5.Xuất kết quả tính được ra màn hình
Program BaiTap;
Var B:array[1 70] of integer;
1.0
i,n,dem,max: integer;
P,S:Longint;
Begin
Write('Nhap N='); Readln(n);
{a}
1.0
For i:=1 to n do
Begin
Write('Nhap B[',i,']=');
Readln(B[i]);
End;
Write('Cac phan tu khac khong:');
{b}
1.0
For i:=n downto 1 do
if B[i] <> 0 then write(B[i]:5);
writeln;
1.0
For i:=1 to n do
if (B[i] mod 7 = 0) then
P:=P*B[i];
Writeln('P=' ,P:5);
For i:=1 to n do
{d} 1.0
if (B[i] < 0) then dem := dem+1;
Writeln('dem=' ,dem);
max:=B[1];
{e} 1.0
For i:=2 n do
if B[i] > max then max:=B[i];
Writeln('Max=' ,max);
For i:=1 to n do
{f} 1.0
B[i]:=B[i]*3;
Writeln('mang tang gap 3 la:');
For i:=1 to n do Write(B[i]:5);
For i:=1 to n do
{g} 1.0
If (B[i] mod 5 =0) Then S:=S+B[i]*B[i];
Writeln('S=' , S);
Readln;
End
Đề mẫu 1
Trang 21 Sau khi thực hiện đoạn chương trình:
S:= ‘Tp_Ho_Chi_Minh’;
For i:=1 to length(S) do
If (S[i]>= ‘a’) and (S[i]<= ‘z’) then write(S[i]);
Kết quả là:
2/ Sau khi thực hiện xong đoạn chương trình:
S1:= ‘abcdef’;
S2:= ‘abf’;
If S1>S2 then write(S1) else write(S2);
Kết quả là:
3/Hãy cho biết giá trị của xâu S
S:= ‘Kiem_Tra_Tin_Hoc’;
Delete(S,9,8); Insert(‘Lop11’,S,1);
Writeln(S);
c) Lop11Kiem_Tra d) Tin_hoc
4/ Hãy cho biết giá trị của A sau khi thực hiện câu
lệnh sau:
A:=length(‘Trung_Hoc_Pho_Thong’) mod 3 div 2;
5/ S:= ‘Hoc_Thay_Khong_Tay_Hoc_Ban’;
S1:=Copy(S,1,3); write(pos(S1,S));
Kết quả là:
6/ S:= ‘Truong_Trung_Phu’;
vitri:=pos(‘nh’,S);
Write(upcase(S[vitri+10]));
Kết quả là:
7/ Sau khi thực hiện đoạn chương trình:
S:=‘ABCDabc’;
For i:=5 downto 2 do write(S[i]);
Kết quả là:
8/ S1:= ‘Hoa’; S2:= ‘Hong’;
Để có S1 có giá trị là ‘HoaHong’ thì ta cần thực
hiện:
a) Insert(S2,S1,4); b) Insert(S2,S1,3); c) Insert(S1,S2,4); d) Insert(S1,S2,3); 9./ và câu 10./ tự học
Phần 2: (5đ) Học sinh đọc kỹ đề bài Chỉ viết một chương trình
a) Nhập vào mảng một chiều C kiểu số nguyên gồm n phần tử (n <= 50)
b) Xuất ra màn hình các phần tử C[i] khác 0 theo chiều ngược với thứ tự nhập
c) Tính tích các phần tử C[i] chia hết cho 3 và 5 Xuất kết quả tính được ra màn hình
d) Đếm các phần tử C[i] âm hoặc chia hết cho 4 Xuất kết quả tính được ra màn hình
e) Tìm giá trị nhỏ nhất Min trong mảng C[i] và xuất Min ra màn hình
f) Tính trung bình cộng các số không chia hết cho 5 hoặc chia hết cho 6
Program Bai_Tap;
Var C:array[1 50]of integer;
i,n,dem,max: integer;
S,P:Longint;
TBC:Real;
Begin
{a}
Write('Nhap N='); Readln(n);
For i:=1 to n do
Begin
Write('Nhap C ',i, '=');
Readln(C[i]);
End;
{b}
Write('Cac phan tu khac khong:');
For i:=n downto 1 do
if C[i] <> 0 then
write(C[i]:5);
writeln;
{c}
P:=1;
For i:=1 to n do
if (C[i] mod 3 = 0) and (C[i] mod 5 = 0) then P:=P*C[i];
Writeln('Tich la:',P:5);
{d}
For i:=1 to n do
if (C[i] < 0) or (C[i] mod 4 = 0) then dem := dem+1;
Writeln('dem=' ,dem);
{e}
Min:=C[1];
For i:=2 to n do
if C[i] < Min then Min:=C[i];
Writeln('Min=' ,Min);
{f}
S:=0; dem:=0;
For i:=1 to n do
If (C[i] mod 5<>0) or (C[i] mod 6=0) then Begin
dem:=dem+1;
S:=S+C[i];
End;
TBC:=S/dem;
Đề mẫu 2
Trang 3Writeln(‘Trung binh cong=’,TBC); Readln; End.
Bài 12 Kiểu xâu(chuỗi)
Có phân biệt chữ HOA và chữ thường
Ví dụ1: ‘A’<’a’
Ví dụ 2: ‘Tin Hoc’<’tin Hoc’;
Vấn đề 1: Hàm Length(xâu)Chiều dài của xâu
Đếm xem có bao nhiêu ký tự (đếm luôn khoảng trắng nếu có)
1 Sau khi thực hiện đoạn chương trình:
S:=’ChaoCacBan’;
Write(length(S));
Kết quả là: Đáp án: 10
Giải thích cho biết kiểm trakhông cần giải thích
Lập trình Pascal Ctrl+F9 sẽ cho kết quả là: không lập trình Giải thích nếu
Var S:String;
Begin
S:=’ChaoCacBan’;
Write(length(S));
Readln;
End.
10 9 8 7 6 5 4 3 2 1
n a B c a C o a h
có 10 ký tự
2 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenVanA’
write(length(S));
Kết quả là: Đáp án: 10
3 Sau khi thực hiện đoạn chương trình:
S:=‘Nguyen_Van_A’;
write(length(S));
Kết quả là: Đáp án: 12
4 Sau khi thực hiện đoạn chương trình:
S:=‘Nguyen Van A’;
write(length(S));
Kết quả là: Đáp án: 12
5 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenA’;
write(length(S));
Kết quả là: Đáp án: 7
6 Sau khi thực hiện đoạn chương trình:
S6:=‘Nguyen_A’;
write(length(S6));
Kết quả là: Đáp án: 8
Vấn đề 2: Hàm Copy(xâu, vị trí copy, muốn copy N ký tự)sao chép
7 Sau khi thực hiện đoạn chương trình:
S1:=’TinHoc11’;
S2:=Copy(S1,1,6);Write(S2);
Kết quả là: Đáp án :TinHoc
Trang 4 Giải thích cho biếtkiểm tra không cần giải thích
Lập trình Pascal Ctrl+F9 sẽ cho kết quả là: Giải thích nếu
không lập trình Var S1,S2:String;
Begin
S1:= ’TinHoc11’;
S2:=Copy(S1,1,6);Write(S2);
Readln;
End.
TinHoc ‘
8 6 5 4 3 1
1
c o H n i
T ’
Copy từ vị trí số 1 lấy 6 ký tự
8 Sau khi thực hiện đoạn chương trình:
S:=‘VietNamChienThang’;
write(copy(S,8,5));
Kết quả là: Đáp án :Chien
9 Sau khi thực hiện đoạn chương trình:
S:=’HoaMaiVang’;
Writeln(‘LoaiHoa:’,Copy(S,4,3));
Write(‘Mau’,copy(S,7,4));
Kết quả là: Đáp án: LoaiHoa:Mai
Mau:Vang
10 Sau khi thực hiện đoạn chương trình:
S:=’HoaMaiVang’;
Write(‘LoaiHoa:’,Copy(S,4,3));
Write(‘Mau’,copy(S,7,4));
Kết quả là: Đáp án: LoaiHoa:MaiMau:Vang
11 Sau khi thực hiện đoạn chương trình:
S:=‘TranThiThuy’;
writeln(‘Holot:’,copy(S,5,3));
write(‘Ten:’,copy(S,8,4));
Kết quả là: Đáp án: Holot:Thi
Ten:Thuy
Vấn đề 3: Hàm Pos(s1,s2)
Cho vị trí xuất hiện đầu tiên của xâu s1 trong s2
Có phân biệt chữ HOA và chữ thường
12 Sau khi thực hiện đoạn chương trình:
S:=‘HappyNewYear’;
write(pos(‘e’,S));
Kết quả là: Đáp án: 7
Lập trình Pascal Ctrl+F9 sẽ cho kết quả là: Giải thích nếu không lập trình Var S:String;
Begin
S:=‘HappyNewYear’;
write(pos(‘e’,S));
Readln;
7
‘H1 a2 p3 p4 5y N6 e7w8Y910e11a12r
’ Vị trí xuất hiện của chữ e đầu tiên là vị trí
số 7
Trang 513 S:=’Nam2010’;Write(Pos(‘0’,S));
Kết quả là: Đáp án: 5
14 Sau khi thực hiện đoạn chương trình:
S:=‘HappyNewYear’;
write(pos(‘E’,S));
Kết quả là: Đáp án: 0
15 Sau khi thực hiện đoạn chương trình:
S:=‘ChucMungNamMoi’;
write(pos(‘c’,S));
Kết quả là: Đáp án: 4
16 Sau khi thực hiện đoạn chương trình:
S:=‘ChucMungNamMoi’;
write(pos(‘un’,S));
Kết quả là: Đáp án: 6
17 Sau khi thực hiện đoạn chương trình:
S:=‘ChucMungNamMoi’;
write(pos(‘k’,S));
Kết quả là: Đáp án: 0
18 Sau khi thực hiện đoạn chương trình:
S:=‘ChucMungNamMoi’;
write(pos(‘Chuc’,S));
Kết quả là: Đáp án: 1
19 Sau khi thực hiện đoạn chương trình:
S:=‘ChucMungNamMoi’;
write(pos(‘Mung’,S));
Kết quả là: Đáp án: 5
Vấn đề 4: Hàm Upcase(1 ký tự)ĐỔI SANG CHỮ HOA
20 Sau khi thực hiện đoạn chương trình:
S:=‘LapTrinhPascal’;
write(upcase(s[7]));
Kết quả là: Đáp án: N
21 S:=’ThanhCongDaiThanhCong’;
Write(Upcase(S[3]));
Kết quả là: Đáp án: A
22 HT:=‘NguyenThiB’;
write(upcase(HT[8+2]));
Kết quả là: Đáp án: B
23 Sau khi thực hiện đoạn chương trình:
HT:=‘NguyenThiB’;
write(upcase(HT[8]), upcase(HT[5]));
Đáp án: HE
24 Sau khi thực hiện đoạn chương trình:
S:=’GiangSinhAnLanh’;
For i:= length(S) to 1 do
S[i]:=upcase(S[i]);write(S);
Kết quả là: Đáp án:GIANGSINHANLANH
25 Sau khi thực hiện đoạn chương trình:
S:=’XuanYeuThuong’;
For i:=1 to length(S) do
Trang 6Kết quả là: Đáp án:XUANYEUTHUONG
26 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenThiB’;
For i:=1 to 10 do write(upcase(S[i]));
Kết quả là: Đáp án: NGUYENTHIB
27 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenThiB’;
For i:=1 to 10 do S[i]:=upcase(S[i]);
write(S);
Kết quả là: Đáp án: NGUYENTHIB
28 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenThiB’;
For i:=1 to 10 do
begin
S[i]:=upcase(S[i]);
write(S[i]);
end;
Kết quả là: Đáp án: NGUYENTHIB
29 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenThiB’;
For i:=10 downto 1 do S[i]:=upcase(S[i]);write(S);
Kết quả là: Đáp án: NGUYENTHIB
30 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenThiB’;
For i:=10 downto 1 do write(upcase(S[i]));
Kết quả là: Đáp án: BIHTNEYUGN
31 Sau khi thực hiện đoạn chương trình:
S:=‘NguyenThiB’;
For i:=10 downto 1 do
begin
S[i]:=upcase(S[i]); write(S[i]);
end;
Kết quả là: Đáp án:BIHTNEYUGN
32 S:=’TinHoc’;S[5] có giá trị là:
Đáp án: ‘o’ hoặc ghi o
33 S:=’TinHoc’;S[3] có giá trị là:
Đáp án: ‘n’
34 S:=’TinHoc’;S[4] có giá trị là:
Đáp án: ‘H’
35 Sau khi thực hiện đoạn chương trình:
S:=’ABCDEFG’;
For i:=2 to 5 do Write(S[i]);
Kết quả là: Đáp án: BCDE
36 Sau khi thực hiện đoạn chương trình:
S:=’ABCDEFG’;
For i:=5 downto 2 do Write(S[i]);
Kết quả là: Đáp án: EDCB
Trang 737 Sau khi thực hiện đoạn chương trình:
S:=’123456789’;
For i:=4 to 9 do write(S[i]);
Kết quả là: Đáp án: 456789
38 Sau khi thực hiện đoạn chương trình:
S:=’123456789’;
For i:=9 downto 4 do write(S[i]);
Kết quả là: Đáp án: 987654
39 Sau khi thực hiện đoạn chương trình:
S:=’anh10934’;
For i:=7 downto 5 do write(S[i]);
Kết quả là: Đáp án: 390
40 Sau khi thực hiện đoạn chương trình:
S:=’105BaHuyenThanhQuan’;
For i:=1 to length(S) do
If (S[i]>=’A’) and (S[i]<=’Z’) then write(S[i]);
Kết quả là: Đáp án:BHTQ
41 Sau khi thực hiện đoạn chương trình:
S:=’105BaHuyenThanhQuan’;
For i:= length(S) downto 1 do
If (S[i]>=’A’) and (S[i]<=’Z’) then write(S[i]);
Kết quả là: Đáp án: QTHB
42 Sau khi thực hiện đoạn chương trình:
S:=’105BaHuyenThanhQuan’;
For i:=1 to length(S) do
If (S[i]>=’a’) and (S[i]<=’z’) then write(S[i]);
Kết quả là: Đáp án:auyenhanhuan
43 Sau khi thực hiện đoạn chương trình:
S:=’105BaHuyenThanhQuan’;
For i:= length(S) downto 1 do
If (S[i]>=’a’) and (S[i]<=’z’) then write(S[i]);
Kết quả là: Đáp án: nauhnahneyua
44 S:=‘Nguyen123Van456A’;
for i:=1 to length(S) do
if (S[i]>=‘1’) and (S[i]<=‘3’) then write(s[i]);
Đáp án: 123
45 S:=‘Nguyen123Van456Bi’;
for i:= length(s1) downto 1 do
if (S[i]>=‘1’) and (s[i]<=‘3’) then write(S[i]);
Đáp án: 321
46 S:=‘Nguyen1234Van456An’;
for i:=1 to length(S) do
if (S[i]>=‘1’) and (S[i]<=‘4’) then write(S[i]);
Đáp án: 12344
47 S:=‘Nguyen123Van4567A’;
for i:= length(S) downto 1 do
Trang 8if (S[i]>=‘4’) and (S[i]<=‘6’) then write(S[i]);
Đáp án: 654
48 S:=‘Nguyen123Van4568A’;
for i:=1 to length(S) do
if (S[i]>=‘4’) and (S[i]<‘6’) then write(S[i]);
Đáp án:45
Vấn đề 6: Hàm Length +ghép+Hàm Copy
49 S:=‘NguyenVanA’;
write(length(S),copy(S,8,1));
Đáp án: 10a
50 S:=‘NguyenVanA’;
write(length(S),copy(S,8,3));
Đáp án: 10anA
51 S:=‘NguyenVanA’;
write(copy(S,2,3),length(S));
Đáp án: guy10
Vấn đề 7: Thủ tục Delete(Xâu,Vị trí xóa, Xóa N kí tự)
52 Sau khi chương trình thực hiện xong đoạn chương trình:
S:=’DoiTuyenHocSinhGioi’;
Delete(S,1,8);Write(S);
Kết quả là: Đáp án:HocSinhGioi
53 Sau khi chương trình thực hiện xong đoạn chương trình:
S:=’DoiTuyenHocSinhGioi’;
Delete(S,4,5);Write(S);
Kết quả là: Đáp án:DoiHocSinhGioi
54 Để xóa ký tự đầu của xâu S ta viết:
Đáp án:Delete(S,1,1);
55 Để xóa ký tự cuối cùng của xâu S ta viết:
Đáp án:Delete(S,length(S),1);
56 S:=’TranThiLe’; Để có giá trị của xâu S là ‘TranLe’ thì ta dùng lệnh Đáp án:Delete(S,5,3);
57 S:=’TranThiLe’; Để có giá trị của xâu S là ‘Tran Le’ thì ta dùng lệnh Đáp án:Delete(S,5,3);Insert(‘ ‘,S,5);
58 S:=’TranThiLe’; Để có giá trị của xâu S là ‘Tran_Le’ thì ta dùng lệnh Đáp án:Delete(S,5,3);Insert(‘_‘,S,5);
59 S:=’TranThiLe’; Để có giá trị của xâu S là ‘TraiLe’ thì ta dùng lệnh Đáp án:Delete(S,4,3);
60 S:=‘NguyenVanA’;
Delete(S,7,3);
Write(S);
Đáp án:NguyenA
61 S:=‘NguyenVanA’;
Delete(S,1,6);
Write(S);
Đáp án:VanA
62 S:=‘NguyenVanA’;
Trang 9Delete(S,1,6);Delete(S,1,3);Write(S);
Đáp án:A
Vấn đề 8: Thủ tục Insert(Xâu1,Xâu2, Vị trí chèn)
63 S:=‘DaiCong’;
Insert(‘Thanh’ ,S,4);
Write(S);
Đáp án:DaiThanhCong
64 S:=‘DaiCong’;
Insert(‘Thanh’ ,S,8);
Write(S);
Đáp án:DaiCongThanh
65 S:=‘DaiCong’;
Insert(‘Thanh’ ,S,1);
Write(S);
Đáp án:ThanhDaiCong
Vấn đề 9: Hàm Copy +ghép +Thủ tục Delete
66 S1:=‘NguyenVanA’;
S2:=copy(s1,1,9);delete(s2,1,6);
write(length(s2));
Đáp án: 3
67 S1:=‘NguyenVanA’;
S2:=copy(S1,1,9);delete(S2,1,6);
write(S2);
Đáp án: Van
68 S1:=‘LeThiA’;
S2:=copy(s1,3,4);delete(S2,4,1);
write(length(S2));
Đáp án: 3
69 S1:=‘Tran_Thi_B’;
S2:=Copy(S1,1,8);delete(S2,1,5);
write(S2);
Đáp án: Thi
70 S1:=‘Tran_Thi_B’;
delete(S1,1,5);S2:=Copy(S1,1,3);
write(S2);
Đáp án: Thi
71 S1:=‘Tran_Thi_B’;
delete(S1,1,2);S2:=Copy(S1,2,3);
write(S2);
Đáp án: n_T
72 S1:=‘Tran_Thi_B’;
delete(S1,3,5);S2:=Copy(S1,1,3);
write(S2);
Đáp án: Tri
73 S1:=‘Tran_Thi_B’;
delete(S1,3,5);S2:=Copy(S1,1,3);delete(s2,2,1);
write(S2);
Đáp án: Ti
Vấn đề 11: Hàm Pos +ghép +Hàm Upcase
74 S:=‘NamTanMeo’;
Trang 10vitri:=pos(‘n’,S);
write(upcase(S[vitri-1]));
Đáp án: A
75 S:=’abcde’;vitri:=pos(‘c’,S);
Write(upcase(S[vitri-2]));
Kết quả là: Đáp án: A
76 S:=‘NamCanhDan’;
vitri:=pos(‘a’,s);
write(upcase(S[vitri*2-1]));
Đáp án: M
77 S:=‘NamCanhDan’;
vitri:=pos(‘an’,s);
write(upcase(S[vitri+2]));
Đáp án: H
Vấn đề 12: Thủ tục Delete + ghép + Thủ tục Insert
78 Sau khi thực hiện xong đoạn chương trình:
S:=’ChucMungNamMoi’;
Delete(S,9,6);
Insert(‘CacBan’,S,9);Write(S);
Kết quả là: Đáp án: ChucMungCacBan
79 Sau khi thực hiện xong đoạn chương trình:
S:=’ChucMungNamMoi’;
Delete(S,9,3);
Insert(‘Ban’,S,9);Write(S);
Kết quả là: Đáp án: ChucMungBanMoi
80 S:=‘ChucMungNamMoi’;
delete(S,9,6);
insert(‘GiangSinh’,S,9);
write(S);
Kết quả là: Đáp án: ChucMungGiangSinh
81 a:=‘HappyNewYear’;
delete(a,6,7);
insert(‘MerryChristmas’,a,6);
write(a);
Kết quả là: Đáp án: HappyMerryChristmas
82 Sau khi thực hiện đoạn chương trình:
S1:=’VietNam’;
S2:=’ChienThangVeVang’;
If S1>S2 then Write(S1) else Write(S2);
Kết quả là: Đáp án:VietNam
83 Sau khi thực hiện đoạn chương trình:
S1:=’VietNam’;
S2:=’ChienThangVeVang’;
If S1<S2 then Write(S1) else Write(S2);
Sắp theo thứ tự từ điển A<B< <Z<a<b<c<…<z