下面的程序段的时间复杂度为【】
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)
第1题:
现在有如下程序
#include "stdio.h"
main()
{char s[80];
int i,j;
gets(s);
for(i=j=0;s[i]!=′\0′;i++)
if(s[i]!=′H′______)
s[j]=′\0′;
puts(s);}
这个程序段的功能是删除输入的字符串中字符′H′,则空线上应当添入的是
A.s[j++]=s[i];j++;
B.s[j]=s[i++];j++;
C.s[j++]=s[i];
D.s[j]=s[i];
第2题:
A、O(m2)
B、O(n2)
C、O(m*n)
D、O(m+n)
第3题:
阅读下列函数说明和C代码,填入(n)处。
[说明]
以下C语言程序实现了生成从里到外是连续的自然数排列的回旋矩阵,矩阵形式如下:
7 6 5 16
8 1 4 15
9 2 3 14
10 11 12 13
程序的变量说明如下:
x1:矩阵上边界;
x2:矩阵下边界;
y1:矩阵左边界;
y2:矩阵右边界;
s:数组元素升降标记,s等于1为升,s等于-1为降;
a[]:存放矩阵元素的数组。
仔细阅读C语言程序源码,将(n)处的语句补充完整。(注:每处仅一个语句)
[C程序]
include<stdio.h>
void main ( )
{
const int N=20;
int i=0,j=0,a[N][N],n;
int m,x1,x2,y1,y2,s;
while (1)
{
Printf ("\ninput matrix row N( N>=2): ");
scanf ("%d",&n);
printf ("\n");
if (n>=2)
break;
}
m=n*n;
x1=0; y1=0; x2=n; y2=n;
if(n%2==0)
{j=n-1; y2=n-1; s=1;}
else
{i=n-1; y1=1; s=-1; }
while (1)
{
if (s==1)
{
for (i; i<x2; i++) a[i][j]=m--;
i--;
j--;
(1)
for (j;j>=y1;j--) a[i][j]=m--;
j++;
i--;
y1++;
(2)
}
else
{
for (i;i>=x1;i--)
a[i][j]=m--;
i++;
j++;
(3)
for (j;j<y2;j++)
(4)
(5)
i++;
(6)
S=i;
}
if (m<1) break;
}
for (i=O;i<n; i++)
{
for (j=O;j<n;j++)
printf ("%6d",a[i][j]);
printf ("\n");
}
printf ("\n");
}
第4题:
下面程序段的时间复杂度为 ( ) 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)
第5题:
算法的主运算如下,其中i的初值为1,s的初值为0,“←”为赋值号。 while i<n do { for j←1 to n do s←s+a[i,j] i←i*2; 则该算法的时间复杂度为 ( )
A.O(2n)
B.O(n+log2n)
C.O(nlog2n)
D.O(n2)
第6题:
以下程序的输出结果是( )。 #include<stdio.h> main() {int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) s+=a[i][a[j][j]]; printf("%d\n",s); }
A.3
B.4
C.1
D.9
第7题:
若有以下程序main(){ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0) continue; if(a[i][j]==0) break; s +=a[i][j]; } } printf("%d\n",s);}程序执行后的输出结果是
第8题:
以下程序的输出结果是______。 main() { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=0;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf("%d\n",s); }
A.18
B.19
C.20
D.21
第9题:
下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0; j<=(2*n); j++) x++; }
A.O(log2n)
B.O(n)
C.O(nlog2n)
D.O(n2)
第10题:
下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0;3<-(2*n);j++) x++; }
A.O(log2n)
B.O(n)
C.O(nlog2n)
D.O(n2)
第11题:
第12题:
第13题:
下列程序段的时间复杂度为()。i=0,s=0;while(sn){s=s+i;i++;}
A、O(n1/2)
B、O(n1/3)
C、O(n)
D、O(n2)
第14题:
A.6385
B.69825
C.63825
D.693825
第15题:
以下程序的执行结果是______。 main() { int i,j,m=O,n=0; for (i=0;i<2;i++) {for (j=0;j<2;j++) if(j>=i) m=1;n++; printf("%d\n",n); } }
A.4
B.2
C.1
D.0
第16题:
下面这个程序段的时间复杂度是( )。 for (i=1; i<n; i++) { y=y+1; for (j=0;j<=(2*n);j++) X++; }
A.O(log2n)
B.O(n)
C.0(nlog2n)
D.O(n2)
第17题:
有以下程序 main() { int n[3],i,j; for(i=0;i<3;i++)n[i]=0; for(i=0;i<2,i++) for(j=0;j<2;j++)n[j]=n[i]+1; printf("%d\n",n[1]); } 程序运行后的输出结果是( )
A.2
B.1
C.0
D.3
第18题:
下面程序段的时间复杂度是(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)
第19题:
下面程序的运行结果是( )。 #inelude<stdio.h> void del(char*s) { int i,j; char*a; a=s: for(i=0,j=0;a[i]!=\0;i++) { if(a[i]>=0&&a[i]<=9) {s[j]=a[i]; j++; } s[j]=\0; } } main { char*s="aa89gggh"; del(s): printf("\n%s",s); }
A.1
B.2
C.3
D.4
第20题:
下面程序的运行结果是
#include<stdio.h>
void delch(char *s)
{ int i,j;
char *a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′ &&a[i]<=′9′)
{s[j]=a[i]; j++;}
s[j]=′\0′;}
main()
{ char *item="a34bc";
delch(item);
printf("\n%s",item);}
A.abc
B.34
C.a34
D.a34bc
第21题:
下面程序的运行结果是( )。 #include<stdio.h> void delch(char *s) { int i,j; char*a; a=s; for(i=0,j=0;a[i]!='\0' ;i++) if(a[i]>='0' &&a[i]<='9') { s[j]=a[i]; j++;} s[j]='\0'; } main() { char*item="a34bc"; delch(item); printf("\n%s" ,item);}
A.abc
B.34
C.a34
D.a34bc
第22题:
以下程序的输出结果为( )。
main( )
{ char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!='\0') i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]=0;
printf("%s\n",s1);
}
A side
B country
C sidetry
D countryside
第23题:
下面程序段的时间复杂度是() for(i=0;i<n;i++) for(j=0;j<n;j++) A[i][j]=0;