2016年计算机二级《C++》模拟练习题及答案
1每个C++程序中都必须有且仅有一个( )。
A.类B.预处理命令C.主函数D.语句
参考答案:C
参考解析:每个C++程序中都要有且仅有一个主函数,该函数是程序的入口,而语句、预处理命令和函数及类在程序中都可以有多个。
2算法的空间复杂度是指( )。
A.算法在执行过程中所需要的计算机存储空间
B.算法所处理的数据量
C.算法程序中的语句或指令条数
D.算法在执行过程中所需要的临时工作单元数
参考答案:A
参考解析:一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。
3对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
参考答案:D
参考解析:首先知道有哪些排序的方法及各种排序方法在最坏情况下需要比较的次数,冒泡排序n(n-1)/2、希尔排序0(n1.5)、简单选择排序n(n-1)/2、堆排序O(nl0g2n)。
4数据库系统的三级模式不包括( )。
A.概念模式B.内模式C.外模式D.数据模式
参考答案:D
参考解析:数据库三级模式包括:概念模式、内模式、外模式。
5SQL语言又称为( )。
A.结构化定义语言
B.结构化控制语言
C.结构化查询语苦
D.结构化操纵语言
参考答案:C
参考解析:SQL语言的全称为StructuredQueryLanguage,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言四个部分。
6数据处理的最小单位是( )。
A.数据B.数据元素C.数据项D.数据结构
参考答案:C
7假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。
A.void~MyClass();B.~MyC|ass(intn);C.MyClass();D.~MyClass();
参考答案:D
参考解析:C++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~MyClass()。第7题 笔记记录我的笔记(0) | 精选笔记(1)选择笔记标签:试题内容(1)答案解析(0)
8有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是( )。
structnode
{chardata;
structnode*next;
}a,b,*p=&a,*q=&b;
A.a.next=q;B.P.next=&b;C.p->next=&b;D.(*p).next=q;
参考答案:B
9若有表达式“(w)?(--x):(++y)”,则其中与w等价的'表达式是( )。
A.w==1B.w==0C.W!=1D.W!=0
参考答案:D
参考解析:本题考查三目运算等。条件表达式的格式为a?b;c。它的含义是,当a为真时,取b的值,否则取c的值。在C语言程序中“为真”即“不等于零”,“为假”即等于0。所以和w等价的表达式是w非零。
10有如下函数模板声明:
template
TMax(Ta,Tb){return(a>b)?a:b;}
下列对函数模板Max( )的调用中错误的是( )。
A.Max(3.5,4.5)B.Max(3.5,4)C.Max(35,4.5)D.Max(3.5,4)
参考答案:B
参考解析:本题考查函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否调用函数模板中的对应形参。本题选项B中,编译系统从第一个参数“3.5”获得信息“double型数据”和从第二个参数获得信息“int型数据”,两者矛盾。
11C++语言中关于构造函数的说法正确的是( )。
A.构造函数的函数名不必和类名相同
B.构造函数只能有一个
C.每个类必定有构造函数
D.构造函数必有返回值
参考答案:C
参考解析:本题考查构造函数的概念。构造函数可以被重载,函数名必须和类名相同;构造函数可以有一个,也可以有多个;构造函数没有返回值。
12下列描述中,错误的是( )。
A.公有继承时基类中的公有成员在派生类中仍是公有成员
B.公有继承时基类中的保护成员在派生类中仍是保护成员
C.保护继承时基类中的公有成员在派生类中仍是公有成员
D.保护继承时基类中的保护成员在派生类中仍是保护成员
参考答案:C
参考解析:保护继承时,类成员的访问级别只能降低为保护模式,因此即使是基类的公有成员也被缩小为保护模式。
13结构化程序所要求的基本结构不包括( )。
A.顺序结构B.GOTO跳转C.选择(分支)结构D.重复(循环)结构
参考答案:B
参考解析:结构化程序设计的三种结构是顺序、分支和循环,不包括goto跳转,它只是分支结构的一种,也是一个关键字。
14在E—R图中,用来表示实体联系的图形是( )。
A.椭圆图B.矩形C.菱形D.三角形
参考答案:C
参考解析:E—R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。
15下列数据结构中,属于非线性结构的是( )。
A.循环队列B.带链队列C.二叉树D.带链栈
参考答案:C
参考解析:队列是一种允许在一端进行插入,而在另一端进行删除的线性表。栈也是一种特殊的线性表,其插入与删除只能在线性表的一端进行。
16对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。
A.log2nB.n/2C.nD.n+1
参考答案:C
参考解析:对线性表进行顺序查找,最坏情况下,如果从表头进行查找,要查找到表尾才能得出结果,因此需要比较n次。
17下面程序的运行结果为( )。#include
voidswap(int&a,intb)
{
inttemp;
temp=a++;
a=b:
b=temp:
}
voidmain()
{
inta=2,b=3;
swap(a,b);
cout<
}
A.2,3B.3,2C.2,2D.3,3
参考答案:D
参考解析:本题考查引用调用,因为函数swap引用调用参数a,所以在swap函数中a的变化会改变主函数中a的值,即a自加1。但b的值并未改变。
18若有以下程序:
#include
usingnamespacestd;
classBase
{public:
Base()
{x=0;}
intx;};
classDerivedl:virtualpublicBase
{public:
Derivedl()
{x=10;}};
classDerived2:virtua11publicBase
{public:
Derived2()
{x=20;}};
classDerived:publicDerivedl,protectedDerived2{};intmain()
{Derivedobj;
cout<
return0;}
该程序运行后的输出结果是( )。
A.20B.30C.10D.0
参考答案:A
参考解析:本题考查虚基类的应用。虽然Derivedl和Derived2都是由共同的基类x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员x只存在一份副本,不论在类Derivedl中修改,还是在Derived2中修改,都是直接对这唯一副本进行操作。本题程序执行语句“Derivedobj;”时.就会先调虚基类Base的构造函数,使得X=0,然后执行类Derivedl的构造函数使得x=10,再执行类Derived2的构造函数,使得x=20。最后输出x的值为20。
19下列选项中不合法的标识符是( )。
A.printB.FORC.&aD.-00
参考答案:C
参考解析:标识符的概念只能由数字、字母和下画线组成,并且只能以字母和下画线开头,所以选项C不正确。
20考虑函数原型voidtest(inta,intb=7,charz='*'),下面的函数调用中,属于不合法调用的是( )。
A.test(5);B.test(5,8);C.test(6,'#');D.test(0,0,'*');
参考答案:C
参考解析:题中函数声明带有默认参数,那么在C选项的调用中,将会把字符型实参#赋值给整型形参b,这不符合参数传递规则。
【2016年计算机二级《C++》模拟练习题及答案】相关文章: