计算机科学与技术专业综合试卷内容摘要:

D. O(n2) 3.数组 A 中,每个元素 A[i][j]的长度为 3 个字节,行下标 i 从 0 到 7,列下标 j 从 0 到 9,从首地址 SA 开始连续存放在存储器内,该数组按行存放时,元素 A[7][4]的起始地址为() A. SA+141 B. SA+144 C. SA+222 D. SA+225 4.某二叉树的后序遍历为 dabec,中序遍历为 debac,则前序遍历序列为() A. acbed B. decab C. deabc D. cedba 5.对于二叉树来说,第 i 层上至多有()个结点。 A. 2i B. 2i1 C. 2i1 D. 2i11 6. 递归函数 f(n)=f(n1)+n (n1)的递归体是 ( C) A. f(1)=0 B. f(0)=1 C. f(n)=f(n1)+n D. f(n)=n 7.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。 A. 1/2 B. 1 C. 2 D. 4 8.已知图的邻接表如下所示,根据算法,则从顶点 0 出发按广度优先遍历的结点序列是() A. 0 3 2 1 B. 0 1 2 3 C. 0 1 3 2 D. 0 3 1 2 9.对线性表进行二分查找时,要求线性表必须() A.以顺序方式存储 B.以链接方式存储 C.以顺序方式存储,且结点按关键字有序排列 D.以链接方式存储,且结点按关键字有序排列 10.如果要求一个线性表既能较快地查找,又能适应动态变化的要求 ,可以采用()查找。 A.分块 B.顺序 C.二分 D.散列 11.设有 1000 个无序的元素,希望用最快的速度挑出其中前 10 个最大的元素,最好采用()法。 A.冒泡排序 B.快速排序 C.堆排序 D.基数排序 12.非线性结构中,每个结点() A.无直接前趋 B.只有一个直接前趋和后继 C.只有一个直接前趋和个数不受限制的直接后继 D.有个数不受限制的直接前趋和后继 13.设高度为 h 的二叉树只有度为 0 和度为 2 的结点,则此类二叉树所包含的结点数至少为() A. 2h B. 2h1 C. 2h+1 D. h+1 14.矩阵 是一个() A.对称矩阵 B.三角矩阵 C.带状矩阵 D.稀疏矩阵 15.散列文件是一种() A.顺序文件 B.索引文件 C.链接文件 D.计算寻址文件 三、假设二叉树包含的结点数据为 1, 3, 7, 2, 12 1}画出两棵高度最大的二叉树 2)画出两棵完全二叉 树,要求每个双亲结点的值大于其孩子结点的值。 四、程序分析题 1.程序: include int x=1。 main() { func(x)。 printf(“%d\n”,x)。 } func(int x) { x=3。 } 程序的执行结果是 : 1 2. 程序 : include main() { int a=2,*p,**PP。 pp=amp。 p。 p=amp。 a。 printf(“%d,%d,%d”,a,*p,**PP)。 } 程序的执 行结果是: 2, 2, 2 3.程序: include main() { char s[80],c1,c2=‟ „。 int i=0,num=0。 gets(s)。 while(s[i]!=‟\0‟) { c1=s[i]。 if(i= =0) c2=‟ „。 else c2=s[i1]。 if(c1!=‟ „ amp。 amp。 c2= =‟ „) num++。 i++。 } printf(“%d”,num)。 } 程序完成功能是: 统计一个字符串中单词的个数。 4.下面的函数 invert 的功能是将一个字符串的内容颠倒过来。 程序有一处错误请找出,度改正。 程序 : void invert(char str[]) { int i,j,k。 for(i=0,j=strlen(str)。 ij。 i++,j)  for(i=0,j=strlen(str)1。 ij。 i++,j) { k=str[i]。 str[i]=str[j]。 str[j]=k。 } } 5.下面程序中有一处错误,请指出,并改正。 main() { float a[10]。 int i。 for(i=0。 i3。 i++) saf(”%d”,amp。 a[i])。  scanf(“%f”,amp。 a[i])。 for(i=1。 i3。 i++) a[0]=a[0]+a[i]。 printf(”%f\n”,a[0])。 } 五、程序设计题 1. 设计求二叉树深度的算法。 2.用递归方法,计算 x 的 n 次方。 long fun(int x,int n) { if(n= =0) return 1。 else return(x*(fun(x,n1)))。 } 3.如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数。 试编程求 1000以内的所有阿姆斯特朗数。 main() { int i,n,a,b,c。 for(i=100。 i1000。 i++) { n=i。 a=n%10。 b=n/10%10。 c=n/100。 if(a*a*a+b*b*b+c*c*c= =n) printf(“%d ”,i)。 } printf(“\n”)。 } 2020 年吉林省普通高校专升本教育试点考试 计算机科学与技术专业综合试卷 一 、填空题 (每空 2 分,共 40 分 ) : int a=3,b=2。 则表达式 ab 的值为 1。 : int x=65;则语句 printf(“ %c”, x);的输出结果是 A。 : ab?a:cd?c:d,若 a=1, b=2, c=3, d=4,则表达式的值为 4。 int a[ ][ 3]={1, 2, 3, 4, 5, 6, 7};则数组 a 的第一维(行)的大小是 3。 : int i; for( i=0; i10; i++),循环结束后 i 的值为 10。 ab。 Char c[ 5]={„a‟,‟b‟,‟\0‟,‟c‟,‟\0‟}; Printf(“ %s”, c); int b[ ]={1, 2, 3, 4}, y, *p=b。 则执行语句 y=*p++;后,变量 y 的值为 1。 语言中,十进制数 10 的八进制表示方法为。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。