国家二级(C++)机试模拟试卷290
选择题
1.if语句的语法格式可描述为:
格式1:if()
或
格式2:if()
else
关于上面的语法格式,下列表述中错误的是( )。(A)
A. 部分可以是一个if语句,例如if(if(a==0)…)…
B. 部分可以是一个if语句,例如if(…)if(…)…
C. 如果在前加上逻辑非运算符!并交换和的位置,语句功能不变
D. 部分可以是一个循环语句,例如if(…)while(…)…
解析:本题考查if语句,if语句的条件部分不能嵌套if语句,所以A选项错误;B选项就是if语句嵌套;C选项其实就是将判断条件颠倒,然后执行语句也颠倒,所以效果一样;D选项也正确。
2.假定一个类的构造函数为A(int aa,int bb){a=aa–;b=a*1)b;},则执行Ax(4,5);语句后,x.a和x.b的值分别为( )。(C )
A. 3和1 5
B. 5和4
C. 4和20
D. 20和5
解析:因为aa后减,所以a=4;b的值与a、bb相关,b=4*5=20,与aa没有任何关系。
3.下列排序方法中,最坏情况下比较次数最少的是( )。(D)
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
解析:冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较n(n—1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。
4.有以下程序:
#include
using namespace std;
class R
{
public:
R(int r1,int r2)
{
R1=r1;
R2=r2;
}
void prim();
void printoconst;
private:
int R1,R2;
};
void R::print()
{
cout<<R1<<\\(C)
A. 5,4
B. 4,5
C. 20,52
D. 52,20
解析:此题中,语句R a(5,4)调用构造函数R(int r1,int r2),但未有输出结果;b.print();调用常成员函数(因为b是常对象)void print()const,输出结果是20,52。
5.有如下程序:
#include<iostream>
using namespace std;
class A{
public:
A(int i){x=i;}
void dispa(){cout<<x<<’,’;}
private:
int x;
};
class B:public A{
public:
B(int i):A(i+10){x=i;}
void dispb(){dispa();cout<<x<<end1;}
private:
int X;
};
int main(){
B b(2);
b.dispb();
return 0;
}
执行这个程序的输出结果是( )。(C)
A. 10,2
B. 12,10
C. 12,2
D. 2,2
解析:本题考查派生类的构造函数和基类的构造函数。本题中类B继承类A,定义了一个类丑的对象并初始化b(2),此时会执行类B的构造函数,执行的结果是继承类A中的私有成员赋值了12,给类B自身的数据成员x赋值了2,执行b.dispb()后,输出类A的私有成员x,输出类B自身的数据成员,所以答案为C。
6.下列语句中,错误的是( )。(B)
A. const int buffer=-256;
B. const int temp;
C. const double*point;
D. const double*rt=-new double(5.5);
解析:符号常量声明语句的语法格式是:const类型名符号常量=初值表达式,选项B)中未给常变量赋初值,故错误;而选项C)中定义的是一个指向浮点型常量的指针,而不是定义一个浮点型常量,所以可以不赋初值。
7.有如下头文件:
int f1():
static int f2();
class MA {
public:
int t3();
static int f4();
};
在所描述的函数中,具有隐含的this指针的是( )。(C)
A. fl
B. t2
C. t3
D. f4
解析:只有类的非静态成员函数才隐含this指针,其作用域是类内部,当类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,而不必一定写上this。所以本题答案为C。
8.面向对象方法中,继承是指( )。(D)
A. 一组对象所具有的相似性质
B. 一个对象具有另一个对象的性质
C. 各对象之间的共同性质
D. 类之间共享属性和操作的机制
解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
9.有如下两个类定义:
class XX{
private:
double x1;
protected:
double x2;
public:
double x3;
};
class YY:protected XX{
private:
double yl;
protected:
double y2;
public:
double y3;
};
在类YY中保护成员变量的个数是( )。(C)
A. 1
B. 2
C. 3
D. 4
解析:本题考查保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,所以基类的成员x2、x3变成了保护成员
本文档预览:3600字符,共17774字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载