2022年C语言程序设计考研真题答案及解析(四)
考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2022年C语言程序设计考研真题答案及解析,供大家参考!
本文提供2022年C语言程序设计考研真题答案及解析,以下为具体内容
1、C源程序是由( )构成的。
A、函数
B、函数和过程
C、超文本过程
D、子程序
2、下面合法的赋值语句是( )。
A、x+y=2002;
B、ch="green";
C、x=(a+b)++;
D、x=y=0316;
3、表示关系:X<=Y<=Z的C语言表达式为( )。
A、(X<=Y)&&(Y<=Z)
B、(X<=Y)AND(Y<=Z)
C、(X<=Y<=Z)
D、(X<=Y)&(Y<=Z)
4、设有说明语句:int a=1,b=2,c=3,d=4,m=2,n=2;则执行(m=a>b)&&(n=c>d)后n的值为( )。
A、0
B、1
C、2
D、3
5、以下选项中,不能作为一条C语句的是( )。
A、{;}
B、a=0,b=0,c=0;
C、if(a>0)
D、if(b==0) m=1;n=2;
6、语句while(!e);中的条件!e等价于( )。
A、e==0
B、e!=1
C、e!=0
D、~e
7、设有如下程序:void main(){ char ch1='A',ch2='a'; printf("%c\n",(ch1,ch2));}则以下叙述中正确的是( )。
A、程序的输出结果为大写字母A
B、程序的输出结果为小写字母a
C、运行时产生错误信息
D、格式说明符的个数少于输出项的个数,编译出错
8、有如下程序void main(){ int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b);}该程序的输出结果是( )。
A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2,b=2
9、假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4);则数组x在内存中所占字节数是( )。
A、3
B、6
C、10
D、20
10、对两个数组a和b进行如下初始化 char a[]="ABCDEF"; char b[]={'A','B','C','D','E','F'};则以下叙述正确的是( )。
A、a与b数组完全相同
B、a与b长度相同
C、a和b数组内存存储内容相同
D、a数组比b数组长度长
1、试题答案:A
试题解析:
【考点】本题考查C语言--C语言概述--C语言--C语言程序结构的特点。
【解析】函数是C程序的主要组成部分,故本题选A。
2、试题答案:D
试题解析:
【考点】本题考查C语言--C语句--赋值语句--赋值运算符。
【解析】表达式和常变量不能作为左值(赋值表达式左侧的标识符);故选项A错误。C语言中,不能直接将字符串赋值给字符数组;故选项B错误。自增运算符的操作数不能是表达式;故选项C错误。赋值运算符的结合方向自右至左,那么语句x=y=0316;中,先将0316赋值给y,再将y=0316的值赋值给x;故选项D正确。综上本题选D。
3、试题答案:A
试题解析:
【考点】本题考查C语言--选择结构--逻辑运算符及表达式。
【解析】由题可知,需要表示X<=Y并且Y<=Z,应选择逻辑与运算符"&&",(X<=Y)&&(Y<=Z),故本题选A。
4、试题答案:C
试题解析:
【考点】本题考查C语言--选择结构--逻辑运算符及表达式--短路评估(现象)。
【解析】关系运算符'>'的优先级高于赋值运算符,故表达式中先运算a>b,即1>2为假 ,则m=0,故(m=a>b)的值为0(假),发生短路评估,不执行逻辑与运算符右侧的表达式,故n的值未被改变,则n的值仍为2,本题选C。
如果 &&(||) 运算符左侧的子表达式为 false(true),则不会检查右侧的表达式。因为只要有一个子表达式为 false(true),则整个表达式都为 false(true),所以再检查剩余的表达式会浪费 CPU 时间。这被称为短路评估。
5、试题答案:C
试题解析:
【考点】本题考查C语言--选择结构--if语句。
【解析】选项A中,由{}包括的语句,表示为语句段,可以作为一条语句。选项B中,a=0,b=0,c=0;是一个逗号语句。选项C中,if语句必须有结束符“;”或者为一个语句段“{}”;故不可以作为一条语句;故本题选C。
6、试题答案:A
试题解析:
【考点】本题考查C语言--选择结构--逻辑运算符及表达式。
【解析】由下表可知,!e等价于e==0,故本题选A。
取反运算符(~):对一个二进制数按位取反,即0变成1,1变成0。
7、试题答案:B
试题解析:
【考点】本题考查C语言--数据的表现形式及其运算--运算符与表达式--逗号运算符及表达式。
【解析】逗号表达式(ch1,ch2)就是ch2的值'a',故输出结果为a,本题选B。
逗号表达式一般形式为:表达式1,表达式2,...,表达式n(表达式从左至右依次执行)。逗号表达式的值就是表达式n的值。
8、试题答案:A
试题解析:
【考点】本题考查C语言--选择结构--switch语句--switch语句实现多分支选择结构。
【解析】由题,x的初值为1,那么switch语句中执行的语句为case 1:a++;、case 2:a++;b++;,故a的值为2,b的值为1,那么输出结果为a=2,b=1,本题选A。
9、试题答案:D
试题解析:
【考点】本题考查C语言--数组--一维数组--一维数组的初始化。
【解析】数组在内存中所占字节数由数组类型以及数组长度决定的,与赋值的元素个数无关,故数组x在内存中所占字节数为2*10=20,本题选D。
一维数组初始化时,若只给数组中一部分元素赋值,则系统会自动给后面未赋值的元素赋初值为0。
10、试题答案:D
试题解析:
【考点】本题考查C语言--数组--字符数组--字符数组的初始化。
【解析】由题,使用字符串"ABCDEF"给数组a进行初始化,数组的长度为7(6个字母和1个字符串结束标志'\0')。使用字符对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度;数组长度就是字符的个数6。故a数组比b数组长度长,本题选D。
用字符串给字符串数组初始化时,系统会自动在字符串末尾添加一个字符串结束标志'\0',故字符数组的长度应大于字符串的长度。