计算机二级考试真题8卷

发布时间:2021-09-05
计算机二级考试真题8卷

计算机二级考试真题8卷 第1卷


在设计Access数据库中的表之前,应先将数据进行分类,分类原则是( )。

A.每个表应只包含一个主题的信息

B.表中不应该包含重要信息

C.信息不应该在表之间复制

D.以上都是

正确答案:D


栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( )。

A.ABCED

B.DCBEA

C.DBCEA

D.CDABE

正确答案:B
解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。


下列程序段的运行结果是______。

int x=0,y=0;

while(x<15) y++,x+=++y;

pfintf("%d,%d",y,x);

正确答案:820
8,20 解析:本题考查while循环和++运算符的运用。x=0符合条件x15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8=20,此时y=8。


若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值()。

A.0

B.1

C.12

D.6

正确答案:A


计算机能直接执行的程序是( )。

A.源程序

B.目标程序

C.汇编程序

D.可执行程序

正确答案:D
计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe。所以选择D选项。


在标准SQL中,建立数据库结构(模式)的命令为______。

A.CREATE SCHEMA命令

B.CREATE TADLE命令

C.CREATE VIEW命令

D.CREATE INDEX命令

正确答案:A


在下面的运算符重载函数的原型中,错误的是( )。

A.Volumeoperator-(double,double);

B.doubleVolume::operator-(double);

C.VolumeVolume::operator-(Volume);

D.Volumeoperator-(Volume);

正确答案:A
A。【解析】C++把重载的运算符视为特殊的函数,称为运算符函数,函数名就是在运算符前面保留字operatot。运算符重载的定义格式:<返回类型>operator<运算符号>(参数说明);运算符"-"是二元运算符,A选项中重载函数的形参列表都是double,而重载函数的返回类型为类Volume,显然是错误的。


有以下程序

#include<stdio.h>

main()

{FILE *fp; int i,a[6]={l,2,3,4,5,6};

fp=fopen("d3.dat","w+b");

fwrite(a,sizeof(int),6,fp);

fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

fread(a,sizeof(int),3,fp); fclose(fp);

for(i=0;i<6;i++)printf("%d,",a[i]);

}

程序运行后的输出结果是

A.4,5,6,4,5,6,

B.1,2,3,4,5,6,

C.4,5,6,1,2,3,

D.6,5,4,3,2,1,

正确答案:A
解析:首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据"4",然后 fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。


以下程序的结果是()。includevoid main(){char*p="abcdefgh",*r;long*q;q=(1ong*)P;

以下程序的结果是( )。 #include<iostream.h> void main() {char*p="abcdefgh",*r; long*q; q=(1ong*)P; q++; r=(char*)q; cout<<r<<endl;=

A.defg

B.cdef

C.ghab

D.efgh

正确答案:D


计算机二级考试真题8卷 第2卷


本题统计score[]={37,89,63,60,59,78,91)中成绩不及格的人数。

public class javal{

public static void main(String[]args){

int score[]={37,89,63,60,59,78,91),

int sum=0:

int i=0;

while(i<;score.length){

if(score[i]>;=60){

}

i++;

}

System.OUt.println("below 60 sum:"+sum);

}

}

正确答案:
第1处:i++第2处:continue第3处:sum++【解析】第1处是为往后遍历做自加;第2处是结束本次循环;第3处是如果符合不及格这个条件,则sum做累加统计。


以下关于链式存储结构的叙述中,哪一条是不正确的

A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构

B.逻辑上相邻的结点物理上不必相邻

C.可以通过计算直接确定第I个结点的存储地址

D.插入、删除运算操作方便,不必移动结点

正确答案:C
A项中:链式存储结构由于有指针域的存在,其比顺序存储结构的存储密度要小,即相同存储空间下存的数据少。选项中的叙述是正确的。B项中:链式存储结构可通过指针访问下一个结点,此结点可能与上一结点相邻,也可能不相邻。选项中的叙述是正确的。C项中:链式存储结构如果要计算第I个结点的存储地址,不能直接从首结点直接计算,而必须通过指针域来顺序查找,最后再定位。选项中的叙述是错误的。D项中:链式存储结构在插入、删除结点时,可通过修改指针域的值来完成,而不必移动其他结点,操作方便。选项中的叙述是正确的。因此本题的正确答案为C。


下面关于亮度/对比度取值范围的说法正确的是()

A.实数

B.整数

C.-100至100的整数

D.正整数

正确答案:C


下列不是分支结构的语句是( )。

A)If…Then…End If

B)If…Then…Else…End If

C)While…Wend

D)Select…Case…End Select

正确答案:C
本题考查控制结构的基础知识。在VBA中存在3种基本结构,即顺序、分支、循环结构。分支结构有两种形式,一种是If语句的单分支结构,另…种是SeleCtCase的多分支结构。在本题中选项A)、B)、D)均是合法的分支结构,而选项C)是循环结构。


某字段中已经有数据,现要改变该字段大小的属性,将该字段大小重新设置为整数型,则以下所存数据会发生变化的是______。

A.123

B.5

C.-12

D.1563

正确答案:B


若给fun函数的形参S传送字符串:”abe.6354abc”,则函数的返回值是_________。(字符串中包括空格)

正确答案:


模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的—类是______。

A.顺序性内聚

B.过程性内聚

C.逻辑性内聚

D.功能性内聚

正确答案:D
解析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱至强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺芋内聚和功能内聚。


窗体上画一个文本框(其名称为Text1)和一个标签(其名称为Label1)。要求程序运行后,如果在文本框中输入字符,则立即在标签中显示相同的内容。以下可以实现上述操作的事件过程是: ______。

A.Private Sub Text1_Change() Label1.Caption=Text1.Text End Sub

B.Private Sub Text1_Click() Label1.Caption=Text1.Text End Sub

C.Private Sub Label1_Change() Label1.Caption=Text1.Text End Sub

D.Private Sub Labell_Click() Label1.Caption=Text1.Text End SUb

正确答案:A
解析:当在文本框中输入字符时,文本框的内容发生变化,所以应把程序写在Text1_Change()事件中。


在窗体中添加一个命令按钮,名称为Command1,两个文本框名称分别为Text 1、Text2,然后编写如下程序:PrivateSubCommand1_Click()a=Text1.textb=Text2.textC=Lcase( )D=Ucase( )PrintC;DEndSub程序运行后,在文本框Text 1、Text2中分别输入AbC和Efg,结果是( )

A、abcEFG

B.abcefg

C.ABCefg

D.ABCEFG

正确答案:A


计算机二级考试真题8卷 第3卷


所谓控件,它是一个【 】,例如文本框、复选框、命令按钮等。

正确答案:图形对象
图形对象 解析:控件就是一个图形对象,例如文本框、复选框、命令按钮等。在窗体上可以添加三种不同类型的控件:绑定控件、未绑定控件和计算控件。


下面程序的运行结果是( )。 define POW(r)r*r main() {int x=2,y=3,t; t=POW(x+y); printf("%d\n",t); }

正确答案:11
11


以下程序段中,与语句: k=a>b?(b>c?1:0):0 ; 功能相同的是

A)if((a>b)&&(b>c)) k=1;

else k=0;

B)if((a>b)||(b>c) k=1;

else k=0;

C)if(a<=b) k=0;

else if(b<=c) k=1;

D)if(a>b) k=1;

else if(b>c) k=1;

else k=0;

正确答案:A


仓库管理数据库中含有3个数据库表“订购单”、“职工”和“供应商”。设计一个表单myf,表单的标题为“仓库管理”。表单左侧有标题为“请输入订购单号”标签,和用于输入订购单号的文本框,以及“查询”和“关闭”2个命令按钮和1个表格控件。

表单运行时,用户在文本框内输入“订购单号” (如OR73),单击“查询”按钮,查询出对应的订购单的“供应商名”、“职工号”、“仓库号”和“订购日期”。表单的表格控件用于显示查询结果。单击“关闭”按钮,关闭表单。

正确答案:单击“文件”菜单中的“新建”在类型选择框中选择“表单”单击“新建文件”按钮打开表单设计器。在属性窗口中设置表单的Caption 属性为“仓库管理”从“表单控件”工具栏中选择1个文本框1个标签1个表格控件2个命令按钮放置在表单上。在属性面板中分别设置两个命令按钮的Caption 属性分别为“查询”和“关闭”设置标签的Caption 属性值为“请输入订购单号”。 双击命令按钮“查询”编写该控件的Click 事件程序代码如下: ******命令按钮Command1(查询)的Click 事件代码***** SELECT 供应商名订购单.职工号仓库号订购日期; FROM 订购单供应商职工; WHERE 订购单.供应商号=供应商.供应商号; AND 职工.职工号=订购单.职工号; AND 订购单号=ALLTRIM(Thisform.Text1.value); INTO CURSOR temp Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource="temp" **************************************************** 以同样的方法为“关闭”命令按钮编写Click 事件代码:Thisform. Release。 保存表单文件为myf. scx 到考生文件夹下表单运行结果如图3-106所示。 图3-106
单击“文件”菜单中的“新建”,在类型选择框中选择“表单”,单击“新建文件”按钮,打开表单设计器。在属性窗口中设置表单的Caption 属性为“仓库管理”,从“表单控件”工具栏中选择1个文本框,1个标签,1个表格控件,2个命令按钮放置在表单上。在属性面板中分别设置两个命令按钮的Caption 属性分别为“查询”和“关闭”,设置标签的Caption 属性值为“请输入订购单号”。 双击命令按钮“查询”,编写该控件的Click 事件,程序代码如下: ******命令按钮Command1(查询)的Click 事件代码***** SELECT 供应商名,订购单.职工号,仓库号,订购日期; FROM 订购单,供应商,职工; WHERE 订购单.供应商号=供应商.供应商号; AND 职工.职工号=订购单.职工号; AND 订购单号=ALLTRIM(Thisform.Text1.value); INTO CURSOR temp Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource="temp" **************************************************** 以同样的方法为“关闭”命令按钮编写Click 事件代码:Thisform. Release。 保存表单文件为myf. scx 到考生文件夹下,表单运行结果如图3-106所示。 图3-106 解析:本大题主要考查的是SQL语句的应用,程序部分属于SQL的简单联接查询,在显示查询结果时,首先可用一个临时表保存查询结果,然后将表格控件中来显示数据的属性值设置为该临时表,用来显示查询结果。


对数据表进行筛选操作的结果是( )。

A.将满足条件的记录保存在新表中

B.隐藏表中不满足条件的记录

C.将不满足条件的记录保存在新表中

D.删除表中不满足条件的记录

正确答案:B
筛选是把满足条件的数据显示出来,并没有创建表或者删除数据的操作。


在条件宏设计时,对于连续重复的条件,可以代替的符号是_________。

A.…

B.=

C.,

D.;

正确答案:A
解析:…:省略号,表示该行中的条件表达式与上一行相同。所以本题答案为A。


有下面程序段

#include "stdio.h"

#include "string.h"

main( )

{ char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};

char k[100]={0},*p=k;

int i;

for(i=0;i<3;i++)

{p=strcat(p,a[i]);}

i=strlen(p) ;

printf("%d\n",i);}

则程序段的输出结果是

A.18

B.19

C.20

D.21

正确答案:B
解析:字符串连接函数strcat的调用形式如下:strcat(s1,s2)。此函数将s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。


在最坏情况下()。

A.快速排序的时间复杂度比冒泡排序的时间复杂度要小

B.快速排序的时间复杂度比希尔排序的时间复杂度要小

C.希尔排序的时间复杂度比直接插入排序的时间复杂度要小

D.快速排序的时间复杂度与希尔排序的时间复杂度是一样的

正确答案:C


下面是打印输出所有和为10000的连续整数(如:1998,1999,2000,2001,2002)的程序,请在每条横线处填写适当语句,使程序的功能完整。

注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。

public class Sum10000{

public static void main(String args[ ]){

int i;

int j;

int k;

int sum;

for(i=1;i<=10000;______________){

sum=0;

j=i;

__________________;

while(sum<10000)

{

______________

if(sum==10000) {

for(k=i;k<=j;k++)

System.out.println(k+ "");

System.out.println("********");

}

}

}

}

正确答案:i++ sum+=i; sum+=++j;
i++ sum+=i; sum+=++j; 解析:本题主要考查for循环语句、while循环语句。解答本题的关键是熟练使用for循环语句、while循环语句的使用。在本题中,for(i=1;i=10000;i++)语句中的i++是用来使循环变量递增1,sum+=i;语句的功能是用来累加循环变量i,sum+=++j;语句的功能是用来累加循环变量j。


计算机二级考试真题8卷 第4卷


为表单MeForm添加事件或方法代码,改变该表单中的控件Cmd1的Caption属性的正确命令是 ______。

A.THISFORMSET.Cmd1.Caption=“最后一个”

B.THISFORM.Cmd1.Caption=“最后一个”

C.THIS.Cmd1.Caption=“最后一个”

D.MeForm.Cmd1.Caption=“最后一个”

正确答案:B
解析:在类定义中编写方法和事件程序代码时,不能直接引用表单或控件的名称。VisualFoxPro在根据类定义创建对象时,有其内部的表达方式,不一定就是用户定义的名称,因此必须用相对引用。相对引用的各个关键词所对应的对象引用如下表所示。选项D是绝对引用,显然是错误的。所以,为表单MeForm添加事件或方法代码,改变该表单中的控件Cmd1的Caption属性,应当使用关键词THISFORM,选项B正确。


( 28 )有如下程序:

#include<iostream>

using namespace std;

class MyClass{

public:

MyClass(int x):val(x) {}

void Print() const {cout<<"const:val="<<val<<'\t';}

void Print(){cout<<"val="<<val<<'t';}

private:

int val;

};

int main(){

const MyClass obj1(10);

MyClass obj2(20);

obj1.Print();

obj2.Print();

return 0;

}

程序的输出结果是

A ) val=10 const:val=20

B ) const:val=10 const:val=20

C ) const:val=10 val=20

D ) val=10 val=20

正确答案:C


在 Visual FoxPro 中 , 如果要将学生表 S( 学号 , 姓名 , 性别 , 年龄 ) 中 “ 年龄 ” 属性删除 ,正确的 SQL 命令是

A) ALTER TABLE S DROP COLUMN 年龄

B) DELETE 年龄 FROM S

C) ALTER TABLE S DELETE COLUMN 年龄

D) ALTEER TABLE S DELETE 年龄

正确答案:A


使用VC6打开考生文件夹下的工程test14_1,此工程包含一个源程序文件test14_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下:

member1=5member2=5

member1=7member2=9

源程序文件test14_1.cpp清单如下:

include<iostream.h>

class My Class

{

/************** found *****************

friend void setMember(MyClass myObj,char meml)

{

myObj.member1=mem1;

myObj.member2=mem1;

cout<<"member1="<<myObi.member1<<" member2="<<myObj.member2<<endl;

}

/************** found ***************/

void setMember(MyClass& myObj,char mem1,char mem2)

{

myObj.member1=mem1;

myObj.member2=mem2;

cout<<"member1:"<<myObj.member1<<"member2="<<myObj.member2<<endl;

}

private:

char member1;

char member2;

};

void main()

{

MyClass theObj;

/************** found ****************/

theObj.setMember(theObj,'5');

theObj.setMember(theObj,'7','9');

}

正确答案:(1)错误:friend void setMember(MyClass myObjchar mem1) 正确:friend void set Member(MyClass & myObjchar mem1) (2)错误:void setMember(MyClass & myObjchar mem1char mem2) 正确:friend void setMembe (MyClass & myObjchar mem1char mem2) (3)错误:theObj.setMember(theObj'5'); theObj.setMember(theObj'7''9'); 正确:setMember(theOebj'5'); setMember(theObj'7''9');
(1)错误:friend void setMember(MyClass myObj,char mem1) 正确:friend void set Member(MyClass & myObj,char mem1) (2)错误:void setMember(MyClass & myObj,char mem1,char mem2) 正确:friend void setMembe (MyClass & myObj,char mem1,char mem2) (3)错误:theObj.setMember(theObj,'5'); theObj.setMember(theObj,'7','9'); 正确:setMember(theOebj,'5'); setMember(theObj,'7','9'); 解析:(1)主要考查考生对于友元函数定义的掌握,应该使用引用调用才能改变该对象的成员值;
(2)主要考查考生对于友元函数重载的掌握,因为前面已经有了同名函数,很明显这个函数也应该为友元函数,所以关键字friend声明;
(3)主要考查考生是否会使用友元函数,调用友元函数和普通函数的方法一样,不需要使用对象访问。


有多个操作构成的宏,执行时是按【 】依次执行的。

正确答案:先后顺序
先后顺序 解析:由多个操作命令构成的宏在运行时,操作序列是按照其先后顺序执行的;需要注意的是,条件操作宏运行时,条件为假的操作不会执行,但条件为真的操作仍然是按照其先后顺序依次执行的。


删除仓库关系中仓库号值为WH2的元组,应使用命令______.

A.DELETEFROM仓库WHERE仓库号="WH2"

B.DROPFROM仓库WHERE仓库号="WH2"

C.DELETE仓库WHERE仓库号=WH2"

D.DROPFROM仓库WHERE仓库号=WH2

正确答案:A
解析:从表中删除数据的命令格式为: DELETEFROMTableName[WHERECondition]


下述各描述中不属于白盒测试法概念的是

A.至少执行一次模块中的所有独立路径

B.执行边界条件下的所有循环

C.所有判断的每一分支至少执行一次

D.执行边界条件下的所有接口

正确答案:D
解析:白箱测试用例的设计准则有:语句覆盖,分支覆盖,条件覆盖和组合条件覆盖。语句覆盖准则是企图用足够多的测试用例,使程序中的每个语句都执行一遍,以便尽可能多地发现程序中的错误。分支覆盖准则也称为判定覆盖准则。它要求通过足够多的测试用例,使程序中的每个分支至少通过一次。条件覆盖准则是通过执行足够多的测试用例,使每个判定中的每个条件都能取到两种不同的结果(“真”与“假”)。组合条件覆盖准则要求通过足够多的测试用例,使每个判定中各条件的各种可能组合至少出现一次。由此可知,选项D不属于白盒测试法概念。


关于JavaScript语言,下列说法中错误是()。

A.JavaScript语言是一种解释性语言

B.JavaScript语言与操作环境无关

C.JavaScript语言与客户端浏览器无关

D.JavaScript是动态的,它可以直接对用户输入做出响应

正确答案:C


至目前为止,已发布多种汉字信息的编码标准。在下列叙述中,错误的是( )。

A.无论采用那种编码标准(如GBK、UCS-4等),汉字的机内码都是采用16位二进制表示的

B.中文版Windows98/2000/XP操作系统都支持GB2312-80、GBK等多种汉字编码标准

C.GB2312-80是我国颁布的第一个汉字信息编码的国家标准

D.不同的汉字输入法,其可以输入的不同汉字个数可能有所不同

正确答案:A


计算机二级考试真题8卷 第5卷


下列属于 Access 对象的是

A. 文件

B. 数据

C. 记录

D. 查询

正确答案:D


若有下列定义和语句: int u=011, v=Ox11,w=11; printf("%o,%x,%d\n”,u,v,w); 则输出结果是( )。

A.9,17,11

B.9,11,11

C.11,11,11

D.11,17,11

正确答案:C
解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0X);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。


若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是( )。

A.10011000

B.10001100

C.10101000

D.10110000

正确答案:A
解析:本题主要考查运算表达式的运算。3+(int)(x)的结果是10011010,~3的结果是11111100,二者逻辑与得10011000。


以下程序不用第三个变量实现将两个数进行对调的操作,划线处应为

main( )

{ int a,b;

scanf ("%d%d",&a,&b).;

cin>>a>>b;

cout<<"a="<<a<<"b="<<b;

a=a+b;b=a-b;a=______;

cout<<"a="<<a<<"b="<<b<<endl;

}

A.a+b

B.a-b

C.b*a

D.a/b

正确答案:B
解析:本题思路巧妙,分析时可以发现b=(a+b)-b,则此时b中放的是a,完成交换工作的一半。然后要将b放到a中,将表达式展开,则为a=(a+b)-a,此时正好把b放到a中。此时完成全部的交换。


以下程序的功能是计算:。includemain(){int n; float s; s=1.0; for(n=10;n>1;n--)s=s+

以下程序的功能是计算:。#include <stdio.h> main() { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是( )。

A.s=1.0;

B.for(n=10;n>1;n--)

C.s=s+1/n;

D.printf("%6.4f\n",s);

正确答案:C
解析:该程序的运行结果是1.0000,算法错误。在s=s+1/n中,因为n为整型,所以循环中1/n始终为0。这就是本题算法错误的原因。应把s=s+1/n改为s=s+1.0/n。


以下叙述中,错误的是______。

A.如果过程被定义为Static类型,则该过程中的局部变量都是Static类型

B.Sub过程中不能嵌套定义Sub过程

C.Sub过程中可以嵌套调用Sub过程

D.事件过程可以像通用过程一样由用户定义过程名

正确答案:D
解析:如果过程被定义为Static类型,则该过程中的局部变量都是Static类型,该变量的生存期就扩展到该过程所在窗体或模块的运行期,在整个代码运行期间都能保留其值。Sub过程中可以嵌套调用Sub过程,但是Sub过程中不能嵌套定义Sub过程,每个Sub过程应该独立地定义。而事件过程的过程头是在打开“代码窗口”后,在“代码窗口”上部的两个列表框中选择对哪些对象进行哪些操作后自动生成,包含事件过程的名称,因此事件过程名不能随意定义。因此选项D的描述是错误的。


下列说法中错误的是( )。

A.公有继承时基类中的public成员在派生类中仍是public的

B.公有继承时基类中的private成员在派生类中是public的

C.私有继承时基类中的public成员在派生类中是private的

D.保护继承时基类中的public成员在派生类中是protected的

正确答案:B


有以下程序段

以下关于程序段执行情况的叙述,正确的是( )。

A.当产生的随机数n为0时结束程序运行

B.当产生的随机数n为4时结束循环操作

C.当产生的随机数n为1和2时不做任何操作

D.for循环语句固定执行8次

正确答案:A
n为。时执行exit(0);函数结束,所以产生的随机数为0时,函数结束。答案选择A)。


在两种基本测试方法中,__________测试的原则之一是保证所测模块中每一个独立路径至少执行一次。

正确答案:
白盒
按功能划分测试可分为白盒测试和黑盒测试。白盒测试的原则是保证所测试模块中每一独立路径至少执行一次;保证所测试模块所有判断的每一分支至少执行一次;保证所测试模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。


计算机二级考试真题8卷 第6卷


对线性表进行二分法检索。其前提条件是______。

A.线性表以顺序方式存储,并且按关键码值排好序

B.线性表以顺序方式存储,并且按关键码的检索频率排好序

C.线性表以链接方式存储,并且按关键码值排好序

D.线性表以链接方式存储,并且按关键码的检索频率排好序

正确答案:A


设有关系R1和R2,经过关系运算得到结果S,则S是 ______。

A.一个关系

B.一个表单

C.一个数据库

D.一个数组

正确答案:A
解析:本题考查考生对关系基本运算的理解,关系运算得到的结果还是一个关系,因此选项A正确。


下列变量名中合法的是( )。

A.CHlNA

B.byte-size

C.double

D.A+a

正确答案:A
解析:在Java语言中,变量名的定义要符合其语法规则。B选项中的变量名byte-size中含有不合法的字符"-",所以不正确:C选项的变量名是Java保留字;而D选项中的变量名中同样含有非法的字符”+”。考试中,变量名定义的语法规则这个知识点比较重要。


在窗体上画两个单选按钮,名称分别为Option1、Option2,标题分别为“宋体”和“黑体”;一个复选框,名称为Check1,标题为“粗体”;一个文本框,名称为Text1,Text属性为“改变文字字体”。要求程序运行时,“宋体”单选按钮和“粗体”复选框被选中(窗体外观如图16-2所示),则能够实现上述要求的语句序列是______。

A.Optionl. Value=True Checkl. Value=False

B.Optionl. Value=True Checkl. Value=True

C.Option2. Value=False Checkl. Value=True

D.Optionl. Value=True Checkl. Value=1

正确答案:D
解析:OptionButton(单选按钮)的Value属性应设置为True或False,而CheckBox(复选框)的Value属性应设置为0、1或2(对应控件常数为vbUnchecked、vbChecked或vbGraycd)。


查询设计器中“联接”选项卡对应的SQL短语是

A.WHERE

B.JOIN

C.SET

D.ORDERBY

正确答案:B
解析:在查询设计器中,与“联接”选项卡对应的SQL语句是JOIN。故正确答案为选项B。选项A中的WHERE对应的是“筛选”选项卡,选项D中的ORDER BY对应的是“排序依据”选项卡。


在Word文档中有一个占用3页篇幅的表格,如需将这个表格的标题行都出现在各页面首行,最优的操作方法是:

A)将表格的标题行复制到另外2页中。

B)利用“重复标题行”功能。

C)打开“表格属性”对话框,在列属性中进行设置。

D)打开“表格属性”对话框,在行属性中进行设置。

答案:B


下列关于栈的叙述正确的是( )。

A.栈按“先进先出”组织数据

B.栈按“先进后出”组织数据

C.只能在栈底插入数据

D.不能删除数据

正确答案:B
B。【解析】栈的特点是后进先出,是限定在表的一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。


以下程序的运行结果是()。includemain() {int a=3,b=4,c=8,d=4,m=1,n=3;printf("%d\n",

以下程序的运行结果是( )。 #include<stdio.h> main() {int a=3,b=4,c=8,d=4,m=1,n=3; printf("%d\n",(m=a>B)&&(n=c>D)); }

A.0

B.1

C.2

D.3

正确答案:A
解析:逻辑与(&&)运算符的功能是:当“&&”运算符两边的运算对象均为1时,整个表达式的值为1,否则为0。因为a=3b=4,即m=0,所以整个表达式的值为0。


下列属于引用调用的是( )。

A.形参是指针,实参是地址值

B.形参和实参都是变量

C.形参是数组名,实参是数组名

D.形参是引用,实参是变量

正确答案:D
解析:当引用作函数的参数时,形参是引用,实参是变量,而不是取地址符。


计算机二级考试真题8卷 第7卷


return语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该调用语句的【 】继续程序的运行。

正确答案:下一条语句
下一条语句 解析:return语句从当前方法中退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续程序的执行。return语句通常用在各方法的最后,否则会产生编译错误。


在下列几种排序方法中,要求内存量最大的是______.

A.插入排序

B.选择排序

C.快速排序

D.归并排序

正确答案:D
解析:快速排序的基本思想是,通过一趟排序将待排序记录分割成独的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性农,从中选出最小的元素,将它交换到农的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组成合成一胩新的序列表。


阅读下面的程序: Private Sub Form_Click() Dim m,n As Integer m=InputBox("请输入M的值") m=Val(m) m1=m n=InputBox("请输入N的值") n=Val(n) n1=n Do While n<>0 remin=m Mod n m=n n=remin Loop Print m1,n1,m End Sub 程序运行后,单击窗体,在对话框中分别输入16和24,则程序在窗体上的输出结果为

A.16 24 4

B.16 24 8

C.24 16 6

D.24 16 8

正确答案:B
解析:本题捉供的是用“辗转相除法”求两个整数最大公约数的程序。一般来说,假定有两个整数m和n(m>n),将m作为被除数,n作为除数,相除后余数为r。如果r不等于0,则令m=n,n=r,再进行一次除法运算(以新的m作为被除数,n作为除数),得到新的r。如果r仍不等于0,则重复上述过程,直到r=0为止,此时的n就是两个数的最大公约数。在本题的DoWhile-Loop循环中,通过辗转相除求最大公约数,循环结束的条件是相除后余数为0,如果不为0,则一直“除”下去。这里用Mod运算符求余数,较大的整数作为被除数或者较小的整数作为被除数都可以得到正确结果,但整除的次数可能会不一样。在本题的输入中,先输入16,再输入24,求出的最大公约数仍为8。


以下程序运行时,输入3和4后输出的结果是______。 Private Sub Command1_Click() a=InputBox(“请输入a的值”) b=InputBox(“请输入b的值”) Print a+b End Sub

A.3+4

B.7

C.34

D.12

正确答案:C
解析:InputBox函数返回的值是字符串类型,由于变量a和b没有说明,所以是变体类型。当把函数值赋给变量a和b后,a和b是变体字符串,Print输出的是两个字符串的连接结果34。


下面叙述中错误的是( )。

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也被称为Debug

D.软件测试应严格执行测试计划,排除测试的随意性

正确答案:A
解析:软件测试的目的是为了发现错误及漏洞而执行程序的过程。软件测试要严格执行测试计划。程序调式通常也称Debug,对被调试的程序进行“错误”定位是程序调试的必要步骤。


以下程序的运行结果是

#define MAX(A,B)(A)>(B)?(A):(B)

#define PRINT(Y) printf("Y=%d\t",Y)

main()

{ int a=1,b=2,c=3,d=4,t;

t=MAX(a+b,c+d);

PRINT(t); }

A.Y=3

B.存在语法错误

C.Y=7

D.Y=0

正确答案:C
解析:考查带参数的宏替换。宏替换不像函数调用要进行参数值的计算、传递等,而只是简单按照原格式进行字符串的替换。


下面叙述中错误的是 ______。

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debug

D.软件测试应严格执行测试计划,排除测试的随意性

正确答案:A
解析:1983年IEEE将软件测试定义为:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。因此选项A的叙述是错误的。软件测试的基本准则为:(1)所有测试都应追溯到需求。(2)严格执行测试计划,排除测试的随意性。(3)充分注意测试中的群集现象。(4)程序员应避免检查自己的程序。(5)穷举测试不可能。(6)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。因此选项D正确。在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。因此选项C正确。程序调试的任务是诊断和改正程序中的错误。程序调试的基本步骤:(1)错误定位。(2)修改设计和代码,以排除错误。(3)进行回归测试,防止引进新的错误。因此选项B是正确的。


在关系模型中,为了实现“关系中不允许出现相同元组”的约束应使用( )。

A.临时关键字

B.主关键字

C.外部关键字

D.索引关键字

正确答案:B
B。【解析】VisualFoxPr0中利用主关键字或候选关键字来保证表中的记录唯一。一般将主关键字称作主索引,将候选关键字称作候选索引。索引分为4种类型:主索引、候选索引、唯一索引和普通索引。主索引不允许索引关键字中出现重复值的索引。一个表只能有一个主索引,只有数据库表才能建立主索引,自由表不能。


一棵含18个结点的二叉树的高度至少为( )。

A.3

B.4

C.5

D.6

正确答案:C
解析:在二叉树的零层,有20=1个结点即根结点;第一层根据根结点子结点的个数最多有2个结点;第二层的结点总数最多有4个;以此类推,二叉树的第n层的结点数最多为2n。一棵含18个结点的二叉树的高度至少为5。


计算机二级考试真题8卷 第8卷


若有定义语句:int a=3,b=2,c=1;,则表达式a<b?a:b的值是【 】。

正确答案:2
2 解析:本题考查的知识点是:条件运算符。条件运算是C++中唯一的三目运算,与其对应的运算符?:称为条件运算符。条件运算符的使用格式为:
表达式1>?表达式2>:表达式3>
当计算有条件运算符构成的表达式时,首先计算表达式1>,若其值非0,则计算出 表达式2>的值,并用这个值作为整个表达式的值;若表达式1>的值为0,则计算出表达式3>的值,并用这个值作为整个表达式的值。题目中,ab的结果为假(即 0),所以整个表达式的值为b的值2。


下列说法正确的是 ( )

A.在执行C程序时不是从main函数开始的

B.C程序书写格式严格限制,一行内必须写一个语句

C.C程序书写格式自由,一个语句可以分写在多行上

D.C程序书写格式严格限制,一行内必须写一个语句,并要有行号

正确答案:C


resume( )方法负责恢复被( )方法挂起的线程。

A.stop( )

B.sleep( )

C.wait( )

D.suspend( )

正确答案:D


以下程序的功能是 : 通过函数 func 输入字符并统计输入字符的个数 。 输入时用字符 @ 作为输入结束标志。请填空。

#include <stdio.h>

long 【 14 】 ; /* 函数说明语句 */

main()

{ long n;

n=func(); printf("n=%ld\n",n);

}

long func()

{ long m;

for(m=0;getchar()!='@'; 【 15 】 );

return m;

}

正确答案:


创建一个名为student的新类,保存新类的类库名称是mylib,新类的父类是Person,正确的命令是

A.CREATE CLASS mylib OF student As Pemon

B.CREATE CLASS student OF Pe~on As mylib

C.CREATE CLASS student 0F mylib As Pe~on

D.CREATE CLASS Person OF mylib As student

正确答案:C
解析:建立类语句的格式为“CREATE CLASS类名OF类库名As父类”,题中要求新类的类库名称是mylib,父类是Person,因此,正确的命令是“CREATE CLASS student OF mylib As Person'’。


对以下说明语句的正确理解是( )。 int a[10]={6,7,8,9,10};

A.将5个初值依次赋给a[1]至a[5]

B.将5个初值依次赋给a[0]至a[4]

C.将5个初值依次赋给a[6]至a[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

正确答案:B
解析:本题中,表达式将5个初值分别赋给a[0]至a[4],系统自动给后面的元素a[5]至a[9]赋0。


SQLServer2005的开发人员版的功能与企业版的功能相同,只是不能用在生产场合。()

此题为判断题(对,错)。

参考答案:正确


有以下程序main(){ union{ unsigned int n;unsigned char c;}ul;ul.c='A';printf("%c\n",ul.n);}执行后输出结果是

A.产生语法错

B.随机值

C.A

D.65

正确答案:C
解析:共用体变量中所有成员共享一段存储空间,它们的值为最后一次对其中变量所赋的值。


表达式[1,2,3]*3的执行结果为______________________。

正确答案:[1,2,3,1,2,3,1,2,3]