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