西南交通大学2008年硕士研究生入学考试试卷
试题代码:921
试题名称:程序设计与数据结构
考生注意:
1.本试题共6大题,共8页,考生请认真检查;
2.请务必将答案写在答卷纸上,写在试卷上的答案无效。
题号 | 一 | 二 | 三 | 四 | 五 | 数组全部赋值为1六 | 七 | 八 | 九 | 十 | 总分 |
得分 | |||||||||||
签字 | |||||||||||
一、填空题(本大题共20个空,每空1分,共20分)
1、设有定义:int x=1, y=2; 则表达式:2.0+x/y的值为:。
2、在C语言中字符串的存放,其最后一个字符称为“空字符”,也叫字符串的结束符,对应的转义字符是,其值为。
3、设有宏定义:#define AA 2-3 ,则3*AA的宏替换结果是。
4、设有定义:int a=3, b=2, c=1 ,则表达式:a>b>c的值是。
5、定义一个名为a的二维数组,并对数组元素赋初值,其值为下列矩阵,则对应的定义语句为:。
1.0 3.8 2.6
3.3 5.0 9.8
6、设有定义:char s[]=”SWJTU”; 则数组占用的内存为字节,s[5]的值为。
7、若有定义: inta[5],*p=a ;则*(p+3)表示;*p+3表示。
8、在具有n个元素单元的循环队列中,若采用少用一个元素来解决队空队满时都有头尾指针相等的问题,队满时共有个元素。
9、带一个头结点的单链表head为空的条件是。
10、二维数组A[10][20]采用列序为主序存储,每个元素占一个存储单元,并且A[0][0]的存储地址是200,则A[6][12]的地址是。
11、深度为k的完全二叉树至少有个结点,至多有个结点。
12、在一棵二叉树中,度数为零的结点个数为n0,度数为2的结点个数为n2,则有n0=。
13、在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于。
14、对n个元素的序列进行冒泡排序时,最少的比较次数是。
15、以折半查方法查一个线性表时,此线性表必须是存储的表。
二、单项选择题(本大题共30小题,每小题1分,共30分。在每小题列出的四个选项中只有一个选项是符合题目要求的答案)
1、若有以下定义语句: char ; int b ;float c ;double d:则表达式 a+b*c-d 的值的类型是【 】。
A.char B.int C.float D.double
2、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是【 】。
A.if((a>b)&&(b>c)) k=1; else k=0; B.if((a>b)||(b>c)) k=1; else k=0;
C.if(a<=b) k=0 ;else if(b<=c) k=0 ;else k=1; D.if(a>b) k=1 ;else if(b>c) k=1 ;else k=0;
3、若程序中定义了以下函数,并将其放在调用语句之后,则在调用前需对该函数进行说明,以下选项中错误的说明是【 】。
double myadd(double a,double b)
{ return (a+b) ;}
A.double myadd (double a,b); B.double myadd (double ,double);
C.double myadd (double b,double a); D.double myadd (double x, double y)
4、假定a和b均为int 型变量,则执行以下程序段后, b的值是【 】。
a=1; b=10;
do{b-=a ;a++ ;} while (b--<0);
A.9 B.-2 C.-1 D.8
5、语句: printf(“%d” ,strlen(“abc\n012\1\\”)); 的输出结果是【 】。
A.9 B.10 C.11 D.12
6、设有定义:int n=0,*P=&n , **q=&p ;则以下选项中,正确的赋值语句是【 】。
A.p=1; B.*q=2; C.q=p D.*p=5
7、设有变量定义: int a[10]={1,2,3,4,5,6,7,8,9,10}, *P=&a[3],b;则执行赋值语句 b=p[5];后b的值是【 】
A.5 B.6 C.8 D.9
8、在函数定义中未指定返回值类型,则其隐含的返回值类型是【 】。
A.void B.int C.float D.编译出错
9、若有函数原型: viod f( int a[ ]); 和数组定义 int a[10];则以下函数调用错误的是【 】。
A.f(a) B.f(a+2) C.f(a[0]) D.f(&a[0])
10、设k为整型变量,与表达式 (!k)值完全相同的表达式是【 】。
A.k==0 B.k==1 C.k!=0 D.k!=1
11、以下程序运行后,输出结果是【 】。
int b ;
void MyFunc( int a,int *c)
{b=(a++) + (*c)++; }
void main(void)
{ int a, c ;
a=1 ;b=2 ;c=3 ;
MyFunc (c, &a);
printf(“%d%d%d”,a ,b ,c );
}
A.144 B.243 C.123 D.143
12、以下函数的功能是【 】。
int fun(char *s1 ,char *s2)
{ int i=0 ;
while(s1[i]=s2[i]&&s2[i]!=’\0’)i++;
return(s1[i]==’\0’&&s2[i]==’\0’);
}
A.将s2所指字符串赋给s1
B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
13、以下程序段是从键盘上依次输入数据给数组元素,程序的下划线处应填上【 】。
void main (void)
{ int a[20] ,i=0;
while(i<20) scanf(“%d”,);
}
A.&a[i] B.&a[i+1] C.&a[i++] D.&a[i]++
14、若文件型指针fp已指向某文件的末尾,则函数feof(fp)的返回值是【 】。
A.0 B.-1 C.NULL D.非零值
15、在数据结构中,从逻辑上可以把数据结构分成【 】。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
16、在以下叙述中,正确的是【 】。
A.线性表的顺序存储结构优于链式存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
17、一个栈的入栈序列式a ,b ,c ,d ,e ,则不可能的出栈序列是【 】。
A.edcba B.decba C.dceab D.abcde
18、若已知一个栈的入栈序列是 1, 2, 3, ……, n ,其输出序列为p1 ,p2 , p3, …… ,pn,若p1=n,则p1为【 】。
A.i B.n=I C.n-i+1 D.不确定
19、循环队列用数组 A[m]存放其元素值,已知其头尾指针分别是front 和rear,则当前队列中的元素个数是【 】。
A.(rear-front+m)%m B.rear-front+1 C.rear-front -1 D.rear-front
20、设串s1=””ABCDEFG, s2=”PQRST”, 函数con(x,y)返回x和y串的连接串, subs(s ,I ,j)返回串s的从序号i的字符开始的j个字符组成的子串 , len(s)返回串s的长度,则con(subs(s1 ,2 , len(s2)), subs(s1 ,len (s2),2 )))的结果串是【 】。
A.BCDEF B.BCDEFG C.BCPQRST D.BCDEFEF
21、设矩阵A是一个对称矩阵,为了节省存储空间,将其下三角部分按行序存放在一维数组B[n(n-1)/2]中,对下三角部分中任一元素ai,j(i≥j),在一维数组B中下标k的值是【 】。
A.i(i-1)/2+j-1 B.i(i-1)/2+j C.i(i+1)/2+j-1 D.i(i+1)/2+j
22、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为【 】。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论