[IT认证]2007年专升本考试试题及参考答案.doc_第1页
[IT认证]2007年专升本考试试题及参考答案.doc_第2页
[IT认证]2007年专升本考试试题及参考答案.doc_第3页
[IT认证]2007年专升本考试试题及参考答案.doc_第4页
[IT认证]2007年专升本考试试题及参考答案.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2007年专升本考试计算机科学与技术专业综合第一部分(C程序设计)一、选择题(2*25=50分)1. 以下叙述中正确的是_。A、C程序中注释部分可以出现在程序中任意合适的地方B、花括号和只能作为函数体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名D、分号是C语句之间的分隔符,不是语句的一部分2. 以下选项中可作为C语言合法整数的是_。A、10110B B、0386 C、0Xffa D、x2a23. 以下不能定义为用户标识符的是_。A、Scanf B、Void C、_3com_ D、int4. 有以下程序main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f %3.1f,a,c,f,x);程序运行后的输出结果是_。A、1 65 1 6.5 B、1 65 1.5 6.5C、1 65 1.0 6.5 D、2 65 1.5 6.55. 以下选项中非法的表达式是_。A、0=xa)|(m=ab);printf(%d,%d,k,m);程序运行后的输出结果是_。A、0,0 B、0,1 C、1,0 D、1,17. 有定义语句:int x,y;。若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是_。A、11 12 B、11,12 C、11, 12 D、11, 128. 设有如下程序段int x=2007,y=2008;printf(%d,(x,y);则以下叙述中正确的是_。A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生出错信息C、输出值为2007D、输出值为20089. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_。A、x=x*100+0.5/100.0; B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0; D、x=(x/100+0.5)/100.0;10. 有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是_。A、if (ca) x=1; B、if (a3) x=3; else if (ba) x=2; else if (a2) x=2; else x=3; else x=1;C、if (a3) x=3; D、if (ab) x=b; if (a2) x=2; if (bc) x=c; if (a1) x=1; if (c100) break;C、int K=10000; D、int s=36;dok+;while(k10000); while(s) -s;13.设int x=1,y=1;表达式(!x|y-)的值是 。A、0 B、1 C、2 D、-114.以下能正确定义一维数组的是 。A、int a5=0,1,2,3,4,5 B、char a=0,1,2,3,4,5C、char a=A,B,C D、int a5=“0123”;15.若有说明语句:c=72;则变量cA、包含1个字符 B、包含2个字符 C、包含3个字符 D、说明不合法,c的值不确定16.下面叙述中不正确的是 。A、char a10=“china”; B、char a10,*p=a;p=“china”;C、char *a;a=“china”; D、char a10,*p;p=a=“china”;17. 有以下程序main() int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2;else d=3;printf(“%d,%d,%d,%dn”,a,b,c,d);程序的输出是 。A、0,1,2,0 B、0,0,0,3 C、1,1,2,0 D、编译有错18. 若要求从键盘读入含有空格字符的字符串,应使用函数 。A、getc() B、gets() C、getchar() D、scanf()19.以下不能正确计算代数式sin2()值的C语言表达式是_。A、1/3*sin(1/2)*sin(1/2) B、sin(0.5)*sin(0.5)/3C、pow(sin(0.5),2)/3 D、1/3.0*pow(sin(1.0/2),2)20. 以下程序的功能是:给r输入数据后计算半径为r的圆面积s,程序在编译时出错。main()/* Beginning */int r; float s; scanf(%d,&r); s=*r*r; printf(s=%fn,s);出错的原因是_。A、注释语句书写位置错误 B、存放圆半径的变量r不应该定义为整型C、输出语句中格式描述符非法 D、计算圆面积的赋值语句中使用了非法变量21. 有以下程序段:int n,t=1,s=0;scanf(%d,&n);do s=s+t; t=t-2; while (t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是_。A、任意正奇数B、任意负偶数 C、任意正偶数D、任意负奇数22.以下四个程序中,完全正确的是 。A、#include B、#include main(); main() /*programming*/ /*/programming/*/ printf(“programming!n”); printf(“programming!n”); C、#include D、includemain() main()/*/*programming*/*/ /*programming*/printf(“programming!n”); printf(“programming!n”); 23.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是 。A、(!E=0) B、(E0|E0)C、(E=0) D、 (E!=0)24.设fp为指向某二进制文件的指针,且已读到词文件末尾,则函数feof(fp)的返回值为 A、EOF B、非0值 C、0 D、NULL25.现有如下程序段,此程序段编译有错误,则程序段的错误出在 。#includemain() int a=30,b=40,c=50,d; d=a30?b:c;switch(d) case a: printf(“%d”,a); case b: printf(“%d”,b); case c: printf(“%d”,c) default: printf(“#”);A、default: printf(“#”);这个语句B、d=a30?b:c;这个语句C、case a: printf(“%d”,a); case b: printf(“%d”,b); case c: printf(“%d”,c);这三个语句D、switch(d) 这个语句二、读程题(5*6=30分)1.有以下程序 main()int i=1,j=1,k=2; if(j+|k+)&i+) printf(“%d,%d,%d”,i,j,k);执行后的输出结果是: 。2.有以下程序 main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;jname,p-num); printf(%s %dn,p-name,p-num);程序运行后的输出结果是_。4.int fac(int n) static int f=1; f=f*n;return (f);main() int i; for(i=1;i=5;i+)printf(“%d!=%dn”,i,fac(i);该程序运行结果为 。5.有以下程序main() int i,s=0,t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+=2) s+=*(t+i); printf(“%dn”,s);程序执行后的输出结果是 。6.以下程序的输出结果是 。#define MAX(x,y) (x)(y)? (x) : (y)main() int a=5,b=2,c=3,d=3,t; t= MAX(a+b,c+d)*10;printf(“%dn”,t);三、程序填空(2*10=20分)1.下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。fun(int *p ,int n) int *q; int max,min; max=min=*p; for(q=p; (1) ;q+) if( (2) ) max=*q;else if( (3) ) min=*q;2.以下程序的功能是:输出100以内(不含100)能被4整除且个位数为8的所有整数,请填空。main() int I,j; for(i=0; (1) ;i+) j=i*10+8; if( (2) )continue; /*如果j是4的倍数则打印否则就进行下一次循环*/ printf(“%3d”,j);3.以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5(注意:n不得大于10),程序运行结果如下:A B C D E F G H IJ K L M N O请填空完成该程序。#includemain() int i,j,n; char ch=A; (1) ; /*读入n的值*/if (n11) for(i=1;i=n;i+) for(j=1;j= n-i+1;j+) printf(“%2c”,ch); (2) ; /*每个ch的值都不一样*/ (3) ;else printf(“n is too large!n”);4.以下函数sstrcat()的功能是实现字符串的连接,即将t所指的字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefg。请填空完成该程序。#includevoid sstrcat(char *s ,char *t)int n; n= (1) ; /*先确定s的长度*/while(*(s+n)= (2) )s+;t+; /*将t的内容逐一赋给s中*/第二部分(数据结构)一、填空题(1*15=15分)1.两个字符串相等的充分必要条件 。2. 线形表中元素的数目称为线形表的 。3. 一棵树有 n(n0)个结点的满二叉树共有 叶子结点。4. 一棵深度为4的二叉树最多有 个结点。5. 若一棵二叉树中有10个度为2的结点,则它有 个叶子。6. 具有8个顶点的无向图,边的总数最多为 。7. 折半查找有序表(2,4,8,12,20,25,35),若查找元素35,它将依次与表中元素 比较大小。8. 在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向 。9. 广义表(a,b)的表头是 ,表尾是空 。10. 假定含有30个元素的线形表顺序存储,欲在它的第15个和第16个元素之间插入一个新元素,共需移动 个元素。11. 设数组A06,05的基地址是1024,每个元素占2个存储单元,若以行优先顺序存储,则A24的存储地址是 。12. 折半查找的时间复杂度为 。13. 算术表达式A+B*(C+D/E)转为后缀表达式后为 。14. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是 排序。15. 循环队列存储在数组A0m中,rear表示尾指针,则入队时的操作为 。二、选择题(3*10=30分)1. 顺序存储设计时存储单元的地址( )。A、一定不连续 B、一定连续 C、不一定连续 D、部分连续,部分不连续2. 线性表( a1,a2,an)以链式存储时,访问第i位元素的时间复杂性为( )。A、 O(1) B、O(i) C、 O(N) D、 O(i-1)3. 以下数据结构中,非线性数据结构的是( )。A、 树 B、字符串 C、队列 D、堆栈4. 输入序列为ABC,可以变为BAC时,经过的栈操作为( )A、push, pop, push, pop, push, pop B、 push, push, push, pop, pop, pop C、push, push, pop, pop, push, pop D、push, pop, push, push, pop, pop5. 在解决计算机主机与打印机之间的速度不匹配问题通常设置了一个打印机数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则从该缓冲区中取出数据打印。该缓冲区应该是一个()结构。 A、队列 B、堆栈 C、8数组 D、线性表6. 含有3个结点的二叉树的深度可能是( ): A、0或1 B、1或2 C、2或3 D、 3或4 7.设队列q=(a1,a2, ,an),则在q中删去一个元素后,q为 。A、q=(a1,a2,an-1) B、 q=(a2,a3, ,an) C、q=(a1,a2, ,ai-1,ai+1,ai+2 , ,an) D、以上都有可能8.一个栈的输入序列为1234,则()不可能是其出栈序列。A、4312 B、1243 C、2134 D、32149广义表L=(A,(B,(C),进行TAIL(L)操作后的结果为( )A、(C) B、 B,(C ) C、 (B,(C) D、(B,(C)10线索二叉树中结点T没有右孩子的主要条件是( )A、T-RightThread=NULL B、T-LeftThread=1 C、 T-RightThread=1 D、T-RightThread=0三、判断题(1*10=10分)1.哈希表是一种特殊的线性表。 ( )2.顺序存储方式只能用于存储线性结构。 ( )3. (101,88,46,70,34,39,45,58,66,10)是一个堆。 ( )4.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。( )5.栈和队列都是限制存取点的线性结构。 ( )6.在消除递归时不一定需要使用栈。 ( )7.若一个广义表的表头为空表,则此广义表亦为空表。 ( )8.完全二叉树的某结点若无左孩子,则它必定是也结点。 ( )9.顺序查找法适用于存储结构为顺序或链接存储的线性表。 ( )10. 数据元素是数据的最小单位。 ( )四、计算画图题(16+9+10+10=45)1.分别用(1)中序遍历(2)先序遍历(3)后序遍历(4)层序遍历,求图1的遍历序列。cefghidab图1a1=6a2=4a3=5a4=1a5=1a6=2a7=9a8=7a9=4a10=2a11=4图22. 画出图2的邻接表,给出从源点到汇点的最短时间。3. 给定19个字符组成的电文“AAABBBBAAABBCCDDEEE“,试为字符A,B,C,D,E设计哈夫曼(Huffman)编码。(1)、画出相应的哈夫曼树,并计算其路径长度(WPL);(2)、分别列出A,B,C,D,E的哈夫曼编码(约定左0右1)。4.请写出用下面不同的排序方法对关键字序列(64,24,7,89,6,5)进行排序的第一趟排序结果(升序)。(1)希尔排序:(2)选择排序; (3)冒泡排序;(4)快速排序;(5)归并排序。第一部分答案一、选择题(2*25=50分)1.A 2.C 3.D 4.B 5.D 6.C 7.A 8.D 9.C 10.C 11.D 12.D 13.B 14.B 15.A 16.D 17. D 18. B 19. A 20. D 21. D 22. B 23. B 24. B 25.C二、(5*6=30分)1. 2,2,2 2.x=8 3. SunDan 200424. 1!=1 2!=2 3!=6 4!=245!=120 5. 25 6. 60 三、程序填空(2*10=20分)1.(1) qmax(或者max*q) (3)*q*q)2.(1)i10(或者i=9) (2)j%4!=0 (或者j%4)3.(1)scanf(“%d”,&n); (2) ch+ (3)printf(“n”)(或者putchar(n)4.(1)strlen(s) (2)*t第二部分答案一、填空题(1*15=15分)1.长度相等且各个对应位置上的字符都相等 2. 长度 3. (n+1)/2 4. 24-1=15 5.11 6.28 7. 12、25、35 8. 后继结点 9. (a,b) 10.15 11. 1056 12. O(log2 n) 13. ABCDE/+*+ 14. 选择 15. rear=(rear+1) mod (m+1)二、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论