第四章 程序设计基础 知识点题库

“如果x,y中任意一个为0,那么x=x+1”,能实现该功能的VB语句是(   )
A . If x * y=0 Then x=x+1 B . If x=0 And y=0 Then x=x+1       C . If x=0,y=0 Then x=x+1 D . If x·y=0 Then x=x+1
大数加法。在文本框Text1和Text2中输入两个大数,点击“相加”按钮后,在文本框Text3中输出结果。

实现上述功能的VB程序如下,请在划线处填入合适的代码。

Private Sub Command1_Click()

Dim s1 As String

Dim s2 As String

Dim s3 As String

Dim l1 As Integer

Dim l2 As Integer

Dim l3 As Integer

Dim a(1 To 100) As Integer

Dim b(1 To 100) As Integer

Dim c(1 To 100) As Integer

Dim t As Integer

s1 = Text1.Text

s2 = Text2.Text

l1 = Len(s1)

l2 = Len(s2)

For i = l1 To 1 Step -1

 a(i) =

Next

For i = l2 To 1 Step -1

 b(i) =Val(Mid(s2, l2 - i + 1, 1))

Next

If l1 > l2 Then l3 = l1 Else l3 = l2

t = 0

For i = 1 To l3

  c(i) = a(i) + b(i) + t

  t = c(i) \ 10

  c(i) =

Next

For i = 1 To l3

  s3 = Str(c(i)) + s3

Next

IfThen s3 = “1” + s3

Text3.Text = s3

End Sub

数学表达式 对应的正确Visual Basic表达式为(  )
A . -b+Sqr(b*b-4*a*c)/2*a B . -b+Sqr(b*b-4*a*c)/(2*a) C . (-b+Sqr(b*b-4*a*c))/(2*a) D . (-b+Sqr(b*b-4*a*c))/ 2*a
布尔型变量的默认值是(  )
A . 0 B . -1 C . FALSE D . TRUE
值不是数值型数据的是(  )
A . LEN B . EXP C . ASC D . STR
2 * 3^2 + 2 * 8 / 4 + 3^2的值是(  )
A . 64 B . 31 C . 49 D . 22
有下列VB程序:

Private Sub Command1_click ( )

Dim i As Integer, n As Integer

Dim s1 As String, s2 As string, c As String

s1 = Text1. Text: s2 = “”

For i = 1 To Len(s1)

    c = Mid (s1, i, 1)

    If c > = “a" And c < = “z” Then s2 = c+s2

Next i

Text2. Text = s2

End sub

该程序运行时,在文本框Text1中输入”Flash CS33”(不包含””),单击命令按钮Command1后,文本框Text2中显示的内容是(  )

A . lash B . hsal C . FlashCS D . SChsalF
下列四个选项中,能正确地将x和y两个变量中的数据进行交换的是(    )。
A . B . C . D .
某VB程序段如下:

For i=1To n

    h(i)=Int(Rnd * 20 + 1)

    num(i)=1:ans=0

    For j=1 To i

        If h(j) < h(i) And num(j) >=num(i) Then

            num(i)=num(j) + 1

        end if

      next j

Next i

执行该程序段后,在下列选项中,num (1)~num (8)各元素值可能的是(    )

A . 2,1,1,2,2,3,4,4 B . 1,1,2,3,2,2,1,3 C . 1,2,4,2,5,6,7,8 D . 1,1,1,1,1,1,3,2
有如下VB程序:

Dim a As Integer, b As Integer

  a=1:b=2

  a=a+b

  b=a+b

该程序执行后,变量a和b的值分别是(  )

A . 3,5 B . 5,3 C . 3,3 D . 3,6
有如下VB程序段,该程序段执行后,变量x中存储的是(  )

k=1

For j=2 To 100

  If a(j)>a(k)Then k=j

Next j

x=a(k)

A . a(1)至a(100)中的最小值 B . a(1)至a(100)中的最大值 C . a(2)至a(100)中的最小值 D . a(2)至a(100)中的最大值
某VB程序界面如图所示,功能为:在文本框Text1中输入字符串,单击按钮Comand1后,依次输出该字符串中每个字符及其相应的ASCII码,代码如下所示:

Private Sub Command1_ Click ()

    Dim i As Integer

    Dim s As String, s2 As String

    s =Text1. Text

    For i=1ToLen(s)

        s2 = Mid(s,i,1)

       List1.AddItem s2 & ":”& Str (Asc (s2))

    Next i

End Sub

则程序界面上用于输出的控件的图标为(    )

A . B . C . D .
从原点(0,0)出发,顺时针旋转,经过平面上所有整点恰好一次,我们称之为螺旋折线,如图所示。对于整点(x,y),我们定义它到原点的距离是从原点到(x,y)的螺旋折线段的长度。例如:x=0,y=1,则螺旋折线段的长度为3;x=-2,y=-1,则螺旋折线段的长度为9。

现要求计算从原点到整点(x,y)螺旋折线段的长度。小王根据上述描述设计如下VB程序,请回答下列问题:

  1. (1) 从原点到整点(4,0)螺旋折线段的长度为
  2. (2) 请在画线处填入合适的代码。

    Dim x As Integer, y As Integer      'x用于存储横坐标的值,y用于存储纵坐标的值

    Private Sub Command1_Click()

        Dim sum As Integer, m As Integer

        Dim dx As Integer, dy As Integer

        Dim i As Integer, t As Integer

        x=Val(Text1. Text)

        y =Val(Text2. Text)

        dx = 0:dy=0

        sum=0

        m=1:t=-1

        Do While not check(dx,dy)

            For i=1 To m

                If check(dx,dy)Then exit do    'Exit do表示退出Do循环

                dx = dx+t

                sum = sum+1

            Next i

            

            For i=1 To m

                If check(dx,dy) Then Exit Do

                

                sum = sum + 1

            Next i

            m=m+1

        Loop

        Label1. Caption= Str(sum)

    End sub

    Function check(xl As Integer,y1 As Integer)As Boolean

        check = False

        If x1=x And y1=y Then

            

        End If

    End function

在Python中输入一个三位自然数,然后把这个数的百位数与个位数对调,输出对调后的数。

n=int((“请输入一个三位数:”))

a=n//100

b=

c=n % 10

print(“个位和十位对调后的三位数为:”,)

有如下VB程序段:

s ="ATCGCGCTACTGA"

s1 =" ACGT"

n= Len(s)

i=1:j=1:c=0

Do While i <= n and j <=4

    If Mid(s, i, 1)=Mid(s1, j,1) Then

        j=j+1

    End If

    i=i+1

Loop

s= Mid(s, 1, i-1)

执行该程序段后,变量s的值是(    )

A . ATCCCG B . ATCC C . ATCGCGCT D . ATCCCGC
下面代码运行结果是(       )。

a, b=2,1

while a>=b:

    b=a*b

    a=2*a

print(a, b)

A . 4 2 B . 16 64 C . 8 8 D . 2 1
下面代码运行结果是(     )。

def fun(n):

    a, b=0,1

    while a < n:

        print(a, end=' ')

        a, b=b, a+b

fun(5)

A . 0 1 23 4 B . 0 1 1 22 C . 0 0 1 22 D . 0 1 1 2 3
有n个互不重复的数字,值的范围是[1,n],分别保存在数组元素a(1)到a(n)中,如果数字i保存在a(i),认为数字i在正确的位置上。若干个相互占用了位置的数字称为一组,一个在正确位置上的数字单独为一组,比如6个数字2,3,1,4,6,5分别保存在数组元素a(1)到a(6)中,则2、3、1为一组,4为一组,6、5为一组。该程序的功能为输出每组的情况。运行界面如下图:

  1. (1) 数组元素a(1)到a(5)的值分别为2、5、3、1、4,这5个元素总共有组。 
  2. (2) 请在划线处填入合适的代码。

    Const n=10

    Dim a(1 To n) As Integer    '保存原始数据

    Dim b(1 To n) As Boolean    '数组b用来标记相应的位置有没有找过

    Private Sub Command1_Click()

        Dim i As Integer, sum As Integer, total As Integer

        sum=0:total=1    'total表示第几组

        i=1

        List2.Addltem ″第″+Str(total)+″组″

        Do While sum<n

            Do While Not b(i)

                List2.Addltem a(i)

                b(i)=True

                

                sum=sum+1

            Loop

            If sum<n Then

                

                List2.Addltem ″第″+Str(total)+″组″

                i=1

                Do While b(i)      '该循环用来查找下一组的开始位置

                    i=i+1

                Loop

            End If

        Loop

    End Sub

    Private Sub Form_Load()

        Dim i As Integer

        Randomize

        For i=1 To n       '产生n个不一样的整数,范围为[1,n]

            a(i)=Int(Rnd* n)+1

            Do While

                a(i)=Int(Rnd*n)+1

            Loop

        Next i

        For i=1 To n

            List1.Addltem a(i)

            b(i)=False

        Next i

    End Sub

    Function f(x As Integer, y As Integer) As Boolean

        '该函数的功能:判断x和数组a中前y个数有没有重复

        Dim j As Integer

        f=False

        For j=1 To y

            If a(j)=x Then f=True:Exit For

        Next i

    End Function

小张同学为了更好地了解冬奥会,从网上收集了历届冬奥会各个项目比赛信息,收集到的部分数据如图1所示:

图1

图2

为分析数据,小张编写了如下程序:

import pandas as pd

import matplotlib.pyplot as plt

from matplotlib.pyplot import MultipleLocator

plt.rcParams['font.sans-serif']=['SimHei']       #正常显示中文标签

df=pd.read_csv("dongao.csv")

#删除所有未获得奖牌的记录,并将奖牌列中的"G"修改为"金牌","S"修改为"银牌","B"修改为"铜牌"

jp={'G':'金牌','S':'银牌','B':'铜牌'}

for i in df.index:

if     ①       :

        df=df.drop(i)

else:

        df.at[i,'奖牌']=jp[df.at[i,'奖牌']]

#对输入国家每届的奖牌数进行统计,并制作相应图表,如第14题图2所示:

nt=input("请输入国家名称:")

df1=df[df['国家']==nt]

 

df3=pd.DataFrame(df2)  #将分组后数据生成新的二维结构,索引为“届次”,列标题为“奖牌”

x=df3.index

y=      ②       

plt.title(nt+"历年冬奥会奖牌趋势图")

plt.       ③         (x,y)

plt.show()

  1. (1) 在划线处填上合适的代码。
  2. (2) 为了最后能显示某国历届冬奥会奖牌变化,需在加框处添加的语句为(     )(多选)
    A . df2=df1.groupby('奖牌')

    df2=df1.届次.count()

    B . df2=df1.groupby('届次')

    df2=df2['奖牌'].count()

    C . df2=df1.groupby('奖牌')['届次’].count() D . df2=df1.groupby('届次').奖牌.count()
用Python编辑器打开"Y:\99"下的文件"水仙花数.py",进行以下操作并保存结果。

⑴请填空完善该程序,实现功能输出所有水仙花数。水仙花数是指一个三位数它的每一位上的数字的3次方之和等于它本身。例如:三位数153满足:13+53+33=1=125+27=153,则153是水仙花数。设变量i ,j, k,分别用于存放个位、十位和百位上的数。

⑵编写完成后原名保存并关闭应用软件。

for x in range(100,1000):

    i=              #个位数

    j=(x//10)%10              #十位数     

    k=               #百位数

    if x==:

        print("水仙花数是",x)

最近更新