在N=32的基2时间抽取法FFT运算流图中,从x(n)到X(k)需 () 级蝶形运算过程。A.4B.5C.6D.3
在N=32的基2时间抽取法FFT运算流图中,从x(n)到X(k)需 () 级蝶形运算过程。
A.4
B.5
C.6
D.3
参考答案和解析
5
相关考题:
有以下程序void change(int k[ ]){ k[0]=k[5];}main(){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while( n=4 ) { change( x[n]) ; n++; }for(n=0;n5;n++) printf("%d ",x[n]);printf("\n");}程序运行后输出的结果是A)6 7 8 9 10B)1 3 5 7 9C)1 2 3 4 5D)6 2 3 4 5
下面是一段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.0(nlog2n)B.O(n)C.0(log2n)D.O(n2)
有以下程序 void change(int k[]){k[0]=k[5];} main() { int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4) { change(x[n]); n++;} for(n=0;n<5;n++) printf("%d",x[n]); printf("\n"); } 程序运行后输出的结果是______。A.678910B.13579C.12345D.62345
( 30 )有如下程序:#includeiostreamusing namespace std;class AA{lilt k;protected:int n;void setK ( int k ) { this-k=k;}public:void setN ( int n ) { this-n=n;}};class BB: public }{/* 类体略 */};int main () {BB x_ ; //1x .n=1; //2x.setN ( 2 ) ; //3x.k=3; //4x .setK ( 4 ) ;return 0;}在标注号码的四条语句中正确的是A ) 1B ) 2C ) 3D ) 4
下面是一段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)
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn。希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得“背包问题”的一组解,其中程序1是“背包问题”的递归解法,而程序2是“背包问题”的非递归解法。【程序1】include<stdio.h>define N 7define S 15int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s, int n){if(s==0) return 1;if(s<0 || (s>0 n<1))return 0;if((1)){/*考虑物品n被选择的情况*/printf("%4d",w[n]);return 1;}return (2);/*考虑不选择物品n的情况*/}main(){if(knap(S,N))printf("OK!\n");else printf("N0!\n");}【程序2】include<stdio.h>define N 7define S 15typedef struct{int s;int n;int job;}KNAPTP;int w[N+1]={0,1,4,3,4,5,2,7};int knap(int s, int n);main(){if(knap(S,N)) printf("0K!\n");else printf("N0!\n");}int knap(int s, int n){KNAPTP stack[100],x;int top, k, rep;x.s=s;x.n=n;x.job=0;top=1; stack[top]=x;k=0;while( (3) ){x=stack[top];rep=1;while(!k rep){if(x.s==0) k=1;/*已求得一组解*/else if(x.s<0 || x.n<=0) rep=0;else{x.s=(4);x.job=1;(5)=x;}}/*while*/if(!k){rep=1;while(top>=1 rep){x=stack[top--];if(x.job==1){x.s +=w[x.n+1];x.job=2;stack[++top]=x;(6);}/*if*/}/*while*/}/*if*//*while*/if(k){&nbs
以下程序的输出结果是【 】。main(){ int x=0;sub(x,8,1);printf(“%d\n”,x);}sub(int *a,int n,int k){ if(k<=n)sub(a,n/2,2*k);*a+=k;}
已知数组a中有n个元素,下列语句将数组a中从下标x1开始的k个元素移动到从下标x2开始的k个元素中,其中O<=xl<x2<n,x2+k<n,请将下列语句补充完整。For(int i=x1+k-1;i>=x1;i--)a[______]=a[i];
下列程序段的执行结果为 ______。 N=10 For K=N To 1 Step-1 X=Sqr(K) X=X-2 Next K Print X-2A.-3B.-1C.1D.1.16228
以下程序的输出结果是( )。 include main()fint x=0; sub(x,16,2); printf("%d\n", 以下程序的输出结果是( )。include<stdio.h>main()fint x=0;sub(x,16,2);printf("%d\n",x);}sub(int*a,int n,int k){if(k<=n) sub(a,n/2,2*k);*a+=k;}
下列程序段的执行结果为______ 。 Dim A(4) N= 3 A(1) =1 For K=0 To N-1 For L=1 To K+1 X=K+2 -L A(X)=A(X)+A(X-1) If K<N-1 Then Exit For Print A(X); Next L Next KA. 1 2 1B.1 2 3C.2 4 6D.1 3 1
下列程序段的执行结果为 ______。 N=10 For K=N To 1 Step -1 X=Sqr(K) X=X-2 Next K Print X-2A.-3B.-1C.1D.1.16227765
试题四(共15分)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】用两台处理机A和B处理n个作业。设A和B处理第i个作业的时间分别为ai和bi。由于各个作业的特点和机器性能的关系,对某些作业,在A上处理时间长,而对某些作业在B上处理时间长。一台处理机在某个时刻只能处理一个作业,而且作业处理是不可中断的,每个作业只能被处理一次。现要找出一个最优调度方案,使得n个作业被这两台处理机处理完毕的时间(所有作业被处理的时间之和)最少。算法步骤:(1)确定候选解上界为R短的单台处理机处理所有作业的完成时间m,(2)用p(x,y,k)=1表示前k个作业可以在A用时不超过x且在B用时不超过y时间 内处理完成,则p(x,y,k)=p(x-ak,y,k-1)||p(x,y-bk,k-1)(||表示逻辑或操作)。(3)得到最短处理时问为min(max(x,y))。【C代码】下面是该算法的C语言实现。(1)常量和变量说明n: 作业数m: 候选解上界a: 数组,长度为n,记录n个作业在A上的处理时间,下标从0开始b: 数组,长度为n,记录n个作业在B上的处理时间,下标从0开始k: 循环变量p: 三维数组,长度为(m+1)*(m+1)*(n+1)temp: 临时变量max: 最短处理时间(2)C代码includestdio.hint n, m;int a[60], b[60], p[100][100][60];void read(){ /*输入n、a、b,求出m,代码略*/}void schedule(){ /*求解过程*/int x,y,k;for(x=0;x=m;x++){for(y=0;ym;y++){(1)for(k=1;kn;k++)p[x][y][k]=0;}}for(k=1;kn;k++){for(x=0;x=m;x++){for(y=0;y=m;y++){if(x - a[k-1]=0) (2) ;if( (3) )p[x][y][k]=(p[x][y][k] ||p[x][y-b[k-1]][k-1]);}}}}void write(){ /*确定最优解并输出*/int x,y,temp,max=m;for(x=0;x=m;x++){for(y=0;y=m;y++){if( (4) ){temp=(5) ;if(temp max)max = temp;}}}printf("\n%d\n",max),}void main(){read();schedule();write();}【问题1】 (9分)根据以上说明和C代码,填充C代码中的空(1)~(5)。【问题2】(2分)根据以上C代码,算法的时间复杂度为(6)(用O符号表示)。【问题3】(4分)考虑6个作业的实例,各个作业在两台处理机上的处理时间如表4-1所示。该实例的最优解为(7),最优解的值(即最短处理时间)为(8)。最优解用(x1,x2,x3,x4,x5,x6)表示,其中若第i个作业在A上赴理,则xi=l,否则xi=2。如(1,1,1,1,2,2)表示作业1,2,3和4在A上处理,作业5和6在B上处理。
试题14以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中。主函数中,n存放a数组中数据的个数。请填空。#include stdio.hvoid fun(int s[], int *n, int k, int x){ int i;for(i=*n-1; i=k; i- - ) s[ ___ ]=s[i];s[k]=x;*n=*n+______;}main(){ int a[20]={1,2,3,4,5,6,7,8,9,10,11}, i, x=0, k=6, n=11;fun(a, n, k, x);for(i=0; in; i++) printf(“%4d”,a[i]); printf(“\n”);}
单选题给定子例行程序如下 SUBROUTINE SUB(K,A) B=K+2 A=A+B END 下列调用语句中正确的是()ACALL SUB(N,N)BCALL SUB(X,X)CCALL SUB(N+2,X)DCALL SUB(N,X+3)
单选题设有n个数按从大到小的顺序存放在数组x中,以下能使这n个数在x数组中的顺序变为从小到大的是( )。Afor(i=0;in/2;i++){ t=x[i]; x[i]=x[n-i-1]; x[n-i-1]=t;}Bfor(i=0;in;i++){ t=x[i]; x[i]=x[n-i-1]; x[n-i-1]=t;}Cfor(i=0;in/2;i++){ t=x[i]; x[i]=x[n-i+1]; x[n-i+1]=t;}Dfor(i=0;in/2;i+=2){ t=x[i]; x[i]=x[n-i-1]; x[n-i-1]=t;}