2019年程序设计考研真题答案及解析
考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2019年程序设计考研真题答案及解析,供大家参考!
本文提供2019年程序设计考研真题答案及解析,以下为具体内容
1、下面选项中( )是合法的C(C++)语言用户标识符。
A、 _Program
B、 Program$
C、 Program-1
D、 2019_ Program
2、类型修饰符unsigned修饰( )类型是不正确的。
A、 char
B、 int
C、 long
D、 double
3、下列常量表示中,( )是错误的。
A、 100L
B、 100X
C、 1.234F
D、 0xabcd
4、下列各运算符中,( )优先级最高。
A、 [](下标)
B、 *(指针)
C、 *(乘法)
D、 ? : (条件)
5、有以下定义: int a; long b; double x, y;则以下选项中正确的表达式是( )。
A、 (a*y)%b
B、 a=x!=y;
C、 a%(int)(x-y)
D、 y=x+y=x
6、在主函数中定义一维数组的正确格式是( )。
A、 int a(10);
B、 int a[ ];
C、 int n=10, a[n];
D、 const int n=10; int a[n];
7、编译预处理不包括( )。
A、 文件包含
B、 条件编译
C、 宏定义
D、 生成目标文件
8、循环for(i=1,j=6; ++i!=--j; s=i+j);将执行( )。
A、2次
B、3次
C、4次
D、以上均不是
9、对于以下递归函数f,调用f(4),其返回值为( )。
A、 10
B、 11
C、 15
D、 以上均不是
10、设有如下定义成的链表,则值为6的表达式是( )。
A、 p++->data
B、 p->data++
C、 ++p->data
D、(*p).data++
1、试题答案:A
试题解析:
【考点】本题考查标识符。
【解析】C语言规定标识符只能由字母、数字、下划线3种字符组成,且第一个字符必须为字母或下划线。A选项符合要求。'$'、'-'属于非法字符,故B、C错误。D选项第一个字符是数字,错误。综上选A。
2、试题答案:D
试题解析:
【考点】本题考查关键字unsigned。
【解析】unsigned是C语言的关键字,表示无符号数。unsigned可以与各种整数类型连用,包括char,int,long等;不能修饰浮点型,故选D,double(双精度浮点型)。相对于有符号数,无符号数无法表示负数,但可以存储更大范围的正数。
3、试题答案:B
试题解析:
【考点】本题考查常量的标识。
【解析】C语言中,可以在常量的末尾加专用字符,强制指定常量的类型。如下表:

对照上表,选项B错误,选B。
4、试题答案:A
试题解析:
【考点】本题考查运算符优先级。
【解析】题中运算符优先级由高到低排序分别为:[](下标)、*(指针)、*(乘法)、? : (条件);故选A。
5、试题答案:C
试题解析:
【考点】本题考查运算符和表达式。
【解析】%运算符要求参加运算的运算对象(即操作数)为整数,A选项中(a*y)为double型,故错误。B选项中a=x!=y;可以写成a=(x!=y);,语句正确,但题中要求表达式,故B不符题意。C选项中,a为整数,(int)(x-y)为整数,故正确,符合题意。D选项,中x+y=x错误,不能给表达式赋值。综上选C。
6、试题答案:D
试题解析:
【考点】本题考查一维数组的定义。
【解析】定义一维数组的一般形式为:类型符 数组名[常量表达式];A选项中a(10)错误,应为a[10]。在定义数组时,需要指定数组中元素个数,即常量表达式;选项B没有常量表达式,错误;选项C中n是变量,错误。选项D中,n为常变量,值不可改变,可以作为常量表达式表示数组长度,正确。综上选D。
7、试题答案:D
试题解析:
【考点】本题考查编译预处理命令。
【解析】C语言中编译预处理命令主要包括3种:宏定义、文件包含、条件编译。生成目标文件是在编译过程中;故选D。
8、试题答案:D
试题解析:
【考点】本题考查for循环和运算符。
【解析】题中自增和自减运算符在变量的右侧,都是先执行,再使用变量的值。for循环过程中,变量i、j值的变化如下表:

循环判断条件++i!=--j恒成立,循环无限执行。故选D。
9、试题答案:B
试题解析:
本题考查函数的递归调用。由题,函数f的递归公式为f(n)=f(n-1)+n。故有
f(4)=f(3)+4=f(2)+3+4=f(1)+2+3+4=f(0)+1+2+3+4=1+1+2+3+4=11
综上选B。
10、试题答案:C
试题解析:
本题考查链表与自增运算。
自增运算符在变量的右边,先使用变量的值,再执行自增运算。A选项错误,表达式p++->data中的p仍指向a[0],故表达式的值为5。B、D选项中 p->data与(*p).data等价于a[0].data,值为5,故表达式p->data++与(*p).data++的值也为5。
自增运算符在变量的左边,先执行自增运算,再使用变量的值。C选项,'->'优先级高于'++',表达式可以写成++(p->data),p->data等价于a[0].data,值为5,故表达式的值为6。综上选C。