2021年计算机二级《C语言》选择题题库与答案
1下列叙述中正确的是 。
A.解决同一个问题的不同算法的时间复杂度一般是不同的
B.解决同一个问题的不同算法的时间复杂度必定是相同的
C.对同一批数据作同一种处理,如果数据存储结构不同,不同算法的时间复杂度肯定相同
D.对同一批数据作不同的处理,如果数据存储结构相同,不同算法的时间复杂度肯定相同
2下列处理中与队列有关的是 。
A.操作系统中的作业调度
B.执行程序中的过程调用
C.执行程序中的循环控制
D.---X树的遍历
3设栈的存储空间为S1:m,初始状态为top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针t叩值变为 。‘
A.发生栈满的错误
B.2
C.m
D.0
设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为 。
A.71
B.70
C.69
D.不可能有这样的二叉树
5非空循环链表所表示的数据结构 。
A.有根结点也有叶子结点
B.没有根结点但有叶子结点
C.有根结点但没有叶子结点
D.没有根结点也没有叶子结点
6i殳Z.X树中共有31个结点,其中的结点值互不相同。如果该二叉树的后序序列与中序序列相同,该二叉树的深度为 。
A.31
B.16
C.17
D.5
7在最坏情况下,堆排序的时间复杂度是 。
A.01902n
B.Onl092n
C.on2
D.0nl.5
软件按功能可以分为应用软件、系统软件和支撑软件或工具软件。下面属于系统软件的是 。
A.学籍管理系统
B.ERP系统
C.C编译程序
D.CAl软件
9存储在计算机内有结构的数据集合是 。
A.数据库
B.数据库系统
C.数据库管理系统
D.数据结构
10在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、存储级和 。
A.概念级
B.外部级
C.管理员级
D.内部级
11以下叙述错误的是 。
A.一个算法所包含的操作步骤应该是有限的
B.任何能通过编译和运行的算法都一定能得到所期望的结果
C.算法中每一条指令必须有确切的含义
D.算法可以用各种描述方法来进行描述
12以下是正确C语言实型常量的是 。
A..e—l
B.e一1
C.一le
D.1e一1
13以下叙述正确的是 。
A.在c语言中分号是语句的组成部分
B.c语言程序由c语句组成,可以省略main函敷
C.分号是C语句之间的分隔符
D.所有程序行都必须用分号结束
14若有定义:doublea,b,c;能正确给a,b,c输入数据的语句是 。
A.seanf”%lf%1f%1P‘&a,&b,&C.;
B.scanf-t%f%f%f¨,&a,&b。&C.:
C.scanf”%If%lf%lf’,a,b,C.;
D.scanf”%lf%lf%lf'’,&a,&b,&C.;15有以下程序:
程序运行后的输出结果是 。
I
B.J
C.K
D.H
16设有定义:doublex=5.16894;,则语句prinff”%If\n”,intx$1000+0.5/1000.;的输出结果
是 。
A.5.16900
B.5.16800
C.0.00000
D.输出格式说明符与输出项不匹配,产生错误信息
17有以下程序:
程序输出 。‘
编译有错
B.0,0,0,3
C.1,1,2,0
D.0,1,2,0
18有以下程序:
程序运行后的输出结果是 。
A.0,1
B.0,0
C.1,一l
D.0,2
19有以下程序:,
执行时输人:6<回车>,则输出结果是 。
A.6
B.8
C.7
D.5
20有以下程序:
程序运行后的输出结果是 。
A.CB
B.BCA
C.CCBB.
D.CDBCA
2021年计算机二级《C语言》选择题题库与答案
参考答案与解析
1A
【解析】算法的时间复杂度是指执行算法所需要的计算工作量,而计算工作量是用算法所执行的基本运算次数来度量的。解决同一个问题的不同算法的时间复杂度,可能相同也可能不相同。算法的时间复杂度与数据存储结构无关。对同一批数据作同一种处理或者不同处理,数据存储结构相同或者不同,算法的时间复杂度都可能相同或者不同。故选A选项。
2A
【解析】队列是指允许在一端进行插入,而在另一端进行删除的线性表。由于最先进入队列的元素将最先出队,所以队列具有“先进先出”的特性,体现了“先来先服务”的原则。作业调度是指根据一定信息,按照一定的算法,从外存的后备队列中选取某些作业调入内存分配资源并将新创建的进程插入就绪队列的过程。执行程序中的过程调用一般指函数调用,需要调用时候转入被调用函数地址执行程序,与队列无关。执行程序中的循环控制是指算法的基本控制结构,包括对循环条件的判定与执行循环体,与队列无关。二叉树是一个有限的结点集合,二叉树的遍历是指不重复地访问二叉树中的所有结点,与队列无关。故本题选择A选项。
3A
【解析】栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。人栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。题目中初始状态为top=m+1,可知入栈栈顶指针top=top一1,出栈栈顶指针top=top+1,由于栈长为rn,当top=1时栈满,不能再进行人栈操作。故选A选项。
4D
【解析】在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。如果有一棵二叉树,结点总数为l50,假设度为0的结点个数为n,则有n+10+n一1=150,n=70.5,由于结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。
5A
【解析】在单链表的第一个结点前增加一个表头结点,队头指针指向表头结点,最后一个结点的指针域的值由NULL改为指向表头结点,这样的链表称为循环链表。循环链表是线性结构,有且只有一个根结点,每一个结点最多有一个前件,也最多有一个后件。循环链表表头结点为根结点,链表的最后一个结点为叶子节点,虽然它含有一个指向表头结点的指针,但是表头结点并不是它的一个后件。故选择A选项。
6A
【解析】二叉树遍历可以分为3种:黄序遍历访问根结点在访问左子树和访问右子树之前、中序童历访问根结点在访问左子树和访问右子树两者之问、后序童历访问根结点在访问左子树和访问右子树之后。由结点售互不相同而后序序列与中序序列相同,可知该二叉树所有的结点都没有右子树,所以31个结点的二叉树深度为31:故选A选项。
7B
【解析】若有n个元素的序列,将元素接腰序组成一棵完全二叉树,当且仅当满足下列条件时称为堆。大根堆是指所有结点的值大于或等于左右子结点的值;小掇堆是指所有结点的值小于或等于左右子结点的值。在调整建堆的过程中,总是将根结点值与左、右子树的根结点进行比较,若不满足堆的条件,则将左、右子树根结点值中的大者与根结点值进行交换。堆排序最坏情况需要0nl092n次比较,所以时间复杂度是0nl092n,B选项正确。
8C
【解析】计算机软件按功能分为应用软件、系统软件、支撑软件或工具软件。系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件。应用软件是为了应用于特定的领域而开发的软件。支撑软件介于系统软件和应用软件之间,协助用户开发软件的工具型软件,其中包括帮助程序人员开发和维护软件产品的工具软件,也包括帮助管理人员控制开发进程和项目管理的工具软件,如Dephi、PowerBuilder等。选项c属于系统软件,选项A、B、D属于应用软件,故选c选项。
9A
【解析】数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库系统是由数据库及其管理软件组成的系统,是应用软件。数据库管理系统是数据库系统的核心,它位于用户与操作系统之间,属于系统软件。数据结构是计算机存储、组织数据的方式。故本题选A选项。
10A
【解析】数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。概念模式是数据库系统中全局数据逻辑结构的`描述,全体用户的公共数据视图。外模式也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。内模式又称物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的存储方式。所以数据库的结构被划分成用户级、存储级和概念级。故选A选项。
11B
【解析】算法的特点:零个或多个输入,至少一个输出,可行性能编程实现,有穷性有限步出结果,确定性描述不能有歧义。可知选项A,c,D正确。c语言中。通过编译,可以运行的程序,不一定符合题目的本意,因此即使可以运行得到结果,也不一定和预期的结果一样,否则就不需要调试和修改程序了,故B选项错误。答案为B选项。
12D
【解析】所谓常量是指在程序运行过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。实型常量有两种表示形式:十进制小数形式、指数形式。指数形式中e后面的指数必须是整数,阶码标志e之前需要有数字,由此可知选项A,B,C错误。答案为D选项
13A
【解析】C程序的人口函数是main,C程序中有且只有一个main函数,故选项8错误。分号是c语言一条语句的结束标志,不是分隔符,c语言分隔符是用来分隔多个变量、数据项、表达式等的符号,包括逗号、空白符、分号和冒号等,选项C错误。c语言的程序不是以分号结束的,因为c语言是面向过程的,从main函数开始在main函数里结束,选项D错误。故答案为A选项。
t4D
【解析】%If,%le是针对double类型的,如果仅用%f,输入的数据可能不完全接收,数据的精度可能不足。%f主要针对tloat类型的变量输入,因此选项8错误。根据题目格式可知选项A,C错误。故答案为D选项。
15B
【解析】研n仃”%e\n”,’A’+x,x=ox916转为十进制x=9,因此prinff”%e\n”,7A’+9,打印格式要求是%c,因此需要从字符A,按字母顺序向后偏移9个位置,可得结果为J。故答案为B选项。
16A
【解析】x1000+0.5表示x移动3位小数,细0.5,也就是小数第4位加5,若这位大于等于5,则进1到个整。因为“5.168941000 5168.94+0.5 75169.44”所以intx$1000+0.5强制转换为整型结果为5169。5169/1000.05.169,由于1000.0结果自动转换为浮点数所以prinff“%lf\n”,5.169结果是5.16900。故答案为A选项
17A
【解析】c语言规定else总是和之前与其最近的且不带else的if配对,题目中,ifa=1b=1;C=2;默认省略的else已经配对了,下一句else没有匹配,if为非法else。另外if的判断条件a=1是赋值语句,不是判断语句,此处也会产生编译错误。因此答案为A选项。
18A
【解析】for;++a&&~b;;for循环中第l,3表达式为缺省项,判断条件为++a&&…b;a一2,b=2;,第一次执行了++a和一b,,表示为真,循环条件成立,第二次执行++a为0,由于&&运算符,当第一个条件为假时,不执行第二个条件,所以b=1,发生短路,一b不执行了。因此a,b的最终值0,1。故答案为A选项。
19C
【解析】后置自增运算:k++表示先运算,后自如。ift++<6p血ff“%d\n”,t;else prinff“%d、n”,t;t的初值为6,t++<6,则条件为假,执行prinff“%d、n”,t一,此时t=7,打印t值为k之后进行自减操作t=6。因此打印的结果为7。故答案为C选项。
20D
【解析】putehox函数功能是输出~个字符,由while判断条件和ch初始值可知,只要ch’A’,每次执行二次putchar,否则跳出。第一次输出CD,第二次输出Bc,第三次输出A,跳出循环。因此答案为D选项。