c++笔试题含(答案)
C语言程序设计
一、选择题
(1)C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()
A)面向过程 B)面向对象 C)安全性 D)复用性
(2)C++语言的跳转语句中,对于break和continue说法正确的是()
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
一系C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
(3)for(int x=0,y=o;!x& &y<=5;y++)语句执行循环的次数是()
A)0 B)5 C)6 D)无次数
(4)考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()
A)test(5); B)test(5,8); 猝不及防是什么意思C)test(6,"#") D)test(0,0."*");
(5)下面有关重载函数的说法中正确的是()
A)重载函数必须具有不同的返回值类型;
B)重载函数形参个数必须不同;
C)重载函数必须有不同的形参列表
D)重载函数名可以不同;
(6)下列关于构造函数的描述中,错误的是()
A)构造函数可以设置默认参数;
B)构造函数在定义类对象时自动执行
C)构造函数可以是内联函数;
D)构造函数不可以重载
(7)下面描述中,表达错误的是() 食育教育
A)公有继承时基类中的public成员在派生类中仍是public的
B)公有继承是基类中的private成员在派生类中仍是private的
C)公有继承时基类中的protected成员在派生类中仍是protected的
D)私有继承时基类中的public成员在派生类中是private的
(8)应在下列程序划线处填入的正确语句是()
#include
class Ba
{ public:
void fun(){cout<<"Ba::fun"<<ENDL;}
};
class Derived:public Ba
{ void fun()
八年级下册历史 {_____________ //显示调用基类的函数fun()
cout<<"Derived::fun"<<ENDL;
}
};
A)fun(); B)Ba.fun(); C)Ba::fun(); D) Ba->fun();
(9)有如下程序:
金字旁的字有哪些字#include
class BASE{
char c;
public:
BASE(char n):c(n){}
virtual~BASE(){cout<<C;}
};
class DERIVED:public BASE{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
~DERIVED(){cout<<C;}
};
int main()
{ DERIVED("X");
return 0; 塔里木湖
}
执行上面的程序将输出()
A)XY B)YX C)X D)Y
二、填空题
(1)下面程序的打印结果是 [ 1]
#incude
int f(int);
int main()
{ int i;
for(i=0;i<5;i++)
cout<<F(I)<<"";
return0;
}
int f(int i)
{ static int k=1;
for(;i>0;i- -)
k + = i;
return k;
}
招工怎么写1 2 5 11 21
(2)在用class定义一个类时,数据成员和成员函数的默认访问权限是 [2] private 或 私有
(3)含有纯虚函数的类称为 [3] 抽象类
(4)已知intDBL(int n){return n + n;}和longDBL(long n){return n
+n;}是一个函数模板的两个实例,则该函数模板的定义是 [4] templateT DBL(T n){return n+n;}
选择题
对于全局函数 int f(void) ,与其完全等价的函数原型为:
A. int& f( ); B. int f(void ) const; C. const int f( ); D. A、B、C都不是
2. 类A中有唯一的非静态成员函数int f(A& one)和私有的数据成员int x;,那么在此成员函数的函数体中可以有语句:
A. return one.f(this); B. x=f(this); C. this->); D. int* const pX=&one.x;
3. 下面关于new 和delete操作符的说法,哪个是不正确的:
A. 使用new操作符,可以动态分配全局堆中的内存资源。
B. 若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用。
C. 实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。
D. 执行语句A * p=new A[100];时,类A的构造函数只会被调用1次。
4. 类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的:
A. TM* a; B. TN& a; C. TM a; D. TN a;
5. 类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代码,那么下列说法
正确的是:
A. 类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数。
B. 一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间。
C. 只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象。
D. 类A和类B中的同名虚函数的返回值类型必须完全一致。
6. 下列哪种函数可以是虚的:
A. 自定义的构造函数 B. 拷贝构造函数 C. 静态成员函数 D. 析构函数
7. 类A有一个实例化的常量对象a,那么下面的说法中不正确的是:
A. 类A中的非静态数据成员一定都是常量成员。
B. 通过a可以直接调用类A的常量成员函数。
C. a不能直接作为左值表达式使用。
D. a可以是静态常量对象。
8. 在不考虑强制类型转换的情况下,关于类中常量成员函数的下列说法不正确的是:
A. 常量成员函数中不能修改本类中的非静态数据成员。
B. 常量成员函数中可以调用本类中的任何静态成员函数。
C. 常量成员函数的返回值只能是void或常量。
D. 若常量成员函数中调用虚函数f,那么函数f在本类中也一定是一个常量成员函数。
9. 类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么:
A. 类C的继承方式只能采用public继承。 B. 可改用单继承的方式实现类C的同样功能。
C. 类A和类B至少有一个是抽象类。 D. 类A和类B至少有一个是虚基类。
祈福的拼音
10. 下列哪种用法不能体现类A和类B之间的组合关系:
A. 类A中声明数据成员B b;
B. 类A中声明数据成员B* b;
C. 类A中声明数据成员const B& b;
D. 类A中声明成员函数 B func( B& obj);
二、(共10分,每题2分,多选、少选、错选都不得分)多项选择
1. 下面关于指针变量和引用变量的说法正确的是: