●试题一
阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。
【函数1.1说明】
函数strcpy(char*to,char*from)将字符串from复制到字符串to。
【函数1.1】
void strcpy(char*to,char*from)
{while( (1) );}
【函数1.2说明】
函数merge(int a[ ],int n,int b[ ],int m,int *c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。
【函数1.2】
void merge(int a[ ],int n,int b[ ],int m,int *c)
{ int i,j;
for(i=j=0;i *c++=a[i]
while( (2) )*c++=a[i++]; while( (3) )*c++=b[j++]; } 【函数1.3说明】 递归函数sum(int a[ ],int n)的返回值是数组a[ ]的前n个元素之和。 【函数1.3】 int sum(int a[ ],int n) { if(n>0)return (4) ; else (5) ; } ●试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 该程序运行后,输出下面的数字金字塔 【程序】 #include main () {char max,next; int i; for(max=′1′;max<=′9′;max++) {for(i=1;i<=20- (1) ;++i) printf(" "); for(next= (2) ;next<= (3) ;next++) printf("%c",next); for(next= (4) ;next>= (5) ;next--) printf("%c",next); printf("\n"); } } ●试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求L3中的所有整数都是L1,并且不是L2中的整数,还要求L3中的所有整数都两两不等。 【函数】 #include C.h> typedef struct node{ int d; struct node *next }Node; void diff(Node *A,Node *B,Node **r) { int lastnum; Node*p; *r=NULL; if(!A)return; while( (1) ) if(A->d { lastnum=A->d; p=(Node*)malloc(sizeof(Node)); p->d=lastnum; p->next=*r; (2) ; do A=A->next; while( (3) ); } else if(A->d>B->d) B=B->next; else{ (4) ; lastnum=A->d; while (A && A->d==lastnum)A=A->next; } while(A) { lastnum=A->d; p=(Node*)malloc(sizeof(Node)); p->d=lastnum; (5) ; *r=p; while (A && A->d==lastnum) A=A->next; } }


