网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

13、假设sqrt(n)函数中涉及的算法时间复杂度为O(1),那么下面的算法是判断n是否为素数,其时间复杂度为()。 void prime(int n) { for (i=2; i<sqrt(n) && (n % i)!=0; i++) ; if (i>sqrt(n)) printf("%d is a prime number", n); else printf("%d is not a prime number", n); }

A.O(n)

B.O(1)

C.O(sqrt(n)) sqrt表示对n取根方

D.O(n-i)


参考答案和解析
(1)解: 设新机器用同一算法在t秒内能解输入规模为n‘的问题 则t=3* =3* /64, 计算n'=n+6
更多 “13、假设sqrt(n)函数中涉及的算法时间复杂度为O(1),那么下面的算法是判断n是否为素数,其时间复杂度为()。 void prime(int n) { for (i=2; i<sqrt(n) (n % i)!=0; i++) ; if (i>sqrt(n)) printf("%d is a prime number", n); else printf("%d is not a prime number", n); }A.O(n)B.O(1)C.O(sqrt(n)) sqrt表示对n取根方D.O(n-i)” 相关考题
考题 以下函数按每行 8 个输出数组中的数据void fun(int *w,int n){ int i;for(i=0;in;i++){ ____________printf("%d ",w[i]);}printf("\n");}下划线出应填入的语句是A)if(i/8==0) printf("\n");B)if(i/8==0) continue;C)if(i%8==0) printf("\n");D)if(i%8==0) continue;

考题 若变量n中的值为24,则print()函数共输出【7】行,最后一行有【8】个数。void print (int n,int aa[]){int i;for (i=1; i1;i++){printf ("%6d", aa[i]);if(!(i%5)) printf ("\n");}printf ("\n");}

考题 若变量n中的值为24,则pint函数共输出【】行。void pint(int n,int aa[]){ int i; for(i=1; i=n; i++) { printf("%6d",aa[i]); if(!(i%5))printf("\n"); }printf("\n");}

考题 请补充函数fun(),该函数的功能是把数组bb中的数按从小到大的排列(数组的值及元素个数从土函数中输入)。例如,输入2 3 5 4 1,结果为1 2 3 4 5。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()吧的横线上填入所编写的若干表达式或语句。试题程序:include<stdio. h>define N 100void fun(int bb[], int n){int i,j,t;for (i=0;【 】;i++)for(j=0;【 】;j++)if(bb[j]bb[j+1] ){t=bb[j];bb [j]=bb [j+1];bb[j+1]=t;}}main(){int i=0, n=0;int bb[N];clrscr ();printf("\nInput n: \n");scanf ("%d", n);printf ("\nInput data: \n");while (i<n){printf ("bb [%d] =", i);scanf ("%d", bb [i]);i++;}fun (bb, n);printf("\n*** the result ***\n");for (i=0; i<n; i++ )printf ( "%4d'', bb [i]);}

考题 以下程序运行后的输出结果是【9】。includestdio.hmain(){ int i,n[]={0,0,0,0,0};for(i=1;i=2;i++){ n[i]=n[i-1]*3+1;printf("%d",n[i]);}printf("\n");}

考题 以下程序运行后的输出结果是【13】。includestdio.hmain(){ int n[2],i,j;for(i=0;i2;i++)n[i]=0;for(i=0;i2;i++)for(j=0;j2;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}

考题 下列给定程序的功能是:读入一个整数n(2=n= 5000),打印它的所有为素数的因子。例如,若输入整数1234,则应输出:2,617。 请修改程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不能增选或删行,也不能匿改程序的结构。 试题程序: includeconio.h includestdio.h //****found**** Prime(int m); { int j,P; p=1; //****found**** for(j=2;jm;j++) if!(m%j) { p=0; break; } return(p);int i,n; printf("\nplease enter an integer number between2 and 5000:"); scanf("%d",&n); printf("\n\nThe prime factor(s)of%d is(are):",n): for(i=2;in;i4+) if((!(n%i))&&(Prime(i))) printf("%4d,",i); printf("\n"); }

考题 该程序运行的结果是( )。#include#include#define M 100void fun(int m, int *a, int *n){ int i,j=0;for(i=1;i=m;i++)if(i%7==0||i==0)a[j++]=i;*n=j;}main(){ int aa[M],n,k;clrscr();fun(10,aa,n);for(k=0;kif((k+1) ==0)printf("\n");else printf("M",aa[k]);printf("\n");}

考题 请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p~n-1(p<n-1)的数组元素平移到数组的前面。例如,一维数组中的原始内容为1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, P的值为6。移动后,一维数组的内容应为7, 8, 9, 10, 11, 12, 13, 14, 15, 1, 2, 3, 4, 5, 6。[注意] 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。[试题源程序]inciude <stdio.h>define N 80void fun(int *w, int p, int n){}main(){int a[N]=(i, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);int i, P, n=15;printf("The original data:\n");for(i=0; i<n; i++)printf("%3d", a[i]);printf("\n\nEnter p: ");scanf("%d", &p);fun(a, P, n);printf("\nThe data after moving:\n");for(i=0; i<n; i++)printf("%3d", a[i]);printf("\n\n");}

考题 下列程序段的时间复杂度为()。i=0,s=0;while(sn){s=s+i;i++;}A、O(n1/2)B、O(n1/3)C、O(n)D、O(n2)

考题 阅读以下函数说明和C语言函数,将应填入(n)处的语句写在对应栏内。【函数2.1说明】有1、2、3、4四个数字,输出由这些数字组成的互不相同且无重、复数字的三位数。【函数2.1】main(){int i,j,k;printf("\n");for((1)) /*以下为三重循环*/for(j=1; j<5;j++)for (k=1;k<5;k++){if ((2)) /*确保i, j, k 三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}【函数2.2说明】计算并输出100之内的素数,每行输出10个,超过10个则换行。【函数2.2】include <stdio.h>include "math.h"define N 101main(){int i,j,line,a[N];for(i=2;i<N;i++)(3);for(i=2;i<sqrt(N);i++)for(j=i+1;j<N;j++){if(a[i]!=0a[j]!=0)if(a[j]%a[i]==0)(4);}printfC\n");for(i=2,line=0;i<N;i++){if(a[i]!=0){prinff("%5d",a[i]);(5);}if(line==10){prinff("\n");line=0;}}}

考题 假如整数数列中的数不重复,并存放在数组中。下列给定的程序中,函数fun()的功能是:删除数列中值为X的元素。 N中存放的是数列中元素的个数。请改正程序中的错误,使它能够得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include<stdio.h>define N 20fun (int *a,int n,int x){int p=0,i;a[n]=x;while (x!=a[p])p=p+1;if(p==n) return -1;else{for (i=p;i<n;i++)/*************found**************/a[i+1]=a[i];return n-1;}}main(){int w[N]={-3,0,1,5,7,99,10,15,30,90},x,n,i;n=10;printf("The original data :\n");for (i=0;i<n;i++) printf("%5d",w[i]);printf("\nInput x (to delete ): ");scanf("%d",x);printf("Delete : %d\n",x);n=fun(w,n,x);if (n==-1) printf("***No be found!***\n\n");else{printf("The data after deleted:\n");for (i=0;i<n;i++) printf("%5d",w[i]);printf("\n\n");}}

考题 请补充函数fun(),该函数的功能是:按行统计N×N维矩阵元素中的最大值(均为整数),并把这些值按从小到大的顺序保存在数组b中。矩阵的维数在主函数中输入,并赋予随机数。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>include<conio.h>include<stdlib.h>define N 20void fun(【 】){int i j;int t;for(i=0;i<n;i++)for(j=0;j<n;j++)if(【 】)b[i]=a[i][j];for(i=0;i<n;i++){for(j=0;i<n;j++)if(【 】){t=b[i];b[i]=b[j];b[j]=t;}}}main(){int a[N][N];int b[N];int n;int i,j;clrscr();printf("*****Input the dimension of array N*****\n");scanf("%d",n);printf("*****The array *****\n");for(i=0;i<n;i++){for(j=0;i<n;j++){a[i][j]=rand()%20;while(a[i][j]==0)a[i][j]=rand()%30;printf("%4d",a[i][j]);}printf(”\n\n”);}for(i=0;i<n;i++)b[i]=0;fun(a,b,n);printf("***** THE RESULT *****\n");for(i=0;i<n;i++)printf(“%d”,b[i]);}

考题 以下程序运行后的输出结果是 。includemain(){int i,n[5]={0};for(i=l;i=4;i++){n[i]=n[i-1]*2+1;printf(“%d”,n[i])}printf(“\n”):}

考题 下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度为(11)。 void select_sort(int a[],int n){ //将a中整数序列重新排列成从小到大有序的整数序列 for(i=0;i<n-1;++i){ j=i; for(k=i+1;k<n;++k)if(a[k]<a[j])j=k; if(j!=i){w=a[j];a[j];a[i];a[i]=w} )//select_sortA.O(n2)B.O(n3)C.O(n4)D.O(n)

考题 算法的主运算如下,其中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)

考题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。【函数】main(){int number[20],n,m,i;printf("the total numbers is:");scanf("%d",n);printf("back m:");scanf("%d",m);for(i=0;i<=n-1;i)scanf("%d,",number[i]);(1);for(i=0;i<=n-1;i)printf("%d,",number[i]);}move(array,n,m)int n,m,array[20];{int *p,array_end;array_end=(2);for(p=array[n-1];(3);p--)*p=(4);*array=array_end;m--;if(m>0) (5);}

考题 阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:54 13 23 1 12 2 12 1 1 11 1 1 1 1共有7种划分。这种划分的程序如下所示。【程序】include <stdio.h>int n[1000],m,k;void output sum(){int j;for(j=0;n[j]!=0;j++)printf("%d\t",n[j]);printf("\n");}void sum(int i)if(m-n[i]<n[i]){ m=m-n[i];(1)i++;n[i+1]=0;}else{(2)m-=n[i];i++;}if(m!=n[i])sum(i);elseoutput_sum();if(n[i]>1){n[i]--;(3)}else{while((n[i]==1)(i>O)){i--;(4)}if(i!=0){(5)sum(i);}}}void main(){int i;scanf("%d",n[0]);m=k=n[0];for(i=1;i<=k;i++)n[i]=0;while(n[0]!=1){n[0]--;i=0;sum(0);m=k;}}

考题 以下函数按每珩8个输出数组中的数据 void fun( iht*w, int n) { inti; for(i=0;i<n,i++) { ______ printf("%d",w[i]); } printf("\n"); } 下划线处应填入的语句是______。A.if(i/8=0)printf("\n);B.if(i/8=0)continue;C.if(i%8=0)printf("\n");D.if(i%8=0)continue;

考题 分析下列程序,其最终执行结果是______。 main() { int n[3],i,j,k; for(i=0;i<3;i++)n[i]=O; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1; printf("%d\n",n[0]); }A.-2B.-1C.0D.-3

考题 若变量n中的值为24,则print()函数共输出行,最后一行有个数。void print (int n,int aa[]){ int i; for(i=1; i1;i++) { printf("%6d",aa[i]); if(!(i%5)) printf("\n"); } printf ("\n");}

考题 请补充main函数,该函数的功能是:把1~100间的所有素数保存在数组aa中,然后输出这些素数并计算它们的和。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。试题程序:include<stdio.h>main(){int n, i, j, k, flag, sum;int aa [50];sum=O;k=O;clrscr ();for (i=2; i<100; i++){【 】;for (j=2; j<i&&flag; j++)if (i%j==O){【 】;}if (flag){sum+=i;【 】;}}printf("\n*** prime number ***\n");for (i=0; i<k; i++){if (i%10==0)printf ("\n");printf ("%4d", aa [i]);}printf ("\nsum=%d", sum);}

考题 以下程序的输出结果是#include conio.h#include stdio.h#define M 100void fun(int m, int *a, int *n){ int i,j=0; for(i=1;i=m;i++) if(i%7==0||i%11==0) a[j++]=i; *n=j;}main(){ int aa[M],n,k; clrscr(); fun(100,aa,n); for(k=0;kn;k++) if((k+1)%20==0)printf("\n"); else printf("%d",aa[k]); printf("\n"); }

考题 请补充main函数,该函数的功能是:输出一个N×N矩阵,要求非对角线上的元素赋值为0,对角线元素赋值为1。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。试题程序:include<stdio. h>define N 10main ( ){int bb[N] [N];int i, j,n;clrscr ();printf (" \nInput n:\n");scanf ("%d", n);for (i=0; i<n; i++)for (j=0; j<n; j++){【 】;if (i==j)bb[i] [j]=【 】;if (【 】)bb[i] [j]=1;}printf(" \n***** the result ***** \n");for (i=0; i<n; i++){printf (" \n\n");for (j=0; j<n; j++)printf ("%4d",bb [i] [j] );}}

考题 有以下程序: #includestdio.h #define N 4 void fun(int a[][N],int[]) { int i; for(i=o;iN;i++)b[i]=a[i][i]-a[i][N-1-i-]}; } main( ) { int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i; fun(X,y); for(i=0;iN;i++)printf("%d,",y[i]);printf("\n"); } 程序运行结果为( )。A.-l2,-3,0,0,B.-3,-l,1,3,C.0,1,2,3,D.-3,-3,-3,-3,

考题 算法的主要运算如下: While i<n do { s=0; While s<n do { s=s+1; } i=i+1; } 其中i的初值为0,s初值为0,“=”为赋值号。该算法的时间复杂度为()A.O(2n)B.O(n+log2n)C.O(nlog2n)D.O(n2)

考题 (13)以下程序运行后的输出结果是 【13】 。#include stdio.hmain(){ int i,n[5]={0};for(i=1;i=4;i++){ n[i]==n[i-1]*2+1; printf("%d",n[i]); }printf("\n");}

考题 设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。for(i=n-1;i=0;i--)for(j=0;jA、n2B、O(nlgn)C、O(n)D、O(n2)