设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是 ______。
A.*p=*q;
B.p=q;
C.*p=&n1;
D.p=*q;
A.*p=*q;
B.p=q;
C.*p=&n1;
D.p=*q;
设有定义:int n1=0.n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是
A.*p;*q;
B.p=q;
C.*p=&n1;
D.p=*q;
inciude<stdio.h> inciude<stdlib.h> define MAX 65536 void merge(int arr[],int p,int q,int r) { int *left, *right; int n1,n2,i,j,k; n1=q-p+1; n2=r-q; if((left=(int*)malloc((n1+1)*sizeof(int)))=NULL) { perror("malloc error"); exit(1); } if((right=(int*)malloc((n2+1)*sizeof(int)))=NULL) { perror("malloc error"); exit(1); } for(i=0;i<n1;i++){ left[i]=arr[p+i]; } left[i]=MAX; for(i=0; i<n2; i++){ right[i]=arr[q+i+1] } right[i]=MAX; i=0; j=0; for(k=p; (1) ; k++) { if(left[i]> right[j]) { (2) ; j++; }else { arr[k]=left[i]; i++; } } } void mergeSort(int arr[],int begin,int end){ int mid; if((3) ){ mid=(begin+end)/2; mergeSort(arr,begin,mid); (4) ; merge(arr,begin,mid,end); } }
【问题1】 根据以上说明和C代码,填充1-4。 【问题2】 根据题干说明和以上C代码,算法采用了(5)算法设计策略。 分析时间复杂度时,列出其递归式位(6),解出渐进时间复杂度为(7)(用O符号表示)。空间复杂度为(8)(用O符号表示)。 【问题3】 两个长度分别为n1和n2的已经排好序的子数组进行归并,根据上述C代码,则元素之间比较次数为(9)。
设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是
A.p=1;
B.*q=2;
C.q=p;
D.*p=5;
设有以下定义和语句 int a[3][2]={1,2,3,4,5),*p[3]; p[0]=a[1]; 则*(p[0]+1)所代表的数组元素是______。
A.a[0][1]
B.a[1][0]
C.a[1][1]
D.a[1][2]
设有以下定义和语句 int a[3] [2] ={1,2,3,4,5, 6,}, *p[3]; p[0]=a[1]; 则*(p[0]+1)所代表的数组元素是
A.a[0][1]
B.a[1][0]
C.a[1][1]
D.a[l][2]
A.scanf("%d",&(*p).age);
B.scanf("%s",&std.name);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
设有如下定义 struct ss { char name[10]; int age;, char sex; } std[3],* p=std; 下面各输入语句中错误的是
A.scanf("%d",&(*p).age);
B.scanf("%s",&std.name);
C.sean("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
设有如下定义: struct ss { char name[10] int age; char sex; } std[3],*p=std; 下面各输入语句中错误的是()。
A.scanf("%d",&(*p).age);
B.scanf("%st",&std.name);
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
A.for(i=0;i<6;i++) printf("%2d",*(p++));
B.for(i=0;i<6;i++) printf("%2d",*(p+i));
C.for(i=0;i<6;i++) printf("%2d",*p++);
D.for(i=0;i<6;i++) printf("%2d",(*p)++);