2021年C语言程序设计考研真题答案及解析
考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2021年C语言程序设计考研真题答案及解析,供大家参考!
本文提供2021年C语言程序设计考研真题答案及解析,以下为具体内容
1、下面哪一项不是C语言的特点?
A、运算符丰富,是完全模块化和结构化的语言
B、语言简洁、紧凑,使用方便、灵活
C、生成的目标代码质量高,程序执行效率高
D、允许直接访问物理地址,可以用来编写系统软件,但该语言与硬件相关,编写的程序很难移植到不同系统上运行
2、下面哪一项是一个C语言程序的主要组成部分?
A、源文件
B、预处理指令
C、函数
D、全局声明
3、下面有关算法的描述中,哪一个是错误的?
A、任何一个能运行的程序均可称为一个算法
B、算法应该只包含有限的操作步骤,且每个步骤都应该是确定的,不会产生歧义
C、算法应该有一个或多个输出
D、算法的每个步骤应该是能有效执行的
4、下面哪个表达式是一个字符常量?
A、0x39
B、"abc"
C、"a";
D、'\n'
5、下面哪一条语句是定义一个常变量(其值为255,存在期间不能改变)的正确语句?
A、#define MASK 255
B、const int mask = 255 ;
C、#define MASK 255;
D、const int mask 255;
6、在C语言程序中,表达式356%8的值是?
A、44.5
B、44
C、4
D、0
7、下面哪一语句与“if(x<=y)r=1;elser=0;”等价?
A、r= (x<=y);
B、r = (x>y)?1:0;
C、r = (x<=y)?0:1;
D、(x>y) ?0:1;
8、假设int x=10,y=3;则表达式x++ - (y<<2) + y的值是多少?
A、0
B、1
C、2
D、7
1、试题答案:D
试题解析:
【考点】本题考查C语言的特点。
C语言允许直接访问物理地址,可以用来编写系统软件,编写的程序可移植性好。很容易移植到新的系统,几乎在所有计算机系统中都可以使用C语言。故选项D错误,本题选D。
2、试题答案:C
试题解析:
【考点】本题考查C语言程序的结构。
函数是C程序的主要组成部分。本题选C。
一个程序由一个或多个源程序文件组成。在一个源程序文件中可以包括3个部分:预处理命令、全局声明、函数定义。
3、试题答案:A
试题解析:
【考点】本题考查算法的特性。
一个有效的算法应具有以下特性:
(1)有穷性。一个算法应包含有限的操作步骤,而不能是无限的;
(2)确定性。算法中每一个步骤都应该是确定的,而不是含糊的;
(3)有零个或多个输入。所谓输入就是指在执行算法时需要从外界取得必要的信息;
(4)有一个或多个输出。算法的目的就是为了求解,“解”就是输出;
(5)有效性。算法中每一个步骤都应当能有效地执行,并得到确定的结果。
故本题选A。
4、试题答案:D
试题解析:
【考点】本题考查数据类型。
【解析】0x39是一个十六进制数,十进制的值为57。"abc"是一个字符串常量。"a"是一个字符串常量,虽然只有一个字符a,但使用双撇号""代表它是字符串。'\n'是换行符。故本题选D。
5、试题答案:B
试题解析:
【考点】本题考查数据类型---常变量const。
定义常变量:const int mask = 255 ;。定义符号常量:#define MASK 255。故本题选B。
常变量使用const数据类型定义,要占用存储单元,有变量值,只是该值不可改变。
符号常量使用#define定义,它是预编译指令,它只是用符号常量代表一个字符串,在预编译后,符号常量就不存在了,全置换成字符串,对符号变量的名字是不分配存储单元的。
6、试题答案:C
试题解析:
【考点】本题考查运算符---求余运算符%。
356%8表示356对8取余,余数为4。故本题选C
7、试题答案:A
试题解析:
【考点】本题考查选择结构。
语句if(x<=y)r=1;elser=0;的作用是判断x<=y成立时r=1,不成立(即x>y)时r=0。表达式x<=y为真时值为1,为假时值为0。故本题选A。
条件表达式的一般形式为:表达式1?表达式2:表达式3。它的执行顺序:先求解表达式1;若为真(非0)则求解表达式2,此时表达式2的值就是整个条件表达式的值;若表达式1的值为0(假),则求解表达式3,此时表达式3的值就是整个条件表达式的值。
8、试题答案:B
试题解析:
【考点】本题考查运算符和表达式---按位运算。
表达式x++ - (y<<2) + y可以写成x-(y<<2) + y;x=x+1;,其中y<<2,是对y进行左移运算,y的二进制数为11,运算后为1100,十进制数为12,综上表达式值为10-12+3=1。故本题选B。
按位运算(参加运算的数据,按二进制位进行运算)
取反运算符(~):对一个二进制数按位取反,即0变成1,1变成0;
左移运算符(<<):对一个二进制数的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0);
右移运算符(>>):对一个二进制数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

