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

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

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

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

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

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

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

第一部分C语言(90分)

一.选择题(20分)

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

main()

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

c=max(a,b);

printf("%d\n",c);

}

intmax(x,y)

intx,y;

{intz;

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:

_f5

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:

inta[2][]={{1,0,1},{5,2,3}};B:

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

C:

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

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

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

main()

{intn;

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

{

if(n%3==0)continue;

printf("%d",n);

}

}

A:

12457810B:

369C:

12D:

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=7,x=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("%d",x--);}while(!

x);该程序的输出

结果是()

A:

321B:

23C:

不输出任何内容D:

陷入死循环

二.填空题(10分)

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

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

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

a=3+5,a*4;x=11/3;printf(“%d,%d\n”,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\n”,x);}

6、若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,

a[1][2]得到的初值是,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("\na=%d,b=%d\n",a,b);

}

2、#include

voidmain()

{

charch1='E';

if(ch1>='A')

ch1++;

else

ch1+=32;

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

}

3、#include

intmain()

{

charch1='A',ch2='B';

switch(ch1)

{

case'A':

switch(ch2)

{

case'B':

printf("Good!

\n");break;

case'A':

printf("Better!

\n");break;

}

case'B':

printf("Best!

\n");break;

}

return0;

}

4、#include

voidmain()

{

intnumber,digit;

number=1234;

while(number!

=0)

{

digit=number%10;

printf("%d",digit);

number=number/10;

}

}

5、#include

intmain()

{

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

do

{

if(i%2!

=0)

m=m+i;

else

n=n+i;

i--;

}while(i>=0);

printf("m=%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("a=%d\n",a);

}

7、#include

voidmain()

{

charch;

while((ch=getchar())!

='\n')

{

if(ch>='A'&&ch<='Z')

ch=ch+32;

elseif(ch>='a'&&ch<='z')

ch=ch-32;

printf("%c",ch);

}

}

输入:

ABCdef<回车>

8、#include

intmain()

{

inta,b;

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

{

if(b>=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(log2n)B.O(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.2C.3D.4

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

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

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

度为()

A.O

(1)B.O(n)C.O(m)D.O(m+n)

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

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

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

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

15,20,21

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

当前位置:首页 > 解决方案 > 学习计划

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

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