吉林省计算机专升本考试历年真题.docx
《吉林省计算机专升本考试历年真题.docx》由会员分享,可在线阅读,更多相关《吉林省计算机专升本考试历年真题.docx(50页珍藏版)》请在冰豆网上搜索。
吉林省计算机专升本考试历年真题
吉林省普通高等学校专升本教育考试
2003年吉林省普通高等学校专升本教育考试
计算机科学技术专业综合试卷
一、填空题
1.向栈中推入元素的操作是。
2.线性表中结点的集合是,结点间的关系是。
3.在双链表中要删除已知结点*p,其时间复杂度为。
4.已知数组A[11][6]采用行序为主方式存储,每个元素占4个存储单元,并且数组元素A[0][0]的存储地址是1000,数组元素A[8][4]的地址是。
5.在栈中存取数据遵从的原则是。
6.广义表的长度是指,广义表的深度是指。
7.N个顶点的连通图至少有条边。
8.深度为k的完全二叉树至少有个结点,至多有个结点。
9.在各种查找方法中,平均查找长度及结点个数n无关的查找方法是。
10.已知完全二叉树的第8层有8个结点,则其叶子结点数是。
11.对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置,需比较次。
12.拓扑排序算法是通过重复选择具有个前驱顶点的过程来完成。
二、单项选择题
1.不带头结点的单链表head为空的判定条件是()
A.head==NULLB.head->next==NULL
C.head->next==headD.head!
=NULL
2.设长度为n的链队列用单循环链表表示,若只设尾指针,则出队操作的时间复杂度为()
A.O
(1)B.O(log2n)
C.O(n)D.O(n2)
3.数组A中,每个元素A[i][j]的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,该数组按行存放时,元素A[7][4]的起始地址为()
A.SA+141B.SA+144
C.SA+222D.SA+225
4.某二叉树的后序遍历为dabec,中序遍历为debac,则前序遍历序列为()
A.acbedB.decab
C.deabcD.cedba
5.对于二叉树来说,第i层上至多有()个结点。
A.2iB.2i-1
C.2i-1D.2i-1-1
6.递归函数f(n)=f(n-1)+n(n>1)的递归体是()
A.f
(1)=0B.f(0)=1
C.f(n)=f(n-1)+nD.f(n)=n
7.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。
A.1/2B.1
C.2D.4
8.已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是()
A.0321B.0123
C.0132D.0312
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.2hB.2h-1
C.2h+1D.h+1
14.矩阵是一个()
A.对称矩阵B.三角矩阵
C.带状矩阵D.稀疏矩阵
15.散列文件是一种()
A.顺序文件B.索引文件
C.链接文件D.计算寻址文件
三、假设二叉树包含的结点数据为1,3,7,2,12
1}画出两棵高度最大的二叉树
2)画出两棵完全二叉树,要求每个双亲结点的值大于其孩子结点的值。
四、程序分析题
1.程序:
#include
intx=1;
main()
{
func(x);
printf(“%d\n”,x);
}
func(intx)
{
x=3;
}
程序的执行结果是:
2.程序:
#include
main()
{
inta=2,*p,**pp;
pp=&p;
p=&a;
printf(“%d,%d,%d”,a,*p,**pp);
}
程序的执行结果是:
3.程序:
#include
main()
{
chars[80],c1,c2=’‘;
inti=0,num=0;
gets(s);
while(s[i]!
=’\0’)
{
c1=s[i];
if(i==0)
c2=’‘;
else
c2=s[i-1];
if(c1!
=’‘&&c2==’‘)
num++;
i++;
}
printf(“%d”,num);
}
程序完成功能是:
4.下面的函数invert的功能是将一个字符串的内容颠倒过来。
程序有一处错误请找出,度改正。
程序:
voidinvert(charstr[])
{
inti,j,k;
for(i=0,j=strlen(str);i>j;i++,j--)
{
k=str[i];
str[i]=str[j];
str[j]=k;
}
}
5.下面程序中有一处错误,请指出,并改正。
main()
{
floata[10];
inti;
for(i=0;i<3;i++)
scnaf(”%d”,&a[i]);
for(i=1;i<3;i++)
a[0]=a[0]+a[i];
printf(”%f\n”,a[0]);
}
五、程序设计题
1.设计求二叉树深度的算法。
2.用递归方法,计算x的n次方。
3.如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数。
试编程求1000以内的所有阿姆斯特朗数。
2005年吉林省普通高校专升本教育试点考试
计算机科学及技术专业综合试卷
一、填空题
1.栈的主要特点是;队列的主要特点是。
2.在一长度为n的向量中的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动个元素。
3.对于一个具有n个结点的单链表,在已知P所指结点后插入一个新的结点的时间复杂度为;在给定值为x的结点后插入一个新的结点的时间复杂度为。
4.设n行n列的下三角矩阵A已压缩到一维数组s[0…n*(n-1)/2]中,若按行序为主存储,则A[i][j]对应的s中的存储位置为。
5.将f=1+1/2+1/3+…1/n转化成递归函数,其递归出口是,递归体是。
6.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为。
7.具有n个叶子结点的哈夫曼树中,其结点总数为。
8.对一个满二叉树,m个树叶,n个结点,深度为h,则n=。
9.判定一个有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用算法。
10.在各种查找方法中,平均查找长度及结点个数无关的查找方法是。
11.快速排序在最坏情况下的时间复杂度为。
12.一组记录的排序码为(46,79,56,38,40,84),则利用堆排序方法建立的初始堆为。
13.直接存取文件是用方法组织的。
14.-18在内存中的补码形式是10010011。
15.若a=3,b=4,c=5,d=6,则执行完如下表达式(a<(b=2))&&(c=d)后,a=,b=,c=,d=。
二、单项选择题
1.线性表的顺序存储结构是一种()的存储结构;线性表的链式存储结构是一种()的存储结构。
A.随机存取,顺序存取B.顺序存取,随机存取
C.索引存取,散列存取D.散列存取,随机存取
2.表达式a*(b+c)-d的中辍表达式为()
A.abcd+-*B.abc+*d–
C.abc*+d-D.-+*abcd
3.在一个单链表中,若P所指结点不是最后的结点,在P之后插入S所指结点,则执行()
A.S->next=P;P->next=S;B.S->next=P->next;P->next=S;
C.S->next=P->next;P=S;D.P->next=S;S->next=P;
4.一个栈的入栈序列为1,2,…,n,其输出序列为P1,P2,…,Pn,若P1=n,则Pi为()
A.iB.n-iC.n-i+1D.不确定
5.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,该数组按行序存放时,元素A[8][5]的起始地址为()
A.SA+141B.SA+144C.SA+222D.SA+225
6.将递归算法换成对应的非递归算法时,通常需要使用()
A.栈B.队列C.链表D.树
7.任何一棵二叉树的叶结点在前序、中序和后序遍历中的相对次序是()
A.不发生改B.发生改变C.不能确定D.以上都不对
8.已知一有向图的邻接表存储结构如下图所示,根据有向图的深度优先遍历算法,从顶点V1出发,所得到的顶点序列为()
A.V1V2V3V5V4B.V1V2V3V4V5
C.V1V3V4V5V2D.V1V4V3V5V2
9.快速排序方法在()情况下最不利于发挥其长处。
A.要排序的数据量太大B.要排序的数据中含有多个相同值
C.要排序的数据已基本有序D.要排序的数据个数为奇数
10.有一个长度为12的有序表,按二分查找法对该表进行查找,在表内各元素等概率情况下查找成功所需的平均比较次数为()
A.35/12B.37/12C.39/12D.43/12
11.下面给定的四个数中最大的是()
A.(38)10B.(00101011)2C.(1F)16D.(41)8
12.若x=4,y=-2,z=5,则表达式++x-y+z++的值为(C)
A.10B.11C.12D.13
13.以下给定程序的输出结果为()
main()
{
intx=12;
while(x--);
printf(“%d”,x);
}
A.-1B.0C.11D.1
14.有一二维数组a[3][4],其第2行第3列元素的正确表示方法是()
A.&a[2][3]B.a[2]+3C.*(a+2)+3D.*(a[2]+3)
15.执行完下列语句后,*p的最终值是()
inta[8]={1,3,2,4,6},*p=a,c=11;
p+=5;
a[4]=c;
A.6B.11C.0D.4
三、算法设计及解答
1.设有一组关键字{19,01,23,14,55,20,84,27,68,11,10,77}采用哈希函数:
H(key)=key%13,采用开放地址法的二次探测再散列方法解决冲突,试在0~18的散列地址空间中对该关键字序列构造哈希表。
2.试用普里姆法构造如图所示的一棵最小生成树。
(要求每加入一个结点,画一个图)
3.已知二叉树的先序遍历序列为“-,+,a,*,b,c,-,/,d,e,f”中序遍历序列为:
“a,+,b,*,c,-,d,/,e,-,f”,画出此二叉树,并写出它的后序遍历序列。
4.二叉树采用链接存储结构,试设计一个算法计算一棵给定二叉树的单孩子结点数。
(只写算法函数)
intonechild(btree*b)
{…}
5.已知线性表中的元素以值递增有序排列,并以单链表作为存储结构,试写一高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同),同时释放被删除结点空间,并分析你的算法的时间复杂度。
statusDelete_Equal(Linklist&L)
{…}
四、程序填空
1.下面程序的功能是求1+2+3+…+10的和。
补充程序使之完整。
main()
{
intsum=0,i;
i=1;
while(i<=10)
{
【1】;
【2】;
}
printf(“sum=%d\n”,sum);
}
2.从键盘输入一行句子,统计其中单词的个数,补充程序使之完整。
#include
main()
{
chars[80];
inti,num=0;
【1】;
gets(s);
while(s[i]!
=’\0’)
{
if((i==0)&&(s[i]!
=’‘))
num++;
elseif((【2】)&&(【3】))
num++;
i++;
}
printf(“num=%d\n”,num);
}
3.在已排好序的字符串a,下面的程序是将字符串b的每个字符按顺序插入到a中。
请将该程序填写完整。
#include
main()
{
chara[30]=”adeghkortuw”;
charb[]=”flmsx”;
inti,j,k;
printf(“stringa:
%s\n”,a);
for(k=0;s[k]!
=’\0’;k++)
{
j=0;
while(s[k]>=a[j]&&a[j]!
=’\0’)
j++;
for(【1】)
【2】
a[j]=s[k];
}
printf(“stringa:
%s\n”,a);
}
五、读程序写结果
1.写出如下程序的执行结果
#include
intm=5;
intf1()
{
m=m+3;
return(m);
}
main()
{
intm=3;
{
intm=10;
m++;
}
f1();
m+=1;
printf(“%d\n”,m);
}
2.写出下面程序的执行结果
voidswap(int*r,int*s)
{
int*t;
t=r;
r=s;
s=t;
}
main()
{
inta=3,b=9;
int*p,*q;
p=&a;
q=&b;
printf(“%d,%d\n”,*p,*q);
swap(p,q);
printf(“%d,%d\n”,*p,*q);
}
3.写出下面程序的执行结果。
main()
{
union
{
struct
{
intx;
inty;
}n;
inta;
intb;
}e;
e.a=5;
e.b=4;
e.n.x=e.a+e.b;
e.n.y=e.a*e.b;
printf(“%d,%d\n”,e.n.x,e.n.y);
}
六、编程题
1.编程实现求1+1/2!
+1/3!
+…1/n!
,真到使最后一项1/n!
小于10-4.
2.从键盘输入10个数,将其存入一个数组中,处理使这10个数在原数组中逆序存放。
输出原数组和处理后数组。
(注:
要求处理过程占用最少存储空间)
3.将给定数组a中,10个元素(初始值为1001,1000,2001,1030,5201,4110,2111,3302,6013,3123)按每数各位之和(千位+百位+十位+个位)从小到大排序。
2007年吉林省普通高校专升本教育试点考试
计算机科学及技术专业综合试卷
一、填空题(每空2分,共40分)
1.设有变量说明:
inta=3,b=2;则表达式a>b的值为。
2.若有如下定义:
intx=65;则语句printf(“%c”,x);的输出结果是。
3.有条件表达式:
a>b?
a:
c>d?
c:
d,若a=1,b=2,c=3,d=4,则表达式的值为。
4.已知inta[][3]={1,2,3,4,5,6,7};则数组a的第一维(行)的大小是。
5.设有语句:
inti;for(i=0;i<10;i++),循环结束后i的值为。
6.下面程序段运行的结果是。
Charc[5]={‘a’,’b’,’\0’,’c’,’\0’};
Printf(“%s”,c);
7.已知intb[]={1,2,3,4},y,*p=b;则执行语句y=*p++;后,变量y的值为。
8.C语言中,十进制数10的八进制表示方法为。
9.C语言中,字符型常量以码的形式在变量中存储。
10.已知struct{inti;charc;floata;}test;则结构体变量test的存储长度为
个字节。
11.设元素1,2,3,4,5依次进入栈S,在经过操作序列为push(S,1),push(S,2),push(S,3),
pop(S),push(S,4),pop(S),pop(S),push(S,5),pop(S),pop(S)之后得到的输出序列。
12.一个稀疏矩阵,按照行序递增的顺序,下标从1开始构造对应的三元组线性表为。
13.一颗具有35个结点的二叉树可能的最小深度___________;最大深度为___________。
14.一颗树的广义表表示为a(b,c(e,f(g)),d),当用孩子兄弟链表表示时,右指针余非空的结点个数为___________。
15.利用n个值生成哈夫曼树中共有___________个结点。
16.具有n个顶点的强连通图至少有___________条边。
17.已知一个有向图的邻接矩阵表示,计算第i个结点的入度的方法是___________。
18.已知8个数据元素(35,75,40,15,20,55,95,65)按照依次插入点结点的方法生成一颗二叉树排序树后,最后两层上的结点总数为___________。
19.若对一组记录(46,79,56,38,40,80,35,50,74)进行直接插入排序,当把第8个记录50插入到前面已排序的有序表时,为寻找插入位置需比较___________次。
二、单项选择题(每小题2分,共40分)
1.若定义了intx;则将x强制转化为双精度类型应该写成
A.(double)xB.x(double)C.double(x)D.(x)double
2.已知inti=5,执行语句i+=++i后,i的值是
A.10B.11C.12D.A,B,C答案都不对
3.C语言中的函数
A.可以嵌套定义B.不可以嵌套调用
C.可以嵌套调用不可以递归调用D.嵌套调用和递归调用均可
4.合法的数组说明语句是
A.chara[]={0,1,2,3,4,5};B.inta[5]={0,1,2,3,4,5};
C.chara=”string”;D.inta[]=”string”;
5.有字符组a[80],b[80],正确在输出语句是
A.puts(a,b);B.printf(“%s,%s”,a[],b[]);
C.putchar(a,b);D.puts(a),puts(b);
6.已知int*p,a;则语句p=&a;中运算符&的含义是
A.位及运算B.逻辑及运算
C.取指针内容D.取变量地址
7.若inti=10;则执行下列语句后,变量i的正确结果是
switch(i)
{
case9:
i+=1;
case10:
i+=1;
case11:
i+=1;
default:
i+=1;
}
A.10B.11C.12D.13
8.在C语言中,二维数组的元素在内存中存放的顺序是
A.按行存放B.按列存放
C.用户自己定义D.由编译程序决定
9.已知char*p,*q;选择正确的语句
A.p*=3;B.p/=q;
C.p+=3;D.p+=q;
10.设有以下说明语句,则错误的叙述是
uniondata
{
inti;
charc;
floatf;
}a;
A.a所占内存长度为成员f的长度
B.a的地址和它的成员地址都是同一地址
C.a不可作为函数的参数
D.不能对a赋值,但可以在定义a时对它初始化
11.下面列出的四种时间复杂性,最好的是()
A.O(n)B.O(nlog2)C.O(n)D.O(log2n)
12.在一个长度为n的顺序存储的线性表中,删除值为x的元素时需要比较元素和移动元素的总次数为()
A.(n+1)/2B.n/2C.nD.n+1
13.二维数组M的行下标i的范围从0到4,列下标j的范围从0到5,每个元素占4个存储单元,M按行序存储元素M[3][5]的起始地址及M按列序存储时元素()的起始地址相同。
A.M[2][4]B.M[3][4]C.M[3][5]D.M[4][4]
14.一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为()个。
A.3B.4C.5D.6
15.对于一个具有n个顶点的无向连通图,它包含的连通分量的个数为()
A.0B.1C.nD.n+1
16.已知一个图如下所示,若从从顶点a出发按深度优先搜索遍历,可能得到的一种遍历序列为()
A.a,b,e,c,d,f
B.a,c,f,e,b,d
C.a,e,d,f,c,b
D.a,e,b,c,f,d
17.已知一个有向图如下所示,由该图得到的一种拓扑序列为()
A.V1,V4,V6,V2,V5,V3
B.V1,V2,V3,V4,V5,V6
C.V1,V4,V2,V3,V6,V5
D.V1,V2,V4,V6,V3,V5
18.对于一个长度为18的顺序存储的有序表,若采用折半查找,则查找第15个元素的查找长度为()
A.3B.4C.5D.6
19.对下列四个序列进行快速排序,各以第一个元素为基准进行第一次划分,则在该次划分过程中需要移动元素次数最多的序列是()
A.1,3,5,7,9B.5,7,9,1,3C.5,3,1,7,9D.9,7,5,3,1
20.一组记录的关键字为 (45,80,55,40,42,85),则利用堆排序的方法建立的初始堆为()
A.(80,45,55,40,42,85)B.(85,80,55,45,42,40)
C.(85,80,55,40,42,45)D.(85,55,80,42,45,40)
三、解答题(共50分)
1.设有一种数据结构B的元素集合K和它的二元关系R为:
B=(K,R)
K={K1,K2……K7}
R={,,,,,,,}(表示结点a到结点b是单向的)画出此结构对应的图形,并判断它属于哪种逻辑结构?
(6分)
2.将下面所示的森林转换成一棵二叉树(按字母序号顺序),并分别