2022年计算机二级C语言真题
参考答案
一、选择题 (请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。选择题部分只能进入一次,退出后不能再次进入。选择题部分不单独计时。)
1、以下叙述中正确的是( )。
A. C语言规定必须用main作为主函数名,程序将从此开始执行
B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C. C语言程序将从源程序中第一个函数开始执行
D. main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等
『正确答案』A
『答案解析』
用户不能指定某函数为主函数,C语言规定,程序从main函数开始执行,从main函数退出,C语言函数名区别大小写。答案选A选项。
2、下面描述不属于软件特点的是( )。
A. 软件是一种逻辑实体,具有抽象性
B. 软件在使用中不存在磨损、老化问题
C. 软件复杂性高
D. 软件使用不涉及知识产权
『正确答案』D
『答案解析』
软件具有以下特点:①软件是一种逻辑实体,具有抽象性;②软件没有明显的制作过程;③软件在使用期间不存在磨损、老化问题;④软件对硬件和环境具有依赖性;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素,如知识产权等。答案选择D选项。
3、标准库函数fgets(s,n,f)的功能是( )。
A. 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
B. 从文件f中读取长度为n的字符串存入指针s所指的内存
计算机二级c语言选择题库
C. 从文件f中读取n个字符串存入指针s所指的内存
D. 从文件f中读取n-1个字符串存入指针s所指的内存
『正确答案』A
『答案解析』
fgets函数功能是从f所指文件中读入n-1个字符放入s为起始地址的空间内,并在尾端自动加一个结束标志“\0”。同时将读/写位置指针向前移动字符串长度个字节。在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束,A项正确。B项中“读取长度为n”错误。C项与D项中“读取n/n-1个字符串”错误,读取的是n-1个字符。答案选择A选项。
4、关系数据库管理系统所管理的关系是( )。
A. 若干个二维表
B. 一个DBF文件
C. 一个DBC文件
D. 若干个DBC文件
『正确答案』A
『答案解析』
在关系数库中,一个表就是一个关系,关系数据库管理系统管理的关系就是多个二维表。答案选择A选项。
5、若要使用C数学库中的sin函数,需要在源程序的头部加上#include <math.h>关于引用数学库,以下叙述正确的是( )。
A. 将数学库中sin函数的源程序插入到引用处,以便进行编译链接
B. 将数学库中sin函数链接到编译生成的可执行文件中,以便能正确运行
C. 通过引用math.件,说明sin函数的参数个数和类型,以及函数返回值类型
D. 实际上,不引用math.件也能正确调用sin函数
『正确答案』C
『答案解析』
考查文件包含处理。文件包含命令的功能是把指定的文件添加到预处理部分,从而把指定的文件和当前的源程序文件连接起来,该文件则包含了程序要调用的函数的声明。由此,选项A、B、D表述错误。答案选择C选项。
6、以下叙述中正确的是( )。
A. 函数调用时,不必区分函数名称的大小写
B. 调用函数时,函数名必须与被调用的函数名完全一致
C. 函数名允许用数字开头
D. 在函数体中只能出现一次return语句
『正确答案』B
『答案解析』
调用函数的时候只有保证调用语句的函数名和被调函数的函数名、参数列表一致才能保证调用的正确性,B正确。C语言对大小写敏感,选项A错。用户自定义的函数名需要遵循用户标识符的命名规则,由字母、数字、下划线组成并且第一个字符不能为数字,选项C错。一个函数每次只能使用一个return语句,但是该函数体中可以有多个返回点,也就是有多条return语
句,每次只从其中一点返回,选项D错。答案选择B选项。
7、关于C语言标识符,以下叙述错误的是( )。
A. 标识符可全部由数字组成
B. 标识符可全部由下划线组成
C. 标识符可全部由小写字母组成
D. 标识符可全部由大写字母组成
『正确答案』A
『答案解析』
C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。
8、下面结构体的定义语句中,错误的是( )。
A. struct ord {int x; int y; int z; } struct ord a;
B. struct ord {int x; int y; int z; }; struct ord a;
C. struct ord {int x; int y; int z; } a;
D. struct {int x; int y; int z; } a;
『正确答案』A
『答案解析』
C语言中结构体变量的定义有三种方法:①定义结构体类型的同时定义结构体变量,如C项;②使用无名结构体类型定义结构体变量,如D项;③先定义结构体类型,后定义结构体变量,如B项,A项错在分别定义结构体类型与结构体变量时需要用“;”隔开。故答案选择A选项。
9、以下程序中给数组所有元素输入数据,请从选项中选择正确的答案填入下划线处。( )
#include <stdio.h>
main()
{int a[10],i=0;
while(i<10) scanf("%d", _________);
}
A. &a[i+1]
B. a+(i++)
C. a+i
D. &a(i++)
『正确答案』
B
『答案解析』
A项错误,进入死循环,i一直为0,一直对a[i+1]读入数据;B项正确,a为数组首地址,i++先取i值再加1,scanf读入的数据依次存放在数组a中;C项错误,控制变量i没有依次加1,无法结束循环,也无法对整个数组赋值;D项错误,数组元素引用为[],不是()。答案选择B选项。
10、有以下程序:
#include <stdio.h>
main( )
{
int i, array[6] = {1, 5, 0, 4};
for (i=0; i<5; i++)
printf("%d,", array[i] & 4);
printf("\n");
}
程序运行后的输出结果是( )。
A. 0,4,0,4,0,
B. 1,5,0,4,0,
C. 1,5,5,4,0,
D. 1,2,1,2,0
『正确答案』A
『答案解析』
本函数的功能是将数组中所有元素与4进行与运算,首先将元素转换为二进制,然后和二进制数100(十进制4)进行与运算,第一个元素为001&100即为000,也就是0,同理可得答案分别为0、4、0、4、0,注意第五位按照0进行运算。答案选A选项。
11、有以下程序
#include <stdio.h>
main()
{