niusouti.com

4、下面程序段的时间复杂度是() i=s=0; while(s<n) { i++; s+=i; }A.O(n)B.O(s)C.O(sqrt(n)) 注释:sqrt(n)表示对n开方D.O(n^2) 注释:n^2表示求n的平方

题目

4、下面程序段的时间复杂度是() i=s=0; while(s<n) { i++; s+=i; }

A.O(n)

B.O(s)

C.O(sqrt(n)) 注释:sqrt(n)表示对n开方

D.O(n^2) 注释:n^2表示求n的平方


相似考题
参考答案和解析
O(nlog2n)
更多“4、下面程序段的时间复杂度是() i=s=0; while(s<n) { i++; s+=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题:

    设有如下程序: fun(float*p1,int n,float*p2,int m,float*s) {int i; *s=0.0; for(i=0;i<n;i++)*s+=*p1++; for(i=0;i<m;i++)*s+=*p2++; } main() { float a[]={1.1,2.2},b[]={1.0,2.0,3.0),*s=a; fun(a,2,b,3,s); printf("%f\n",*s); } 上面程序的输出结果是______。

    A.8.2

    B.9.3

    C.3.3

    D.1.1


    正确答案:A
    解析:实参指针变量s指向数组a的第一个元素,在函数fun中首先将s所指数组a的第一个元素赋值为0.0,然后将数组a和b中的元素值依次累加到数组a的第一个元素中。

  • 第3题:

    下列程序的输出结果是( )。 #include<stdio.h> main( ) { int i,S=0; for(i=1;i<10;i++) if(!(i%2)&&!(i%3))s+=i; printf("%d\n",s); }

    A.4

    B.39

    C.45

    D.6


    正确答案:D
    if语句的条件是当i既是3的倍数又是2的倍数时成立,所以此程序实现的功能是将10以内既是3的倍数又是2的倍数的数相加。

  • 第4题:

    有以下程序

    main( )

    { int i=0,s=0;

    do{

    if (i%2){i++;continue;}

    i++;

    s+=i;

    }while(i<7);

    cout<<s<<endl;

    }

    执行后输出结果是

    A.16

    B.12

    C.28

    D.21


    正确答案:A
    解析:本题考察continue语句在while循环中的使用:直接跳转到条件判断表达式位置,不再执行continue后面的语句。另外,根据分析可知,本题循环体的功能是将0,2,4,6位元素加一后累加,故结果应是1+3+5+7,因此正确答案为A。

  • 第5题:

    有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; }while(i<7); printf("%d\n",s); } 执行后输出结果是

    A.16

    B.12

    C.28

    D.21


    正确答案:A
    解析:do循环与continue语句,在循环体中有一条if语句,其后面表达式为“i%2”,当i的值为奇数时,其值为真,执行其后面的语句,i的值加1,重新开始循环,当i的值为偶数时,“i%2”为假,执行“i++;s+=i”。在循环中i为偶数时的值分别为0、2、4、6,加1过后的值分别为1、3、5、7,s中存放的是它们的和,值为16。

  • 第6题:

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

    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( )中.

  • 第7题:

    int i=0,s=0;while(s<20){i++;s+=i;}在这个的while循环语句中,其循环体被执行的次数为()。

    A4

    B5

    C6

    D7


    C

  • 第8题:

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


    正确答案:O(n2

  • 第9题:

    for(i=1,t=1,s=0;i<=n;i++){t=t*i;s=s+t;}的时间复杂度为()


    正确答案:O(n)

  • 第10题:

    下列语句中与语句while(1){if(i>=100)break;s+=i;i++;}功能相同的是()。

    • A、for(;i<100;i++)s=s+i;
    • B、for(;i<100;i++;s=s+i);
    • C、for(;i<=100;i++)s+=i;
    • D、for(;i>=100;i++;s=s+i);

    正确答案:A

  • 第11题:

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

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

  • 第12题:

    填空题
    下面程序段的时间复杂度是() s=0; for(i=0;i

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

  • 第13题:

    以下程序的输出结果是( )。

    main

    { int i=0,S=0;

    for(;;)

    {

    if(i==3 ||i==5)continue;

    if(i==6)break;

    i++;

    s+=i:

    };

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

    }

    A.10

    B.13

    C.21

    D.程序陷入死循环


    正确答案:D
    当i一0时,两个if都不满足,所以都不执行,直接执行i++语句,此时i为1,S为l,返回for循环中;当i=1时,同样不执行两个if语句,执行i++后,i=2,s=3,返回for循环中;i=2时也不执行if语句,执行i++后,i=3,s=6,接着又执行for循环,此时符合第一个if语句,执行到continue时不再执行i++了,continue是跳出本次循环,接着下次循环。永远这样执行下去,i的值永远为3,故选择D选项。

  • 第14题:

    以下程序的输出结果是[ ]。

    main()

    {int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

    for(i=0;i<3;i++) s+=-a[i][i]+a[i][3-i-1];

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

    }


    正确答案:30
    30 解析:此题主要考核的是多维数组以及for()循环语句的应用,即i=0时,s=()+a[0][0]+a[0][2]=10,i=1时, s=10+a[1][1]+a[1][1]=18,i=2时,s=18+a[2][2]+a[2][0]=30。

  • 第15题:

    有以下程序main( ){ int i=0,s=0;do{ if(i%2) {i+ +; continue; } i++; s+=i;}while(i<7)cout<<s<<end1;}执行后输出结果是

    A.16

    B.12

    C.28

    D.21


    正确答案:A
    解析:本题考察continue语句在while循环中的使用:直接跳转到条件判断表达式位置,不再执行continue后面的语句。另外,根据分析可知,本题循环体的功能是将0,2,4,6位元素加一后累加,故结果应是1+3+5+7,因此正确答案为A。

  • 第16题:

    下面代码输出结果是( )。inti=0,s=0;do{if(i%2==0){i++;continue;}i++;s=s+i;}while(i<7);

    下面代码输出结果是( )。

    inti=0,s=0;

    do{

    if(i%2==0){

    i++;

    continue;

    }

    i++;

    s=s+i;

    }while(i<7);

    System.out.println(s);

    A、16

    B、12

    C、28

    D、21


    正确答案:B

  • 第17题:

    以下程序段执行结果是(57)。 Int s=0 i=1; Do {s+=i++;} While(i<=10); Consol

    A.wrfteline(“sum={0}”,sum)

    B.Sum=54

    C.sum=l

    D.sum=55

    E.sum=56


    正确答案:C
    本题考查Web设计基础-C#语言的相关知识。这是一个do-while循环的基本结构,共循环10次,其中循环体语句sum+=i++:计算累加和,i++是后置运算(先运算,后自加),因此,整个循环等价于s=o+1+2+3+4…+10。

  • 第18题:

    以下程序段的执行结果是______。int s=0,i=1;do{ S+=i++;}while(i<=10);Console.WriteLine("sum={0}",sum);

    A.sum=54
    B.sum=1
    C.sum=55
    D.sum=30

    答案:C
    解析:
    在该程序段中,i++表示“先使用、再增1”;而do……while是一种“先运行、再判断”的循环语句结构。题干中的循环体语句将被执行10次,最后程序段的运行结果是:sum=55,i=11。

  • 第19题:

    下面程序段的时间复杂度是() s=0; for(i=0;i


    正确答案:O(n2

  • 第20题:

    在下面循环语句中循环体执行的次数为()。inti=0,s=0;while(s<20){i++;s+=i;}

    • A、4
    • B、5
    • C、6
    • D、7

    正确答案:C

  • 第21题:

    以下能正确计算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

  • 第22题:

    若变量已正确定义,以下不能正确计算1+2+3+4+5的程序段是()。

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

    正确答案:B

  • 第23题:

    单选题
    以下程序段中,与其他三个功能不同的程序段是(  )。
    A

    s=0;i=1;for(;;){s+=i; i++; if(i<=10) break;}

    B

    s=0,i=1;for(;i<=10;){s+=i; i++;}

    C

    s=0;for(i=1;i<=10;i++){s+=i;}

    D

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


    正确答案: B
    解析:
    B、C、D项都表示对1到10进行累加后赋给s,而A项中含break语句,循环体只执行一次,结束整个循环过程。答案选择A选项。

  • 第24题:

    单选题
    在下面循环语句中循环体执行的次数为()。inti=0,s=0;while(s<20){i++;s+=i;}
    A

    4

    B

    5

    C

    6

    D

    7


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