数字和字符处理题型分析.docx

上传人:b****5 文档编号:7854050 上传时间:2023-01-26 格式:DOCX 页数:30 大小:58.26KB
下载 相关 举报
数字和字符处理题型分析.docx_第1页
第1页 / 共30页
数字和字符处理题型分析.docx_第2页
第2页 / 共30页
数字和字符处理题型分析.docx_第3页
第3页 / 共30页
数字和字符处理题型分析.docx_第4页
第4页 / 共30页
数字和字符处理题型分析.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

数字和字符处理题型分析.docx

《数字和字符处理题型分析.docx》由会员分享,可在线阅读,更多相关《数字和字符处理题型分析.docx(30页珍藏版)》请在冰豆网上搜索。

数字和字符处理题型分析.docx

数字和字符处理题型分析

※数字和字符处理题型分析

(2)执行下面的程序,单击窗体后在窗体上显示的第一行结果是 [1] ,第三行结果是__[2]__。

PrivateSubCommand1_Click()

  DimMystr,MyStr1,Mystr2AsString

  MyStr1="B"

  Fori=1To3

    Mystr2=LCase(MyStr1)

    MyStr1=MyStr1&Mystr2

    Mystr=Mystr&MyStr1

    PrintMystr

    MyStr1=Chr(Asc(MyStr1)+i)

  Nexti

EndSub

i

MyStr1

MyStr2

MyStr

打印

B

1

Bb

b

Bb

Bb

C

2

Cc

c

E

BbCc

BbCc

3

Ee

e

BbCcEe

BbCcEe

答案:

(1)Bb

   

(2)BbCcEe

分析:

Asc()函数只取第一个字符的数值。

7.下面是一个加密/解密程序,加密的算法是:

将原文中每个字符的ASCII代码加上该字符在原文中的位置数(设字符在原文中是第n个字符,在其位置是n被10除的余数,当余数为0时,其位置数为10。

例如原文字符串为“meetmeatsunset”,第一个字符“m”,其位置数为1,而“s”为第12个字符,其位置数是被10除的余数2,其余依次类推)作为密文字符的代码,再将密码字符逆序排列(例如ABCD,逆序排列为DCBA)即为密文。

解密算法是加密算法的逆运算。

OptionExplicit

PrivateSubCommand1_Click()'加密

DimencAsString,decAsString,iAsInteger

DimsAsString*1,nAsInteger

dec=Text1

Fori=1ToLen(dec)

s=Mid(dec,i,1)

(19)

Ifn=0Thenn=10

enc=Chr(Asc(s)+n)&enc

Nexti

Text2=enc

EndSub

PrivateSubCommand2_Click()'解密

DimencAsString,decAsString,iAsInteger

DimnAsInteger,sAsString*1,pAsInteger

enc=Text2

(20)

Fori=1Ton

s=Mid(enc,i,1)

p=nMod10

Ifp=0Thenp=10

dec=(21)

n=n-1

Nexti

Text1=dec

EndSub

答案:

n=iMod10n=Len(enc)Chr(Asc(s)-p)&dec

(4)运行下面的程序,单击窗体后在窗体上显示的第一行结果是 [1] ,第三行结果是 [2] 。

PrivateSubForm_Click()

  DimmstAsString,mst1AsString,mst2AsString

  DimiAsInteger

  mst1="CeBbAa"

  Fori=Len(mst1)To1Step-2

    mst2=Mid(mst1,i-1,2)

    mst=mst&mst2

    Printmst

  Nexti

EndSub

mst1

mst2

mst

i

打印

CeBbAa

Aa

Aa

6

Aa

Bb

AaBb

4

AaBb

Cc

AaBbc

2

AaBbc

答案:

(8)Aa

   (9)AaBbCe

分析:

Mid()函数的操作方式是从后向前取字符。

(2)执行下面程序,第二行输出结果是 [1] ,第三行输出结果是 [2] 。

PrivateSubForm_Click()

  DimchAsString,iAsInteger

  ch="ABC"

  Fori=1To3

    ch=Mid(ch,2*i-1,1)+Left(ch,Len(ch))

    Printch

  Nexti

EndSub

ch

i

打印

ABC

1

Mid("ABC",1,1)+Left("ABC",3)

"A”+”ABC"

AABC

AABC

2

Mid("AABC",3,1)+Left("AABC",4)

"B"+"AABC"

BAABC

BAABC

3

Mid("BAABC",5,1)+Left("BAABC",5)

"C"+"BAABC"

CBAABC

CBAABC

答案:

(1)BAABC

   

(2)CBAABC

35.执行下面的程序,单击窗体后在窗体上显示的结果是___35___。

PrivateSubForm_Click()

  DimStr1AsString,Str2AsString

  DimStr3AsString,IAsInteger

  Str1="e"

  ForI=1To2

    Str2=UCase(Str1)

    Str1=Str2&Str1

    Str3=Str3&Str1

    Str1=Chr(Asc(Str1)+I)

  NextI

  PrintStr3

EndSub

I

Str1

Str2

Str3

打印

1

e

E

Ee

Ee

2

F

F

EeFF

FF

H

EeFF

(A)EeFF(B)eEFF(C)EEFF(D)eeFF

答案:

A

分析:

35.在窗体Form1上,有一个列表框控件List1,在窗体的Click事件中有如下代码:

PrivateSubForm_Click()

  DimkAsInteger

  DimentryAsString,itemAsString

  entry="EDCBA"

  Fork=Len(entry)To1Step-1

    item=LCase(Mid(entry,k,1))&k

    List1.AddItemitem

  Nextk

EndSub

运行此程序,单击窗体后在窗体的列表框中显示的第四个列表项内容是___35___。

(A)b4(B)b2(C)d4(D)d2

答案:

D

分析:

K

entry

item

添加

5

EDCBA

a5

a5

4

b4

b4

3

c3

c3

2

d2

d2

1

e1

e1

1.执行下面的程序,在窗体上显示的输出结果的第一行是___thisisabook.___,第二行结果是___ThisIsABook.___。

OptionExplicit

PrivateSubForm_Click()

  DimsAsString,iAsInteger,flagAsBoolean

  s="THISISABOOK."

  s=LCase(s)

  Prints

  flag=True

  Fori=1ToLen(s)

    IfMid(s,i,1)=""Then

      flag=True

    ElseIfflagThen

      s=Left(s,i-1)&UCase(Mid(s,i,1))&Right(s,Len(s)-i)

      flag=False

    EndIf

  Nexti

  Prints

EndSub

s

i

flag

打印

THISISABOOK.

1

True

thisisabook.

thisisabook.

Thisisabook.

False

5

True

ThisIsabook.

6

False

8

True

ThisIsAbook.

9

False

10

True

ThisIsABook.

11

False

ThisIsABook.

分析:

用flag来控制进程的走向,

4.执行下面的程序,图片框第一行内容是CBA,图片框第二行内容是ABC。

OptionExplicit

PrivateSubCommand1_Click()

  DimSAsString

  S="ABC"

  BackS

  Picture1.Print

  Picture1.PrintS

EndSub

PrivateSubBack(StAsString)

  IfLen(St)>1Then

    Back(Right(St,Len(St)-1))

  EndIf

  Picture1.PrintLeft(St,1);

EndSub

St

层次

打印

ABC

BC

C

C

BC

CB

ABC

CBA

0

ABC

分析:

这是递归过程。

3.执行下面的程序,单击窗体上的按钮,则在窗体上显示的第一行是 (4) ,第二行是 (5) ,第三行是 (6) 。

PrivateSubCommand1_Click()

 DimsAsString,tAsString

 DimkAsInteger,mAsInteger

 s="BASICY"

 k=1:

m=k

 Fork=1ToLen(s)Stepm+1

  t=t&Chr(Asc(Mid(s,m,1))+k)

  k=k+1

  IfMid(s,k,1)="Y"ThenExitFor

  m=m+k

  Printt

 Nextk

 Printm

EndSub

s

t

k

m

打印

BASICY

C

1

1

C

2

1+2=3

CW

4

3+5=8

CW

7

8

答案:

(4)C

(5)CW

(6)8

分析:

要记住Chr(65)="A",Chr(97)="a"。

Chr(x)返回以x为ASCII代码值的字符,Asc(x)为求单个字符ASCII代码函数,Mid(x,n1,n2)从x字符串左边第n1个位置开始向右起取n2个字符。

注意:

循环变量k在循环体参与了运算,实际步长为3。

变量m的赋值过程为1、3、8。

2.运行下面的程序,当单击窗体时,文本框Text1中的内容是 

(2) ,文本框Text2中的内容是 (3) 。

PrivateSubForm_Click()

 DimSt0AsString

 DimSt1AsString,St2AsString

 St0="ASFRSDCFRSKX"

 CallChange_String(St0,St1,St2)

 Text1.Text=St1

 Text2.Text=St2

EndSub

PrivateSubChange_String(SAsString,St1AsString,St2AsString)

 DimtemAsString,iAsInteger

 Fori=1ToLen(S)‘1~12,实际上只循环了4次,读到“R”就退出了

  tem=Mid(S,i,1)‘读取一个字符,A、S、F、R、S、……

  Iftem="S"Then

    St2=St2&"at"

  ElseIftem="R"Then

    St1=St1&"T"

    ExitFor

  Else

    St1=St1&tem

    St2=St2&tem

  EndIf

 Nexti

EndSub

答案:

i

S

tem

St1

St2

1

ASFRSDCFRSKX

A

A

A

2

S

"A"&"at"

Aat

3

F

"A"&"F"

AF

"Aat"&"F"

AatF

4

R

"AF"&"T"

AFT

(2)AFT

(3)AatF

分析:

Mid(x,n1,n2)从x字符串左边第n1个位置开始向右起取n2个字符。

过程Change_String的功能是,将字符串St中的“S”置换为“at”,“R”置换为“T”,并退出For循环。

3.执行下面程序,单击命令按钮Command1,则在窗体上显示的第一行是 (4) ,第二行是 (5) ,第三行是 (6) 。

PrivateSubCommand1_Click()

  Dims_dataAsInteger,d_dataAsString,kAsInteger,pAsString

  s_data=29

  DoUntils_data<=5

    p=s_dataMod5

    d_data=d_data&p

    s_data=s_data\5

  Loop

  d_data=d_data&s_data

  Prints_data

  Printd_data

  p=""

  Fork=Len(d_data)To1Step-1‘将d_data的内容颠倒过来

    p=p&Mid(d_data,k,1)

  Nextk

  Printp

EndSub

答案:

s_data

p

d_data

k

打印

29

4

4

5

""

45

5

5

2

45

54

1

54

(4)5

(5)45

(6)54

分析:

本题的难点是字符串和数值之间按VB的默认的方式进行运算和赋值时的类型转换问题。

如果字符串表示数值,则可将字符串赋予数值变量。

也可将数值赋予字符串变量。

 VisualBasic会自动强制变量为适当的数据类型。

在转换字符串和数值时要小心;如果传送字符串中的值不是数值,则在运行时会出错。

Mod运算符用来对两个数作除法并且只返回余数。

2.执行下面的Command1_Click事件过程后,Text1中显示的内容是    ,Text2中显示的内容是    。

PrivateSubCommand1_Click()

  DimSAsString,IAsInteger

  ConstChAsString="0123456789."

  S="2L0A03U.1SI0V.11"

  ForI=1ToLen(S)

    IfInStr(Ch,Mid(S,I,1))=0Then‘视单个字符是否为数值型的

      Text1=Mid(S,I,1)&Text1

    Else

      Text2=Text2&Mid(S,I,1)

    EndIf

  NextI

EndSub

S

I

Ch

Text1

Text2

2L0A03U.1SI0V.11

1

0123456789.

2

2

L

3

20

4

AL

5

200

6

2003

7

UAL

8

2003.

9

2003.1

10

SUAL

11

ISUAL

12

2003.10

13

VISUAL

14

2003.10.

15

2003.10.11

16

VISUAL

答案:

2003.10.1  IVISUAL

1.执行Command1_Click实践过程后,显示在窗体上的第一行内容是 【1】 ,第二行内容是 【2】 ,第三行内容是 【3】 。

PrivateSubCommand1_Click()

 S="TUPMOC":

K=Len(S)

 ForI=1ToK/2

  Mid(S,I,K-2*(I-1))=Mid(S,I+1,K-2*I)&Mid(S,I,1)

‘将右边的内容替换左边的内容

  PrintS

 NextI

EndSub

答案:

【1】UPMOTC

答案:

【2】UMOPTC

答案:

【3】UMOPTC

I

K

S

Mid(S,I+1,K-2*I)

Mid(S,I,1)

Mid(S,I,K-2*(I-1))

1

6

TUPMOC

Mid(S,2,4)

“UPMO”

“T”

Mid(S,1,6)

“UPMOTC”

2

UPMOTC

Mid(S,3,2)

“MO”

“P”

Mid(S,2,4)

“UMOPTC”

3

UMOPTC

Mid(S,4,0)

“”

“O”

Mid(S,3,2)

“UMOPTC”

“UMOPTC”

分析:

当Mid函数放置在等号的左边的话,是将右边的内容替换坐标的内容。

~~

7.下面程序是把给定的16进制正整数转换为10进制数。

提示:

一个16进制正整数转换为10进制数的方法是直接用下面的幂级数展开运算而得。

(anan-1…a1)16=an*16n-1+an-1*16n-2+…+a1*160

OptionExplicit

PrivateSubForm_Click()

  DimStAsString,DemAsLong

  St=InputBox("输入一个十六进制数")

  Dem=Convert(St)

  PrintSt;"=";Dem

EndSub

PrivateFunctionConvert(SAsString)AsLong

  DimNAsInteger,IAsInteger,SubstringAsString*1

  DimPAsLong,KAsLong,Asc1AsInteger

  N=______‘N的作用是字符串的长度(即数值的位数)Len(s)

  P=16^N‘P的作用是十六进制数

  ForI=1ToN

    P=P/16

    Substring=______‘Substring的作用是记录每个字符Mid(S,I,1)

    SelectCaseSubstring

    Case"0"To"9"

      K=K+P*Val(Substring)‘K的作用是记录十进制的数,Val(Substring)为0~9

    Case______ ’A~F的计算范围"A"To"F"或Else

      Asc1=Asc(Substring)-Asc("A")+10‘Asc1记录A~F的代表的十进制数(10~15)

      ______‘参照上一句K=K+P*Val(Substring)K=K+P*Asc1

    EndSelect

  NextI

  ______‘将K值赋值给函数名返回主过程Convert=K

EndFunction

答案:

Len(s) Mid(S,I,1) "A"To"F"或Else K=K+P*Asc1 Convert=K

分析:

N的作用是字符串的长度(即数值的位数),Substring的作用是记录每个字符,K的作用是记录十进制的数。

5.执行下面程序,在文本框Text1中输入数据as235gh456yj后单击Command1按钮,在列表框List1中显示的第一行是(12)、第二行是(13);列表框List2中显示的第一行是(14)、第二行是(15)。

OptionExplicit

PrivateSubCommand1_Click()

DimstAsString,sAsString,kAsInteger

DimpAsString,num()AsInteger,iAsInteger,nAsInteger

s=Text1

Fori=1ToLen(s)

st=Mid(s,i,1)

Ifst>="0"Andst<="9"Then

p=p&st

Else

Ifp<>""ThenList1.AddItemp

p=""

EndIf

Nexti

Ifp<>""ThenList1.AddItemp

ReDimnum(List1.ListCount)

Fori=1ToUBound(num)

p=List1.List(i-1)

num(i)=Val(Left(p,Len(p)-1))

n=Val(Right(p,1))

List2.AddItemchange(num(i),n)

Nexti

EndSub

PrivateFunctionchange(xAsInteger,yAsInteger)AsInteger

DimpAsInteger,kAsInteger

Do

p=xMod10

change=change+p*y^k

x=x\10

k=k+1

LoopUntilx<=0

EndFunction

答案:

2354561329

s

st

p

List1

List1

p

num

(1)

n

num

(2)

as235gh456yj

a

235

23

5

s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1