首页 考研

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

考研 希赛网 浏览 586

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

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

1、下列数据中,为字符常量的是( )。

A、"house"

B、How do you do.

C、$abe

D、'A'

2、下列说法中正确的是( )。

A、函数调用不占运行时间,只占编译时间

B、宏替换不占运行时间,只占编译时间

C、有参数的宏定义就是函数

D、在定义宏时,宏名与带参数的括弧之间可以加空格

3、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( )。

A、c=b=a;

B、(a=c)||(b=c);

C、(a=c)&&(b=c);

D、a=c=b;

4、设有如下定义: char* aa[2]={"abcd", "ABCD"}; 则以下说法中正确的是( )。

A、aa数组元素的值分别是"abed"和"ABCD"

B、aa是指针变量,它指向含有两个数组元素的字符型一维数组

C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D、aa数组的两个元素中各自存放了字符'a'和'A'的地址

5、设有枚举类型定义: enum language{CPP=3, Swift, Java=100, CShape, Python};,则枚举量Python的值为( )。

A、5

B、7

C、101

D、102

6、设int a=0,b=0,c=2,d=4;则执行(c=a==b) || (d=b==a) ;后变量d的值是( )。

A、4

B、0

C、1

D、2

7、可在C程序中用作用户标识符的一组标识符是( )。

A、void define WORD

B、as_b3 123 If

C、For Gabc case

D、_2c DO SIG

8、设有枚举类型定义: enum country( America=2, China, Korea=8, Japan,Swsiss};则枚举量Swsiss的值为( )。

A、10

B、5

C、6

D、14

9、有以下程序#include <stdio.h>int main(){     int a;     scanf("%d",&a);     if(a++<9) printf("%d\n",a);         else printf("%d\n",a--);}程序运行时从键盘输入9-回车>,则输出结果是( )。

A、11

B、10

C、9

D、8

1、试题答案:A

试题解析:

字符串常量使用双撇号("")包括,故本题选A。

2、试题答案:B

试题解析:

函数调用属于程序执行,占用运行时间,故A选项错误。宏替换是在程序编译过程中进行的,不占用运行时间,故B选项正确。宏定义与函数有本质的区别,宏定义只是替换字符,不占用存储空间,而函数有存储空间,故C选项错误。在定义宏时,宏名与带参数的括弧之间不可以加空格,故D选项错误。综上本题选B。

3、试题答案:C

试题解析:

将c的值赋给变量a、b,那么c应该在赋值运算符的右侧,故选项A、D错误。由于c的值不为0,则表达式a=c为真,故(a=c)||(b=c);出现短路评估(现象),不执行表达式(b=c),故不符题意,选项B错误。综上本题选C。
如果 &&(||) 运算符左侧的子表达式为 false(true),则不会检查右侧的表达式。因为只要有一个子表达式为 false(true),则整个表达式都为 false(true),所以再检查剩余的表达式会浪费 CPU 时间。这被称为短路评估。

4、试题答案:C

试题解析:

由下表可知,aa是指针数组,由2个指向char型数据的指针元素组成,故分别指向一维字符数组{"abcd", "ABCD"的首地址,故本题选C。

5、试题答案:D

试题解析:

枚举类型中的每一个枚举元素,C语言编译时按定义时的顺序默认它们的值为0,1,2,3,...。若人为的指定枚举元素的值,则其后的元素值顺序加1。故题中枚举量CPP, Swift, Java, CShape, Python的值分别为3,4,100,101,102,则枚举量Python的值为102,本题选D。

6、试题答案:A

试题解析:

题中表达式c=a==b可以写成c=(a==b),其中a==b为真(值为1),即c=1;那么逻辑或运算符“||”出现短路评估(现象),右侧的表达式不执行,故d的值未被改变,为4,则本题选A。
如果 &&(||) 运算符左侧的子表达式为 false(true),则不会检查右侧的表达式。因为只要有一个子表达式为 false(true),则整个表达式都为 false(true),所以再检查剩余的表达式会浪费 CPU 时间。这被称为短路评估。

7、试题答案:D

试题解析:

选项A中,void是关键字:声明函数无返回值或无参数,声明无类型指针,不是合法的标识符,故不符题意。选项B中,123的第一个字符为数字,不是合法的标识符,故不符题意。选项C中,case是关键字:开关语句分支,不是合法的标识符,故不符题意。选项D中,符合标识符命名规则,符合题意。综上本题选D。

8、试题答案:A

试题解析:

枚举类型中的每一个枚举元素,C语言编译时按定义时的顺序默认它们的值为0,1,2,3,...。若人为的指定枚举元素的值,则其后的元素值顺序加1。故题中枚举量 America, China, Korea, Japan Swsiss的值分别为2,3,8,9,10,则枚举量Swsiss 的值为10,本题选A。

9、试题答案:B

试题解析:

键盘输入9,将9赋值给变量a。则执行if(a++<9),其中a++<9:先使用a的值,9<9为假;再令a的值加1,即a=10。随后执行else子句,输出a--的值:先输入a的值10;再令a的值减1。故输出结果为10,本题选B。
自增和自减运算符,他们的作用是使变量的值增1或减1,如:
++i(在使用i之前使i的值加1,如果i的原值为3,则执行j=++i,i的值先自增为4,然后将i的值赋值给j,j的值为4)。i++(在使用i之后使i的值加1,如果i的原值为3,则执行j=i++,先将i的值赋值给j,j的值为3,然后i的值自增为4)
++i和i++的作用相当于i=i+1,但他们不同之处在于++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。
--i和i--的运算规则同上。

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

责任编辑:希赛网

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

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