有如下程序:Private Sub Form_Click()Dim i As Integer,Sum As IntegerSum=0For i=2 To 10If i Mod 2<>0 And i Mod 3=0 ThenSum=Sum+iEndIfNextPrint SumEnd Sub程序运行后,单击窗体,输出结果为A.12B.30C.24D.18

题目

有如下程序:

Private Sub Form_Click()

Dim i As Integer,Sum As Integer

Sum=0

For i=2 To 10

If i Mod 2<>0 And i Mod 3=0 Then

Sum=Sum+i

EndIf

Next

Print Sum

End Sub

程序运行后,单击窗体,输出结果为

A.12

B.30

C.24

D.18


相似考题
更多“有如下程序:Private Sub Form_Click()Dim i As Integer,Sum As IntegerSum=0For i=2 To 10If i M ”相关问题
  • 第1题:

    阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

    【说明】

    计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:

    5

    4 1

    3 2

    3 1 1

    2 2 1

    2 1 1 1

    1 1 1 1 1

    共有7种划分。这种划分的程序如下所示。

    【程序】

    include <stdio.h>

    int n[1000],m,k;

    void output sum()

    {

    int j;

    for(j=0;n[j]!=0;j++)

    printf("%d\t",n[j]);

    printf("\n");

    }

    void sum(int i)

    if(m-n[i]<n[i])

    { m=m-n[i];

    (1)

    i++;

    n[i+1]=0;

    }

    else

    {

    (2)

    m-=n[i];

    i++;

    }

    if(m!=n[i])

    sum(i);

    else

    output_sum();

    if(n[i]>1)

    {

    n[i]--;

    (3)

    }

    else

    {

    while((n[i]==1)&&(i>O))

    {

    i--;

    (4)

    }

    if(i!=0)

    {

    (5)

    sum(i);

    }

    }

    }

    void main()

    {

    int i;

    scanf("%d",&n[0]);

    m=k=n[0];

    for(i=1;i<=k;i++)

    n[i]=0;

    while(n[0]!=1)

    {

    n[0]--;

    i=0;

    sum(0);

    m=k;

    }

    }


    正确答案:(1)n[i+1]=m; (2)n[i+1]=n[i]; (3)sum(i); (4) m+=n[i]; (5)n[i]--;
    (1)n[i+1]=m; (2)n[i+1]=n[i]; (3)sum(i); (4) m+=n[i]; (5)n[i]--; 解析:本题考查C语言中计算n合数方法的实现。
    题目要求计算n的合数,我们首先来了解一下什么是n的合数。在正整数n的所有不同的划分中,将最大加数n1不大于m的划分个数记作q(n,m)。可以建立q(n,m)的如下递推关系。
    (1)q(n,1)=1,n1
    当最大数n1不大于1时,任何正整数只有一种划分形式,就是全1。
    (2)q(n,m)=q(n,n),mn
    最大加数n1实际上不能大于n。因此,q(1,m)=1。
    (3)q(n,n)=1+q(n,n-1)
    正整数n的划分由n1=n的划分和n1≤n-1的划分组成。
    (4)q(n,m)=q(n,m-1)+q(n-m,m),n>m>1
    正整数n的最大加数n1不大于m的划分由n1=m的划分和n1≤m-1的划分组成。要想求出所有解,只有递归到最底层即全为1为止。
    知道了上述特性,下面我们来看代码。在代码中首先声明一个数组和两个全局变量 k,m。结合程序可以看出,其中数组n[i]中存放的是当前划分的最大加数,而m中存放的是当前被划分的数。程序代码中有三个函数,一个是主函数、一个output_sum()函数和一个sum()函数,函数output_sum()的功能很简单,就是输出一次划分结果,在sum()函数中被调用。
    经过分析不难发现,函数sum()的作用是实现整数的划分。在函数体中,首先是一个条件判断语句,其作用是判断当前被划分的数m是否小于当前最大加数的两倍,如果条件成立,说明数被划分为两个数后,其最大加数大于另一个数,而另一个数应该存放在数组中。此时执行语句m=m-n[i]来求出另一个数,接下来应该是保存这个数到数组中的下个位置,第(1)空就用来完成这个任务,因此,答案为n[i+1]=m。
    第(2)空所在的位置是条件不成立的情况下运行的语句,条件不成立,说明数被划分为两个数后,其最大加数小于另一个数,数可以有更大的最大加数,因此,将当前的最大加数保存到数组中的下个位置,此空答案为n[i+1]=n[i]。
    第(3)空也在一个条件选择语句下面,此条件语句用于判断当前最大加数是否大于1,如果大于1,则需要接着划分,因此要调用函数sum(),其参数是i,所以此空答案为sum(i)。
    第(4)空是条件不成立即当前最大加数为1的情况下执行的语句,当最大加数为1时,说明递归到了最底层,此时,递归应该往回走了,这需要还原当前最大划分数m(为这个数的其他划分做准备),因此,这个空的答案为m+=n[i]。
    第(5)空是在条件i!=0为真的情况下执行的语句,如果条件为真,说明递归还没有回到最上层,应该求当前被划分数在当前最大加数变小后的其他划分情况,因此,此空答案为n[i]--。

  • 第2题:

    若有以下程序段,sum和i都是整型变量,则不能与下面程序段等价的选项是() sum=0; i=2; while(i<=10) { sum=sum+i; i++; }

    A.for(i=2, sum=0; i<=10; i++) sum+=i;

    B.sum=0; i=2; do{ sum=sum+i; i++; }while(i<=10);

    C.sum=0; i=10; while(i>1) { sum=sum+i; i--; }

    D.sum=0; i=11; do{ sum=sum+i; i--; }while(i>1);


    sum=0; i=11; do{ sum=sum+i; i--; }while(i>1);

  • 第3题:

    如下程序段执行后sum的值为() int i,sum; i=1; sum=0; while(i<=5) { sum+=i; i++; }

    A.5

    B.10

    C.15

    D.20


    15

  • 第4题:

    有如下程序 includeviodmain() {int i,sum=0;for(i=1;i<=3;sum++)sum+=i;cout<

    有如下程序 #include<iostream.h> viod main() { int i,sum=0; for(i=1;i<=3;sum++) sum+=i; cout<<sum<<end1; } 该程序的执行结果是 ______。

    A.6

    B.3

    C.死循环

    D.0


    正确答案:C

  • 第5题:

    如下程序中实现sum=1+2+3+...+n的程序是

    A.int sum=0,i; for(i=0;i<n;i++)sum+=i;

    B.int sum=0,i; for(i=0;i<n;i++); sum+=i;

    C.int sum=0,i; for(i=1;i<=n;i++); sum+=i;

    D.int sum=0,i; for(i=1;i<=n;i++) sum+=i;


    A循环找到末尾结点,然后赋值给第一个结点,所以选择A)。

  • 第6题:

    已定义整型变量i和sum,与以下程序段功能一样的程序有()。 sum=0; for(i=1;i<=100;i++)sum+=i;

    A.sum=0;i=1;for(; i<=100;i++) sum+=i;

    B.sum=0;for(i=1;i<=100;){i++;sum+=i;}

    C.sum=0;for(i=1;i<=100;) sum+=i;i++;

    D.sum=0;for(i=1;;i++ )


    sum=0;i=1; for( ; i<=100;i++) sum+=i;;sum=0;for(i=1;i<=100; ){ sum+=i;i++;}