国家二级C++机试(选择题)模拟试卷220
选择题
1.下列关于成员函数特征的描述中,错误的是( )。(A)
A. 成员函数一定是内联函数
B. 成员函数可以重载
C. 成员函数可以设置参数的默认值
D. 成员函数可以是静态的
解析:因为成员函数可以在类体内定义,也可以在类体外定义,所以成员函数不一定都是内联函数;成员函数可以重载,可以设置参数的默认值,成员函数可以是静态的。
2.设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为( )。(D)
A. 85
B. 120
C. 250
D. 350
解析:①具有n个结点的完全二叉树的深度为[long2n]+1,计算出该完全二叉树的深度为10。②设度为0的结点(即叶子结点)为n0,度为1的结点为n1,度为2的结点为n2,总结点数为n,深度为k。n=n1+n2+n0,出于n0=n2+1则n2=n0一1,故n=n1+n0一1+n0=n1+2n0一1。由于完全二叉树中度为1的结点数只有两种可能:0或1。③假设度为1的结点数为0即满二叉树,根据满二叉树的定义,其2m一1个结点,根据以上计算所得的深度10来计算,应有210一1=1024一1=1023个结点,显然与题目中700个结点不符。因此,度为1的结点数必然为1。故n=n1+2n0一1=1+2n0一1=2n0,则n0=n/2=700/2=3 50.
3.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(C)
A. log2n
B. n/2
C. n
D. n+1
解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。
4.设某棵树的度为3,其中度为3、1、0的结点个数分别为3、4、15。则该树中总结点数为(B)
A. 22
B. 30
C. 35
D. 不可能有这样的树
解析:本题采用画图法来求出结果。首先先画出包含3个度为3的结点;然后再添加4个度为1的结点,此时最大度为0的结点数为8。根据题目中描述的度为0的结点数有15个,这时要在书中添加度为2的结点,直到度为0的结点数位15。画图结束后,不管是什么样的树,总结点数都是30。
5.某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是( )。(C)
A. const void Show();
B. void const Show();
C. void Show()const;
D. void Show(const);
解析:常成员函数的说明格式如下:()const;,所以对于本题来说无参且无返回值的常成员函数show,其正确的函数原型是选项C)。
6.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和( )。(D)
A. 编码设计
B. 测试阶段
C. 运行阶段
D. 物理设计
解析:数据库设计目前一般采用生命周期法,即把整个数据库应用系统的开发分解成目标独立的四个阶段。它们分别是需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段。
7.在下列横线处应添加的语句是( )。
class Base{public:void fun(){cout<<\\(B)
A. Derived::fun
B. Base::fun();
C. Pubic::fun
D. fun();
解析:此题考查的是成员函数的调用。因为横线处的作用是调用基类的fun函数,又因为派生类中也有fun()函数,所以必须对fun()函数加以限定,即Base::fun();。
8.有如下程序
#include<iostream>
using namespace std;
int main(){
char a;
cin>>a;
if(a=’*’) cout<<\\(A)
A. ***
B. ###
C. ***###
D. 无输出
解析:本题的考点是双分支选择语句的执行流程,答题的关键点在于选择条件的判定。双分支选择语句的执行流程是首先计算if后表达式的值,如果表达式的值为非零,则执行if后面的分支,否则执行与其匹配的else后面的分支。本题执行时虽然输入变量a的值为‘+’,但是在执行if后括号内表达式(a=’*’)的时,由于此表达式为赋值表达式,因此表达式的值为赋值号右边的值’*’,其ASCII码的值非零,执行if后面的输出语句“***”后回车。
9.有如下程序:
#include<iostream>
using namespace std;
int main(){
int i,s=0;
for(i=1;s<20;i+=2)s+=i*i;
cout<i<<end1;
return 0;
}
运行这个程序的输出结果是( )。(C)
A. 3
B. 5
C. 7
D. 9
解析:在这段程序中for循环共执行3次,每次循环变量i的值增2,在执行第三次循环语句时,变量s的值等于25,大于20而退出循环,此时再执行循环变量i加2运算,所以最后变量i的值等于7。
10.要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是( )。
A
解析:此题考查的是一维数组定义时的初始化。当数组声明时没有给出数组的大小但是有初始化列表时,数组的大小就由列表中元素的个数来确定。所以选项A中数组只定义3个元素,不符合题目。
11.定义学生选修课程的关系模式:SC(S#,Sn,C#,Cn,G)(其属性分别为学号、姓名、课程号、课程名、成绩)。则对主属性部分依赖的是(A)
A. S#→Sn
B. (S#,C#)→G
C. (S#,C#)→S#
D. (S#,C#)→C#
解析:关系模式SC中,学号是学生的唯一编码,姓名对主属性具有依赖。
12.有如下程序:
#inc1ude<iostream>
using namespace std;
c1ass MyClass{
public:
MyClass(){++count;)
~MyClass(){——count;)
static int getCount(){retum c
本文档预览:3600字符,共7974字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载