下面是一段Pascal程序: for h:=1 to n-1 do begin x:=A[h+1]; k:=h; while(k>=1)and(A[k]>x)do begin A[k+1]:=A[k]; k:=k-1 end; A[k+1]:=x end; 假设在程序开始执行时,数组A[1…n)是一组随机整数。下列答案中,最好地描述了最差情况下的程序执行时间(运行时间阶数)的是
A.O(n log2n)
B.O(n)
C.O(log2n)
D.O(n2)
第1题:
下面能正确计算1*2*3*•••*10的程序段是()
A.do{ k=1;n=1;n=n*k;k++; }while(k<=10);
B.do{ k=1;n=0;n=n*k;k++; }while(k<=10);
C.k=1;n=1; do{ n=n*k;k++; }while(k<=10);
D.k=1;n=0; do{ n=n*k;k++; }while(k<=10);
第2题:
1、以下能够实现计算5!的程序段是()
A.int fac=1,k=0; do{ k++; fac*=k;} while(k<5);
B.int fac=0,k=1; do{ fac*=k; k++;} while(k<5);
C.int fac=1,k=1; do{ k++; fac*=k;} while(k<=5);
D.int fac=1,k=0; do{ fac*=k; k++;} while(k<5);
第3题:
8、下面程序的输出结果是 。 #include<stdio.h> int main() { int k=1,s=0; do { if((k%2)!=0)continue; s+=k;k++; }while(k>10); printf("%d",s); return 0; }
第4题:
下面的程序运行时,若输入253,则输出 。 #include <stdio.h> long fun (long data) { long k =1; do { k*=data%10 ; data/=10 ; } while(data) ; return (k); } void main() { long x; printf("nPlease enter a number:"); scanf("%ld",&x); printf("n%ldn",fun(x)); }
第5题:
【填空题】当运行以下程序时,从键盘输入1 2 3 4 5 -1<CR>,则下面程序的运行结果是 。 #include<stdio.h> main() {int k=0,n; do{scanf("%d",&n);k+=n;}while(n!=-1); printf("k=%d n=%dn",k,n); }