华中师范大学计算机考研874专业课模拟题Word文档下载推荐.docx
《华中师范大学计算机考研874专业课模拟题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《华中师范大学计算机考研874专业课模拟题Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
B:
预处理指令只能位于C源文件的开始
C:
C源程序中凡是行首以#标识的控制行都是预处理指令
D:
预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语
法分析作准备
5、下列数组说明中,正确的是()
intarray[][4];
B:
intarray[][];
C:
intarray[][][5];
D:
intarray[3][];
6、下面有关for循环的正确描述是()
for循环只能用于循环次数已经确定的情况
for循环是先执行循环体语句,后判断表达式
在for循环中,不能用break语句跳出循环体
for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
7、若有下列定义inta[5],*p=a;
则对a数组元素地址的正确引用是()
*(p+5)B:
*p+2C:
&
a[4]D:
*p
8、以下()是正确的变量名
5fB:
ifC:
f.5D:
_f5
9、在C语言中,形参的缺省存储类是()
autoB:
registerC:
staticD:
extern
10、下列程序的输出结果是()
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:
a++;
break;
b++;
case2:
case3:
a=%d,b=%d\n"
a,b);
a=1,b=0B:
a=2,b=1C:
a=1,b=1D:
a=2,b=2
11、以下能对二维数组a进行正确初始化的语句是()
inta[2][]={{1,0,1},{5,2,3}};
inta[][3]={{1,2,3},{4,5,6}};
inta[2][4]={{1,2,3},{4,5},{6}};
inta[][4]={{1,0,1}{},{1,1}};
12、以下程序的运行结果是()
{intn;
for(n=1;
n<
=10;
n++)
if(n%3==0)continue;
%d"
n);
12457810B:
369C:
12D:
1234567890
13、设有说明:
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y值的数据类型
为()
floatB:
charC:
intD:
double
14、若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()
intp=&
x;
int*p=x;
int*p=&
*p=*x;
15、若有以下定义intk=7,x=12;
则能使值为3的表达式是()
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的值为()
2B:
3C:
6D:
5
17、下面程序段的输出结果为()
inta,b;
b=(a=3*5,a*4,a*5);
printf("
b);
60B:
75C:
65D:
无确定值
18、若希望当A的值为奇数时,表达式的值为"
真"
A的值为偶数时,表达式的值
为"
假"
则以下不能满足要求的表达式是()
A%2==1B:
!
(A%2==0)C:
(A%2)D:
A%2
19、执行y=10;
x=y++;
后变量x和y的值是()
x=10,y=10B:
x=11,y=11C:
x=10,y=11D:
x=11,y=10
20、有如下程序段,intx=23;
do{printf("
x--);
}while(!
x);
该程序的输出
结果是()
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、以下程序的输出结果。
{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<
stdio.h>
voidmain()
intx=1,a=2,b=3;
a--;
break;
b++;
a++;
\na=%d,b=%d\n"
2、#include<
charch1='
E'
;
if(ch1>
='
A'
)
ch1++;
else
ch1+=32;
ch1=%c\n"
ch1);
3、#include<
intmain()
charch1='
ch2='
B'
switch(ch1)
case'
:
switch(ch2)
Good!
\n"
);
Better!
Best!
return0;
4、#include<
voidmain()
intnumber,digit;
number=1234;
while(number!
=0)
digit=number%10;
printf("
digit);
number=number/10;
5、#include<
inti=10,m=0,n=0;
do
if(i%2!
=0)
m=m+i;
n=n+i;
i--;
}while(i>
=0);
m=%d,n=%d\n"
m,n);
6、#include<
for(a=1,b=1;
a<
=100;
a++)
if(b>
20)break;
if(b%4==1)
b=b+4;
continue;
b=b-5;
a=%d\n"
a);
7、#include<
charch;
while((ch=getchar())!
='
\n'
if(ch>
&
ch<
Z'
ch=ch+32;
elseif(ch>
a'
z'
ch=ch-32;
%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;
%d,%d\n"
a,b);
四、编程题(20分)
1、利用字符读写函数实现文件拷贝。
2、利用字符指针实现字符串的倒序排列。
第二部分数据结构(60分)
一、选择题(10分)
1、在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,
则执行()
A.p->
next=HL->
next;
HL->
next=p;
B.p->
next=HL;
HL=p;
C.p->
p=HL;
D.HL=p;
p->
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