估算下列程序段所代表算法的时间复杂度。 程序段: t=1;m=0; for(k=1; k<=; k++) { t=t*2; for(j=t; j<=n; j++) m++; }
第1题:
阅读下列程序说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。
【说明】
程序利用选择排序算法对数组a中的N个整数按照从小到大的顺序排列,并将排序结果显示出来。
【程序】
define N 10
main()
{
void (1);
int i,a[N];
for(i=0;i<10,i++) /*输入*/
scanf(“%d”,&a[i]);
(2);
for(i=0;i<N,i++) /*输出*/
printf(“%3d”,a[i]);
}
void selectSon(int x[],int n)
{
int i,j,k,t;
for(int i=0; (3);i++)
{
k=i;
for(j=i+1;j<n;j++)
if (4) k=j;
if (5)
{t=x[i];x[i]=x[k];x[k] =t;}
}
}
第2题:
有以下程序 main() { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;<4:i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]{t=a[j][i];a[j][i]=a[k][i]=a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf("%d,",a[i][i]); } 程序运行后的输出结果是
A.1,6,5,7,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,2,1,
第3题:
有以下程序: #include <iostream> using namespace std; int main() { int num[2][3],*p; int t,i,j,k=10; p=num[0]; for(i=0;i<2;i++) { for(j=0;j<3;j++) { k++; *p=k; for(t=2;t<*p;t++) { if(!(*p%t)) { j--; *p--; break; } *p++; } } cout<<*(p-1)<<end1; return 0; } 程序运行后的输出结果是( )。
A.19
B.11
C.29
D.23
第4题:
以下程序的输出结果是 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++)t=t+b[i][b[j][j]]; printf(“%d\n”,t); }
A.3
B.4
C.1
D.9
第5题:
有下列程序: #include <stdio.h> void fun(int * s,int n1,int n2) { int i,j,t; i=n1;j=n2; while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。
A.987654321
B.4321098765
C.5678901234
D.987651234
第6题:
下面程序段的时间复杂度是(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)
第7题:
下列程序段的招待结果是______ 。 s=0 t=0 u=0 For i = 1 To 3 For j = 1 To i For k = j To 3 s=s+ 1 Next k t=t+1 Next j u=u+ 1 Next i Print s; t; u
A. 14 6 3
B.6 14 3
C.9 8 7
D.8 9 10
第8题:
以下程序的输出结果是 main() { int b[3][3]={0,1,2,O,l,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); }
A.3
B.4
C.1
D.9
第9题:
有以下程序 #include <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1 j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]); printf("\n"); } 程序的运行结果是
A.987654321
B.4321098765
C.5678901234
D.987651234
第10题:
第11题:
下面程序段在执行完成后,a的值为() int j=0,k=0,a=0; while(j<3) {j++;a=a+1;k=0;while(k<=2) {k++;if(k%2!=0)continue;a=a+1;} a=a+1;}
第12题:
0987654321
4321098765
5678901234
0987651234
第13题:
阅读分析本题程序段后回答问题:
(1)程序实现了什么功能?(3分)
(2)写出程序的输出结果;(4分)
(3)写出算法的时间复杂度。(3分)
#include "stdio.h"
#define N 7
typedef int datatype;
void main(void)
{ int 1,j,t;
datatype data[N]={1,2,3, 4,5,6, 7}; /*处理的数据
*/
i=0;
j=N-1;
while (i<j)
{ t=data[i];
data[i++ ]=data[j];
data[j--]=t;
}
printf(”运行结果为: \n");
for(i= =0;i<N-1;i++)
printf("%d; ",data[i]);
}
答案:
(1)实现的功能:将数组里的数组逆序输出
(2)7;6;5;4;3;2
(3)时间复杂度为n
解析:
因为i<N-1,所以最后输出的结果中不会有1
第14题:
A、O(m2)
B、O(n2)
C、O(m*n)
D、O(m+n)
第15题:
下面程序段的输出结果是( )。 public class Test t public static void main(String[] args) { int x=0; for (int i=1;i<=4;i++) { x=4; for(int j=1;j<=3; j++) { x=3; for(int k=1; k<=2; k++) x=x+6; } } System. out. println (x); } }
A.36
B.48
C.144
D.15
第16题:
有以下程序 main() {int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf("%d,",a[i][i]);
A.1,6,5,7,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,2,1,
第17题:
有下列程序: #include<stdi0.h> voidfun(int*S,intn1,intn2) { inti,j,t; i=n1;j=n2 while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j --;} } voidmain( ) { inta[10]={1,2,3,4,5,6,7,8,9,0),k; fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf(”%d”,a[k]);printf ("\n"); } 程序的运行结果是( )。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
第18题:
有如下程序段#include "stdio.h"void fun(int *a,int *b,int *c,int *d,int *e){ int i,j,k,m; for(i=0;i< *a;i++) for(j=0;j< *b;j++) for(k=0;k<*c;k++) for(m=0;m< *d;m++) ++*e;}main(){ int a=10,b=10,c=10,d=10,e=0; fun(&a,&b,&c,&d,&e); printf("%d\n",e);} 则程序段的输出结果是A.10000 B.1000 C.100 D.0
第19题:
有以下程序
main()
{int a[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf("%d,",a[i][i]);
}
程序运行后的输出结果是
A.1,6,5,7,
B.8,7,3,1,
C.4,7,5,2,
D.1,6,2,1,
第20题:
有以下程序
#include <stdio.h>
void fun(int *s,int n1,int n2)
{ int i,j,t;
i=n1; j=n2;
while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}
}
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},k;
fun(a,0,3); fun(a,4,9); fun(a,0,9);
for(k=0;k<l0;k++)printf("%d",a[k]); printf("\n");
}
程序的运行结果是
A.0987654321
B.4321098765
C.5678901234
D.0987651234
第21题:
有以下程序 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++)t=t+b[i][b][j][j]]; printf("%d\n",t); } 程序运行后的输出结果是( )
A.3
B.4
C.1
D.9
第22题:
写出程序的运行结果。 #include
第23题:
0,1,2,5
0,1,2,4
0,1,1,3
0,1,2,3
第24题:
6
8
9
10