[试题]

试题一

阅读下列函数说明和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<n && j<m;)

*c++=a[i]<b[j]? a[i++]:b[j++];

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) ;

}

参考答案与解析:

相关试题

试题四 阅读下列函数说明,将应填入(n)处的字句写在答卷纸的对应栏内。 (函数

[试题]试题四阅读下列函数说明,将应填入(n)处的字句写在答卷纸的对应栏内。(函数1说明)函数compare(SqList A,SqList B)的功能是:设A=(al,…,am)和B=(bl,…,bn)均为顺序表,"比较",两个顺序表A和B的大小。设A'和B'分别为A和B中除去最大共同前缀后的子表(例如,A=(y,x,x,z,x,z),B=(y,x,x,z,y,x,x,z),则两者中最大的共同前缀为(y,x,x,z),在两表中除去最大共同前缀后的子表分别为A′=(x,z)和B′=(y,x,x,z

  • 查看答案
  • 阅读下列程序说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。 (说明)

    [主观题]阅读下列程序说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。(说明)程序利用选择排序算法对数组a中的N个整数按照从小到大的顺序排列,并将排序结果显示出来。(程序)define N 10main(){void (1);int i,a[N];for(i=0;i<10,i++) /*输入*/scanf(“%d”,&a[i]);(2);for(i=0;i<N,i++) /*输出*/printf(“%3d”,a[i]);}void selectSon(int x[],int n){int

  • 查看答案
  • 试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明2.1)以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。(函数2.1)void fun1(int a[]){int i,j,k,r,x,m;for(i=2;i<=n;i++){ (1) ;k=1;r=i-1;while(k<=r){m=(k+r)/2;if(x<a[m])r=m-1;else (2) ;}for(j=i-1;j>=k;j--)a[j+1]=a[j];(3) ;}}

  • 查看答案
  • 试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。(函

  • 查看答案
  • 试题四 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。(函数)void QuickSort(int A[],int s,int t){int i=s,j=t+1,temp;int x=A[s];do{do i++;while (1) ;do j--;while(A[j]>x);if(i<j){temp=A[i]; (2) ; (3) ;}}while(i<j);A.[a]=A[j];

  • 查看答案
  • 试题四 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明4.1)假设两个队列共享一个循环向量空间(如图1-2所示),其类型Queue2定义如下:typedef struct{D.ateType data [MaxSize];int front[2],rear[2];}Queue2;对于i=0或1,front[i]和rear[i]分别为第i个队列的头指针和尾指针。函数EnQueue(Queue2*Q,int i,DateType x)的功能是实现第i个队列的入队操作。(函数

  • 查看答案
  • 试题八 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题八阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。(程序)#include<stdio.h>main(){FILE*fp;charstr[100];inti=0;if((fp=fopen("text.txt" (1) ))==NULL){printf("can't open this file.\n"

  • 查看答案
  • 试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数print(BinTreeNode*t;DateType &x)的功能是在二叉树中查找值为x的结点,并打印该结点所有祖先结点。在此算法中,假设值为x的结点不多于一个。此算法采用后序的非递归遍历形式。因为退栈时需要区分右子树。函数中使用栈ST保存结点指针ptr以及标志tag,Top是栈顶指针。(函数)void print(BinTreeNode*t;DateType &x){stack ST;int i,top;

  • 查看答案
  • 试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求L3中的所有整数都是L1,并且不是L2中的整数,还要求L3中的所有整数都两两不等。(函数)#include<malloC.h>typedef struct node{int d;struct node *next}Node;void diff(Node *A,Node

  • 查看答案
  • 试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明2.1)L为一个带头结点的循环链表。函数deletenode(LinkList L,int c)的功能是删除L中数据域data的值大于c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。(函数2.1)LinkList deletenode(LinkList L,int c){LinkList Lc,p,pre;pre=L;p= (1) ;Lc=(LinkList)malloc(siz

  • 查看答案
  • 试题一 阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。