3计算机二级试题Word格式.docx
《3计算机二级试题Word格式.docx》由会员分享,可在线阅读,更多相关《3计算机二级试题Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
数据库系统阶段:
对所有的数据实行统一规划管理,形成一个数据中心,构成一个数据仓库,数据库中的数据能够满足所有用户的不同要求,供不同用户共享。
数据共享性显著增强。
故本题答案为C)。
(10)D
【解析】自然连接是一种特殊的等值连接。
当关系R和S有相同的属性组,且该属性组的值相等时的连接称为自然连接。
(11)C
【解析】函数是C程序的基本组成单位;
C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。
(12)D
【解析】计算机能直接执行的只能是机器语言程序,源程序和汇编程序都是用高级语言编写的程序,不能被直接执行。
目标程序也是不能被直接执行的程序,需要通过系统提供的连接程序与库函数连接装配成可执行程序,才能被计算机执行。
所以本题答案为D)。
(13)A
【解析】选项B)是实型常量,选项C)是字符串常量,选项D)是转义字符常量,都是合法的常量。
(14)C
【解析】定义变量a和变量b为double类型,并对其赋初值。
变量之间应以"
,"
分隔,定义关键字与变量名之间应以空格分隔,语句应以"
;
"
结尾。
(15)D
【解析】C语言中算术运算符的结合性均为自左向右。
选项D)中表达式计算结果是2*a*b*d/c,和题目要求的代数式不一致,因此选项D)不能正确表示题目所给的代数式不一致,因此选项D)不能正确表示题目所给的代数式内容。
(16)A
【解析】C语言中整型常量可用十进制、八进制和十六进制3种形式表示。
(17)D
【解析】条件运算符组成条件表达式的一般形式为:
表达式1?
表达式2:
表达式3。
其求值规则为:
如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为条件表达式的值。
本题中需要获得表达式w的逻辑值,即w是否为0,不为0则为真,为0则为假。
因此正确答案为D)。
(18)C
【解析】根据题目所给条件可知,x||y为1,w<
'
a'
为1,1&
&
1结果为1。
因此正确答案为C)。
(19)B
【解析】由于scanf格式输入语句中,使用逗号作为输入值的间隔,所以在输入时需要使用逗号隔开。
只有选项B)中没有使用逗号,故本题选B)。
(20)A
【解析】该题考查if条件语句,当条件为真时,将b值赋给a,c值赋给b;
当条件为假时,将a值赋给c。
该题中if条件为假,所以将a的值赋给c,故a=10b=50c=10。
(21)C
【解析】数组m下标从0到4计算,共5个元素,选项C)中m[0]=5,则m[m[0]]为m[5]中,超出了数组m的下标范围。
(22)A
【解析】C语言函数定义中,参数列表之间使用逗号分隔。
该题目中func的函数列表中使用两个逗号,将3个参数分隔开。
(23)B
【解析】x[5]={1.0,2.0,3.0,4.0,5.0},说明数组x有5个元素。
下标范围为0到4,选项B)中x[5]超过了下标范围,故引用错误。
(24)A
【解析】strlen(s)即求字符串s的长度,遇到'
\0'
时结束统计。
因此选项A)为正确答案。
(25)B
【解析】在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。
(26)C
【解析】宏名可以大写,也可以小写。
其有效范围为定义命令之后到本源文件结束。
宏的调用是字符的替换,没有数据类型限制。
(27)D
【解析】该题目主要考查for嵌套循环,要注意循环变量i和j的取值范围。
输出结果为变量i和j的和。
(28)D
【解析】该题目考查if条件语句。
else语句和最近的一个if语句配对。
由于x>
y为假,所以直接执行最后一行代码。
(29)A
【解析】整个程序中只有对i增加的语句而没有对i减少的语句,所以2、3都不可能出现,选项B)和D)错误。
而i=5时第一个if语句的表达式为假,所以选项C)也错误。
(30)B
【解析】该题目考查函数参数传递以及if条件语句。
当变量b为0时,将a的值返回给主调函数,因此a进行两次自减1后,将其值返回并输出。
(31)C
【解析】分配内存空间函数malloc的调用形式:
(类型说明符*)malloc(size)。
其功能是在内存的动态存储区中分配一块长度为"
size"
字节的连续区域,函数的返回值为该区域的首地址。
类型说明符"
表示把该区域用于何种数据类型。
(32)A
【解析】主函数中给数组C元素赋值1,2,叄?
9,0。
第一个for循环语句中调用fun函数,该函数功能是交换变量的数值,注意循环变量i的增量。
第二个for循环语句将数组C中元素的值进行输出。
(33)C
【解析】数组名的值即为数组首地址,所以p->
y可得第一个元素的y值,(++p)->
x可得第二个元素的x值。
(34)D
【解析】fun函数的功能是将数组a中第一个元素和第五个元素数值对调,第二个和第四个元素数值对调。
主函数的功能是将数组a中符合条件的元素输出,条件由循环语句中循环变量i决定。
(35)B
【解析】该题目中fun函数的功能是将二维数组a中符合条件的值赋给一维数组的符合条件的元素。
主函数的功能是将符合条件的一维数组的元素进行输出。
(36)C
【解析】fun函数中使用for循环语句和if条件语句对m进行赋值,主函数的功能是将fun函数中的m返回主调函数并输出。
(37)D
【解析】该题目考查结构体数据类型,注意语句b=a,因此输出b.name为zhao,b.sex为m,依此类推。
(38)D
【解析】要将结点b从链表中删除,应先将a的指针域指向b结点的下一个结点,即p->
next=q->
next,然后释放指针q的空间。
(39)C
【解析】左移运算符的功能是把其左边的运算数的各二进制位全部左移若干位,由"
<
右边的数指定移动的位数,高位丢弃,低位补0。
如a<
1,即把a的各个二进制位向左移动1位,a=00000100(十进制数为4),左移1位后为00001000(十进制数为8)。
(40)B
【解析】该题目考查文件相关知识。
wb+"
用于打开或建立二进制文件并允许对其进行读和写操作。
文件操作先写入了s2,然后将文件指针移动到文件夹,再写入s1,这样s1就会覆盖掉一部分s2的内容。
二、填空题
(1)
【1】DBXEAYFZC
【解析】二叉树中序遍历的顺序为先遍历左子树,然后访问根结点,最后遍历右子树。
(2)
【2】单元
【解析】软件测试过程按4个步骤进行,即:
单元测试、集成测试、确认测试和系统测试。
(3)
【3】过程
【解析】软件工程包括三个要素:
方法、工具和过程。
软件工程方法为软件开发提供了"
如何做"
的技术,工具支持软件的开发、管理、文档生成,过程支持软件开发的各个环节的控制管理。
(4)
【4】逻辑设计
【解析】数据库的设计过程大致分为3个步骤:
概念设计、逻辑设计、物理设计。
(5)
【5】分量
【解析】一张二维表对应一个关系,代表一个实体集。
表中的一行称为一个元组,一个元组又由许多分量组成。
每个元组分量是表框架中每个属性的投影值。
(6)
【6】a=-b
【解析】a-=a+b等价于a=a-(a+b),等价于a=-b。
(7)
【7】a=%d\nb=%d\n
【解析】"
%d"
表示按十进制整型输出,"
\n"
表示回车换行。
(8)
【8】1
【解析】在循环中当i=3、2、1时,j分别为1、2、3;
1、2;
1。
sum值即为每个i值和它对应的j值相乘之后全部相加的和。
(9)
【9】9911
【解析】由switch语句的用法可知,case3的语句执行了一次,case2的语句执行了两次。
(10)
【10】3
【解析】fun函数中while循环语句得到变量j的值,当s[j]=4时跳出循环,此时j=3,并返回给主调函数。
(11)
【11】15
【解析】static关键字用来声明"
静态局部变量"
,静态局部变量属于静态存储类别,在静态存储区内分配存储单元。
在程序运行期间不释放变量的值。
(12)
【12】i--【13】n
【解析】第一空的表达式使i以1为步长递减,第二空则是为数组x赋值。
(13)
【14】func()
【15】m++
【解析】第一空为函数说明语句,其格式为:
函数标志符#函数名。
第二空中的m作为计数器,每读一个字符时加1。
(1)D
【解析】栈是"
先进后出"
的线性表;
队列是"
先进先出"
循环队列是队列的一种顺序存储结构,因此是线性结构;
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。
(2)A
【解析】栈支持子程序调用。
栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。
【解析】对于任何一棵二叉树T,如果其终端结点(叶子)数为n1,度为2的结点数为n2,则n1=n2+1。
所以该二叉树的叶子结点数等于5+1=6。
(4)D
【解析】冒泡排序、简单选择排序和直接插入排序在最坏情况下比较次数都是"
n(n-1)/2"
,堆排序在最坏情况下比较次数最少,是"
O(nlog2n)"
。
(5)C
【解析】软件按功能可以分为:
应用软件、系统软件、支撑软件(或工具软件)。
应用软件是为解决某一特定领域的应用而开发的软件;
系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;
支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具性软件。
编译程序、操作系统和汇编程序都属于系统软件;
教务管理系统属于应用软件。
(6)A
【解析】软件测试的目的是暴露错误,评价程序的可靠性。
软件调试的目的是发现错误的位置,并改正错误。
软件测试和调试不是同一个概念。
(7)B
【解析】耦合性是模块间互相连接的紧密程度的度量,内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。
一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,这样有利于提高模块的独立性。
(8)A
【解析】数据库应用系统中的一个核心问题就是设计一个能满足用户需求、性能良好的数据库,这就是数据库设计。
(9)B
【解析】专门的关系运算有3种:
投影、选择和联接。
选择运算是从关系中找出满足给定条件的那些元组,其中的条件是以逻辑表达式给出的,值为真的元组将被选取,这种运算是从水平方向抽取元组。
投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂直分解。
联接运算是二目运算,需要两个关系作为操作对象。
(10)C
【解析】数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。
从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。
实体集也可以转换成关系。
【解析】标识符命名规则:
标识符必须由字母(a~z或A~Z)或下划线(_)开头;
标识符的其他部分可以用字母、下划线或数字(0~9)组成;
大小写字母表示不同意义,如cout和Cout代表不同的标识符;
在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。
因此,本题正确答案为C)。
(12)B
【解析】用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中存放任何值,此时变量中的值是无确定的,称变量值"
无意义"
因此,本题正确答案为B)。
(13)D
【解析】整型常量和实型常量统称为数值型常量。
本题中A)项是数字和字符的组合,不能构成数值型常量。
B)项以0开头代表该常量是一个8进制数,但其后面的数字中又出现了"
8"
,因此不正确。
C)项用指数形式表示实型常量,但e后面必须为整数,不正确。
D)项中一个常量后面加字母L表示长整型数据。
因此,本题答案为D)。
(14)D
【解析】本题考察逗号运算符的运算方式,逗号运算符的作用是将若干表达式连接起来,它的优先级别在所有运算符中是最低的,结合方向为"
自左至右"
A)项和C)项的结果是一样的,可展开为:
x=x*(x+1)=2]+,因为++运算符有自加功能,逗号之前执行后x的值为3,逗号后的值就是整个表达式的值,即6;
D)项逗号之前并未给x赋值,所以表达式的值就是x+=2的值,即4。
(15)A
【解析】本题考查printf函数的输出格式控制符,%m.nf表示指定输出的实型数据的宽度为m(包含小数点),并保留n位小数。
当输出数据的小数位大于n时,截去右边多余的小数,并对截去的部分的第一位小数做四舍五入处理;
当输出数据的小数位小于n时,在小数的最右边补0,输出数据的小数部分宽度为n。
若给出的总宽度m小于n加上整数位数和小数点,则自动突破m的限制;
反之,数字右对齐,左边补空格。
本题中3.141593数值长度为8,小数位数为6,因此左端没有空格,故正确答案为A)。
(16)C
【解析】本题考查scanf函数,其格式为:
scanf("
控制格式"
,地址表列)。
其中地址表列中应为要赋值变量的地址。
本题要为变量x和y赋值,并定义了两个指针分别指向x和y,因此取得变量x和y的地址的方法有两种,一种是使用取地址符号"
,即&
x和&
y,另一种是使用指针变量,即px和py。
选项A)和D)中地址表列表示错误;
选项B)中控制格式与地址表列之间应用逗号分开。
【解析】C语言中if(表达式)中表达式的值可以是任意合法的表达式,如果表达式的值为0表示条件为假,如果表达式的值非0表示条件为真。
(18)B
【解析】if-else控制结构中,else总是与最近的未配对的if匹配。
本题的执行过程为:
如果输入整数小于3则不进行任何操作,否则判断是否不等于10,若为真则进行输出。
因此程序输出的数据为大于3且不等于10的整数。
(19)C
【解析】程序首先执行第一个判断语句,a==1成立;
b++==2,先判断b是否为2,再进行b加1操作,执行后b的值为3。
继续执行第二个判断语句,注意程序此时进行逻辑或运算,b!
=2的值为真,因此条件表达式b!
=2||c--!
=3的值为真,程序便不再执行第二个逻辑语句c--!
=3,而直接进行输出操作。
(20)D
【解析】本题考察for循环语句,注意第二个for语句的后面有一个分号,即printf函数不属于循环体,无论循环执行多少次,printf("
*"
)语句只执行一次。
因此,本题正确答案为D)。
【解析】指针s指向一个字符数组,每进行一次循环,将s中相应的字母的ASCII码对10取余数,并且将余数输出,因为A的ASCII码值是65,所以第一次打印出65%10=5,第二次打印出66%10=6,第三次打印出67%10=7。
(22)D
【解析】A)项每进行一次循环判断一个字符是否为回车,如果不是就进行下一次判断,因此可以统计出输入字符个数;
B)项与A)项的判断相似,仅为是否将读入的数据赋值给一个变量,因此并不影响判断结果;
C)想用for循环来判断,与B)项的判断完全相同,可以统计出输入字符个数;
D)项中ch=getchar()是给变量ch赋初值,如果输入回车,则程序只循环一次,如果输入一个非回车的字符,则程序进入死循环。
(23)A
【解析】当输入整数或实数等数值型数据时,输入的数据之间必须用空格、回车、制表符等间隔符号隔开,间隔符个数不限。
但整数和字符之间不用空格隔开,因为空格会被当作一个字符读入。
因此,本题答案为A)。
(24)B
【解析】将a、b、c的值分别带入f(a,b)和f(a,c)中计算得:
f(a,b)=3,f(a,c)=6,再计算f(3,6),算出d=9。
(25)A
【解析】fun函数的功能是输出字符串中ASCII码能被2整除的字符,g的ASCII码为103,o的ASCII码为111,d的ASCII码为100,只有d满足。
(26)B
【解析】子函数fun功能为交换形式参数的值,即交换指针变量a和b的值。
但是fun函数并不能够交换实参的值,因此fun(p,q)不能交换p和q的值,所以第一个printf语句的输出为3,5。
第二个fun函数对x和y的地址进行了操作,同样不能交换x和y的值,并且不能影响p和q指针指向的数据,因此第二个printf语句的输出为3,5。
(27)A
【解析】在f(int*p,int*q)函数中,执行p=p+1将p所对应的地址加1,而*q=*q+1是将q所指向的n的地址所对应的值加1,即m的地址所对应的值不变,而n的值为3。
(28)C
【解析】在C语言循环语句中continue用来跳出当次循环,因此B)项和D)项不正确。
if(i/8==0)是指当i除以8的得数等于0,即i的值小于8时,打印换行,因此A)项不正确。
if(i%8==0)是指当i除以8的余数等于0,即当间隔8个数时,打印换行,因此选项C)正确。
(29)B
【解析】引用数组元素可以有两种方法,一种是使用下标值法,如x[i]表示引用数组下标为i的元素,另一种方法是使用指针引用数组元素,如*(pt+i)表示引用指针pt当前所指元素后的第i个元素。
这两种方法的前提条件是所引元素的位置包含在数组范围以内,即不发生溢出,否则会出现错误。
因此,本题的答案为B)。
(30)C
【解析】在scanf格式控制字符串中,如果两个相邻的数据格式相同则需要用空格、逗号或其他制表符隔开,因此若输入字符中存在空格,scanf将把这个字符串认为是两个或多个字符串,因此不能够正确读入带有空格的字符串,本题答案为C)。
(31)A
【解析】a为一个指针数组,其中的每个元素都是一个指针。
该程序的功能是分别打印4个字符串的首字母。
因此本题答案为A)。
(32)D
【解析】定义数组时应指明数组长度,因此选项A)错误;
B)项是一个指针,初始化应写为s="
BOOK!
C)项中定义了一个字符数组,初始化应写为s={BOOK!
};
D)项正确。
(33)B
【解析】函数fun的功能是求两个整数的平均值,返回值仍为整数。
5和6的平均取整后为5,8和5的平均取整后为6。
因此,本题答案为B)。
(34)C
【解析】static(静态局部变量):
有时我们希望函数中局部变量的值在函数调用结束后不消失而保留原值,这时就将局部变量指定为静态局部变量,如果定义静态局部变量时不赋值,则编译时自动赋初值0(对数据型变量)或空字符(对字符变量)。
auto(自动变量):
函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。
函数中的形参和在函数中定义的变量都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时自动释放这些存储空间。
register(寄存器变量):
为了提高效率,C语言允许将局部变量的值放在CPU中的寄存器中,这种变量叫寄存器变量。
(35)C
【解析】b为全局变量,在第一次执行for循环后b的值变为10并输出,第二次执行for循环后b的值变为28。
因此,本题答案选C)。
(36)D
【解析】本题考察宏定义的用法,进行宏定义时语句不能用分号结束,否则会出现错误。
(37)B
【解析】p->
x初始时为1,因为"
->
的优先级大于"
++"
,所以先计算p->
x的值加1等于2并输出,再计算p->
y的值加1等于3并输出。
【解析】语句((k%n==1)?
1:
0)的意思是:
当k%n==1时该表达式的值为1,否则,该表达式的值为0。
因此IsDIV(m,5)&
IsDIV(m,7)为真时,表示判断m被5和7整除是否都余1。
(39)A
【解析】按位或运算符"
|"
是双目运算符,其功能是参与运算的两数各对应的二进位相或。
左移运算符"
是双目运算符,其功能把"
左边的运算数的各二进位全部左移若干位,由"
将5变换为二进制数为101,左移2位后为10100,1转换为二进制数为00001,10100与00001进行或运算后为10101,再将其转换为十进制数为21。
(40)C
w"
表示建立一个供写入的文件。
如果文件不存在,系统将用在fopen调用中指定的文件名建立一个新文件,如果指定的文件已存在,则将从文件的起始位置开始写入,文件中原有的内容将全部消失。
【1】20
【解析】与一般的线性表一样,在程序设计语言中,用一维数组S(1,m)作为栈的顺序存储空间,其中m为栈的最大容量。
通常,栈底指针指向栈空间的栈中的元素个数等于(栈底指针-栈顶指针+1),即49-30+1=20。
【2】白盒
【解析】黑盒测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。
常用的黑盒测试技术分为等价类划分、边界分析、错误猜测以及因果图等。
白盒测试的基本原则是:
保证所测模块中每一独立路径至少执行一次;
保证所测模块所有判断的每一分支至少执行一次;
保证所测模块