首页 考研

2021年C/C++语言程序设计考研真题答案及解析

考研 希赛网 浏览 523

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

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

1、对for(表达式1;;表达式3)可以理解为( )。

A、for (表达式1;表达式3;表达式3)

B、for (表达式1;表达式1;表达式3)

C、for (表达式1;1;表达式3)

D、for (表达式1;0;表达式3)

2、int a=3,b=2,c=1; if(a>b&&b>c)a=b; else a=c;则a的值为( )。

A、1

B、0

C、2

D、3

3、文件包含中, 被包含文件( )。

A、可以是可执行文件

B、可以嵌套其它文件

C、可以是目标文件或源文件

D、必须用".h"为后缀

4、为了避免在嵌套的条件语句if-else 中产生二义性,C语言规定:else子句总是与( )配对。

A、其之前最近的未配对的if

B、其之后最近的if

C、同一行上的if

D、缩排位置相同的if

5、设有宏定义#define MAX(x,y) (x)>(y)?(x):(y), 则F=4*MAX(2, 3)的值为( )。

A、3

B、2

C、12

D、8

6、设有以下定义:int w[3][4]={{0,1}, {2,4}, {5,8}}; int (*p)[4]=w; 则数值为4的表达式是( )。

A、*w[1]+1

B、p[1][1]

C、p++, *(p+1)

D、w[2] [2]

7、若x,i, j,k都是int型变量,则计算x=(i=4, j=16, k=32)后,x的值为:( )。

A、52

B、16

C、4

D、32

8、下面叙述中错误的是( )。

A、在其它函数中定义的变量在主函数中也不能使用

B、主函数中定义的变量在整个程序中都是有效的

C、复合语句中定义的变量只在该复合语句中有效

D、形式参数也是局部变量

9、若有说明:int a[5][4];则数组a中各元素( )。

A、不能得到确定的初值

B、可在程序的编译阶段得到初值0

C、可在程序的运行阶段得到初值0

D、可在程序的编译或运行阶段得到初值0

10、以下不正确的说法是: C语言规定( )。

A、实参可以是常量,变量或表达式

B、实参可以为任何类型

C、形参可以是常量,变量或表达式

D、形参应与其对应的实参类型一致

1、试题答案:C

试题解析:

【考点】本题考查for循环。
for语句的一般格式为for(表达式1;表达式2;表达式3)循环体。若省略表达式2,循环将无终止地执行,也就是认为表达式2始终为真(非0);题中只有选项C符合题意,故本题选C。

2、试题答案:C

试题解析:

【考点】本题考查逻辑运算符。
由a=3,b=2,c=1;,则表达式a>b、b>c均为真,故逻辑表达式a>b&&b>c为真;那么if语句中执行a=b;,a的值为2。故本题选C。

3、试题答案:B

试题解析:

【考点】本题考查文件包含的特点。
文件包含的特点:
a.编译预处理时,预处理程序将查找指定的被包含文件,并将其复制插入到#include命令出现的位置上。

b.常用在文件头部的被包含文件,称为“标题文件”或“头部文件”,常以“h”(head)作为后缀(不是必须的),简称头文件。
c.一条包含命令,只能指定一个被包含文件。
d.文件包含可以嵌套,即被包含文件中又包含另一个文件。
综上本题选B。

4、试题答案:A

试题解析:

【考点】本题考查if-else的基本概念。

5、试题答案:B

试题解析:

【考点】本题考查宏定义的引用与条件表达式。
所谓宏定义就是用一个标识符来代替一个字符串,如果后面代码中出现该标识符,那么全部替换成指定的字符串。那么F=4*MAX(2, 3)就是F=4* (x)>(y)?(x):(y),由于运算符'*'优先级高于条件运算符'?:',则表达式代入变量的值后为8>3?2:3,故表达式的值为2,即F值为2,本题选B。
条件表达式的一般形式为:表达式1?表达式2:表达式3。它的执行顺序:先求解表达式1;若为真(非0)则求解表达式2,此时表达式2的值就是整个条件表达式的值;若表达式1的值为0(假),则求解表达式3,此时表达式3的值就是整个条件表达式的值。

6、试题答案:B

试题解析:

【考点】本题考查指针引用二维数组。
int (*p)[4]=w表示p为指向包含4个元素的一维数组的指针变量,并将二维数组名w赋值给p。
对于二维数组w,w[1]表示数组第二行的首地址,则*w[1]表示第二行的首元素,故*w[1]+1就是w[1][0]+1=3,选项A不符题意。二维数组w初始化时,若只给数组中一部分元素赋值,系统会自动给后面为赋值的元素赋初值为0,故数组元素w[2][2]值为0,选项D不符题意。
对于指针p,p[1][1]与w[1][1]表示的内容一致,值为4,选项B符合题意。逗号表达式p++, *(p+1)的值就是*(p+1)的值,依次执行p++、 *(p+1),则*(p+1)表示的是数组第3行元素的首地址,故选项C不符题意。**(p+1)表示数组元素w[2][0],值为5;*(*p+1)才表示数组元素w[1][1],值为4。
综上本题选B。

7、试题答案:D

试题解析:

【考点】本题考查逗号表达式。
逗号表达式一般形式为:表达式1,表达式2,...,表达式n (表达式从左至右依次执行)。表达式的值就是表达式n的值。故逗号表达式i=4, j=16, k=32的值就是k=32的值32,则x的值为32,本题选D。

8、试题答案:B

试题解析:

【考点】本题考查局部变量的特点。
局部变量的特点:
a.在函数内部定义的变量只在本函数范围内有效;
b.不同函数中可以使用同名的变量;
c.形参也是局部变量;
d.在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效。
故选项A、C、D正确,选项B错误,本题选B。

9、试题答案:A

试题解析:

【考点】本题考查数组的初始化。
C语言规定,普通数组没有赋初值,默认的数组元素值是随机数。故选项A正确,本题选A。

10、试题答案:C

试题解析:

【考点】本题考查实参与形参。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参;形参必须是变量以存放该值;实参与形参的类型应相同或赋值兼容。故选项C错误,本题选C。

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

责任编辑:希赛网

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

温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
题库
章节练习
章节练习
章节专项突破
模拟考场
模拟考场
海量免费试题
历年真题
历年真题
真题实战演练
每日一练
每日一练
每天10题练习
习题练习
习题练习
核心知识点
高频错题
高频错题
错题突破集训
分享至