西南交通大学考研真题一计算机.docx
- 文档编号:3501964
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:13
- 大小:54KB
西南交通大学考研真题一计算机.docx
《西南交通大学考研真题一计算机.docx》由会员分享,可在线阅读,更多相关《西南交通大学考研真题一计算机.docx(13页珍藏版)》请在冰豆网上搜索。
西南交通大学考研真题一计算机
西南交通大学2007年硕士研究生入学考试试卷
试题代码:
921
试题名称:
程序设计与数据结构
考生注意:
1.本试题共6大题,共8页,考生请认真检查;
2.请务必将答案写在答卷纸上,写在试卷上的答案无效。
题号
一
二
三
四
五
六
七
八
九
十
总分
得分
签字
一、填空题(本大题共20个空,每空1分,共20分)
1、一个C程序的基本组成单位是。
2、若有定义:
inti=010,j=110;则执行语句printf(“%d,%d”,i,j);后的输出结果是。
3、下列数学表达式的C语言表达式是。
4、若有定义:
doublex=3.5,y=8.3;inta=5:
则表达式:
x+a%3*(int)(x+y)%3/4的值是。
5、若有intx=0,z=2:
执行语句z=(x=0)?
13:
8后:
z=。
6、设a,b均为整型变量,则语句:
a=10;b=-a;a*=b++;执行后,a=;b=。
7、有如下定义:
char*s=”\”Hello\\world\n”;指针s所指字符串的长度为。
8、若有定义:
inta[5],*p=a;则p+3表示;*p+3表示。
9、在大部分的应用场合,各种数据结构的存储形式有,两种。
10、队列的特点是:
。
栈的特点是。
11、一个二维数组的元素在内存中的存放方式有和两种。
12、由二叉树的前序(根)遍历序列和遍历序列可以唯一确定一棵二叉树。
13、在一棵有14个结点的完全二叉树中,所含叶子结点的数目为个。
14、一个深度为5,18个结点的完全二叉树,编号为8的结点的右儿子的编号。
15、对n个记录的表r[1…n]进行简单选择排序,所需进行的关键字的比较次数为。
二、单项选择题(本大题共20小题,每小题1分,共20分。
在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母写在答卷纸上)
1、以下关于switch语句和break语句的描述中,正确的是【】。
A.在switch语句中必须使用break语句
B.在switch语句中,可以根据需要使用或不使用break语句
C.break语句只能用于switch语句中
D.break语句是switch语句的一部分
2、以下语句或语句组能正确进行字符串赋值的是【】。
A.char*s;*s=”Hello”;B.char*s;s=”Hello”;
C.chars[6];*s=”Hello”;D.chars[6];s=”Hello”;
3、在C语言中,以下关于函数叙述正确的是【】。
A.函数定义可以嵌套,但函数调用不能嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
C.函数定义和调用均不能嵌套
D.函数定义和调用均可以嵌套
4、设有定义:
int(*ptr)[10];则标示符ptr是【】。
A.10个指向整型变量的指针;
B.指向10个整型变量的函数指针
C.具有10个指针元素的一维指针数组,每个元素都只能指向整型量
D.一个指向具有10个整型元素的一维数组的指针。
5、假定int类型变量占用两个字节,若有定义:
inta[10]={1,2,3};则数组a在内存中所占字节数是【】。
A.3B.6C.10D.20
6、在while(a)中的a与下面条件表达式等价的是【】。
A.a==0B.a==1C.a!
=1D.a!
=0
7、在函数中未指定存储类别的变量,其隐含的存储类型是【】。
A.自动变量(auto)B.静态变量(static)
C.寄存器变量(register)D.外部变量(extern)
8、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是【】。
A.EOFB.0C.非零值D.NULL
9、若变量已正确定义,要求程序段完成求5!
的计算,不能完成此操作的程序段是【】。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(i<=5);
10、下列关于C语言数据文件的叙述中正确的是【】。
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由字节流形式组成,可按数据的存放形式分为二进制文件和文本文件
11、将一个长度为n的向量的第i个元素删除时,需要前移【】个元素。
A.iB.n-iC.n+1D.n-i+1
12、带头结点的单链表,头指针为head,判断其是否为空的条件是【】。
A.head=NULLB.head->next=NULL
C.head=headD.head->next=head
13、在一个单链表中,已知q结点是p结点的前驱结点,在q之后插入结点s,正确的操作步骤序列是【】。
A.q->next=s;s->next=p;B.s->next=p->next;q->next=s;
C.p->next=s;s->next=p;D.p->next=s;s->next=q;
14、设s为类型SqStack的栈变量,判定栈空的条件是【】。
A.s=nullB.s->top=0C.s.top=0D.s.top=s.base
15、深度为4的二叉树至多有【】个结点。
A.12B.13C.14D.15
16、关于二叉排序树,下列论断正确的是【】。
A.根结点的值大于左子树上的所有结点的值,而小于右子树上所有结点的值
B.根结点的值大于左孩子结点的值,而小于右孩子结点的值
C.任意一个结点的值均不小于其左子树上的所有结点的值,而大于其右子树上所有结点的值
D.根结点的值大于左子树上的所有结点的值,而小于右子树上所有结点的值,左右子树都是二叉排序树
17、对20个有序记录进行折半查找,查找成功的平均查找长度为【】。
A.5B.37/10C.39/10D.41/10
18、哈希表长度为m,哈希函数H(K)=K%P,一般来说P应取小于m的最大【】。
A.奇数B.偶数C.素数D.合数
19、当初始数据有序时,不应采用【】。
A.堆排序B.快速排序C.基数排序D.希尔排序
20、在n个元素中找出两个最小的元素,当n很大时,采用【】方法比较次数较少。
A.堆排序B.简单选择排序C.归并排序D.快速排序
三、阅读程序(本大题共4小题,每小题4分,共16分。
阅读下面程序,将程序的运行结果写在答题纸上—请务必注意输出函数中的换行控制符,你的答案必须反映出换行信息)。
1、下面程序运行时,若输入4,则输出结果是。
#include
voidmain(void)
{intn,i,j;
scanf(“%d”,&n)
for(i=1;i<=n;i++)
{for(j=1;j<=i-1;j++)putchar(32);/*putchar(32)的功能是打印一个空格*/
for(j=1;j<=2*(n-i)+1;j++)putchar(‘*’);
printf(“\n”);
}
}
2、下面程序运行时,若输入413879,则输出结果是。
#include
voidFunc(inta[],ints,intt)
{intTemp;
if(s>=t)return;
Temp=a[s];a[s]=a[t];a[t]=Temp;
Func(a,s+1,t-1);
}
voidmain(void)
{inta[5],i;
for(i=0;i<5;i++)scanf(“%d”,&a[i]);
Func(a,0,4);
for(i=0;i<5;i++)printf(“%4d”,a[i]);
}
3、下面程序运行后输出结果是。
#include
voidmain(void)
{chara[2][81]={“abc”,”defgh”};
char*p1,*p2;
p1=a[0];p2=a[1];
while(*p1)p1++;
while(*p2)*p1++=*p2++;
*p1=*p2;
printf(“%s\n%s”,a[0],a[1]);
}
4、对于下述算法,若输入1348,则该算法的输出为。
voidconversion()
{InitStack(S);
scanf(“%d”,&n);
while(n){
Push(S,n%8);
n=n/8;
}
while(!
StackEmpty()){
Pop(S,e);
Printf(“%d”,e);
}
}
四、程序填空(本大题共10个空,每空2分,共20分。
将“【】”中需要填入的内容写在答卷纸上)
1、函数voidFunc(float*n,intn)的功能是:
根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0,请填空完成该函数。
voidFunc(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti;
for(i=0;i<=n;i++)
{f=【1】*f;
w=f/(2*i+1);
s+=w;
}
【2】;
}
2、以下程序中,函数sumColumM的功能是:
求出M行N列二维数组每列元素中的最小值,并计算它们的和值。
和值通过形参sum传回给主调函数。
请填空该函数。
#defineM5
#defineN8
voidSumColuMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0;i {k=0; for(j=1;j if(a[k][j]>a[j][i])k=j; s+=【3】; } 【4】; } 3、函数Func的功能是实现N*N阶方阵的转置,在Func中所调用的Swap函数的功能是实现2个整数的交换,请填空。 #defineN8 voidSwap(int*p,int*q) {*p=*p+*q;*q=*p-*q;*p=*p-*q; } voidFunc(inta[N][N]) {inti,j; for(i=0;i for(j=0;j<【5】;j++)Swap(&a[i][j],【6】); } 4、下面算法的功能是实现将两个带头结点的有序链表合并为一个有序链表,合并后不保留原来连个链表,请填空。 voidMergelist_L(Linklist&La,Linklist&Lb,Linklist&Lc){ pa=La->next;pb=Lb->next; Lc=pc=La; while(【7】){ if(pa->data<=pb->data){ 【8】; pc=pa; 【9】; }else{ pc->next=pb; 【10】; pb=pb->next; } } pc->next=pa? pa: pb; free(Lb); } 五、简要回答题(本大题共6小题,每小题4分,共24分) 1、设有整型数组a[10][15][20],第一个数组元素的地址为1000,每个数组元素占4个字节。 请回答下列问题: (1)数组a所占存储空间是多大? (2)按低下标优先进行存储,元素a[5][6][7]的存储地址是什么? (3)按高下标优先进行存储,元素a[5][6][7]的存储地址是什么? 2、对于队列的顺序存储结构,什么叫队列的假溢出? 引起队列假溢出的原因何在? 请给出一种解决假溢出的方法。 3、某通讯系统只可能有A、B、C、D、E、F共6种字符,其出现的概率分别是0.14、0.4、0.04、0.12、0.17、0.13,试画出相应的郝夫曼树。 4、假设一棵二叉树的前序序列为GDCFEAB,中序序列为CDEAFBG,请画出该二叉树。 5、判断序列{46,35,62,94,73,10,24}是否构成一个堆,若不是堆,则按初始堆创建算法将该序列调整为小顶堆(首元素最小)。 6、设哈希表的长度m=12,使用的哈希函数为h(k)=k%11,采用线性探测再散列法处理冲突,将数据{1,12,13,34,38,33,27,22}插入到哈希表中。 六、程序设计(本大题共5小题,每小题10分,共50分) 1、从键盘输入一个大于0的实数a,用迭代法求a的平方根。 求平方根的迭代公式是: 要求前后2次求出的x的差的绝对值小于。 2、从键盘输入一个大于1的正整数n,计算以下级数的值,并输出结果(显示结果保留小数点后6位)。 3、从键盘输入任意一个大于等于2的自然数m,将m写成所有素因子乘积的形式, 例如,若输入: 13,则你的输出应该是: 13=13 若输入: 420,则你的输出应该是: 420=2*2*3*5*7。 4、编写一个算法将一个带头结点的单链表A分解成两个单链表A和B,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。 5、试编写一个算法,判断给定的二叉树是否是二叉排序树。 假定二叉树中结点的值为大于0的整数。 2007年真题答案(注意,此部分不包括程序设计答案,数据结构的详解请参考李春葆版《数据结构习题与解析》) 一、填空题 1.函数 2.8,110 3.(a^2-sqrt(b)*c)/d+e 4.3.5 5.13 6.-100-9 7.13 8.数字地址 9.顺序存储链式存储10.在表的一端进行插入,在另一端进行删除 在表的一端进行插入删除 11.顺序存储链式存储12.中序13.714.1715.n(n-1)/2 二、单项选择题 1-10: ABBDDDACBD 11~20: BBADDDBCBA 三、阅读程序 1. ******* ***** *** * 2.978134 3.abcdefgh defgh 4.0431 四、程序填空 1.(-1)^i*freturns 2.a[j][i]printf(“%d”,s) 3.N&a[j][i] 五、简要回答问题 1. (1) (2) (3) 2. (1)队空间还有存储单元未使用,但不能再插入元素 (2)头、尾指针值总是不断增加,已使用过的单元无法再使用 (3)1、将队中元素依次向队头方向移动 2、将队空间设想成一个循环的表 3. C 4. 5. 不构成一个堆。 调整为小顶堆如下: 6.h (1)=1%11=1 h(12)=12%11=1冲突h(12)=(12+1)%11=2(以下处理冲突方法雷同) h(13)=(13+1)%11=3 h(34)=(34+3)%11=4 h(38)=38%11=5 h(33)=33%11=0 h(27)=27%11=6h(22)=(22+7)%11=7 0 1 2 3 4 5 6 7 8 9 10 33 1 12 13 34 38 27 22 六、程序设计 1~3: 略 4.voidSeparate(LNodea,LNodeb) {LNoder,p,g; b=(LNode*)malloc(sizeof(LNode)); b->next=NULL; r=b; p=a->next; while(p! =NULL&&p->next! =NULL) {g=p->next; if(g! =NULL) {p->next=g->next; r->next=g; r=g; p=p->next; } } r->next=NULL; } 5.略
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南交通大学 考研 真题一 计算机