2008-西南交通大学考研真题一计算机 下载本文

内容发布更新时间 : 2024/6/18 19:40:59星期一 下面是文章的全部内容请认真阅读。

西南交通大学2008年硕士研究生入学考试试卷

试题代码:921

试题名称:程序设计与数据结构

考生注意:

1.本试题共6大题,共8页,考生请认真检查;

2.请务必将答案写在答卷纸上,写在试卷上的答案无效。 题号 得分 签字 一 二 三 四 五 六 七 八 九 十 总分 一、填空题(本大题共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,否则函数