计算机二级模拟题.docx
《计算机二级模拟题.docx》由会员分享,可在线阅读,更多相关《计算机二级模拟题.docx(18页珍藏版)》请在冰豆网上搜索。
![计算机二级模拟题.docx](https://file1.bdocx.com/fileroot1/2023-1/25/2a7b03bb-64da-429c-942e-b84dec6bbeab/2a7b03bb-64da-429c-942e-b84dec6bbeab1.gif)
计算机二级模拟题
第一套
一、选择题
1.下面描述中,符合结构化程序设计风格的是______。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率
D、不使用goto语句
结构化程序设计方法的四条原则是:
1.自顶向下;2.逐步求精;3.模块化;4.限制使用goto语句。
"自顶向下"是说,程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标;"逐步求精"是说,对复杂问题,应设计一些子目标,作过渡,逐步细节化;"模块化"是说,一个复杂问题,肯定是由若干稍简单的问题构成;解决这个复杂问题的程序,也应对应若干稍简单的问题,分解成若干稍小的部分。
本题答案为A。
2.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
A、可行性分析
B、需求分析
C、详细设计
D、程序编码
软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。
其中需求分析阶段常用的工具是数据流图和数据字典。
本题答案为B。
3.数据库系统的核心是______。
A、数据模型
B、数据库管理系统
C、软件工具
D、数据库
数据库管理系统DBMS是数据库系统的核心。
DBMS是负责数据库的建立、使用和维护的软件。
DBMS建立在操作系统之上,实施对数据库的统一管理和控制。
用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。
另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。
本题答案为B。
4.以下数据结构中不属于线性数据结构的是______。
A、队列
B、线性表
C、二叉树
D、栈
线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。
栈是一
种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。
所以栈又称后进先出表(LastInFirstOut);队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。
在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。
因此队列又称先进先出表(FirstInFirstOut)。
本题答案为C。
5.下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。
A、内模式
B、外模式
C、概念模式
D、逻辑模式
数据库管理系统的三级模式结构由外模式、模式和内模式组成。
外模式,或子模式,或用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图。
模式,或逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和。
外模式是模式的一部分。
内模式,或存储模式,或物理模式,是指数据在数据库系统内的存储介质上的表示,即对数据的物理结构和存取方式的描述。
本题答案为A。
6.在一棵二叉树上第5层的结点数最多是______。
A、8
B、16
C、32
D、15
根据二叉树的性质:
二叉树第i(i≥1)层上至多有2i-1个结点。
得到第5层的结点数最多是16。
本题答案为B。
7.下面叙述正确的是______。
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
D、以上三种描述都不对
算法的设计可以避开具体的计算机程序设计语言,但算法的实现必须借助程序设计语言中提供的数据类型及其算法。
数据结构和算法是计算机科学的两个重要支柱。
它们是一个不可分割的整体。
算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度。
算法的有穷性是指一个算法必须在执行有限的步骤以后结束。
本题答案为C。
8.下列叙述中正确的是______。
A、数据库是一个独立的系统,不需要操作系统的支持
B、数据库设计是指设计数据库管理系统
C、数据库技术的根本目标是要解决数据共享的问题
D、数据库系统中,数据的物理结构必须与逻辑结构一致
数据库是存储在计算机存储设备中的、结构化的相关数据的集合。
数据库中的数据不只是面向某一项特定的应用,而是面向多种应用,可以被多个用户、多个应用程序共享,不具有独立的系统。
设计数据库的目的实质上是设计出满足实际应用需求的实际关系模型。
数据库技术的主要目的是有效地管理和存取大量的数据资源,包括:
提高数据的共享性,使多个用户能够同时访问数据库中的数据;减小数据的冗余,以提高数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。
本题答案为C。
9.下面概念中,不属于面向对象方法的是______。
A、对象
B、继承
C、类
D、过程调用
面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。
面向对象方法从对象出发,发展出对象,类,消息,继承等概念。
本题答案为D
10.在软件开发中,下面任务不属于设计阶段的是______。
A、数据结构设计
B、给出系统模块结构
C、定义模块算法
D、定义需求并建立系统模型
软件设计一般分为总体设计和详细设计两个阶段,总体设计的任务是确定软件的总体结构,子系统和模块的划分,并确定模块间的接口和评价模块划分质量,以及进行数据分析。
详细设计的任务是确定每一模块实现的定义,包括数据结构、算法和接口。
本题答案为D。
二、填空题
1.数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。
标准答案为:
模式或逻辑模式或概念模式
2.若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。
标准答案为:
黑盒
3.算法的复杂度主要包括______复杂度和空间复杂度。
标准答案为:
时间
4.关系数据库管理系统能实现的专门关系运算包括选择、连接和______。
标准答案为:
投影
5.如果一个工人可管理多个设施,而一个设施只被一个工人管理,则实体"工人"与实体"设备"之间存在______联系。
标准答案为:
一对多或1对多或一对n或1:
N或1:
n或1:
n或1:
N或一对m或1:
M或1:
m或1:
m或1:
N
实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。
两个实体间的联系可以归结为三种类型:
一对一联系表现为某一实体与另一实体一一对应相关联;一对多联系表现为某一实体与相关多个实体相关联;多对多联系表现为多个实体与相关多个实体相联系。
6.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是______。
#include
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"esshe");
printf("%s\n",p1);
}
标准答案为:
Howdoesshe
本题的考查点是字符串拷贝函数strcpy()。
strlen(str1)是求str1字符串的长度,为13,然后,进行除2运算,结果为6。
strcpy()函数是把字符串"esshe"拷贝到str1后的第6个字符后面,也就是说,拷贝后的结果是"Howdoesshe"。
故本题答案为:
Howdoesshe。
7.若要使指针p指向一个double类型的动态存储单元,请填空。
p=______malloc(sizeof(double));
本题的考查点是强制类型转换。
函数malloc返回的是void*,所以若要使指针指向一个double类型,则必须进行类型转换,类型转换格式为:
(数据类型*)。
故本题答案是:
(double*)。
8.若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是______。
inta[10]={19,23,44,17,37,28,49,36},*p;
p=a;
本题的考查点是通过指针引用数组元素。
值为36的数组元素在数组a[10]中是第8个元素,即a[7];在程序中,p=a语句将数组a的首地址赋给了指针变量p;根据C语言的规定:
若有一个指针变量p指向一个数组,则可以用*(p+i)来表示数组元素,*(p+i)和a[i]是等价的,所以a[7]可以表示为*(p+7),要使指针p指向a[7]只能用p=p+7移动指针,p=p+7也可以使用逆波兰式表示为p+=7,所以可以填写"p=p+7"或"p+=7"。
故本题答案为:
p=p+7或p+=7。
9.在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是______函数。
本题的考查点是文件的定位。
在对文件进行操作的过程中,若要求文件的位置回到文件的开头,可以调用以下两个函数来完成:
1、rewind函数;
2、fseek函数;
其中,rewind函数的作用是将位置指针重新返回文件的开头,这个函数没有返回值;而fseek函数可以实现文件指针的定位,它的调用方式如下:
fseek(文件类型,位移量,起始点),起始点用0、1、2表示,0表示"文件开始",1表示"文件当前位置",2表示"文件末尾"。
故本题答案为:
rewind或fseek。
10.以下函数inverse的功能是使一个字符串按逆序存放。
inverse(str)
charstr[];
{
charm;
inti,j;
for(i=0,j=strlen(str);i{
m=str[i];
str[i]=______;
______;
}
}
本题的考查点是对字符串的操作。
将字符串逆序存放的算法是:
将字符串中的第i个字符和第strlen(str)-i个字符交换达到逆序排列的目的。
strlen函数的返回值是形参中说明的字符串的长度。
当字符串中的第i个字符和第strlen(str)-i个字符交换完后,应当交换字符串中第i+1个字符和第(strlen(str)-i)--个字符,故应该对循环变量i的值进行改变,步长为1,所以第一空应填i++;在循环中,题意为通过中间变量m交换字符串中的第i个字符和第strlen(str)-i个字符,所以题中第二、三个空中应当分别填写"str[j-1]"、"str[i]"。
故本题答案为:
i++和str[j-1]和str[j-1]=m。
11.下列程序的运行结果是______。
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
本题的考查点是共用体。
C语言规定,共用体中各个成员变量在内存中占用同一段内存单元,即e.in.x和e.a、e.b占用同一段内存单元;
执行语句e.b=2后,e.in.x=e.a=e.b=2;
执行语句e.in.x=e.a*e.b时,e.a的值为2,e.b的值为2,所以运算得出e.in.x的值为4;
执行语句e.in.y=e.a+e.b时,由于e.in.x和e.a、e.b占用的是同一段内存单元,所以此时的e.a、e.b的值为4,因此运算得出e.in.y的值为4+4=8。
程序最后的打印结果为"4,8"。
故本题答案为:
4,8。
12.以下程序的输出结果是______。
voidfun()
{
staticinta=0;
a+=2;
printf("%d",a);
}
main()
{
intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
本题的考查点是函数的调用。
由于a是static类型的数据,语句staticinta=0;只是在初次给a分配内存的时候才给它赋值0。
由于它是静态的,所以即使是离开了它的作用域,值仍然保留。
函数第一次调用时a被赋值2,然后每调用一次增加2。
故本题答案为:
246。
13.函数mycmp(char*s,char*t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当s请填空。
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return(______);
}
本题的考查点是比较字符串的大小。
函数的两个形参是两个字符指针变量,字符串的首地址是指针变量的值,*s和*t表示字符串数组s和t的第一个字符,在while循环中,是通过s和t值的不断变化改变两个串的第一个字符,要返回s和t的第一个不同字符的ASCII码的差值,必须使用"*s-*t"得出。
故本题答案为:
*s-*t。
第二套
一、选择题
1.视图设计一般有3种设计次序,下列不属于视图设计的是______。
A、自顶向下
B、由外向内
C、由内向外
D、自底向上
视图设计一般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。
本题答案为B
2.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
A、概要设计
B、详细设计
C、可行性分析
D、需求分析
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
软件生命周期的主要活动阶段为:
(1)可行性研究和计划制定。
确定待开发软件系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成开发任务的实施计划。
(2)需求分析。
对待开发软件提出的需求进行分析并给出详细定义,即准确地确定软件系统的功能。
编写软件规格说明书及初步的用户手册,提交评审。
(3)软件设计。
系统设计人员和程序设计人员应该在反复理解软件需求的基础上,给出软件的结构、模块的划分、功能的分配以及处理流程。
(4)软件实现。
把软件设计转换成计算机可以接受的程序代码。
即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。
(5)软件测试。
在设计测试用例的基础上,检验软件的各个组成部分。
编写测试分析报告。
(6)运行和维护。
将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。
本题答案为D
3.下列说法中,不属于数据模型所描述的内容的是______。
A、数据结构
B、数据操作
C、数据查询
D、数据约束
数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。
其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。
本题答案为C。
4.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。
A、N+1
B、N
C、(N+1)/2
D、N/2
在进行顺序查找过程中,如果线性表中被查的元素是线性表中的最后一个,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。
本题答案为B
5.以下数据结构中不属于线性数据结构的是______。
A、队列
B、线性表
C、二叉树
D、栈
线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。
所以栈又称后进先出表(LastInFirstOut);队列可看作是插入在一端进行,删除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。
在队列中,只能删除队头元素,队列的最后一个元素一定是最新入队的元素。
因此队列又称先进先出表(FirstInFirstOut)。
本题答案为C。
6.结构化程序设计主要强调的是______。
A、程序的规模
B、程序的易读性
C、程序的执行效率
D、程序的可移植性
结构化程序设计主要强调的是结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以保证程序的正确性。
本题答案为B。
7.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
A、可行性分析
B、需求分析
C、详细设计
D、程序编码
软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。
其中需求分析阶段常用的工具是数据流图和数据字典。
本题答案为B
8.下列有关数据库的描述,正确的是______。
A、数据库是一个DBF文件
B、数据库是一个关系
C、数据库是一个结构化的数据集合
D、数据库是一组文件
数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。
数据库中的数据具有"集成"、"共享"之特点。
本题答案为C。
9.下列关于栈的叙述中正确的是______。
A、在栈中只能插入数据
B、在栈中只能删除数据
C、栈是先进先出的线性表
D、栈是先进后出的线性表
栈是限定在一端进行插入与删除的线性表。
栈是按照"先进后出"的或后进先出的原则组织数据的,因此,栈也被称为"先进后出"表或"后进先出"表。
本题答案是D。
10.下面不属于软件设计原则的是______。
A、抽象
B、模块化
C、自底向上
D、信息隐蔽
在软件设计过程中,必须遵循软件工程的基本原则:
这些原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可靠性。
本题答案为C。
二、填空题
1.若按功能划分,软件测试的方法通常分为白盒测试方法和______测试方法。
标准答案为:
黑盒
2.在最坏情况下,冒泡排序的时间复杂度为______。
标准答案为:
n(n-1)/2或n*(n-1)/2或O(n(n-1)/2)或O(n*(n-1)/2)
是通过相邻数据元素的交换逐步将线性表变成有序。
假设线性表的长度为n,则在最坏的情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。
3.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
标准答案为:
概念或概念级
4.关系模型的数据操纵即是建立在关系上的数据操纵,一般有______、增加、删除和修改四种操作。
标准答案为:
查询
5.在面向对象方法中,信息隐蔽是通过对象的______性来实现的。
标准答案为:
封装
6.以下程序运行后的输出结果是______。
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
标准答案为:
13715
本题的考查点是C程序设计。
根据程序写出运行结果。
该程序考察的是数组的知识点,n是一个有5个元素,且元素值全为0的数组。
程序运行过程时先进行for循环,i=1时,n[1]=n[0]*2+1,此时n[1]=1;执行i++;i=2时,再进行循环,n[2]=n[1]*2+1,此时n[2]=3,再执行i++,此时i=3,继续循环,n[3]=n[2]*2+1,此时n[3]=7,然后i=4时,n[4]=n[3]*2+1,此时n[4]=15。
循环结束。
注意输出函数中%d后有空格。
7.以下程序运行后的输出结果是______。
inta=5;
fun(intb)
{staticinta=10;
a+=b++;
printf("%d",a);
}
main()
{intc=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
标准答案为:
3025
本题的考查点是C程序设计。
根据程序写出运行结果。
本题定义了一个fun函数,其功能是:
把输入值加10,主要是通过a+=b++来实现的,在这里,b先使用,后自增,所以a=a+b,返回a的值,本题将主函数中的c=20带入到fun函数中,a的值变为30,执行函数中的printf语句,输出30,此时函数调用结束,a值也已经释放,此时a=5,c=20,执行a+=c++,即a=a+c,所以此时a值为25。
注意输出函数中%d后有空格。
8.请在以下程序第一行的下划线处填写适当内容,使程序能正常运行。
______(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf(%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?
a:
b);}
在C语言中,如果用户自己定义的被调函数在主调函数的下面,则主调函数中必须对被调函数作声明,即向编译系统声明将要调用此函数,并将有关信息通知编译系统。
函数声明的一般形式为:
(1)函数类型函数名(参数类型1,参数类型2…)
(2)函数类型函数名(参数类型1,参数名1,参数类型2,参数名2…)
本题使用的是第1种声明形式。
故本题的答案为doublemax。
9.以下程序运行后输入:
3,abcde↙,则输出结果是______。
#include
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
标准答案为:
cdeab
本题的考查点是C程序设计。
调试程序,把不完善的程序进行修改和补充,使之能得到正确的结果。
程序中的move函数的作用是将输入数组中的元素从后面开始,两两交换,循环次数用n控制。
输入3,abcde<回车>后主函数开始执行,其中n=3,s[50]={abcde},z=5,move(s,5),将实参带到形参中temp=str[4],即把数组中最后一个元素存在temp中,也就是e。
然后进行循环,i从4开始循环,str[4]等于原来的str[3],