素数的求法A.小范围内判断一个数是否为质数:function prime (n: integer): Boolean;var I: integer;

题目

素数的求法

A.小范围内判断一个数是否为质数:

function prime (n: integer): Boolean;

var I: integer;


相似考题
更多“素数的求法A.小范围内判断一个数是否为质数:function prime (n: integer): Boolean;var I: integer;”相关问题
  • 第1题:

    数组A在子过程或函数中定义为形参,正确的语句是( )。

    A、Private Sub sele(ByVal A( ) As integer)

    B、Private Function sale(A() As Integer) As String

    C、Private Sub sale(A() As Integer) As Integer

    D、Private Sub sale(A(i) As Integer)


    参考答案:C

  • 第2题:

    阅读下列程序: Function func(n As Integer)As Integer Sum = 0 For i = 1 To n Sum = Sum + (i + 1)* i Next i func = Sum End Function.Private Sub Command1_Click () Dim a As Integer a= 5 s = func (A)Print s End Sub 程序运行后,单击命令按钮,输出的结果为

    A.80

    B.60

    C.70

    D.15


    正确答案:C
    解析:本题调用一个Function过程func,该过程只有一个参数,类型为整型,返回值也为整型。过程的调用十分简单,关键是要搞清楚过程func的功能。从For-Next循环可以看出,该过程的功能是:1×2+2×3+3×4+…+(n+1)×n。在调用过程时,实参a的值为5,即上式中的n=5。因此返回的值为:1×2+2×3+3×4+4×5+5×6=70。

  • 第3题:

    有如下程序: Private Sub Command1_Click() Dim k As Integer,m As Integer Dim p As Integer k=4:m=1 p=PC(k,m):Print p; p=PC(k,m):Print p End Sub Private Function PC(a As Integer,b As Integer) Static m As Integer,i As Integer m=0:i=2 i=i + m + 1 m=i + a + b PC=m End Function 程序运行后,输出的结果为

    A.4 6

    B.6 6

    C.8 8

    D.10 12


    正确答案:C
    解析:在Sub过程中,程序段先定义了3个Integer型变量k,m,P,并给k赋给初值4,m的初值为1,然后调用事件过程PC,并将它的值赋给p;在事件过程PC中定义了两个形参,参数的传送是通过引用实参,即将k,m的地址作为a,b的地址;在PC中,将m,I定义为静态变量,所以第一次调用后的值仍然保留,但是m,I分别都有赋值语句,将它们的值变为0,2,所以返回值不变。

  • 第4题:

    下列过程语句中正确的是( )。

    A.Sub fl(By Val () As Integer)

    B.Sub fl(n() As Integer)As Integer

    C.Function fl(fl As Integer)As Integer

    D.Function fl(By Val f As Integer)


    正确答案:D
    解析:Sub过程定义的一般格式如下:[Private|Public|Friend][Static]Sub过程名[(参数表)]语句块[ExitSub][语句块]EndSub其中,Private|Public|Friend说明Sub过程的访问权限,如果没有Private|Public|Friend显式指定,则Sub过程按缺省(公用的)访问权限定义。参数表含有在调用时要传递给该Sub过程的参数的类型和个数,多个变量则用逗号隔开。参数的格式为:[ByVal|ByRef]变量名[()][As数据类型]格式中[]里的内容表示可选,变量可以是简单变量或者数组.选项A)中参数没有参数名,所以是错误的;因为Sub过程没有返回值,所以选项B)是错误的。Function过程的定义的一般格式如下:[Public|Private|Friend][Static]Function过程名[(参数表)][As类型][语句块][过程名=表达式][ExitFunction][语句块]EndFunction“As类型”是Function过程返回的值的数据类型,如果省略,则默认为Variant。Function函数中参数名不能与函数名相同,因此选项C)错误;选项D)中省略了返回值类型,是正确的。

  • 第5题:

    以下用户自定义函数 Function Func(a As Integer, b As Integer) As Integer Static m As Integer, i As Integer m=0:i=2 i=i+m+i m=i+a+b Func=m End Function 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim k As Integer,m As Integer,p As Integer k=4:m=1 P=Func(k,m) Print p End Sub 程序运行后,单击命令按钮,输出结果为

    A.8

    B.9

    C.10

    D.11


    正确答案:A
    解析:变量i的计算过程为i=2+0+1=3,变量m的计算过程为m=3+4+1=8,m的值通过于函数名Fune返回。

  • 第6题:

    B.Kruskal算法:(贪心)

    按权值递增顺序删去图中的边,若不形成回路则将此边加入最小生成树。

    function find(v:integer):integer; {返回顶点v所在的集合}

    var i:integer;


    正确答案:

     

    B.Kruskal算法:(贪心)

    按权值递增顺序删去图中的边,若不形成回路则将此边加入最小生成树。
    function find(v:integer):integer; {返回顶点v所在的集合}
    var i:integer;

  • 第7题:

    E.堆排序:

    procedure sift(i,m:integer);{调整以i为根的子树成为堆,m为结点总数}

    var k:integer;


    正确答案:

     

    begin
    a[0]:=a[i]; k:=2*i;{在完全二叉树中结点i的左孩子为2*i,右孩子为2*i+1}
    while k<=m do begin
    if (k<m) and (a[k]<a[k+1]) then inc(k);{找出a[k]与a[k+1]中较大值}
    if a[0]<a[k] then begin a[i]:=a[k];i:=k;k:=2*i; end
    else k:=m+1;
    end;
    a[i]:=a[0]; {将根放在合适的位置}
    end;

    procedure heapsort;
    var
    j:integer;
    begin
    for j:=n div 2 downto 1 do sift(j,n);
    for j:=n downto 2 do begin
    swap(a[1],a[j]);
    sift(1,j-1);
    end;
    end;

  • 第8题:

    折半查找

    function binsearch(k:keytype):integer;

    var low,hig,mid:integer;


    正确答案:

     

    begin
    low:=1;hig:=n;
    mid:=(low+hig) div 2;
    while (a[mid].key<>k) and (low<=hig) do begin
    if a[mid].key>k then hig:=mid-1
    else low:=mid+1;
    mid:=(low+hig) div 2;
    end;
    if low>hig then mid:=0;
    binsearch:=mid;
    end;

  • 第9题:

    有如下函数: Function fun(a As Integer,n As Integer)As Integer Dim m AS Integer While a>=n a=a-n:m=m+1 Wend Fun=m End Function 该函数的返回值是。 A.a乘以n的乘积 B.a加n的和 C.a减n的差 D.a除以n的商(不含小数部分)


    正确答案:D

  • 第10题:

    阅读程序: Function fac(ByVal As Integer)As Integer Dim temp As Integer temp=1 For i%=1 To n temp=temp*i% Next i% fac=temp End Function Private Sub Form. Click( ) Dim nsum As Integer nsum=1 For i%=2 T0 4 nsum=nsum+fac(i%) Next i% Print nsum End Sub 程序运行后,单击窗体,输出结果是( )。

    A.35

    B.31

    C.33

    D.37


    正确答案:C
    C。【解析】本题考查的是函数的调用,Function函数的意义是某个数的阶乘,所以通过计算结果为4!+3!+2!+1!=33

  • 第11题:

    阅读下面的程序; Function Func(x As Integer,y As Integer)As Integer Dim n As Integer Do While n < = 4 x=x + y n = n + 1 Loop Func=x End Function Private Sub Command1_Click() Dim x As Integet, y As Integer Dim n As Integer,z As Integer x=1 y=1 For n = 1 To 6 z=Func(x,y) Next n Print z End Sub 程序运行后,单击命令按钮,输出的结果为.

    A.16

    B.21

    C.26

    D.31


    正确答案:D
    解析:过程Func有两个参数,使用的是引用方式,参数和返回值均为整型,在命令按钮事件过程的For循环中调用Func过程,共循环6次,每次循环调用一次。两个过程中使用的变量(包括参数)基本相同,但由于是局部变量,不会发生冲突。无论在事件过程还是通用过程中,y的值始终保持不变,总等于1。在Func过程中,DoLoop循环共执行5次,通过变量n控制(从0~4),每次都执行x=x+1,因此,每调用一次Func过程,都使得x=x+5,并将返回值赋给事件过程中的变量z。6次调用中,循环变量n的计算过程为:1、2、3、4、5、6:返回值z的结果为:6、11、16、21、26、31。

  • 第12题:

    在窗体上画一个命令按钮,然后编写如下程序 Private Sub Command1_Click( ) Dim a As Integer,b As hiteger a=1 b=2 Print N(a,B)End Sub Function N(x As Integer,y As Integer)As Integer N=IIf(x>y,x,y) End Function 程序运行后,单击命令按钮,输出结果为

    A.1

    B.2

    C.5

    D.8


    正确答案:B
    解析:事件过程N的作用是输出两个数中最大的,它调用了IIF函数,条件部分是(x>y),如果满足,那么N的值即为x的值,否则为y的值。在Sub过程中,定义了两个变量a,b,并赋给它们初值1,2,并调用Print函数,输出N(a,b)的值,因为xy,所以输出y=2。

  • 第13题:

    如果Add函数的调用代码为:func main() {var a Integer = 1var b Integer = 2var i interface{} = asum := i.(Integer).Add(b)fmt.Println(sum)}则Add函数定义正确的是()

    A.type Integer intfunc (a Integer) Add(b Integer) Integer { return a + b}

    B.type Integer intfunc (a Integer) Add(b *Integer) Integer { return a + *b}

    C.type Integer intfunc (a *Integer) Add(b Integer) Integer { return *a + b}

    D.type Integer intfunc (a *Integer) Add(b *Integer) Integer { return *a + *b}


    参考答案:A

  • 第14题:

    在窗体上画一个命令按钮,然后编写如下程序 Private Sub Command4 Click() Dim a As Integer,b As Integer a=1 b=2 Print N(a,B)End Sub Function N(x As Integer,y As Integer)As Integer N=IIf(x>y,x,y) End Function 程序运行后,单击命令按钮,输出结果为

    A.l

    B.2

    C.5

    D.8


    正确答案:B
    解析:事件过程N的作用是输出两个数中最大的,它调用了IIF函数,条件部分是(x>y),如果满足,那么N的值即为x的值,否则为y的值。在Sub过程中,定义了两个变量a,b,并赋给它们初值1,2,并调用Print函数,输出N(a,B)的值,因为xy,所以输出y=2。

  • 第15题:

    设有如下程序: Private Static Function Fac(n As Integer)As Integer Dim f As Integer f=f+n Fac=f End Function Private Sub Form_Click( ) Dim I As Integer For 1=2 To 3 Print"#";I&“=”&Fac(1) Next I End Sub 程序运行后,单击窗体,在窗体上显示的是

    A.#2=2 #3=3

    B.#2=2 #3=5

    C.#;2=2 #;3=3

    D.#;2=2 #3;=5


    正确答案:B
    解析:由于Print方法中的分号表示前后字符之间的连接,并不显示在窗体中,同时由于Function过程以Static定义,在I=3时,Fac(1)的值为5。

  • 第16题:

    有如下程序: Private Sub Command1_Click() Dim k As Integer,m As Integer Dim op As Integer k=4:m=1 p=PPC(k,m):Print op; p=PPC(k.m):Print op End Sub Private Function PPC(a As Integer,b As Integer) Static m As Integer,i As Integer m=0:i=2 i=i+m+1 m=i+a+b PPC=m End Function 程序运行后,输出的结果为

    A.4 6

    B.6 6

    C.8 8

    D.10 12


    正确答案:C
    解析:考查考生对函数及函数参数的运用。
      [解题要点] 在Sub过程中,程序段先定义了3个Integer型变量k,m,op,并为k赋给初值4,m的初值为1,然后调用事件过程PPC,并将它的值赋给op。在事件过程PPC中定义了两个形参,参数的传送通过引用实参,即将k,m的地址作为a,b的地址;在PPC中,将m,i定义为静态变量,第一次调用后的值仍然保留,但是m,i分别都有赋值语句,将它们的值变为0,2,所以返回值不变。
      [错解分析] 函数PPC中的两个参数都是以传值方式传递,注意不要与传地址方式传递混淆。
      [考点链接] 过程的定义和调用,以及参数传递方式的选择。

  • 第17题:

    下列程序的功能是:输出10到100之间的所有回文素数。所谓回文素数是指,如果一个数是素数,则该数反序后形成的数也是素数。例如,13是素数,13反序形成得到数为31,31也是素数,则称13为回文素数。

    Private Sub Command1 2_Click( )

    Dim k As Integer,m As Integer,n AsInteger

    For k=10 T0 100

    If prim(k)Then

    m=__________

    n=0

    Do While m>0

    N=n*10+Im Mod l0

    M=m/10

    Loop

    If prim(n)Then

    MsgBox k&“,”&n

    End If

    End If

    Next k

    End Sub

    Public Function prim(n As Integer)As Boolean

    Dim j As Integer

    For j=2 To n/2

    If n Mod J=0 Then

    prim=__________

    Exit Function

    End If

    Next j

    prim=True

    Exit Function

    End Function

    横线处应填写的内容是( )。

    A.k Fake

    B.k True

    C.m False

    D.n True


    正确答案:A
    素数是只能被1和它本身整除的数,因此本题第二空填写False。click函数主要有两个功能,一个是返序,另一个是判断是不是回文素数。在for循环中判断k是不是回文素数,rn是代表即将判断的数字,也就是k。

  • 第18题:

    四、排序算法

    A.快速排序:

    procedure qsort(l,r:integer);

    var i,j,mid:integer;


    正确答案:

     

    begin
    i:=l;j:=r; mid:=a[(l+r) div 2]; {将当前序列在中间位置的数定义为中间数}
    repeat
    while a[i]<mid do inc(i); {在左半部分寻找比中间数大的数}
    while a[j]>mid do dec(j);{在右半部分寻找比中间数小的数}
    if i<=j then begin {若找到一组与排序目标不一致的数对则交换它们}
    swap(a[i],a[j]);
    inc(i);dec(j); {继续找}
    end;
    until i>j;
    if l<j then qsort(l,j); {若未到两个数的边界,则递归搜索左右区间}
    if i<r then qsort(i,r);
    end;{sort}

  • 第19题:

    已知前序后序求中序的一种

    function ok(s1,s2:string):boolean;

    var i,l:integer; p:boolean;


    正确答案:

     

    begin
    ok:=true;
    l:=length(s1);
    for i:=1 to l do begin
    p:=false;
    for j:=1 to l do
    if s1[i]=s2[j] then p:=true;
    if not p then begin ok:=false;exit;end;
    end;
    end;

    procedure solve(pre,post:string);
    var i:integer;
    begin
    if (pre='''') or (post='''') then exit;
    i:=0;
    repeat
    inc(i);
    until ok(copy(pre,2,i),copy(post,1,i));
    solve(copy(pre,2,i),copy(post,1,i));
    midstr:=midstr+pre[1];
    solve(copy(pre,i+2,length(pre)-i-1),copy(post,i+1,length(post)-i-1));
    end;

  • 第20题:

    链表的定位函数

    loc(I:integer):pointer; {寻找链表中的第I个结点的指针}

    procedure loc(L:linklist; I:integer):pointer;

    var p:pointer;

    j:integer;


    正确答案:

     

    begin
    p:=L.head; j:=0;
    if (I>=1) and (I<=L.len) then
    while j<I do begin p:=p^.next; inc(j); end;
    loc:=p;
    end;

  • 第21题:

    有如下函数:Private Function firstfunc(x As Integer, y As Integer) As Integer Dim n As Integer Do While n <= 4 x=x +y n=-+1 Loop firstfunc = x End Function调用该函数的事件过程如下:Private Sub Command1_lick() Dim x As Integer Dim y As Integer Dim n As Integer Dim z As Integer x=1 y=1 For n = 1 To 3 z = firstfunc(x, y) Next n Print z End Sub该事件过程的执行结果是 ______。

    A.1

    B.3

    C.16

    D.9


    正确答案:C

  • 第22题:

    在窗体上画一个名称为Commandl的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim n As Integer For n = 0 To 9 Step 3 Print rel(n); Next n End Sub Private Function rel(ByVal i As Integer)As Integer Dim x As Integer x = 0 For j = 1 To i If i < 5 Then rel = i: EXit Function x = x + i Next i rel = x End Function 程序运行后,单击命令按钮,则窗体上显示的内容是

    A.1 3 5 7

    B.2 8 14 53

    C.0 3 21 45

    D.0 5 11 34


    正确答案:C
    解析:ExitFunction的功能是立即终止函数的运行并回到调用函数的地方继续执行其他语句。在Function过程的任何位置都可以设置ExitFunction语句。变量n传值为0、3、6、9,4次调用rel函数过程,由于0和3都小于5,使得i5不成立,被执行了“ExitFunction”语句,函数名将0和3返回。而6和9没有使得i5成立,变量x的计算结果分别为21和45,也被函数名返回。

  • 第23题:

    在窗体上画一个按钮,然后编写如下的事件代码。在按钮上单击,输出为( )。 Private Function fun(x As Integer,y As Integer) Static m As Integer Static i As Integer i=i+2 i=i+m+1 m=i+x+y fun=m End Function Private Sub Command1_Click() Dim j As Integer,m As Integer,k As Integer j=4:m=1 k=fun(j,m) Print k; k=fun (j,m) Print k End Sub

    A.8 18

    B.7 17

    C.7 19

    D.8 19


    正确答案:D
    解析:当发生Command1的单击事件时,定义了两个变量j和m,并依次赋值为4和1,然后调用fun函数,把i和m按地址传递给x和y,进入fun函数执行。在fun函数中定义了两个静态变量m和i,执行三条赋值语句后i的值为3,m的值为8,通过给函数名赋值把8作为函数值返回并赋值给k,输出k的值为8;再一次调用函数fun,把j和m依次按地址传给x和y,进入fun函数执行,注意,由于m和i是静态变量,此时的值不再是0,而是上一次退出时的值为3和8。执行三条赋值语句后i的值为14,m的值为19,通过给函数名赋值,把19作为函数值返回并赋值给k,输出k的值为19。