字符与字符串练习

一、看程序写结果

1.

var ch:string;

  i:byte;

begin

 readln(ch);

 for i:=1 to ord(ch[0]) do

  write(ch[i]:2);

 writeln

end.

输入:My name is Tom.
output:

2.

var i:integer;

begin

 for i:=1 to 13 do write(chr(63+2*i):4);

 writeln;

 for i:=1 to 13 do write(chr(92-2*i):4);

 writeln

end.

输出:

3.

VAR A:CHAR;

BEGIN

 READLN(A);

 WRITELN('A:',A);

 WRITELN('SUCC(A):',SUCC(A));

 WRITELN('PRED(A):',PRED(A));

 WRITELN('ORD(A):',ORD(A));

 WRITELN('CHR(ORD(A)):',CHR(ORD(A)));

 WRITELN('CHR(ORD(A)+2):',CHR(ORD(A)+2));

END.

输入:e 
输出:

   
4.

var s:integer;

ch:char;

  count:array['a'..'z'] of integer;

begin

 for ch:='a' to 'z' do count[ch]:=0;

  read(ch);

 while ch<>'!' do

 begin

  if (ch>='a')and(ch<='z') then

   count[ch]:=count[ch]+1;

  read(ch)

 end;

 s:=0;

 for ch:='b' to 'z' do s:=s+count[ch];

 writeln(s)

end.

输入:We are proud OF OUR COUNTRY! 

输出:

 

5.

var a:array[1..100] of string[20];

  s:string;temp:string[20];

  i,j,k,n:integer;

begin

 readln(n);readln(s);i:=1;j:=0;k:=0;

 while i<=length(s) do

  if s[i] in ['0'..'9'] then

   begin

   j:=1;

   while s[i] in ['0'..'9'] do

   begin

    temp[j]:=s[i];

    inc(j);inc(i){inc(i)相当于i:=i+1}

   end;

   temp[0]:=chr(j-1);

   k:=k+1;

   a[k]:=temp

   end

  else

 while s[i]=' ' do inc(i);

 for i:=1 to n-1 do

  for j:=i+1 to n do

   if (a[i]+a[j])<(a[j]+a[i]) then

    begin
     temp:=a[i];a[i]:=a[j];
     a[j]:=temp
    end;

 for i:=1 to n do write(a[i]);

 writeln

end.
输入:4
81 792 39 79
输出:

 

二、编写程序

1、读入一串字符,以句号结束,然后让其倒序输出。
如输入:I am a student.
输出:tneduts a ma I

2、读入一串数字,以句号结束,请统计其中‘0’到‘9’的各个数字的个数。
如输入:91254782354987012345978. 
输出:0:1 1:2 2:3 3:2 4:3 5:3 7:3 8:3 9:3

3、输入一段文章(255个字符以内),求文章中单词的个数(相同单词只记一次,The和the认为是同一个单词,只记一次)。

4、请编写一个程序,让它能够计算两个200位以内的整数的和。