高二算法练习

班级姓名学号

一. vb常用控件、属性

1.在Visual Basic中,添加一个标签,在工具箱中要单击的控件是

A .

B .

C . D.

2.在Visual Basic代码中,将多个语句合并在一行上的并行符是

A.撇号(')

B.冒号(:)

C.感叹号(#)

D.问号(~)

3.下列控件中可用于接受用户输入文本,又可用于显示文本的是

A. Label 控件

B. TextBox 控件

C. Timer 控件

D. CommandButton 控件

4. Visual Basic规定窗体文件的扩展名是

A. .for

B. .frm

C. .vbp

D. .bas

5.窗体上有命令按钮OK,它的单击事件过程为CmdOK_Click(),该按钮的Name和Caption属性分别为

A.OK,Cmd B.Cmd,OK C.CmdOK,OK D.OK,CmdOK

6.下列哪语句,可使窗口的按钮Command1显示“确定”

A Command1.Show ="确定"

B Command1.Caption ="确定"

C https://www.360docs.net/doc/9d3514918.html, ="确定"

D Command1.Visible ="确定"

7.对n个元素进行排序,用冒泡法进行排序时,共需比较多少次

A. n*(n-1) B.n*(n+1) C.n*(n-1)/2 D.n*(n+1)/2

多个输出。

A.稳定性B.确定性C.正常性D.快速性

9.下列分别属于哪种算法:

需通过多重循环一列举出解决问题的所有可能解,并在逐一列举的过程中,检验每个可能的解是否是问题的真正解( )

需要从实际问题中归纳出数学解析式,就此设计出合适的算法( ) A.解析法 B.递归法 C.枚举法 D.查找法

10.算法用流程图来表示,开始/结束框是用来表示算法的开始和结束,以下哪个表示开始/结束框

A

11.Visual Basic是一种面向对象的程序设计语言,构成对象的三要素是 A.属性.事件.方法 B.控件.属性.事件

C.窗体.控件.过程

D.窗体.控件.模块

12.在程序中用到某一整型变量的数据范围为-40000至40000,则该变量类型应该说明为

A.Integer

B.Byte

C.Long

D.Boolean

13.下列每个控件都具有的属性是

https://www.360docs.net/doc/9d3514918.html,

B.Caption

C.Font

D.Interval

14.程序的三种基本结构是

A.分支结构、循环结构、树型结构

B.顺序结构、分支结构、循环结构

C.顺序结构、循环结构、树型结构

D.树型结构、顺序结构、分支结构

1.以下是合法的Visual Basic标识符是

A.abc B.Const C.9abc D.a#x

2.表达式2^4\3的值是

A.5 B.6 C.7 D.8

3.如果x=-25,运行x=Abs(x);x=Sqr(x)后,x的值是

A.5 B.-5 C.25 D.-25

4.用语句Dim A(-3 To 3) As Integer 所定义的数组的元素个数是

A.6 B.7 C.8 D.9

5.以下语句中错误的是

A.Const var1=123 B.Dim var2 as String

C.x+y = 9 D.Dim d(1 to 500) As Double

6.将文本框Text2内输入的数据送到字符型变量n 中,则应使用的语句是 A.n = text B.n = text2.text

C.n = val(text2) D.n = val(text2.text)

7.实现变量M的值与变量N的值进行交换,可用语句

A.X=M:M=N:N=X B.M=N:N=M

C.M=N D.N=M

8.如果a、b、c、d是一四位整数中千、百、十、个位上的数字,这个四位数在VB程序中可表示为

A.abcd B.a+b+c+d

C.a*1000+b*100+c*10+d D.以上都不对

9.在VB中,执行IF 4*(6—3)>10 Then A=1 Else A=0语句后,变量A 的值为

A、0

B、1

C、10

D、不一定

10.在VB中,执行"A=18 MOD 4"语句后,A的值为

A、2

B、4

C、6

D、8

11.语句Dim s As Integer的功能是

A.定义一个整型变量s B.定义一个字符型常量s

C.定义一个整型常量s D.定义一个字符型变量s

12.下列逻辑运算结果为"True"的是

A.flase or not true

B.flase and not true

C. true or not true

D.true and not true

13.设a=2,b=3,则表达式 Not(a=b)的值是:

A. True B. False C.-1 D.1

14.下面关于算法的描述,错误的是()

A.一个算法必须保证它的执行步骤是有限的

B.算法中的每个步骤必须有确切的含义

C.有0个或多个输入

D.有O个或多个输出

15.下列逻辑表达式中能完全正确表示条件 "year是闰年"的是

A. year mod 4=0

B. year mod 400=0

C. (year mod 400=0) and (year mod 4=0) or (year mod 100<>0)

D. (year mod 400=0) or (year mod 4=0) and (year mod 100<>0)

16.下列关于For ...next 语句的说法正确的是

A.循环变量、初值、终值和步长都必须为数值型

B.step后的步长只能为正数

C.初值必须小于终值

D.初值必须大于终值

17.下列各赋值语句,语法不正确的是

A. x+y=5 B. x=y<>5

C. Labell.caption =time D. x=x+y

18.下面是各种不同类型的常量,请把它归类:

12 “asd”3.12 1099 True False -78 “计算机” -1.12

整数常量:

实数常量:

字符串常量:

逻辑常量:

19.下面变量命名正确的有:

12.34 asd 2C Dim True i_tt WO%12

正确的有:

20.请做以下变量说明:

1、定义x,y为整数类型的变量:

2、定义常量Pi的值为3.14:

3、定义year为日期型的变量:

4、定义m为双精度实数型的变量:

21.写出下列函数的返回值:

1、Sqr(49) 的返回值为:

2、Abs(-3.5) 的返回值为:

3、Int(-4.1) 的返回值为:

4、cint(3.15) 的返回值为:

5、Len(“windows”) 的返回值为:

6、Mid(“windowssecond”,6,4) 的返回值为:22.计算下列表达式的值:

1、6+(6-4)=()

2、3^2 + 3\2=()

3、-3 + 8 mod 2=()

4、5 * 2^2 =()

5、3\5/2=()

6、5>8()

7、7<=10()

8、10=5 mod 3()

9、“a” <>“b”()

10、100<>10^2()

三.语句(顺序、分支、循环)

1.利用计算机程序解决累加问题时,计算"101+102+……+300"的值,往往采用

A.循环语句 B.累加语句 C.条件语句 D.顺序语句

2.在VB程序中,对于语句:

Text1.Text="admin2006@https://www.360docs.net/doc/9d3514918.html," ‘电子信箱

“‘”后面的部分为

A、注释,不是可执行代码

B、注释,是可执行代码

C、程序代码的一部分

D、程序代码的另一种写法

3.以下程序段执行后整型变量n 的值为

n=0

for i=1 to 20 step 5

n=n+i

next i

A. 50

B. 34

C. 15

D. 210

4.以下条件语句错误的是()。

A If X Then Y = Y + 1

B If X = 0 Then Y = 0

C If X > 0 Then Y = 1: Print Y

D If X > Y Then Print Y End If

5.下列Visual Basic程序段运行后,变量max的值为 a=5:b=10:max=a IF b>max Then max=b

A.5 B.10 C.5和10 D. 以上都不是

6.下列Visual Basic程序段运行后,变量x的值为 x=3:y=77

Do While x

x=x+2

Loop

A.7 B.8 C.9 D.10

7.有如下Visual Basic程序:

Private Sub Commandl_Click()

S=O

If s<=99 Then

For I=1 To 10

S=s+j

Next j

Else

Print “程序出错”

End If

Print “最后s的值为:”;s

End Sub

C.顺序、条件和循环结构 D.循环结构8.有如下Visual Basic程序段:

A=lO: B=20: A=A+B: B=A—B

该程序段运行后,变量A和B的值是

A.10和20 B.30和20

C.30和10 D.30和-10

9.有如下Visual Basic程序段:

a=12

If a<4 Then

a=a-2

Else

Print a

End if

该程序段运行后,变量a的值是

A.8

B.10

C.12

D.14 10.下列程序段是计算哪个公式的

s=0:t=1

for i=1 to 10

t=t*i

s=s+t

next i

A.s=l+2+3+...+10 B.1!+2!+3! (10)

C.s=1*2*3*…*10 D.s =1+2*3+3*4+4*5+……+9*10 11.Private Sub Commandl_Click()

Dim i As Integer,j As Integer,x As Integer X=4

For i=1 to 4

For j=1 to 3

x=x+6

Next j

Next i

Print x

End Sub

以上程序段,程序的循环次数是

A.4 B.12 C.3 D.6

12.有如下Visual Bastc程序段:

Dim num As Integer

num=3

Do While num<8

Num=num+2

Print num

Loop

13.下列是一个Visual Basic程序:

Sub Commandl_Click()

X=4

For i=1 To 10 step 3

If x

X=x+i

End If

Next i

Print x

End Sub

该程序运行结果是

A.7 B.11 C.21 D.55

14.有如下Visual Basic程序:

s=O

Forj=1 To 30

If Int(j/5)=j/5 Then

s=s+j

j=j+6

End If

Next j

Print s

该程序段运行后,输出的值是

A.30 B.45 C.180 D.465

15.下面程序执行的结果是

Private Sub Form_Click()

A = "123":

B = "456"

C = Val(A) + Val(B)

Print C \ 100

End Sub

A.123

B.3

C.5

D.579

16.有如下程序段

x = 1

y = 4

Do While y>4

x = x * y

y = y +1

Loop

该程序段运行后,x的值为

A. 1

B. 4

C. 8

D. 20

17、下面的程序是计算机s=1*2+3*4+5*6+7*8+9*10,下划线中应填上

S=0

For k=1 to 10 step ___

Msgbox(s)

End sub

A.0 B.1 C.2 D.k

18.窗体上有一个命令按钮Command1,编如下事件过程: Private Sub Command1_Click()

Dim a As String : Dim c As String

a = "software and hardware"

c = Mid(a, 1, 8)

Text1.text = c

End Sub

则在文本框Text1中显示的信息是

A、software and hadrware

B、software

C、hadrware

D、1

19、有如下程序段

a=4

b=5

a=a^2+b

b=b^2+a

a=a+b

该程序运行后,a的值是__________

20、有如下程序段

x=5

If x>10 Then

y=2*x

Else

y=x*x+1

End if

Msgbox(y)

该程序运行后,y的值是__________

21、有如下程序段

a=1:b=2

For i=1 to 3

b=b+a

a=a+b

Next i

Print b

该程序运行后,b的值是__________

22、有如下程序段

x=4

For i=1 to 10 step 3

if x

x=x+i

Print x

该程序运行后,x的值是__________

23、下列程序的功能是从键盘上任意输入一个数,判断这个数是正数、负数、还是零,并输出判断结果。程序中有三处错误,请更正。

Private Sub Command1_Click()

Dim a As Double:Dim py As String

a = Val(Text1)

If a > 0 Then py = "正数"

If a = 0 Then py = "零"

If a <= O Then py = "负数"

Text2.Caption = a

End Sub

(1) (2) (3)

24、完善下列程序,使能输出:1-2+3-4+5-6+……+99-100的值。

Private Sub Commandl_Click()

S=

For I=1 to

S=s+((-1)^( ))*I

Next I

Print s

End Sub

25、在窗体(Name属性为Forml)上画两个文本框(其Name属性分别为Textl 和Text2)和一个命令按钮(Name属性为Commandl),然后编写如下两个事件过程:

Private Sub Forml_Load()

Textl.Text=“”

Text2.Text=“”

End sub

Private Sub Commandl_Click()

a=Textl.Text+Text2.Text

Print a

End Sub

程序运行后,在第一个文本框(Textl)和第二个文本框(Text2)中分别输入123和321,然后单击命令按钮,则输出结果为。

26、已知一元二次方程的二次项系数、常数项分别为a、b、c,其中a不等于0,求方程的根。要求:如果方程无实数根,则输出“无实数根”,否则输出两个实数根。

Private Sub Commandl_C1ick()

Dim a,b,c,d As Single

Dim xl,x2 As single

A=Val(Textl.Text)

B=Val(Text2.Text)

If __________ Then

x1=(-b+Sqr(d))/(2*a)

x2=(-b-Sqr(d))/(2*a)

Labell.Caption=xl

Label2.Caption=x2

________

Label3.Caption= _____________

End If

End Sub

27、在窗体上画一个命令按钮(Name属性为Command1),然后编写如下事件过程:

Private Sub Command1_Click()

x=O

Do while x<>-1

a=Val(InputBox(“请输人a的值:”))

b=Val(InputBox(“请输入b的值:”))

x=Val(InputBox(“请输入x的值:”))

a=a+b+x

Loop

Print a

End Sub

程序运行后,单击命令按钮,依次在输入对话框中输入5、4、3、2、1、-1,则输出结果为。

四.算法的程序实现

1、下面是一段已知圆周长,求圆面积的程序,补充完整

Private sub command1_click()

Dim L As Double, s As Double

L=val(text1.text)

If L>0 then

______________

Else

Print "未正确输入周长"

End If

Print str(s)

End Sub

2、将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?****

Dim i, j, k As Integer

' i, j, k用于记录5元,1元,0.5元的张数

Print "5元 1元 0.5元"

For i = 1 To 20

If ___________ Then

Print i, j, k '分别输出i,j,k三个变量。

End If

Next j

Next i

3、下面程序是计算1~50中,能被3整除的所有整数之积,请在____________内填入适当的内容。

Private Sub Form_load()

Dim x As Integer, s As Double

s = _____

For x = 1 To 50

If x Mod 3 = 0 Then _______

Next x

Print "s=" & s

End Sub

4、有一古算术问题:“有100块瓦,用100匹马来驮。大马1驮3,中马1驮2,小马2驮1。问要大马、中马、小马各几匹(不能没有)?”** Private Sub Command1_Click()

Dim x As Integer, y As Integer,z As Integer

For x = 1 To 33

For y = 1 To 50

z = 100 - x - y

If_____________________________ Then

Print x,y,z

End If

Next y

Next x

End Sub

5、下面是一个用VB语言编写的将华氏温度(其值存放在名为text1的文本框内)转换为摄氏温度(其值存放在变量C中)的程序,请完善程序。已知华氏温度F转换为摄氏温度C的计算公式是:C=(F-32)*5/9

Private Sub Command1_Click()

F=Val(text1.text)

C= _________________

Print C

End Sub

6、小明数了圈在一起的鸡和兔共有30个头,90只脚,在这个圈子中鸡和兔各有多少只?为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式。设鸡为x只,兔为y只,Visual Basic 程序如下:Private Sub Command1_Click()

Const head = 30, foot = 90

Dim x, y As Integer

Text1.Text = Str(x)

Text2.Text = Str(y)

End Sub

7、利用文本框输入一个正整数N,求S=2+3/2+4/3+5/4+…+(N+1)/N Private Sub command1_click()

Dim n, s, i As Integer

s = 0

n = Val(Text1.Text)

For i = _____ To _________

s = ________________

Next i

Print s

End Sub

8、下面程序若用于计算s=1!+2!+3!+4!+5! +6!+7!+8!+9!+10!,完善下面的程序。**

s = 0: t = 1

For i = 1 To 10

___________________

s = s + t

Next I

9、有一个单击按钮过程,其作用是产生50个60~100的随机数,统计其中被6整除余2的个数,并将这些数输出。请补充下面的程序:

Private Sub command1_click()

Dim X, N As Integer

Dim counter As Integer 'counter统计个数

Randomize

For N = 1 To 50

X = ___________+ int(Rnd * 41)

'随机产生50个60~100的随机数

If X Mod 6 = 2 Then

List1.AddItem Str(X)

_________________________

End If

Next N

Print counter

End Sub

10、个位数字是6,且能被3整除的3位数共有多少个?

下面程序用于解决这一问题,设共有n个这样的数。**

Sub Command1_Click()

Dim i As Integer, n As Integer

m = 106

n = __________

m = __________

Loop

Text1.Text = Str(n)

End Sub

11、以下程序的功能是:从键盘上输入若干个学生的考试分数,统计并输出最高分数和最低分数,当输入负数时结束输入,输出结果,请将程序补充完整。

Private Sub Form_Click()

Dim x, amax, amin As Single

x = InputBox("Enter a score")

amax = x

amin = x

Do While _____________

If x > amax Then amax = x

If ________ Then amin = x

x = InputBox("Enter a score")

Loop

Text1.Text= amax

Text2.Text=___________

End Sub

12、火车托运行李,要根据行李的重量按下列标准收费:

若不超过50千克,按每千克0.35元收费,若超过50千克,超过部分则按每千克0.5元收费。输入托运行李的重量,计算并输出托运行李的费用。下面程序若用于实现上述目标,则划线处的语句应更改为______________________

Sub command1_click()

Dim x As Double

x=val(Text1.Text)

If x < 50 Then

Text2.Text=Str(0.35*x)

Else

Text2.Text=Str(0.5*x)

End If

End Sub

13、“百钱买百鸡”问题。中国古代数学家张丘建在《张丘建算经》中提出一个问题。“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡。问鸡翁、母、雏各几何?”。****

题目的意思是说公鸡五钱一只,母鸡三钱一只,小鸡一钱三只,花一百钱恰好买一百只鸡,问公鸡、母鸡、小鸡各多少只?参考程序代码如下:Private Sub Command1_Click()

Dim sum As Integer

Dim a, b, c As Integer

c = 100 - a – b

If ________________________ Then

List1.AddItem (Str(a) + Str(b) + Str(c))

__________________

End If

Next b

Next a

Label1.Caption = "组数:" + Str(sum)

End Sub

14、寻找“水仙花数”。水仙花数是满足下面条件的一组三位的正整数,它们满足条件:每一位上数字的立方之和恰好等于它自己。例如:153就是一个水仙花数,1^3+5^3+3^3=153,请找出所有的水仙花数及个数。***

方法一:

Private Sub Command1_Click()

Dim sum As Integer

Dim i, a, b, c As Integer

Sum=0

For i = 100 To 999

a = i \ 100

b = i \ 10 Mod 10

c = i Mo

d 10

If a ^ 3 + b ^ 3 + c ^ 3 = i Then

Print i

sum = sum + 1

End If

Next i

Label1.Caption = "个数:" + Str(sum)

End Sub

方法二:

Private Sub Command1_Click()

Dim sum,m As Integer

Dim i, j, k As Integer

Sum=0

For i = 1 To 9

For j = 0 To 9

For k = 0 To 9

m=100 * i + 10 * j + k

If m = i ^ 3 + j ^ 3 + k ^ 3 Then

Print m

sum = sum + 1

End If

Next k

Print "个数:" + Str(sum)

End Sub

15、排序、查找综合练习*****

Const n=50

Dim d(1 to n) as integer

‘自动生成50个【100-200】之间的整数

Private Sub Command1_Click()

Dim i As Integer

List1.Clear:List2.Clear

Randomize

For i = 1 To n

d(i) = _____________________

List1.AddItem Str(i) + Space(6) + Str(d(i)) Next i

End Sub

'冒泡排序(递增)

Private Sub Command2_Click()

Dim i As Integer, j As Integer, temp As Integer For i = 1 To n - 1

For j = n To ________ Step -1

If d(j) < d(j - 1) Then

temp = d(j)

______________

______________

End If

Next j

Next i

For i = 1 To n

List2.AddItem Str(i) + Space(6) + Str(d(i)) Next i

End Sub

'选择排序(递减)

Private Sub Command3_Click()

Dim i As Integer, j As Integer

Dim temp As Integer, max As Integer

List2.Clear

For i = 1 To n - 1

Max=_________

For j=_________ to n

If d(j) > d(max) Then

_________

End If

temp = d(max)

d(max) =d(i)

dy(i) = temp

End If

Next i

For i = 1 To n

List2.AddItem Str(i) + Space(6) + Str(d(i)) Next i

End Sub

'顺序查找

Private Sub Command4_Click()

Dim i As Integer, key As Integer

key = Text1.Text

For i=______________

If ______________ Then

Text2.Text = "数据" & Key & "在第" & i & "位置。" Exit For

End If

Next i

If i>n Then

Text2.Text = "数据" & key & "不存在!"

End If

End Sub

'对分查找

Private Sub Command5_Click()

Dim i As Integer, j As Integer

Dim m As Integer, c As Integer

Key = Text1.Text

i = 1

j = n

Do While __________

__________ '确定中间位置

If __________Then

Text2.Text = "数据" & Key & "在第" & m & "位置。"

Exit Sub

End If

If Key > d(m) Then

__________

Else

___________

End If

Loop

相关文档
最新文档