2021年C语言程序设计考研真题答案及解析(一)

考研 希赛网 浏览 1101 来源:希赛网

考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2021年C语言程序设计考研真题答案及解析,供大家参考!

本文提供2021年C语言程序设计考研真题答案及解析,以下为具体内容

1、若变量已正确定义并赋值,符合C语言语法的表达式是( )。

A、a=20++

B、a=5,6,7

C、a=a+2=3

D、a=12.5%4

2、若有“int a=1,b=1;”,则循环语句“while(a<20) b++; a++;”的循环执行( )。

A、20次      

B、21次   

C、无限次     

D、19次

3、在程序中可以用来作为变量名的合法标识符是( )。

A、switch

B、stu_a

C、2a1

D、buy?

4、有以下代码,当输入数据的形式为10,20,30回车,正确的输出结果为( )。

A、60

B、10

C、30

D、不确定值

5、C语言中函数返回值的类型是由( )决定的。

A、return语句中的表达式类型

B、调用该函数的主调函数的类型

C、调用函数时临时决定

D、定义函数时所指定的函数类型

6、以下说法正确的是( )。

A、char *a= "123456"; 等价于 char *a; *a= "123456";

B、char str[10]={ "123456"}; 等价于 char str[10]; str[ ]={ "123456"};

C、char *s= "123456"; 等价于 char *s; s= "123456";

D、char c[7]= "123456", d[7]= "123456"; 等价于 char c[7]=d[7]= "123456";

7、以下程序的输出结果是( )。

A、10,20,30

B、10,20,60

C、1,2,3

D、1,2,6

8、以下程序的输出结果是( )。

A、t,two

B、h,one

C、r,two

D、o,three

9、若有以下定义,则*(p+6)表示( )。int a[10],*p=a;

A、元素a[7]的地址

B、元素a[7]的值

C、元素a[6]的地址

D、元素a[6]的值

10、以下程序的输出结果是( )。

A、v1=2,v2=0,v3=1,v4=1 

B、v1=2,v2=3,v3=3,v4=4 

C、v1=1,v2=3,v3=1,v4=4  

D、v1=4,v2=2,v3=3,v4=1

1、试题答案:B

试题解析:

A选项,20++错误,常量不能使用自增符号。B选项,“5,6,7”是逗号表达式,表达式结果为7。C选项,赋值运算符左边不能为表达式。D选项,求余运算符‘%’要求参加运算的运算对象为整数。故本题选B。
需要注意的是逗号运算符。用于逗号表达式的顺序运算符一般形式为:表达式1,表达式2,...,表达式n。表达式的值:表达式n的值

【考点】本题考查表达式。

2、试题答案:C

试题解析:

语句“while(a<20) b++; a++;”中,while循环的循环体是b++;不包括a++;。因此在循环中a的值不变,表达式a<20恒成立,无限循环。故本题选C。

【考点】本题考查while循环结构。

3、试题答案:B

试题解析:

A选项,switch是关键字,所以不能做合法标识符。C选项第一个字符为数字,错误。D选项,含有字符'?',错误。故本题选B。
C语言规定标识符只能由字母、数字、下划线3种字符组成,且第一个字符必须为字母或下划线。

【考点】本题考查标识符。

4、试题答案:D

试题解析:

格式控制为“%d%d%d”,输入形式为10,20,30;系统会把输入的数据和scanf函数中的格式字符逐个对照检查,两者格式不同,导致无法准确对应位置,x,y,z的值无法确定。故本题选D。
scanf函数在输入数值数据时,如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束。

【考点】本题考查数据的输入输出---scanf函数。

5、试题答案:D

试题解析:

A选项错误,return语句中的表达式类型应与定义函数时所指定的函数类型,即返回值类型保持一致。B选项错误,两者类型没有必然联系。C选项错误,返回值类型应该在定义函数时确定。故本题选D。
定义函数应包括以下的几个内容:
(1)指定函数的名字,以便以后按名调用。
(2)指定函数的类型,即函数返回值类型。
(3)指定函数的参数的名字和类型,以便在调用函数时向它们传递数据。对无参函数不需要这一项。当形参为数组时,数组的长度必须是确定的值或者省略,不可使用变量。
(4)指定函数应当完成什么操作,即函数的功能。

【考点】本题考查函数的基本概念。

6、试题答案:C

试题解析:

选项A,语句*a= "123456";是把字符串"123456"的值赋给s所指向的变量,而此时s指向一个字符串变量,存放不了字符串,故错误。选项B,不能用赋值语句将一个字符串常量直接赋给一个字符数组。选项C,语句char *s; s= "123456";把字符串"123456"第一个字符的地址赋给指针变量s,与语句char *s= "123456";等价。选项D,不能用赋值语句将一个字符数组直接赋给另一个字符数组。综上本题选C。

【考点】本题考查字符串的存储。

7、试题答案:B

试题解析:

调用函数fun后,并不改变主函数中变量x,y,z的值,故输出结果为10,20,60,本题选B。
函数调用中发生的数据传递(值传递)是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。

【考点】本题考查函数的调用。

8、试题答案:B

试题解析:

语句char *s[]={"one","two","three"}等同于chars[][]={"one","two","three"},s是一个二维的字符数组。输出语句printf("%c,%s",*(p+1),s[0]);表示输出的是*(p+1)所指向的一个字符和s[0]所指向的字符串。而对于*p=s[2];也就是将s[2][0]的地址赋值给指针向量p,故*(p+1)=h,即输出字符‘h’。s[0]就是第一个字符串"one"。故本题选B。

【考点】本题考查指针指向数组。

9、试题答案:D

试题解析:

p+6表示p+6所指向的数组元素的地址,即a[6]的地址。*(p+6)代表p+6所指向的数组元素,即a[6]。故本题选D。

【考点】本题考查指针指向数组。

10、试题答案:B

试题解析:

分析表格如下:


故v1=2,v2=3,v3=3,v4=4,本题选B。
switch语句中case标号只起标记的作用,如果各case语句后面没有break语句,在执行完一个case标号后面的语句后,将一直执行下去。

【考点】本题考查switch多分支选择语句。

点击查看【完整】试卷>>

责任编辑:希赛网

📅 本文最后更新于 2023-07-07

温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
新人礼包 新人礼包 课程咨询 课程咨询 企业团报 企业团报 电话咨询 电话咨询

客服热线:400-111-9811

售后投诉:156-1612-8671

公众号 公众号
希赛网公众号二维码
扫二维码 关注希赛网
APP下载 APP下载
希赛网APP下载二维码
扫二维码 下载APP
二维码
二维码
第1步:扫码添加老师微信  第2步:领取备考资料
!
咨询在线老师!