上机操作题目.docx

上传人:b****6 文档编号:8903334 上传时间:2023-05-15 格式:DOCX 页数:17 大小:53.17KB
下载 相关 举报
上机操作题目.docx_第1页
第1页 / 共17页
上机操作题目.docx_第2页
第2页 / 共17页
上机操作题目.docx_第3页
第3页 / 共17页
上机操作题目.docx_第4页
第4页 / 共17页
上机操作题目.docx_第5页
第5页 / 共17页
上机操作题目.docx_第6页
第6页 / 共17页
上机操作题目.docx_第7页
第7页 / 共17页
上机操作题目.docx_第8页
第8页 / 共17页
上机操作题目.docx_第9页
第9页 / 共17页
上机操作题目.docx_第10页
第10页 / 共17页
上机操作题目.docx_第11页
第11页 / 共17页
上机操作题目.docx_第12页
第12页 / 共17页
上机操作题目.docx_第13页
第13页 / 共17页
上机操作题目.docx_第14页
第14页 / 共17页
上机操作题目.docx_第15页
第15页 / 共17页
上机操作题目.docx_第16页
第16页 / 共17页
上机操作题目.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

上机操作题目.docx

《上机操作题目.docx》由会员分享,可在线阅读,更多相关《上机操作题目.docx(17页珍藏版)》请在冰点文库上搜索。

上机操作题目.docx

上机操作题目

上机操作练习题

1.某数组有20个元素,其值为随机产生的两位整数。

要求将前10个元素与后10个元素对换。

即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换。

使用Picture控件输出数组原数组值和对换后各元素值。

注意:

先改picture的autoredraw值为true

OptionBase1

DimiAsInteger,tAsInteger

Dima(20)AsInteger

PrivateSubForm_Load()

Picture1.Print"原数组为:

"

Randomize

Fori=1To20

a(i)=Int(Rnd*90)+10

Picture1.Printa(i)

Nexti

Picture1.Print

Picture1.Print"对换后数组为:

"

Fori=1To10

t=a(i):

a(i)=a(21-i):

a(21-i)=t

Next

Fori=1To20

Picture1.Printa(i)

Next

EndSub

2.从数组中删除一个数。

先定义一个一维数组,大小、数组元素值自定。

从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,提示“该数不在数组中”

注意:

1)如果数组中存在多个与该数相同的元素,每一个都能删除;

2)能实现多次删除

OptionBase1

Dima()AsVariant

Dimi,n,p,kAsInteger,findAsBoolean

PrivateSubCommand1_Click()

n=Val(Text1.Text)

Callzhao(n)

Iffind=FalseThen

MsgBox"数组中没有该数",vbOKOnly,"提示"

Else

Picture1.Cls

Fori=1ToUBound(a)

Picture1.Printa(i)

Nexti

EndIf

EndSub

PrivateSubForm_Load()

ReDima(10)

a=Array(23,6,7,92,7,54,68,41,109,77)

Fori=1To10

Picture1.Printa(i)

Nexti

EndSub

PrivateSubzhao(n)

i=1:

find=False

Do

Ifa(i)=nThen

p=i:

find=True

Fork=pToUBound(a)-1

a(k)=a(k+1)

Nextk

ReDimPreservea(UBound(a)-1)

i=i-1

EndIf

i=i+1

LoopWhile(i<=UBound(a))

EndSub

3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数x插入到数组中,插入后数组仍有序。

注意:

要求利用动态数组,能够实现多次插入

OptionBase1

Dima()AsVariant

Dimi,n,p,cAsInteger

PrivateSubCommand1_Click()

n=Val(InputBox("请输入您要插入的数"))

c=c+1

ReDimPreservea(10+c)

Fori=1To10+c-1

Ifn

ExitFor

Nexti

Ifi=10+cThen

a(10+c)=n

Else

Fori=10+cTop+1Step-1

a(i)=a(i-1)

Nexti

a(p)=n

EndIf

Picture1.Cls

Fori=1To10+c

Picture1.Printa(i)

Nexti

EndSub

PrivateSubForm_Load()

ReDima(10)

a=Array(1,3,23,36,55,61,79,91,97,101)

Fori=1To10

Picture1.Printa(i)

Nexti

EndSub

4.6个评委为4位歌手打分,分数介于1-100之间。

去掉一个最高分,一个最低分,求出每位选手的最后得分。

将4位歌手得分从高到低排列输出,同时输出该选手的编号。

如:

歌手395分

歌手187分

歌手480分

歌手270分

PrivateTypesinger

noAsInteger

sc(1To6)AsInteger

minAsInteger

maxAsInteger

aveAsSingle

EndType

PrivateSubCommand1_Click()

Dimx(1To4)Assinger,sumAsLong

DimtAssinger

Dimi,jAsInteger

Fori=1To4

x(i).no=i

x(i).max=0

x(i).min=101

Randomize

sum=0

Forj=1To6

x(i).sc(j)=Int(Rnd*100)+1

sum=sum+x(i).sc(j)

Ifx(i).sc(j)>x(i).maxThenx(i).max=x(i).sc(j)

Ifx(i).sc(j)

Next

x(i).ave=(sum-x(i).max-x(i).min)/4

Nexti

Fori=1To3

Forj=1To4-i

Ifx(j).ave>x(j+1).aveThen

t=x(j):

x(j)=x(j+1):

x(j+1)=t

EndIf

Nextj

Nexti

Fori=1To4

Picture1.Print"歌手"&x(i).no,x(i).ave&"分"

Next

EndSub

5.编写函数求一元二次方程ax2+bx+c=0的解。

注意:

要求考虑方程有两相等实根、两不等实根和两个虚根的情况。

6.文本框中任意输入一组字符,统计出大写字母多少个,小写字母多少个,数字多少个?

要求用过程实现。

OptionExplicit

Dimi%,j%,k%,h%,nAsString,tAsString

PrivateSubForm_Load()

Show

n=InputBox("请输入字符串")

Callmy(n)

EndSub

PrivateSubmy(n)

Fori=1ToLen(n)

t=Mid(n,i,1)

Ift>="A"Andt<="Z"Then

j=j+1

ElseIft>="a"Andt<="z"Then

k=k+1

ElseIft>="0"Andt<="9"Then

h=h+1

EndIf

Nexti

Print"大写字母有"&j&"个"

Print"小写字母有"&k&"个"

Print"数字有"&h&"个"

EndSub

7.随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。

OptionBase1

Dimi,j,s1,s2,s3,s4,s5AsInteger,a(5,5)AsInteger

PrivateSubForm_Load()

Show

Fori=1To5

Forj=1To5

a(i,j)=Int(Rnd*9)+1

Ifi=jOri+j=6Thena(i,j)=1

Nextj

Nexti

Fori=1To5

Forj=1To5

Printa(i,j);

Nextj

Print

Nexti

Fori=1To5

s1=s1+a(i,1)

s2=s2+a(i,5)

Nexti

Forj=1To5

s3=s3+a(1,j)

s4=s4+a(5,j)

Nextj

s5=s1+s2+s3+s4-4

List1.AddItem"矩阵四周元素和为:

"&s5

EndSub

8.编写一个函数,能将字母按下列规律译成密码:

A<-->Za<-->z

B<-->Yb<-->y

即第1个字母与第26个字母互换,第i个字母与第(26-i+1)个字母互换。

在文本框中任意输入一个字符串,调用该函数将密码显示在另一个文本框中。

Dimi,jAsInteger,x,y,nAsString

PrivateSubCommand1_Click()

n=Text1.Text

Callmima(n)

EndSub

PrivateFunctionmima(n)

Fori=1ToLen(n)

x=Mid(n,i,1)

Ifx>="a"Andx<="z"Then

j=Asc(x)-96

y=Chr(96+27-j)

Else

j=Asc(x)-64

y=Chr(64+27-j)

EndIf

Text2.Text=Text2.Text&y

Nexti

EndFunction

9.编写2个函数,分别求两个正整数的最大公约数和最小公倍数,用户任意输入两个数,采用函数嵌套调用,将结果在窗体显示。

Dimx,yAsInteger

PrivateSubCommand1_Click()

x=Val(Text1.Text)

y=Val(Text2.Text)

Text3.Text=gys(x,y)

Text4.Text=gbs(x,y)

EndSub

PrivateFunctiongys(ByValmAsInteger,ByValnAsInteger)

Dimr,tAsInteger

Ifn

t=n:

n=m:

m=t

EndIf

r=mModn

Whiler<>0

m=n:

n=r:

r=mModn

Wend

gys=n

EndFunction

PrivateFunctiongbs(ByValmAsInteger,ByValnAsInteger)

DimrAsInteger

r=m*n/gys(m,n)

gbs=r

EndFunction

10.编写计算阶乘的Function过程,利用ex的下列公式计算e(直到最后一项小于10-6为止)的近似值。

ex≈1+x/1!

+x2/2!

+x3/3!

+…+xn/n!

 

11.输入整数N,显示具有N行的杨辉三角形,要求按正三角形的形式在图片框中显示。

12.编写一个过程,输出以下菱形图形:

A

BBB

CCCCC

DDDDDDD

CCCCC

BBB

A

主程序输入一个奇数(>=3),调用过程在窗体上输入图形。

13.编写一个将十进制转换为二进制字符串输出的函数。

调用函数计算用户输入一个十进制数,在文本框中输出二进制值。

注意:

输入数据为负数,应该将符号位输出

如-13结果-1101

14.输入一个整数N,产生N个随机数(范围1—10*N),然后采用任何2种算法实现由小到大的排序。

将排序前后的数据显示出来。

15.

编写程序,在窗体上输出3~100之间的所有素数。

要求每行显示4个数。

16.设计程序,单击“求素数”按钮,将2个文本框范围内的素数添加到列表框中。

单击“写入文件按钮”,将列表框中所有末位数字是9的数写入到“从“c:

\sushu9.txt”。

中。

界面如下:

17.编写2个函数,分别采用递归法和递推法求斐波纳契数列的第n个月的兔子数,n使用inputbox输入,调用函数的结果在窗体上显示。

OptionBase1

Dimn,iAsInteger,a()AsDouble

PrivateSubCommand1_Click()

Show

n=Val(InputBox("输入月份"))

Print"第"&n&"个月的兔子数为"&ditui(n)

EndSub

PrivateFunctionditui(n)AsDouble

Dima,b,cAsDouble

Ifn=1Orn=2Then

ditui=1

Else

a=1:

b=1

Fori=3Ton

c=a+b

a=b

b=c

Next

ditui=c

EndIf

EndFunction

PrivateSubCommand2_Click()

Show

n=Val(InputBox("输入月份"))

Print"第"&n&"个月的兔子数为"&digui(n)

EndSub

PrivateFunctiondigui(n)AsDouble

ReDima(n)AsDouble

Ifn=1Orn=2Then

digui=1

Else

a

(1)=1:

a

(2)=1

Fori=3Ton

a(i)=a(i-1)+a(i-2)

digui=a(i)

Nexti

EndIf

EndFunction

18.有一个数列:

1,1,2,3,5,8,13,21,…,按规律计算出前40项的和,结果写入到顺序文件(out.txt)中。

界面设计见图1,写入结果的数据文件out.txt用“记事本”打开如图2。

图1运行界面图2outt.txt文件内容

OptionBase1

Dima(40)AsLong

DimiAsInteger,nAsLong

PrivateSubCommand1_Click()

a

(1)=1:

a

(2)=1

n=2

Fori=3To40

a(i)=a(i-1)+a(i-2)

n=n+a(i)

Nexti

Label1.Caption="数列1,1,2,3,5,8...前40项的和是:

"&n

EndSub

PrivateSubCommand2_Click()

Open"out.txt"ForOutputAs#1

Print#1,Label1.Caption

Close#1

EndSub

19.单击读数按钮从文件in.txt中读入一个整数(先用记事本创建一个in.txt文件,其中输入任意一个素数,如图3中输入的是101),单击计算按钮则计算出大于该数的第1个素数,单击存盘将结果保存到文件out.txt中,如图5。

运行界面如图13-3所示。

图3图4图5

Dimn,i,xAsInteger,pAsBoolean

PrivateSubCommand1_Click()

Open"in.txt"ForInputAs#1

Input#1,n

Close#1

EndSub

PrivateSubCommand2_Click()

x=n+1

p=False

DoUntilp=True

Fori=2Tox-1

IfxModi=0ThenExitFor

Nexti

Ifi=xThen

p=True

Else

x=x+1

EndIf

Loop

EndSub

PrivateSubCommand3_Click()

Open"out.txt"ForOutputAs#1

Print#1,x

Close#1

EndSub

20.如图6所示。

当选中某一个单选按钮并单击“计算”按钮时,则计算出该单选按钮标题所指明的所有素数之和,并在文本框中显示出来;单击“存盘”按钮将计算所得的素数之和以out.txt文件名存入“c:

\exam”目录中。

判断一个数是否为素数的过程自己编写,存盘过程已经给出。

编写两个命令按钮的Click事件过程。

图6

Dimi,sumAsInteger

PrivateSubCommand1_Click()

Text1.Text=""

sum=0

IfOption1=TrueThen

Fori=101To199Step2

Ifsushu(i)=TrueThen

sum=sum+i

EndIf

Nexti

Else

Fori=201To399Step2

Ifsushu(i)=TrueThen

sum=sum+i

EndIf

Nexti

EndIf

Text1.Text=sum

EndSub

PrivateFunctionsushu(i)AsBoolean

DimnAsInteger

Forn=2Toi-1

IfiModn=0ThenExitFor

Nextn

Ifn=iThen

sushu=True

Else

sushu=False

EndIf

EndFunction

PrivateSubCommand2_Click()

DimfAsString,sAsString

f="out.txt"

s=Text1.Text

Callputdata(f,s)

EndSub

Subputdata(t_FileNameAsString,T_StrAsVariant)'存盘过程

Open"c:

\exam\"&t_FileNameForOutputAs#1'存入c:

\exam目录下

Print#1,T_Str

Close#1

EndSub

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2