2022年C语言程序设计考研真题答案及解析
考研真题,是用来研究考试规律的。考生可通过真题,来确定自己的复习范围,来研究考试的重点、难点是哪些内容。希赛网为大家整理2022年C语言程序设计考研真题答案及解析,供大家参考!
本文提供2022年C语言程序设计考研真题答案及解析,以下为具体内容
1、下列关于C语言程序描述正确的是( )。
A、一个C语言程序函数体语句必须缩进
B、在C语言源程序中对某条语句注释只能置于该语句的末尾
C、一个C语言程序执行从程序文件中的main函数开始,到main函数结束为止
D、 C语言源程序每行代码都必须以"; "结尾
2、设程序中有代码" char c1[]="\x50\x51\x40\x59\n"; int b= sizeof(c1); "则b的值为( )。
A、6
B、5
C、19
D、18
3、设代码中有定义"int a = 14",那么语句"printf( "%d",-a--) "的输出为( )。
A、-15
B、-14
C、13
D、-13
4、若某一数组定义为"int array[][3]= {1,2,3,4,5,6,7,8,9,10};",则数组array的第一维大小为( )。
A、3
B、4
C、5
D、6
5、当程序中定义一个公用体时,系统分配给它的内存是( )。
A、各成员所需内存量的总和
B、共用体结构中第-一个成员所需内存量
C、成员中占用内存最大者所需的内存量
D、结构体成员中最后一个成员所需内存量
6、C语言源程序经过编译后,生成文件的后缀名是( )。
A、 ".c"
B、".bas"
C、".exe"
D、".obj"
7、以下能判断变量ch是英文小写字符的选项的是( )。
A、 if(ch> ='a'&&ch<='z')
B、 if(ch>=a&&c<=z)
C、 if(a<=ch<=z)
D、 if('a'<=ch<='z')
8、下列关于循环语句的说法错误的是( )。
A、嵌套循环的内层和外层循环的循环控制变量不能同名
B、执行嵌套循环时是先执行内层循环,后执行外层循环
C、循环体中碰到break语句会直接终止该层循环
D、 do-while循环语句至少会执行循环体语句1次
9、设程序中某个函数声明为int fun(int a,int b),那么定义一个指向该函数的指针pfun的表达式是( )。
A、 int *pfun(int a,int b) = fun;
B、 int (*pfun)(int, int) = &fun;
C、 int (*pfun)() = &fun(int a,int b);
D、 int (*pfun)(int,int) = &fun(a,b);
1、试题答案:C
试题解析:
【考点】本题考查C语言概述。
A选项,C语言不要求代码的文本格式。B选项,注释一般形式为“//注释内容”或“/*注释内容*/”。“//”作用在当前行符号后的所有内容,“/*注释内容*/”作用在“/*”和“*/”之间的内容。D选项,每个数据声明和语句的最后必须 "; "结尾,而不是每行。综上,故本题选C。
2、试题答案:A
试题解析:
【考点】本题考查字符数组的定义和初始化。
"\x50\x51\x40\x59"是四个十六进制数,转换为字符是"PQ@Y",占四个字节,'\n '是转义字符(换行),占一个字节,还有系统自动加了一个'\0'。综上共6个字节,故sizeof(c1)=6;即b的值为6。故本题选A。
用字符串常量来初始化字符数组,对于字符串常量,系统会自动在所有字符后面加一个'\0'作为结束符。
3、试题答案:B
试题解析:
考点】本题考查运算符和表达式。
【解析】语句"printf( "%d",-a--) "可以写成{ printf( "%d",-a);a=a-1;},故输出的是-a,即-14。故本题选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--的运算规则同上。
4、试题答案:B
试题解析:
【考点】本题考查二维数组---初始化。
系统会根据数组第2维的长度一次往后赋值,若最后一个一维数组没有足够的数据去赋值,会自动填0。故第一维大小为4。故本题选B。
二维数组的初始化:
分行给二维数组赋初值。例如:float a[2][3]={{1,2,3},{4,5,6}};
可以将所有数组写到一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值。例如float a[2][3]={1,2,3,4,5,6,7,8,9};,但是当数据多时,容易遗漏,不易检查。
可以对部分元素赋初值。例如:float a[2][3]={{1},{4}};,它的作用是只对各行的第一列(即序号为0的列)的元素赋初值,其余元素自动为0。
如果对全部元素都赋初值(即提供全部的初始数据),则定义数组时对第1维的长度可以不指定,但第2维的长度不能省略。例如:float a[][3]={1,2,3,4,5,6};。
5、试题答案:C
试题解析:
【考点】本题考查自定义数据类型---共用体类型。
使得几个不同类型的变量共用同一段内存的结构,称为“共用体”的结构。共用体变量所占内存长度等于最长的成员的长度。故本题选C。
6、试题答案:D
试题解析:
【考点】本题考查C语言的运行。
C语言源程序经过编译后,生成目标文件。故本题选D。
.c源文件、.bas标准模块文件、.exe可执行文件、.obj目标文件 。
对源文件的处理:
预编译,对源代码的宏进行替换,生成中间文件(文本,默认不保留);
翻译为汇编代码(文本,默认不保留);
由汇编器生成二进制文件(.obj);
连接为可执行文件( .exe )。
7、试题答案:A
试题解析:
【考点】本题考查逻辑运算符---逻辑与。
【解析】多重判断选择逻辑与'&&'运算符,故选项C、D错误。如a&&b,若a,b都为真则表达式为真,否则表达式为假。B选项,ch>=a&&c<=z中a和z没有使用符号'',表示变量a和z,所以错误。综上本题选A。
8、试题答案:B
试题解析:
【考点】本题考查循环结构。
【解析】C语言的执行顺序是自上而下,自左而右。程序从外循环执行下去,遇到内循环后就执行内循环语句。内循环语句执行完成后,继续往下执行,遇到外循环的语句时,进入下一次外循环。故本题选B。
9、试题答案:B
试题解析:
【考点】本题考查指针变量---指针与函数。
【解析】由题。int *pfun(int a,int b),是一个返回int指针的函数。int (*pfun)(int, int),是指向函数类型为(int, int)的函数的指针。而fun(a,b)是一个整型数据,与题意不符。综上,故本题选B。

