整理之c++笔试

整理之c++笔试
一、 填空题(25小题,共50分) 
(以下每小题1分,共10分)
1. 在C++中,函数参数有两种传递方式,它们是值传递和 地址或指针或引用传递 。
2. 当一个成员函数被调用时,该成员函数的 this指针 指向调用它的对象
3. 在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。对两个有相同名字的数据成员进行访问时,如果没有 作用域分隔符限定时 ,对此数据成员的访问将出现歧义。
4. 拷贝构造函数使用 引用 作为参数初始化创建中的对象。
5. 在公有继承的情况下,基类数据成员在派生类中的访问权限 保持不变 。
6. 描述命题”A小于B或小于C”的表达式为 A<B||A<C 。
7. 用new申请某一个类的动态对象数组时,在该类中必须能够匹配到 没有形参的或缺省参数 构造函数,否则应用程序会产生一个编译错误。
8. 静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象 共享 。
9. 为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与 与最近的if 配对。
10. 设”int a=3,b=4,c=5;”,表达式”(a+b)>c&&b==c”的值是 0 。
(以下每小题2分,共20分)
11. 面向对象的程序设计有四大特征,它们是抽象、封装、 继承 、 多态 。
12. 在Visual C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型 不同 ;在基类和派生类中,成员函数的覆盖是指 派生类成员函数与在基类被覆盖的成员函数名、参数个数、参数类型和返回值类型均相同 。
13. 构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括构造函数名与
类名相同,而析构函数名是在类名前加一个~、 析构函数没有参数 、 析构函数可以定义为虚函数 、无返回值、不能被重载、一个类中只有一个析构函数
14. 动态联编要满足两个条件,它们是 被调用的成员函数是虚函数 、 用对象的指针或引用调用成员函数 。
15. 在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为 抽象类 ,定义该类至少具有一个 纯虚函数 。
16. 在C++类中,const关键字可以修饰对象和成员函数,const对象不能 被修改 ,const成员函数不能 修改类数据成员 。
17. 举出C++中两种用户自定义的数据类型: 类 、 枚举
18. C++中没有字符串类型,字符串是通过 字符数组 来表示的,每一个字符串都有一个结尾字符 /0 。
19. C++中没有输入输出语句,输入输出是通过 输入输出库 实现的, 写出一条打印整型变量n的输出语句:cout<<n;
20. 举出C++中两种代码复用的方式: 继承 、 复用 。
(以下每小题4分,共20分)
21. 下面程序的运行结果是 3 。
#include <stdio.h>
void main()
{
char a=’a',b=’j';
float x;
x=(b-a)/('F’-'A’);
printf(“%d/n”,(int)(3.14*x));
}
22. 下面程序的运行结果是2 5 8 11 14。
#include “iostream.h”
void main( )
{
int i=1;
while (i<=15){
i++;
if (i%3!=2) continue;
else cout <<”i=”<<i<<endl;
}
}
23. 下面程序的运行结果是________。
#include “iostream.h”
class test
{
private:
pasco
int num;
float fl;
public:
test( );
int getint( ){return num;}
float getfloat( ){return fl;}
~test( );
};
test::test( )
{
cout << “Initalizing default” << endl;
中国海商法协会num=0;fl=0.0;
}
test::~test( )
{
cout << “Desdtructor is active” << endl;
}
void main( )
{美国十次宜春院
test array[2];
cout << array[1].getint( )<< ” ” << array[1].getfloat( ) <<endl;
}
Initalizing default
Initalizing default
0 0
Desdtructor is active
Desdtructor is active
24. 下面程序的运行结果是________。
青鸟网
#include <iostream.h>
class A
{
public:
A(){cout<<”A::A() called./n”;}
virtual ~A(){cout<<”A::~A() called./n”;}
};
class B:public A
{
public:
B(int i){
cout<<”B::B() called./n”;
buf=new char;}
左翼
virtual ~B()
{
delete []buf;
cout<<”B::~B() called./n”;
}
private:
char *buf;
};
void fun(A *a)
{
delete a;
}
void main()
{
A *a=new B(15);
fun(a);
}
A::A() called.
B::B() called.
B::~B() called.
A::~A() called.
25. 下面程序的运行结果是________。
#include <stdio.h>
int a[ ]={1,3,5,7,9};
int *p[ ]={a,a+1,a+2,a+3,a+4};
void main( )
{
printf(“%d/t%d/t%d/n”,a[4],*(a+2),*p[1]);
printf(“%d/t%d/t%d/n”,**(p+1)+a[2],*(p+4)-*(p+0),*(a+3)%a[4]);

本文发布于:2024-09-22 04:17:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/435052.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:成员   函数   参数   没有   对象   继承   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议