最新华中师范大学计算机考研874专业课模拟题.docx

上传人:b****5 文档编号:12184642 上传时间:2023-04-17 格式:DOCX 页数:13 大小:46.90KB
下载 相关 举报
最新华中师范大学计算机考研874专业课模拟题.docx_第1页
第1页 / 共13页
最新华中师范大学计算机考研874专业课模拟题.docx_第2页
第2页 / 共13页
最新华中师范大学计算机考研874专业课模拟题.docx_第3页
第3页 / 共13页
最新华中师范大学计算机考研874专业课模拟题.docx_第4页
第4页 / 共13页
最新华中师范大学计算机考研874专业课模拟题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

最新华中师范大学计算机考研874专业课模拟题.docx

《最新华中师范大学计算机考研874专业课模拟题.docx》由会员分享,可在线阅读,更多相关《最新华中师范大学计算机考研874专业课模拟题.docx(13页珍藏版)》请在冰豆网上搜索。

最新华中师范大学计算机考研874专业课模拟题.docx

最新华中师范大学计算机考研874专业课模拟题

数据结构与C语言模拟题一

第一部分c语言(90分)

1.选择题(20分)

1、执行下面程序后‘输出结果是()

main()

{a=45,b=27,c=0;

c=max(a,b);

printf(H%d\nH,c);

intmax(x,y)

intx,y;

{int乙

if(x>y)z=x;

elsez=y;

return(z);

A:

45B:

27C:

18D:

72

2、C语言源程序的基本单位是()

A:

过程B:

函数C:

子程序D:

标识符

3、设C语言中,int类型数据占4个字节,则short类型数据占()

A:

1个字节B:

2个字节C:

4个字节D:

8个字节

4、以下描述中,正确的是()

A:

预处理是指完成宏替换和文件包含中指定的文件的调用

B:

预处理指令只能位于C源文件的开始

C:

C源程序中凡是行首以#标识的控制行都是预处理指令

D:

预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备

5、下列数组说明中,正确的是()

A:

intarray[][4];B:

intarray[][];C:

intarray[][][5];D:

intarray[3][];

6、下面有尖for循环的正确描述是()

A:

for循环只能用于循环次数已经确定的情况

B:

for循环是先执行循环体语句,后判断表达式

C:

在for循环中,不能用break语句跳出循环体

D:

for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

7、若有下列定义inta[5],*p=a;,则对a数组元素地址的正确引用是()

A:

*(p+5)B:

*p+2C:

&a[4]D:

*p

8、以下()是正确的变量名

A:

5fB:

ifC:

f,5D:

」5

9、在C语言中,屯参的缺省存储类是()

A:

autoB:

registerC:

staticD:

extern

10、下列程序的输出结果是()main()

{intx=1,y=0,a=0,b=0;switch(x)

{

case1:

switch(y)

{

case0:

a++;break;

case1:

b++;break;

case2:

a++;b++;break;

case3:

a++;b++;break;

)printf(',a=%d,b=%d\n",a,b);

A:

a=1,b=0B:

a=2,b=1C:

a=1,b=1D:

a=2,b=2

11、以下能对二维数组a进行正确初始化的语句是()

A:

int3[2][]={{1,0,1},{5,2,3}};C:

int3[2][4]={{1,2,3},{4,5},{6}};

12、以下程序的运行结果是

B:

inta[][3]={{1,2,3},{4,5,6}};

D:

inta[][4]={{1,0,1}{}5{1,1}};

(main()

{intn;for(n=1;n<=10;n++)

{

if(n%3==0)continue;printf(n%dn,n);

}

}

A:

12457810B:

369C:

12

D:

1234567890

13、设有说明:

charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为

()

A:

floatB:

charC:

intD:

double

14、若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()

A:

intp=&x;B:

int*p=x;C:

int*p=&x;D:

*p=*x;

15、若有以下定义intk=75x=12;,则能使值为3的表达式是()

A:

x%=(k%=5)B:

x%=(k-k%5)C:

x%=k-k%5D:

(x%=k)-(k%=5)

16、经过intx=1,y=2,z=3;语句定义后,表达式z+=x>y?

++x:

++y的值为()

A:

2B:

3C:

6D:

5

17、下面程序段的输出结果为()

inta,b;b=(a=3*5,a*4,a*5);printf(”%d”,b);

A:

60B:

75C:

65D:

无确定值

18、若希望当A的值为奇数时,表达式的值为”真”,A的值为偶数时,表达式的值为”假”,则以下不能满足要求的表达式是()

A:

A%2==1B:

!

(A%2==0)C:

!

(A%2)D:

A%2

19、执行y=10;x=y++;后变量x和y的值是()

A:

x=10,y=10B:

x=11,y=11C:

x=10,y=11D:

x=11,y=10

20、有如下程序段,intx=23;do{printf(n%dn,x-);}while(!

x);该程序的输出

结果是()

A:

321B:

23C:

不输出任何内容D:

陷入死循环

2.填空题(10分)

1、C语言源程序文件的后缀是,经过编译后,生成文件的后缀

是,经过连接后,生成文件的后缀是。

2、以下程序段的输出结果是。

a=3+5,a*4;x=11/3;printf(“%d、%d\rT,a,x);

3、当a=1、b=2、c=3时,执行以下if语句后,a=、b=、c=if(a>c):

b=a;a=c;c=b;

4、将以下嵌套的if语句改写成不嵌套的if语句:

if(w<0)k=0;elseif(w<=100)k=1;elsek=0;

5、以下程序的输出结果。

main()

{intx=2;while(x-);printf(“%d\rTx);}

6、若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}}:

则初始化后,

a⑴⑵得到的初值是,a[2][1]得到的初值是。

7、若有定义:

charch;使指针p指向变量ch的赋值语句是。

8、在C程序中数据可以用两种代码形式存放,它们是和。

9、若s是int型变量,则表达式s%2+(s+1)%2的值为。

10、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为。

三、程序阅读题(40分)

1、#include

voidmain()

{

intx=1,a=2,b=3;

switch(x)

{

case1:

a-;break;

case2:

b++;break;

case3:

a++;b++;

printf(n\na=%d,b=%d\nH,a,b);

2、#includevoidmain()

{

charch1=E;if(ch1>=TV)ch1++;

elsech1+=32;

printf("ch1=%c\nM,ch1);

3、#includeintmain()charch1=lA\ch2=lB,;switch(chl)caseTV:

switch(ch2)

{

caseB:

printf(nGood!

\nn);break;caseTV:

printf(MBetter!

\n',);break;}caseB:

printf(”Best!

\rT);break;)

return0;

4、#includevoidmain()

{

intnumber,digit;number=1234;while(number!

=0)

{

digit=number%10;printf(”%d”,digit);number=number/10;

5、#includeintmain()

{

inti=10,m=0,n=0;do

{

if(i%2!

=0)

m=m+i;

else

n=n+i;

i・・;

}while(i>=0);printf(Mm=%d,n=%d\n',,m,n);return0;

6、#include

voidmain()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>20)break;

if(b%4==1)

{

b=b+4;

continue;

b=b-5;

printf(Ha=%d\n'\a);

7、#include

voidmain()

{

charch;

while((ch=getchar())!

='\n*)

{

if(ch>=7V&&ch<=T)ch=ch+32;

elseif(ch>=,a,&&chv='z‘)

ch=ch-32;

printf(”%c”,ch);

输入:

ABCdefv回车〉

8、#include

intmain()

inta,b;

for(a=1,b=1;a<=100;a++)=9)break;

if(b%3==1)

(b+=3;continue;

}b-=5;

}printf(”%d,%d\n”,a,b);return0;

四、编程题(20分)

1、利用字符读写函数实现文件拷贝。

2、利用字符指针实现字符串的倒序排列

第二部分数据结构(60分)

一、选择题(10分)

1、在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行()

A.p・>next=HL->next;HL->next=p;B.p->next=HL;HL=p;C.p->next=HL;p=HL;D.HL=p;p->next=HL;

2、对线性表,在下列哪种情况下应当采用链表表示?

()

A.经常需要随机地存取元素B.经常需要进行插入和删除操作

C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变

3、一个栈的输入序列为123,则下列序列中不可能是栈的输出序列的是()

A.231B.321C.312D.123

4、快速排序在最坏情况下的时间复杂度为()A・O(Iog2n)B・0(nlog2n)

C・0(n)D・0(n2)

5、二叉树的第k层的结点数最多为()

A・2k-1B.2K+1C.2K-1D.2k-1

6、对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,

若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个A・1B・2

C・3D・4

7、设有6个结点的无向图,该图至少应有()条边才能确保是一个连通

精品文档

A.5B.6C.7D.8

8、将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()

A・0

(1)B・O(n)C・0(m)D・O(m+n)

9、用某种排序方法对尖键字序列(25,84,21,47,15,27,68,35,

20)进行排序时,序列的变化情况如下:

20,15,21,25,47,27,68,35,

8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,

68,84则所采用的排序方法是()

A•选择排序B•希尔排序C•归并排序D•快速排序

10、根据二叉树的定义可知二叉树共有()种不同的形态。

A・4B.5C.6D.7

二、填空题(10分)

1.为了能有效地应用HASH查找技术,必须解决的两个问题是和

2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时

间复杂度为,在链式存储结构上实现顺序查找的平均时间复

杂度为。

3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构时,该二叉

链表中共有个扌旨针域,个空扌旨针域。

4「设指石变环話卒链表中结点兀再匡量s指向被插入的结点B,则在结点A的后面插入结点B的操作序列为

5.设无

向图G中有n个顶点和e条边,则其对应的邻接表中有个

表头结点和个表结点。

6•设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有尖系。

7.设一棵二叉树的前序遍历

序列和中序遍历序列均为ABC,贝U该二叉树的后

序遍历序列为°

8•设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编号为8的双亲结点的编号是,编号为8的左孩

子结点的编号是。

9-数据的物理结构主要包括和两种情况。

10.设_

个连通图G中有n个顶点e条边,则其最小生成树上有边

三、计算题(20分)

1.

设有一个输入数据的序列是{46,25,78,62,12,

80},试画出从空树起,

逐个输入各个数据而生成的二叉搜索树。

2.对于下图所示的有向图若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,试写出:

(1)从顶点①出发进行深度优先搜索所得到的深度优先生成树;

(2)从顶点②出发进行广度优先搜索所得到的广度优先生成树;

3•请画出下图的邻接矩阵和邻接表

4.已知一组记录的排序码为(46,79,56,38,40,80,95),写出对其进行快速排序的前两次划分结果。

5.—个线性表为B=(12,23,45,57,20,03,78,31,15,36)、设散列表为HT[0.・12],散列函数为H(key)=key%13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。

4.算法设计题(20分)

1・假设以带头结点的单链表表示线性表,单链表的类型定义如下:

typedefintDataType;

typedefstructnode{

DataTypedata;

structnode*next;

JLinkNode,*LinkList;

编写算法,删除线性表中最大元素(假设最大值唯一存在)。

函数原型为:

voidfun(LinkListhead);

2.设二叉树T采用二叉链表结构存储,数据元素为int型,试设计一个算法,若结点左孩子的data域的值大于右孩子的data域的值,则交换其左、右子树。

voidalgo2(Bitreptrbt)

Bitreptrx;

if(bt){

if((bt-

>lchil

d&&bt

->rchi

ld)&&

(bt-

Ichild-

>data

>bt・

rchild-

>data

))

(x=bt->lchild;bt->lchild=bt->rchild;

bt->rchild=x;

algo2(bt->lchild);

algo2(bt->rchild);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1