IT认证考试真题.docx
- 文档编号:25662642
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:58
- 大小:64.41KB
IT认证考试真题.docx
《IT认证考试真题.docx》由会员分享,可在线阅读,更多相关《IT认证考试真题.docx(58页珍藏版)》请在冰豆网上搜索。
IT认证考试真题
2010年3月考试真题(第31次)
1.数据流程图(DFD图)是______。
A、软件概要设计的工具B、软件详细设计的工具
C、结构化方法的需求分析工具D、面向对象方法的需求分析工具
常见的需求分析方法有:
结构化分析方法和面向对象的分析方法。
结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。
故本题答案为C。
2.软件(程序)调试的任务是______。
A、诊断和改正程序中的错误B、尽可能多地发现程序中的错误
C、发现并改正程序中的所有错误D、确定程序中错误的性质
程序调试的任务是诊断和改正程序中的错误。
它与软件测试不同,软件测试是尽可能多地发现软件中的错误。
先要发现软件的错误,然后借助于一定的调试工具去执行找出软件错误的具体位置。
软件测试贯穿整个软件生命期,调试主要在开发阶段。
故本题答案为A。
3.软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是______。
A、编辑软件B、操作系统C、教务管理系统D、浏览器
软件按功能可以分为:
应用软件、系统软件、支撑软件(或工具软件)。
应用软件是为解决特定领域的应用而开发的软件。
例如,事务处理软件,工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的各种软件。
系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。
如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等,所以选项B属于系统软件。
故本题答案为B。
4.软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于______。
A、定义阶段B、开发阶段C、维护阶段D、上述三个阶段
软件生命周期可分为软件定义、软件开发及软件运行维护三个阶段。
软件开发阶段包括概要设计、详细设计、实现和测试四个活动阶段。
故本题答案为B。
5.下列叙述中正确的是______。
A、对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为
D、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为
对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较
次,而顺序查找需要比较n次。
二分法查找只适用于顺序存储的有序表,如果采用链式存储结构,也只能用顺序查找,所以选项A是正确的。
故本题答案为A。
6.有两个关系R和T如下:
则由关系R得到关系T的操作是______。
A、选择B、投影C、交D、并
从关系中找出满足给定条件的元组的操作称为选择。
选择是从行的角度进行的运算,即从水平方向抽取记录。
由图可知关系R通过运算得到关系T,关系T与关系R相比,属性的个数没有发生变化,记录的条数发生了变化。
因此所使用的运算应该是选择。
故本题答案为A。
7.算法的时间复杂度是指______。
A、算法的执行时间B、算法所处理的数据量C、算法程序中的语句或指令条数
D、算法在执行过程中所需要的基本运算次数
所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。
为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
故本题答案为D。
8.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的______。
A、需求分析阶段B、逻辑设计阶段C、概念设计阶段D、物理设计阶段
E-R图是E-R模型的一种非常直观的图的形式表示,它描述信息结构但不涉及信息在计算机中的表示,它是数据库概念设计阶段的工具。
故本题答案为C。
9.在学生管理的关系数据库中,存取一个学生信息的数据单位是______。
A、文件B、数据库C、字段D、记录
实体是概念世界中的基本单位,属性附属于实体,它本身并不构成独立单位。
属性有属性域,每个实体可取属性域内的值。
一个实体的所有属性取值组成了一个值集叫元组(或称记录)。
在概念世界中,可以用元组表示实体,也可用它区别不同的实体。
所以在学生管理的关系数据库中,存取一个学生信息的数据单位是元组(或记录)。
故本题答案为D。
10.数据库管理系统中负责数据模式定义的语言是______。
A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言
数据定义语言(DDL):
该语言负责数据的模式定义与数据的物理存取构建。
数据操纵语言(DML):
该语言负责数据的操纵,包括查询及增、删、改等操作。
数据控制语言(DCL):
该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
故本题答案为A。
11.有如下两个类定义
classXX{
private:
doublex1;
protected:
doublex2;
public:
doublex3;
};
classYY:
protectedXX{
private:
doubley1;
protected:
doubley2;
public:
doubley3;
};
在类YY中保护成员变量的个数是______。
A、1B、2C、3D、4
本题主要考查了类的继承与派生。
类的继承方式有三种:
公有(public)继承、保护(protected)继承和私有(private)继承。
当派生类从基类保护继承时,基类的公有成员和保护成员在派生类中都为保护成员。
本题派生类YY从基类XX保护继承,因此基类XX的公有成员x3和保护成员x2都成为派生类YY的保护成员,再加上派生类YY自身的保护成员y2,因此类YY中有3个保护成员。
故本题答案为C。
12.在C++中,cin是一个______。
A、类B、对象C、模板D、函数
本题主要考查了I/O流。
在C++中,数据的输入与输出是通过I/O流来实现,cin和cout是预定义的流类对象。
故本题答案为B。
13.若x和y是程序中的两个整型变量,则下列if语句中正确的是______。
A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;
C、if(x==0)y=1elsey=2;D、ifx==0y=1;elsey=2;
本题主要考查了if语句。
if语句的语法形式为:
if(表达式)语句1
else语句2
在C++中,if语句中没有then,语句最后必须有一个分号,因此选项A正确,选项B和选项C错误;在选项D中,表达式x==0应该用圆括号括起来,因此选项D错误。
故本题答案为A。
14.将运算符"+"重载为非成员函数,下列原型声明中,错误的是______。
A、MyClockoperator+(MyClock,long);B、MyClockoperator+(MyClock,MyClock);
C、MyClockoperator+(long,long);D、MyClockoperator+(long,MyClock);
本题主要考查了运算符的重载。
运算符的重载是针对新类型数据的实际需要,对原有运算符进行适当的改造。
一般来讲,重载的功能应当与原有功能类似,不能改变原运算符的操作对象个数,同时至少要有一个操作对象是自定义类型。
选项A、选项B和选项D的两个参数中至少有一个参数是自定义类型,因此选项A、选项B和选项D正确。
选项C中两个参数都是基本数据类型,没有自定义类型,因此选项C错误。
故本题答案是C。
15.要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是______。
A、intx[3]={0,0,0};B、intx[]={0};C、staticintx[3]={0};D、intx[]={0,0,0};
本题主要考查了一维数组的定义与初始化。
一维数组的定义形式为:
数据类型数组名[数组元素个数];
数组的初始化就是在声明数组时给部分或全部元素赋初值。
选项A定义了有三个元素的整型数组x,并初始化三个元素的值为0,因此选项A正确;当声明数组时没有给出数组元素个数,但是有初始化列表,数组元素个数由列表中元素个数来确定,因此选项D正确;选项B没有给出数组元素个数,并且在初始化列表中只给一个元素值,因此选项B定义了只有一个元素的整型数组,故选项B错误;对于数值类型数组,如果给定的数值不够,则没有指定数值的元素将初始化为0,因此选项C正确。
故本题答案为B。
16.下列控制格式输入输出的操作符中,能够设置浮点数精度的是______。
A、setprecisionB、setwC、setfillD、showpoint
本题主要考查了输出流的格式控制。
setprecision(intn)用于控制输出流显示浮点数的精度,整数n代表显示的浮点数数字的个数。
因此选项A正确。
setw(intn)用于预设输入输出宽度。
setfill(charc)用于预设填充字符。
showpoint用于给浮点数显示小数点和尾部的0。
因此选项B、选项C和选项D不正确。
故本题答案为A。
17.若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列
MyTemp
MyTemp
编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是______。
A、1B、2C、3D、0
本题主要考核类模板。
类模板声明的语法形式为:
template<模板参数表>
class类名
{类成员声明}
使用类模板来建立对象时,应按如下形式声明:
类名<模板实参表>对象名1,…,对象名n;
在定义对象的过程中,编译系统会自动地根据需要生成相应的类定义,这种依据类模板生成类定义的过程称为类模板的实例化。
类模板实例化所生成的每一个类定义就是相应类模板的一个实例,因此类模板的实例个数由类型参数的种类决定。
本题使用类模板MyTemp定义对象时指定了两种类型参数:
double和long,因此所生成的实例个数是2。
故本题答案为B。
18.下列代码段声明了3个类
classPerson{};
classStudent:
publicPerson{};
classUndergraduate:
Student{};
下列关于这些类之间关系的描述中,错误的是______。
A、类Person是类Undergraduate的基类B、类Undergraduate从类Student公有继承
C、类Student是类Person的派生类D、类Undergraduate是类Person的派生类
本题主要考查了类的继承与派生。
在C++中,定义派生类的一般语法形式为:
class派生类名:
继承方式基类名1,继承方式基类名2,…,继承方式基类名n
{
派生类成员声明;
};
类的继承方式有三种:
公有(public)继承、保护(protected)继承和私有(private)继承。
如果不显式地给出继承方式,缺省的类继承方式是私有(private)继承。
在声明派生类Undergraduate时缺省继承方式,因此类Undergraduate从类Student私有继承,故选项B错误。
故本题答案为B。
19.将前缀运算符"--"重载为非成员函数,下列原型中,能正确用于类中说明的是______。
A、Decr&operator--(int);B、Decroperator--(Decr&,int);
C、friendDecr&operator--(Decr&);D、friendDecroperator--(Decr&,int);
本题主要考查了运算符的重载。
运算符--既可以是前缀运算符(前减1),又可以是后缀运算符(后减1)。
为了区分这两种情况,重载这两个运算符时必须在格式上有所区别:
重载后缀--时必须多一个虚拟参数:
int。
如果将前缀--和后缀--作为非成员函数重载,那个唯一的操作数必须作为第一参数提供。
又因为要修改第一操作数,对应的参数必须声明为引用。
前缀--作为非成员函数重载的一般形式为:
friendDecr&operator--(Decr&);
后缀--作为非成员函数重载的一般形式为:
friendDecroperator--(Decr&,int);
当运算符重载为类的成员函数时,函数的参数个数比原来的参数个数少一个。
前缀--作为成员函数重载的一般形式为:
Decr&operator--();
后缀--作为成员函数重载的一般形式为:
Decroperator--(int);
因此选项C正确,选项D是后缀--作为非成员函数重载的形式。
故本题答案为C。
20.有如下程序:
#include
usingnamespacestd;
classBase{
public:
Base(intx=0):
valB(x){cout< ~Base(){cout< private: intvalB; }; classDerived: publicBase{ public: Derived(intx=0,inty=0): Base(x),valD(y){cout< ~Derived(){cout< private: intvalD; }; intmain(){ Derivedobjl2(2,3); return0; } 运行时的输出结果是______。 A、2332B、2323C、3232D、3223 本题主要考查了派生类的构造函数与析构函数。 构造函数在对象被创建的时候由系统自动调用,建立派生类对象时,构造函数的执行顺序如下: (1)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右); (2)执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);(3)执行派生类的构造函数。 析构函数用来完成对象被删除前的一些清理工作,在对象的生存期即将结束的时刻被系统自动调用。 派生类的析构函数在执行过程中也要对基类和成员对象进行操作,但它的执行过程与构造函数严格相反,即: (1)对派生类新增普通成员进行清理。 (2)调用成员对象析构函数,对派生类新增的成员对象进行清理。 (3)调用基类析构函数,对基类进行清理。 main()函数中,第一条语句Derivedobjl2(2,3);创建派生类对象obj12时,先以第一个实参2初始化基类Base成员valB,执行基类Base的构造函数,输出valB的值2;然后以第二个实参值3初始化派生类Derived成员valD,执行派生类Derived的构造函数,输出valD的值3;在对象obj12的生存期即将结束时,先调用派生类Derived的析构函数,输出valD的值3,然后调用基类析构函数,输出valB的值2。 因此本程序运行时的输出结果是2332。 故本题答案为A。 21.有如下程序 #include usingnamespacestd; classA{ public: A(inti=0): r1(i){} voidprint(){cout<<'E'< voidprint()const{cout<<'C'< voidprint(intx){cout<<'P'< private: intr1; }; intmain(){ Aa1; constAa2(4); a1.print (2); a2.print(); return0; } 运行时的输出结果是______。 A、P8-E4B、P8-C16-C、P0-E4-D、P0-C16- 本题主要考查了函数的重载、常对象和常成员函数。 使用const关键字修饰的对象称为常对象,使用const关键字说明的成员函数称为常成员函数,通过常对象只能调用它的常成员函数,而不能调用其他成员函数。 两个以上的函数,具有相同的函数名,但是形参的个数或类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。 const关键字可以用于对重载函数的区分。 在main()函数中,第一条语句定义类A的对象a1,系统自动调用类A的构造函数,以默认形参值0初始化对象a1的数据成员r1;第二条语句定义常对象a2,系统自动调用类A的构造函数,以实参值4初始化对象a2的数据成员r1;第三条语句通过对象a1调用带一个整型形参的没用const修饰的print()函数,表达式r1*r1*r1=0*0*0=0,因此输出P0-,第四条语句常对象a2调用的是用const修饰的常成员函数print(),表达式r1*r1的值为: 4*4=16,因此输出C16-。 故程序运行时的输出结果是P0-C16-故本题答案为D。 22.若MyClass是一个类名,且有如下语句序列 MyClassc1,*c2; MyClass*c3=newMyClass; MyClass&c4=c1; 上面的语句序列所定义的类对象的个数是______。 A、1B、2C、3D、4 本题主要考查了对象的定义。 第1条语句定义了MyClass类的对象c1和MyClass类的对象指针变量c2。 因为定义对象指针只是得到了用于存储对象地址的指针变量,不会创建对象,因此第1条语句只定义了一个类对象c1;第2条语句定义了对象指针变量c3。 并初始化c3指向用new运算符动态创建的对象,因此第2条语句用new运算符动态定义了一个对象;第3条语句声明了对象引用c4,并将其初始化为对象c1的一个别名。 因为创建对象引用只是为已有对象创建别名,不会创建对象,因此第3条语句没有创建类对象。 因此这3条语句所定义的类对象的个数是2。 故本题答案为B。 23.下列关于类模板的描述中,错误的是______。 A、类模板的成员函数都是模板函数B、可以为类模板参数设置默认值 C、类模板描述了一组类D、类模板中只允许有一个类型参数 本题主要考查了类模板。 使用类模板可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值能取任意类型。 因此选项C正确;类模板声明的语法形式为: template<模板参数表> class类名 {类成员声明} 其中"模板参数表"由用逗号分隔的若干类型标识符或常量表达式构成,因此选项D错误;可以为类模板中的类型参数和非类型参数提供默认值,如果某个类模板参数有默认值,该列表中的所有后续参数也都必须指定默认值。 因此选项B正确。 类模板的成员函数都是模板函数,因此选项A正确。 故本题答案为D。 24.有如下程序 #include usingnamespacestd; classTest{ public: Test(){} Test(constTest&t){cout<<1;} }; Testfun(Test&u){Testt=u;returnt;} intmain(){Testx,y;x=fun(y);return0;} 运行这个程序的输出结果是______。 A、无输出B、1C、11D、111 本题主要考查了拷贝构造函数。 拷贝构造函数是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类的对象的引用。 作用是使用一个已知的对象初始化一个正在创建的同类对象。 拷贝构造函数在以下三种情况下都会被调用: 1)当用类的一个对象初始化该类的另一个对象时; 2)如果函数的形参是类的对象,调用函数时,进行形参和实参结合时; 3)如果函数的返回值是类的对象,函数执行完成返回调用者时。 函数fun的形参为类Test的对象的引用,main()函数中,第二条语句x=fun(y);调用函数fun()。 使引用u为实参y的别名,然后执行函数fun()的第一条语句Testt=u;,即用Test类的对象u去初始化该类的另一个对象t,系统将自动调用拷贝构造函数,输出1,然后执行函数fun()的第二条语句returnt;,函数fun()的返回值为Test类的对象t,函数执行完成返回调用者时,系统将第二次自动调用拷贝构造函数,输出1,程序执行结束。 故运行这个程序的输出结果是11。 故本题答案为C。 25.要定义一个引用变量p,使用引用类MyClass的一个对象,正确的定义语句是______。 A、MyClassp=MyClass;B、MyClassp=newMyClass; C、MyClass&p=newMyClass;D、MyClassa,&p=a; 本题主要考查了引用的声明。 引用的声明形式: 类型标识符&引用名=目标变量名; 说明: (1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进行初始化。 (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。 选项A和选项B在变量p的左边没有标识&,不符合引用声明形式,因此选项A和选项B错误;选项C中,赋值号右边不是已存在的变量名,不符合引用声明的语法形式,因此选项C错误;选项D先声名对象a,然后声明引用为已声明变量名a的别名,符合引用声明形式,因此选项D正确。 故本题答案为D。 26.下列关于函数的描述中,错误的是______。 A、函数可以没有返回值B、函数可以没有参数C、函数可以是一个类的成员 D、函数不能被定义为模板 本题主要考查了函数。 函数定义的语法形式: 类型标识符函数名(形式参数列表) { 语句序列 } 无返回值的函数其类型标识符为void。 故选项A正确;函数可以没有参数,当函数定义时没有形参,则函数调用时,<实参表>亦为空,故选项B正确;函数可以是类的成员,故选项C正确;模板是C++支持参数化多态性的工具,函数模板实现了类型参数化,将函数处理的数据类型作为参数,提高了代码的可重用性,故选项D错误。 故本题答案为D。 27.下列程序段中包含4个函数,其中具有隐含this指针的是______。 intfun1(); classTest{ public: intfun2(); friendintfun3(); staticintfun4(); }; A、fun1B、fun2C、fun3D、fun4 本题主要考查了this指针。 this指针是一个隐含于每一个非静态成员函数中的特殊指针。 它是一个指向正在被该成员函数操作的对象,也就是要操作该成员函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IT 认证 考试