模拟考试题打印版.docx
《模拟考试题打印版.docx》由会员分享,可在线阅读,更多相关《模拟考试题打印版.docx(27页珍藏版)》请在冰豆网上搜索。
![模拟考试题打印版.docx](https://file1.bdocx.com/fileroot1/2022-11/23/b2c65e50-8191-4a53-a5f8-5c7593848078/b2c65e50-8191-4a53-a5f8-5c75938480781.gif)
模拟考试题打印版
模拟题一
一、程序阅读题
阅读下列程序,写出运行结果。
1、程序1
PrivateSubCommand1_Click()
DimxAsInteger,sAsInteger
x=Val(InputBox("请输入一个正整数="))
Ifx<5Then
s=s*x
Else
s=s+x
EndIf
text1.Text="s="+Str(s)
EndSub
程序运行时连续3次单击Command1,且设输入的数是5,2和4时,分别写出文本框Text1.Text的值。
2、程序2
PrivateSubForm_Click()
Form1.Cls
w=3
Fork=2To6Step2
Form1.Print"w=";w,"k=";k
w=w+1
Nextk
Form1.Print"w=";w,"k=";k
EndSub
写出程序运行时单击窗体后,Form1上的输出结果。
3、程序3
PrivateSubForm_Click()
DimxAsString
DimiAsInteger,nAsInteger
Form1.Cls
x="ABCDEFGHKL"
n=Len(x)
Fori=nTo1Step-2
Form1.PrintTab(20-i);Mid(x,i,1)
Nexti
EndSub
写出程序运行时单击窗体后,Form1上的输出结果。
4、程序4
DimaAsInteger,yAsInteger
PrivateSubForm_Load()
Open"c:
\a1.dat"ForOutputAs#1
Close#1
EndSub
PrivateSubCommand1_Click()
Open"c:
\a1.dat"ForAppendAs#1
Callaa(5)
y=y+a
Print#1,"y=";y,"a=";a
Close#1
EndSub
Subaa(iAsInteger)
x=1
DoUntilx>i
a=a+x
x=x+3
Loop
EndSub
写出程序运行时连续3次单击Command1后,a1.dat文件的最终结果。
二、程序填空题
1.程序说明:
利用一个计时器,一个标签框和两个命令按钮制作一个动态秒表,
单击“结束”命令按钮,秒表结束计时,并在标签框显示运行时间,如“运行
了0小时2分10秒”。
(假设对象的属性都在程序代码中设定)
程序代码如下
DimxAsLong
DimhAsInteger,mAsInteger,sAsInteger
PrivateSubForm_Load()
Form1.Caption="动态秒表(小时:
分:
秒)"
Command1.Caption="开始[&S]"
Command2.Caption="结束[&E]"
Label1.Alignment=2
Label1.Caption="0:
0:
0"
Timer1.Interval=
(1)
Timer1.Enabled=False
x=0
EndSub
PrivateSubCommand1_Click()
(2)
EndSub
PrivateSubCommand2_Click()
Timer1.Enabled=False
x=(3)
Label1.Caption="运行了"+Str(h)+"小时"+Str(m)+"分"+Str(s)+"秒"
EndSub
PrivateSubTimer1_Timer()
x=x+1
h=(4)
m=(xMod3600)\60
s=(5)
Label1.Caption=Str(h)+":
"+Str(m)+":
"+Str(s)
EndSub
2.程序说明:
己知自然对数的底数e的级数表示如下:
e=1+1/(1!
)+1/(2!
)+...+1/(n!
)+...
本程序利用函数过程fact()求e,其中的绝对值小于IE-8的项被忽略。
程序代码如下
PrivateFunctionfact(mAsInteger)AsSingle'求m!
的函数
DimxAsSingle,iAsInteger
x=1
Fori=1Tom
X=(6)
Nexti
fact=x
EndFunction
PrivateSubForm_Click()
DimeAsSingle,itemAsSingle
DimnAsInteger
e=1:
n=(7)
Do
n=n+1
item=(8)
e=e+item
LoopWhile(9)
三、程序设计题
1.随机产生n个两位正整数(n由输入对话框输入,且n>0),求出其中的偶数之和,并在标签框Label1上显示。
注:
程序写在命令按钮Commandl的Click事件中。
2.由输入对话框输入100个数值数据放入数组a。
将其中的整数放入数组b,然后运用选择排序法将数组b中的数据按从大到小的顺序排列,并以每行5个数据在窗体上输出。
注:
程序写在窗体Form的Click事件中。
模拟题二
一、程序填空题
1.【程序说明】
本程序求3~100之间的所有素数(质数)并统计个数,同时将这些素数从小到大依次写入顺序文件e:
\dataout.txt,素数的个数显示在窗体Form1上。
【程序】
PrivateSubCommand1_Click()
DimcountAsInteger,flagAsBoolean
DimtiAsInteger,t2AsInteger
(1)
count=0
Forti=3To100
flag=True
Fort2=2ToInt(Sqr(t1))
If
(2)Thenflag=False
Nextt2
(3)
count=count+1
Write#1,t1
EndIf
Nextt1
(4)Close#1
EndSub
(1)A、Opene:
\dataout.txtForOutputAs#1
B、Opene:
\dataout.txtForInputAs#1
C、Opene:
\dataout.txtForOutputAs#2
D、Opene:
\dataout.txtForOutputAs#1
(2)A、t2\t1=0B、t1Modt2=0C、t1\t2=0D、t2Modt1=0
(3)A、IfflagThenB、Ift2>t1Then
C、Ift1>t2ThenD、Ift2>int(sqr(t1))Then
(4)A、Forml.Print"素数个数:
";count
B、Print#l"素数个数:
";Count
C、Form1.Print"素数个数:
";count
D、Form1.Print"素数个数:
":
Count
2.[程序说明]由输入对话框输入n(设n为大于零且小于30的自然数),计算下列表达式并在标签控件Label1上显示。
1/(1*2)+1/(2*3)+1/(3*4)+……+1/(n*(n+1))
【程序】
PrivateSubForm_Click()
DimnAsInteger,sumAsDouble,kAsInteger
Do(5)
n=Val(InputBox("n=","请重输"))
Loop
sum=0
(6)
Do
k=k+1
sum=(7)
LoopUntilk>=n
Label1.Caption="Sum"+Str(sum)
EndSub
(5)A、Whilen<=Oorn>=30B、Whilen<=OAndn>=30
C、Untiln>0Orn<30D、Untiln>=0andn<=30
(6)A、k=2B、k=1C、K=-1D、k=0
(7)A、1/(k*(k+1))B、l/(k-1)*k
C、sum+1/(k*(k+1))D、sum+1/k*(k+1)
3.【程序说明】本程序用于处理文本框Textl.Text中的内容,假设文本框中有偶数个字符。
要求将文本框从头尾至中间依次各取字符,组成一个新的字符串str2,并在窗体上输出。
如:
Textl.Text="12345678",则Str2="18273645"
【程序】
PrivateSubForm_Click()
DimStr1AsString,Str2AsString
Str1=TeXt1.Text
Str2=""
m=0
Do(8)
Str2=Str2+(9)
Str2=Str2+(10)
m=m+l
Loop
forml.PrintStr2
EndSub
(8)A、WhilemC、Untilm>Len(Str1)/2D、Untilm(9)A、Mid(str1,m,1)B、Mid(str1,len(str1)-m,1)
C、Mid(m,Strl,l)D、Mid(Str1,m+l,1)
(10)A、Mid(str1,len(str1)-m+1,1)
B、Mid(str1,m,1)
C、Mid(str1,len(str1)-m,1)
D、Mid(str1,len(str1)-m+1,1)
二、程序阅读题
1.
PrivateSubCommand1_Click()
n=0:
x=1:
y=0
DoWhilex<20
n=n+l
y=x+y
x=x*(x+1)
Loop
text1.Text="n="&Str(n)
Text2.Text="x="&Str(x)
Text3.Text="y="&Str(y)
EndSub
程序运行时单击Command1后,分别写出文本框Text1、text2和Text3的Text值。
2.
PublicFunctionchg(aAsInteger,bAsInteger)AsInteger
DimnAsInteger
Forn=0To2
a=a+b
Nextn
chg=a
EndFunction
PrivateSubForm_Click()
DimaAsInteger,bAsInteger,zAsInteger
a=1:
b=1
Forn=1To3
z=chg(a,b)
Form1.Print"n=";n,"z=";z
Nextn
EndSub
写出程序运行时单击窗体后,Forml上的输出结果。
3.
PrivateSubForm_Click()
Dimx(5)AsInteger
x
(1)=8:
x
(2)=3:
x(3)=1:
x(4)=6:
x(5)=4
Fori=1To4
Forj=i+1To5
Ifx(i)x(i)=x(j):
x(j)=t
Nextj,i
Fork=1To5
Form1.Print"x(";k;")=";x(k)
Nextk
EndSub
写出程序运行时单击窗体后,Forml上的输出结果。
4.
PrivateSubForm_Click()
Dima(2,3)AsInteger
Fori=1To2
Forj=1To3
a(i,j)=2*i-j
Nextj,i
Forh=1To3
Fork=1To2
Form1.Printa(k,h),
Nextk
Print
Nexth
EndSub
写出程序运行时单击窗体后,Forml上的输出结果。
三、程序设计题
1.共用户界面如下图所示,用于实现左右两个组合框中数据的左移和右移功能。
程序开始运行时,在左边组合框中生成10个由小到大排列的随机3位正整数(假设在设计阶段该组合框的Sorted属性值已设置为True,现要求完成:
⑴、单击“>>”按钮,左边组合框中的10个数全部移到右边组合框中,并由大到小排列,同时使“<<”按钮能响应,“>>”按钮不能响应。
⑵、单击“<<”按钮,右边组合框中的10个数全部移到左边组合框中,并由小到大排列,同时使“>>”按钮能响应,“<<”按钮不能响应。
⑶、单击“结束”按钮,结束程序运行。
用户界面
部分程序代码如下:
PrivateSubForm_load()
DimiAsInteger
Label1.Caption="组合框1"
Label2.Caption="组合框2"
CmdRight.Caption=">>"
CmdRight.Enabled=True
CmdLeft.Caption="<<"
CmdLeft.Enabled=False
cmdExit.Caption="结束"
ComboLeft.Text=""
Fori=1To10
ComboLeft.AddItemInt(Rnd*900)+100
Nexti
ComboRight.Text=""
EndSub
请分别编写3个命令按钮的单击事件。
模拟题三
一、程序填空题(
1.下面是一个求n!
的自定义函数代码。
PrivateFunctionJC(nAsInteger)AsLong
DimResultAsLong
Ifp=1Then
Result=1
Else
Result=
(1)
EndIf
JC=
(2)
EndFunction
2.下面的程序完成以下功能:
单击窗体上的“测试”(Command1)按钮,出现一个输入框,要求输入一串字符,将该字符串中的非字母字符删除后,显示在窗体中的一个文本框(Text1)中。
PrivateSubCommand1_Click()
DimSt1,St2AsString
DimChAs(3)
DimLAsInteger
St1=InputBox("请输入一串字符","字符串输入")
L=(4)
St2=""
Fori=1ToL
Ch=Mid(St1,i,1)
If(Ch>"A"And(5))Or(Ch>"a"AndCh<"z")Then
St2=St2+Ch
EndIf
Nexti
Text1.Text=(6)
EndSub
3.下面的程序完成以下功能:
窗体上有两个命令按钮“产生”(Command1)和“排序”(Command2)。
单击“产生”按钮时,随机产生10个[1,20]范围内的整数放在数组A中,并在窗体上输出。
单击“排序”按钮时,用选择法排序这10个数并输出。
DimA(10)AsInteger
PrivateSubCommand1_Click()
DimiAsInteger
Randomize
Print"排序前的数列:
"
Fori=1To10
A(i)=(7)
PrintStr(A(i))+"";
Nexti
Print
EndSub
PrivateSubCommand2_Click()
Dimi,j,Min,TempAsInteger
Print
Print"选择排序后的数列:
"
Fori=1To9
Min=A(i)
Forj=(8)To10
IfA(j)Temp=A(j)
A(j)=(9)
Min=Temp
EndIf
Nextj
A(i)=Min
(10)
Fori=1To10
PrintStr(A(i))+"";
Nexti
Print
EndSub
二、程序阅读题
1.写出下面程序执行三次后的结果。
PrivateSubForm_Click()
DimiAsInteger
StaticjAsInteger
j=j+1
i=i+1
Print"i=";Str(i),"j=";Str(j)
EndSub
2.写出下面程序执行后的结果(其中在Form_Click()事件中调用了子过程Proc)。
PrivateSubForm_Click()
Dimx,yAsInteger
Dimu,vAsInteger
x=1
y=2
u=3
Procx,y
u=u+x+y
Print"x=";Str(x),"y=";Str(y),"u=";Str(u)
EndSub
PrivateSubProc(ByValaAsInteger,ByRefbAsInteger)
DimuAsInteger
a=a+1
b=b+1
u=u+a+b
Print"a=";Str(a),"b=";Str(b),"u=";Str(u)
EndSub
三、程序设计题
1.窗体内有二个按钮(标题各为“成绩录入”和“按总分名次查询姓名”)。
要求:
(1)单击“输入成绩”按钮时,用输入对话框提示输入学生的学号和姓名(共100名)及4门课成绩,并且要求在输入小于零的学号时,需用户重新输入。
(2)单击“按总分名次查询姓名”按钮时,先用选择法对所求总分进行排序,然后查询。
模拟题四
一、程序填空题
1.下面是一个求自然数m,n的最大公约数gcd(m,n)的自定义函数代码。
算法:
PrivateFunctiongcd(m,nAsInteger)Asinteger
DimResultAsinteger
Ifn=0Then
Result=m
Else
Result=
(1)
EndIf
gcd=
(2)
EndFunction
2.下面的程序完成以下功能:
在窗体中有Text1、Text2、Text3三个文本框和一个按钮(Command1),要求在Text1中输入一字符串(父串),在Text2中输入一字符串(子串),为简单起见,假设子串是连续的,要求在父串中删除子串,结果显示在Text3中比如父串为:
soshouldbefouyououdissou,子串为:
ou,结果为:
soshldbefydiss
PrivateSubCommand1_Click()
DimFstr,Sstr,SAsString
Dimi,Lf,LsAsInteger
Fstr=Text1.Text
Sstr=Text2.Text
Lf=Len(Fstr)
Ls=Len(Sstr)
S=""
i=(3)
Whilei<=Lf
IfMid(Fstr,i,(4))=SstrThen
i=i+Ls
Else
S=S+Mid(Fstr,i,1)
i=(5)
EndIf
Wend
Text3.Text=(6)
EndSub
3.下面的程序完成以下功能:
假设已经存在一个已经由小到大有序排列的数组
A(1to100)Asinteger,要求用折半查找法查找一个整数是否存在,如果存在,
在Text1中输出它的下标,否则输出“不存在”。
PrivateSubCommand1_Click()
DimLow,High,Midd,KeyAsInteger
DimFoundAsBoolean
DimSt1AsString
Low=1
High=100
Found=False
St1=InputBox("请输入要查找的关键字","关键字输入")
Key=(7)
While(Low<=High)And(8)
Midd=(Low+High)\2
SelectCaseA(Midd)
CaseIsLow=Midd+1
CaseIs>Key
High=Midd-1
CaseKey
Found=(9)
EndSelect
Wend
IfFoundThen
Text1.Text=(10)
Else
Text1.Text="不存在"
EndIf
EndSub
二、程序阅读题
1.分别写出下面两段程序单击Command1三次后的结果。
DimxAsInteger
PrivateSubex3()
x=x+1
Printx;
EndSub
PrivateSubCommand1_Click()
x=x+1
Callex3
Printx
EndSub
PrivateSubex3()
StaticxAsInteger
x=x+1
Printx;
EndSub
PrivateSubCommand1_Click()
x=x+1
Callex3
Printx
EndSub
2.写出下面程序Form_Click()事件执行后的结果
PrivateSubmartha(ByValxAsInteger,ByRefyAsInteger)
DimzAsInteger
Forz=xToy