2022年C语言程序设计考研真题答案及解析(一)
考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2022年C语言程序设计考研真题答案及解析,供大家参考!
本文提供2022年C语言程序设计考研真题答案及解析,以下为具体内容
1、下面四个选项中,所给出的三个标识符都是不合法的用户标识符的选项是( )。
A、
B、
C、
D、
2、下列程序段执行后s值为( )。
A、15
B、9
C、6
D、4
3、执行以下语句后:int s=100;s=s>>1;则变量s的值为( )。
A、100
B、50
C、200
D、不确定
4、执行以下程序段时,以下答案正确的是( )。
A、循环体执行一次
B、循环体执行两次
C、循环体执行无数次
D、系统提示有语法错误
5、以下程序的输出是( )。
A、2 3 4 5 6
B、1 2 3 4 5
C、6 2 3 4 5
D、6 7 8 9 10
6、以下函数的功能是( )。
A、比较a和b所指字符串是否相等
B、将b所指字符串复制到a所指字符串中
C、将b所指字符串连接到a所指字符串后面
D、比较a和b所指字符串大小
7、已知有以下int p[5],*a[5];,则正确的表达式是( )。
A、p=a
B、p[1]=a
C、*(a+3)=p
D、a[0]=20
8、有以下语句,则表达式*((int *)(p-1)+2)的值为( )。
A、10
B、7
C、3
D、11
9、对a数组元素不正确的引用是( )。int a[]={1,2,3,4,5,6},*p=a,i;其中0≤i≤5。
A、a[p-a]
B、*(&a[i])
C、p[i]
D、p+i
10、对于语句int(*p)[8];,以下说法正确的是( )。
A、p是一个指针,指向一个数组,数组的每个成员包含8个整型数据
B、p是一个指针,指向一个数组,数组中有8个整型数据
C、p是一个数组,它的每一个元素是指向整型数据的指针
D、p是一个数组,它的每一个元素是指向8个整型数据的指针
1、试题答案:C
试题解析:
A选项,A、P_0合法。B选项,_A合法。D选项,_123、temp合法。故本题选C。
C语言规定标识符只能由字母、数字、下划线3种字符组成,且第一个字符必须为字母或下划线。关键字不能做合法标识符。
【考点】本题考查基本数据类型--命名规则。
2、试题答案:C
试题解析:
由题,在while循环中,当i%2==1,即i为奇数时,结束此次循环。因此题中while循环的功能是计算0到i之间(不包括i)所有偶数之和。故s的值为6;故本题选C。
需要注意:while语句中条件表达式--i!=0,由--i先执行,第一次判断时i的值不是5(为4)。
改变循环执行的状态的语句:
break语句,直接终止整个循环过程,不再判断执行循环的条件是否成立。
continue语句,结束本次循环,即跳过循环体下面未执行的语句,转到循环体结束点之前。不终止整个循环的执行。
【考点】本题考查循环结构---continue语句。
3、试题答案:B
试题解析:
100的二进制为1100100;s>>1运算后,右移1位为110010,转换成10进制,s的值为50。故本题选B。
按位运算(参加运算的数据,按二进制位进行运算):右移运算符(>>):对一个二进制数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
【考点】本题考查按位运算。
4、试题答案:C
试题解析:
循环语句的条件表达式为x,而x的值一直在-1与1之间变换,不会变为0,即条件表达式不会为0(假),即恒为真,循环会一直执行下去。故本题选C。
【考点】本题考查循环结构。
5、试题答案:C
试题解析:
表达式(*p)++的作用是将p所指向的变量的值加1,没有改变p所指向的地址。故函数中for循环指向了5次,p所指向的变量x[0]的值加了5。故程序输出是6 2 3 4 5。故本题选C。
p++是使p指向下一元素;*(p)++是使p所指的变量的值加1;*(p+1)是p指针所指元素的下一个元素的值。
【考点】本题考查程序设计综合运用。
6、试题答案:D
试题解析:
函数fun中while循环条件是指针a,b所指的元素不为空且相等,若成立则执行a++,b++;使得指针a,b指向下一元素,继续循环;若不成立则结束循环。函数的返回值是指针向量a,b所指元素的差值。综上,函数fun的功能是返回a和b所指字符串中对应位置,第一对不相等的元素的差值;即比较a和b所指字符串的大小。故本题选D。
【考点】本题考查程序设计综合设计。
7、试题答案:C
试题解析:
选项A,p是一个地址常量,不能给它赋值。选项B,不能将a(地址)赋值给p[1](整型变量)。选项C,将p的地址赋值给指针变量a[3],表达式成立。选项D,a[0]是一个指针变量,不能直接将20赋值给它。综上本题选C。
【考点】本题考查指针变量的赋值。
8、试题答案:C
试题解析:
由题中程序块可知,p=a+1;即p指向a[1]。对于表达式*((int *)(p-1)+2),其中p-1使得p指向a[0],(int *)(p-1)将(p-1)数据类型强制转换为int*型(整型指针),故*((int *)(p-1)+2)就是a[0]({1,2,3,4})中第三个元素的值,即表达式的值为3。故本题选C。
强制类型转换运算符的一般形式为(类型名)(表达式)。注意,表达式应该用括号括起来,如果写成(int)x+y,则只将x转换为整型,然后与y相加。需要说明的是,在强制转换类型时,得到一个所需类型的中间数据,而原来变量的类型未发生改变。
【考点】本题考查强制类型转换。
9、试题答案:D
试题解析:
由题,p-a=0,故a[p-a]表示数组元素a[0]。*(&a[i])、p[i]都表示数组元素a[i]。p+i是使p所指的地址向后移i个相对单位,表示数组元素a[i]的地址,未引用数组元素。故本题选D。
【考点】本题考查指针指向数组。
10、试题答案:B
试题解析:
由下表可知,int(*p)[8];表示p是一个指针,指向一个数组,数组中有8个整型数据。故本题选B。

【考点】本题考查指针变量。
点击查看【完整】试卷>>

