2012年高级程序设计考研真题答案及解析
考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2012年高级程序设计考研真题答案及解析,供大家参考!
本文提供2012年高级程序设计考研真题答案及解析,以下为具体内容
1、在C语言中,下列关于实参和形参的说法不正确的是( )。
A、形参可以是变量,也可以是常量;
B、形参值的变化不会影响实参的值;
C、实参可以是常量,也可以是变量;
D、实参向形参的数据传递是“值传递”;
2、若有语句int c[4][5],(*p)[5];p=c;,能正确引用数组元素的是( )。
A、p+1
B、*(p+3)
C、*(p+1)+3
D、*(p[0]+2)
3、若有定义:struct data {long i;short k[6];char c[4];}DATE;,则表达式sizeof(DATE)的值是( )。
A、12
B、20
C、24
D、32
4、以下叙述中正确的是( )。
A、局部变量说明为static存储类,其生存期将得到延长;
B、全局变量说明为static存储类,其作用域将被扩大;
C、任何存储类的变量在未赋初值时,其值都是不确定的;
D、形参可以使用的存储类说明符与局部变量完全相同;
5、设有语句int*ptr[m];,其中的标识符ptr是( )。
A、m个指向整型变量的指针;
B、指向m个整型变量的函数指针;
C、具有m个指针元素的一维指针数组,每个元素都只能指向整型变量;
D、一个指向具有m个整型元素的一维数组的指针;
1、试题答案:A
试题解析:
【考点】本题考查形参与实参。
【解析】在函数定义中出现的参数(形参)可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据;故形参只能是变量,需要存储空间接受数据。故选项A错误。
简单变量做实参时,它和对应形参之间的数据传递方式是单向值传递:在函数调用时,发生的数据传送是单向的(即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参)。故选项B、D正确。
实参可以是常量,也可以是变量;只需要将值传递给形参即可。故选项C正确。
综上本题选A。
2、试题答案:D
试题解析:
【考点】本题考查指针指向一维数组。
【解析】语句int (*p)[5];表示p为指向包含5个元素的一维数组的指针变量。且有p=c,故p指向二维数组c的第一行,则有:
p+1指向二维数组c的第二行(即c[1]的地址);
*(p+3)指向数组c的第四行的第1个元素(即c[3][0]的地址);
*(p+1)+3指向数组c的第二行的第4个元素(即c[1][3]的地址);
p[0]指向数组c的第一行的第1个元素,则*(p[0]+2)表示数组c第一行的第3个元素(即数组元素c[0][2])。
综上本题选D。
3、试题答案:B
试题解析:
【考点】本题考查数据类型。
【解析】sizeof(DATE)计算结构体变量DATE所占空间大小=1*4+2*6+1*4=20(字节),故本题选B。
各数据类型所占字节数
如下表:
4、试题答案:A
试题解析:
【考点】本题考查局部变量与全局变量的存储类别。
【解析】static类型的变量是静态变量,它的值在函数调用结束后不会消失,而是保留原值;它生存期从定义该变量开始直到程序结束。局部变量是在函数内部定义的变量,它只在本函数范围内有效;故局部变量说明为static存储类(即静态局部变量),其生存期将得到延长,故A选项正确。全局变量的作用域从定义该变量开始直到程序结束(允许被其他文件引用),全局变量说明为static存储类,其作用域将缩小(只限本文件引用),故选项B错误。
若定义变量时未赋初值,静态局部变量编译时自动赋初值0,自动变量的值是一个不确定的值;故选项C错误。
局部变量可以使用static,而形参不可以;两者都可以使用auto(自动变量)、register(寄存器变量)类别;故选项D错误。
综上本题选A。
5、试题答案:C
试题解析:
【考点】本题考查指针变量的类型及含义。
【解析】由下表可知,语句int*ptr[m];定义指针数组ptr,由m个指向整型数据的指针元素组成。故本题选C。
指针变量的类型及含义如下表:

