更多“【单选题】设n为正整数,确定下面程序段的时间复杂度: i=1; k=0; while(i<=n-1) { k+=10*i; i++; }”相关问题
  • 第1题:

    下列程序段的时间复杂度为()。i=0,s=0;while(sn){s=s+i;i++;}

    A、O(n1/2)

    B、O(n1/3)

    C、O(n)

    D、O(n2)


    参考答案:A

  • 第2题:

    设n为正整数。则下面程序段的时间复杂度为()。 k=0; for(i=1;i<=n;i++){ for(j=i;j<=n;j++) @ k++; }

    A.O(1)

    B.O(n)

    C.O(nlogn)

    D.O(n2)


    参考答案:D

  • 第3题:

    以下程序的输出结果是______。 main() { int i,k,a[10],p[3] k=5; for(i=0;i<10;i++)a[i]=i for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); }

    A.20

    B.21

    C.22

    D.23


    正确答案:B
    解析:按照程序的流程走一遍,可以得到p[0]=0,p[1]=2,p[3]=6:执行三次k+=p[i]*2,相当于k=5+0*2+2*2+6*2=21。

  • 第4题:

    下面程序的输出是main(){ int arr[10],i,k=0; for(i=0;i<10;i++) arr[i]=i; for(i=1;i<4;i++) k+=arr[i]+i; printf("%d\n",k);}


    正确答案:12
    本题的考查点是for循环。
    第一个循环
    for(i=0;i<10;i++)
          arr[i]=i;
    是将数组元素0~9分别赋值为0~9。
    第二个循环
    for(i=1;i<4;i++)
          k+=arr[i]+i;
    可以变化成以下形式:
    for(i=1;i<4;i++)
          k=arr[i]+i+k;
    计算数组arr[1]、arr[2]、arr[3]的各个值,可以得到k的最终值为12。

  • 第5题:

    以下程序的输出结果是( )。 main { int i,k,a[10],p[3]; k=5; for(i=0:i<10;i++)a[i]=i; for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k、; }

    A.20

    B.21

    C.22

    D.23


    正确答案:B
    第一个循环的作用是把从0~9的数赋给a数组;第二个循环的作用是把a数组中的部分元素放到数组P中,即p[0]=a[0]=0,p[1]=a[2]=2,p[2]=a[6]=6;第三个循环的作用是把P中的各个元素的两倍之和放到k中,即k=5+0+4+12=21。

  • 第6题:

    下面程序的输出为【】。include void main(){int a[10],i, k=0;for(i=0,i<10;i++)a[i]=

    下面程序的输出为【 】。

    include <iostream.h>

    void main()

    {

    int a[10],i, k=0;

    for(i=0,i<10;i++)

    a[i]=i;

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

    k+=a[i]+i;

    cout<<k<<end1;

    }


    正确答案:12
    12

  • 第7题:

    下列程序的输出结果是______。 main () { int i, k, ai[0], p[3]; k=5; for (i=0;i<10;i++) a[i]=i; for (i=0;i<3;i++) p[i]=a[i*(i+l)]; for (i=0;i<3;i++) k+=p[i]*2; printf ("%d\n", k); }

    A.20

    B.21

    C.22

    D.23


    正确答案:B

  • 第8题:

    下面的程序段的时间复杂度为【】

    s=0;

    for(i=0;i<n;i++)

    for(j=0;j<m;j++)

    s=s+a[i][i];

    A.O(1)

    B.O(m+n)

    C.O(log2mn)

    D.O(m*n)


    正确答案:C
    [解析]一个算法在计算机运行时所耗费的时间用时间复杂度来度量.算法的时间复杂度是算法输入规模或问题规模的函数,一般不必算出精确值,更关心的是相应的数量级.算法的时间复杂度与算法中语句的执行次数有直接关系,而语句的执行次数又取决于问题规模n的大小.实际上求解时间复杂度的方法是算出算法中执行频度最大的那条语句的频度,取其数量级放入 O( )中.

  • 第9题:

    下面程序段的时间复杂度为()。 i=1; while(i<=n)i=i*3;

    • A、O(n)
    • B、O(3n)
    • C、O(log3n)
    • D、O(n3

    正确答案:C

  • 第10题:

    下面程序段的时间复杂度是() i=1; while(i<=n)    i=i*3;


    正确答案:O(log3n)

  • 第11题:

    单选题
    设有程序段 i=1; while (i<=n) i=i*2; 上面程序段的时间复杂度为()。
    A

    O(n)

    B

    O(log n)

    C

    O( nlog n)

    D

    O(n2)


    正确答案: A
    解析: 暂无解析

  • 第12题:

    单选题
    下面程序段的时间复杂度为()。 i=1; while(i<=n)i=i*3;
    A

    O(n)

    B

    O(3n)

    C

    O(log3n)

    D

    O(n3


    正确答案: A
    解析: 暂无解析

  • 第13题:

    设n为正整数。则下面程序段的时间复杂度为()。 i=1;k=0; while(i<=n-1){ @ k+=10*i; i++; }

    A.O(1)

    B.O(n

    C.O(nlogn)

    D.O(n2)


    参考答案:B

  • 第14题:

    下面程序段的时间复杂度为 ( ) for(i=0;i<m;i++) for(j=0;j<n;j++) A[i][j]=i*j;

    A.O(m2)

    B.O(n2)

    C.O(m*n)

    D.O(m+n)


    正确答案:C
    解析:此程序的时间复杂度即为程序中循环次数的时间耗费。由程序为嵌套循环,外层循环的时间复杂度T(n1)=m,内层循环的时间复杂度T(n2)=n,则此程序的时间复杂度T(n)=m*n,即为0(m*n)。

  • 第15题:

    下面程序的输出是( )。

    main()

    { int arr[8],i,k=0;

    for(i=0;i<8;i++)

    arr[i]=i;

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

    k+=arr[i]+i;

    printf("%d\n",k);

    }


    正确答案:20
    20

  • 第16题:

    下面程序的输出是【 】。

    main()

    {int arr[10],i,k=0;

    for(i=0;i<10;i++)

    arr[i]=i;

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

    k+=arr[i]+i;

    printf("%d\n",k);}


    正确答案:12
    12 解析:本题通过第一个for循环将数组arr[0]-arr[9]分别赋值为0-9,通过第二个for循环的三次循环累加,求出结果为12,具体分析如下:
    i=1:K=0+arr[1]+1即k=2;
    i=2:k=2+arr[2]+2即k=6;
    i=3:k=6+arr[3]+3即k=12;

  • 第17题:

    下面程序段的时间复杂度是(9)。for(i=0,k=0;<n;1++){ k+=A[i][j]; for(j=1;j<m;j++) A[i][j]=1}

    A.O(n)

    B.O(m+n+1)

    C.O(m+n)

    D.O(m*n)


    正确答案:D
    解析:时间复杂度是解决问题的时间和问题的规模之间的关系,即解决问题所耗费的时间随问题规模增长成怎样的增长对应关系。本题中最内部的循环的执行次数为m*n,所以整段程序的复杂度为O(m*n)。

  • 第18题:

    以下程序的输出结果是 ______ 。main() { int i,k,a[10],p[3]; k=5; for(i=0;i<10;i++)a[i]=i; for(i=0;i<3;i++)p[i]=a[i*(1+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); }

    A.20

    B.21

    C.22

    D.23


    正确答案:B
    解析:按程序的流程走一遍,可以得到p[0]=0,p[1]=2,p[3]=6;执行三次k+=p[i]*2,相当于k=5+0*2+2*2+6*2=21。

  • 第19题:

    下面这个程序段的时间复杂度是( )。 for {i=1; i<n; i++) { y=y+1; for (j=0;i<=(2*n);i++) x++; }

    A.O(log2n)

    B.O(n)

    C.O(nlog2n)

    D.O(n2)


    正确答案:D
    解析:语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。在本题算法中,其中语句“y=y+1;”的频度是n-1,语句“x++;”的频度是(n-1)(2n+1)=2n2-n-1。则该程序段的时间复杂度是T(n)=n-1+2n2-n-1=O(n2)。

  • 第20题:

    下列程序段的时间复杂度为()。for(i=0;i<m;i++)for(j=0;j<t;j++)e[i][j]=0;for(i=0;i<m;i++)for(j=0;j<t;j++)for(k=0;k<n;k++)c[i][j]_c[i][j]+a[i][k]×b[k][j];

    A.O(m×n×t)
    B.O(m+n+t)
    C.O(m×t+n)
    D.O(m+n×t)

    答案:A
    解析:
    在程序段中,有两段循环程序,第一段是一个双层嵌套循环,另一个是三层嵌套循环,所以基本操作是c[i][j]=c[i][j]+a[i][k]×b[k][j],此基本操作共执行m×t×n次。

  • 第21题:

    下面程序段的时间复杂度是() for(i=0;i<n;i++)  for(j=0;j<n;j++)  A[i][j]=0;


    正确答案:O(n2

  • 第22题:

    以下能正确计算1×2×3×…×10的程序段是()。

    • A、do{i=1;s=1;
    • B、do{i=1;s=0;s=s*i;s=s*i;i++;i++;}while(i<=10);}while(i<=10);
    • C、i=1;s=1;
    • D、i=1;s=0;do{s=s*i;do{s=s*i;i++;i++;}while(i<=10);}while(i<=10);

    正确答案:C

  • 第23题:

    填空题
    下面程序段的时间复杂度是() for(i=0;i<n;i++)  for(j=0;j<n;j++)  A[i][j]=0;

    正确答案: O(n2
    解析: 暂无解析

  • 第24题:

    填空题
    下面程序段的时间复杂度是() i=1; while(i<=n)    i=i*3;

    正确答案: O(log3n)
    解析: 暂无解析