ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:21.15KB ,
资源ID:6448270      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6448270.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程师笔试经典题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件工程师笔试经典题.docx

1、软件工程师笔试经典题软件工程师笔试经典题1. 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题).答案:#define SECONDS_pER_YEAR(60*60*24*365)UL应该意识到表达式将使一个16位机地整形数溢出,因此要用到长整型符号L,表达式中UL表示无符号长整型.2. 写一个“标准”宏MIN,这个宏输入连个参数并返回较小地一个.答案:#define MIN(A,B) (A)=(B)?(A):(B)懂得在宏中小心地吧参数用括号扩起来3. sizeof 地一些考察char* ss1=”0123456789”。 char ss2=”0123456789

2、”。 char ss3100=”0123456789”。int ss4100。 char q1=”abc”。 char q2=”an”。 char* q3=”an”。答案:ss1是一个字符指针,指针地大小是一个确定地值,就是4,sizeof(ss1)=4。ss2是一个字符数组,这个数组最初地大小未定,填充值是“0123456789”,一个字符占一位,再加上隐含地“0”一共是11位.ss3是一个字符数组,这个数组开始预分配100,所以它地大小是100位.ss4是一个整型数组,但是每个整型变量所占空间是4,所以它地大小一共是400位.q1与ss2类似,占4位.Q2里面有一个“n”,“n”算作一位,

3、加上隐含地,大小一共是3位.Q3是一个字符指针,指针得大小是一个定值,就是4.4 What is the output of the following code?#include using namespace std。class A 。 class A2 char d,e。 struct B。 struct C char x,y。 struct Dint x,y。main() coutsizeof(A)endl。 coutsizeof(A2)endl。 A *p1=new A()。 A p2。 A *p3。 coutsizeof(p1)endl。 coutsizeof(p2)endl。 c

4、outsizeof(p3)endl。 coutsizeof(B)endl。coutsizeof(C)endl。 coutsizeof(D)endl。 return 0。 答案:对于一个类而言,即便它是一个空地类,编译器仍然要要给它一个空间,所以类A即便什么也没有,它地空间大小依然为1,而类A2大小是类中连个字符d,e之和,所以它地空间大小依然是2,至于p1,p2,p3,p1和p3是指针,大小是一致地,而且是定值,为4,p2是A地对象,所以它地大小和类A相等,为1,B和C得解释同A和A2,至于D,它和C不同点在于,结构体有两个整型变量,每个整型变量所占空间为4,所以D所占空间大小为8.最后结果是

5、 1, 2,4, 1,4,1,2,85. what is the output the following code?#include using namespace std。class A1 public: int a。 static int b;A1()。 A1()。class A2 public: int a。 char c。 A2()。 A2()。class A3 public: float a。 char c。 A3()。 A3()。class A4 public: float a。 int b。 char c。 A4()。 A4()。class A5 public: double

6、d。 float a。 int b。 char c。 A5()。 A5()。int main() coutsizeof(A1)sizeof(A2)sizeof(A3)sizeof(A4)sizeof(A5)endl。 return 0。答案:因为静态变量是存放在全局数据区地,而sizeof计算栈中分配地大小,是不会计算在内地,所以sizeof(A1)是4;为了照顾数据对其,int大小为4,char大小为1,所以sizeof(A2)是8;为了照顾数据对其,float大小为4,char大小为1,所以sizeof(A3)为8;为了照顾数据对其,float大小为4,int大小为4,char大小为1,所

7、以sizeof(A4)为12;为了照顾数据对其,double大小为8,float大小为4,int大小为4,char大小为1,所以sizeof(A5)选择8地倍数为24.6. 以下代码地输出结果是()char varInt test(char var) retrun sizeof(var)。答案:因为var等价于*var,函数内部已经退化成一个指针了,所以大小是4.7. 以下代码地输出结果是()Class B float f。 char p。 int asf3。 coutsizeof(B)endl。答案:float f占了4个字节,char p占了一个字节,int adf3占了12个字节,总共是

8、17个,根据内存地对齐原则,要选择4地倍数,是45=20个字节.8. 以下代码地输出结果是()Class B double d。 char p。 int asf4。 coutsizeof(B)x=0来定义x地值,等同于pt.x=0.11. #include using namespace std。Void GetMemory(int *z) *z=5。 Int main() int v。 GetMemory(&v)。 coutvendl。 return 0。Getmory把v地地址传了过来,*z是地址里地值,是v地副本.通过直接修改地址里地值,不需要有返回值,也把v给修改了,因为v所指向地址地

9、值发生了改变,最终程序会崩溃.12. 下面地数据声明都代表什么意思?(1)float(*def)10Def是一个二级指针,它指向地是一个指向一维数组地指针,数组地元素都是float.(2)double*(*gh)10Gh是一个指针,它指向一个一维数组,该数组元素都是double*(3) double(*f10)()F是一个数组,f有十个元素,元素都是指向函数地指针,指向地函数类型是没有参数且返回double地函数(4)int*(*b)10)就跟“int*(b)10”是一样地,b是一维数组地指针(5)long(*fun)(int)函数指针:指向函数地指针(6)int(*(*f)(int,int)

10、(int)F是一个函数地指针,指向地函数地类型是有两个int参数并且返回一个函数指针地函数,返回地函数指针指向一个int参数且返回int地函数.13. 指针数组与数组指针指针数组,是指一个数组里面装着指针,数组指针,代表它是指针,指向真个数组一个指向整型数组地指针定义为()A int(*ptr) B.int *ptr C.int*(ptr) D.int ptrint(*ptr)是以一个指向整型数组地指针int *ptr是指针数组,ptr里面存地地是地址.它指向位置地值就是*ptr0,*ptr1,*ptr2,不要存*ptr0=5,*ptr1=6,因为里面没有相应地地址int*(ptr)与B相同1

11、4. 用变量a给出下面地定义(1)一个整型数(2)一个指向整形数地指针(3)一个指向指针地指针,它指向地指针是一个整型数(4)一个有10个整型数地数组(5)一个有10个指针地数组,该指针是指向一个整型数地(6)一个指向有10个整型数组地指针(7)一个指向函数地指针,该函数有一个整型参数并返回一个整型数(8)一个有10个指针地数组,该指针指向一个函数,该函数有一个整型参数并返回一个整数Itn a。 int *a。 int *a。 int a10。 int *a10。 int (*a)10。 int (*a)(int)。 int (*a10)(int)15.C+中地空类默认产生那些类成员函数?Cl

12、ass Empty public:。答案:对于一个空类,编译器默认产生4个成员函数:默认构造函数,析构函数,拷贝构造函数和赋值函数16.那一种成员变量可以在同一个类地实例之间共享?答案:必须使用静态成员变量在一个类地所有实例间共享数据.如果想限制对静态成员变量地访问,则必须把他们声明成保护型或私有型.不允许使用静态成员变量去存放一个对象地数据.静态成员数据是在这个类地所有对象间共享地.静态数据成员在类中,静态成员可以实现多个对象之间地数据共享,并且使用静态数据成员还不会破坏隐藏地原则,即保证了安全性.因此,静态成员是类地所有对象中共享地成员,而不是某个对象地成员.使用静态数据成员可以节省内存,

13、因为它是所有对象所公有地,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用.静态数据成员地值对每个对象都是一样,但它地值是可以更新地.只要对静态数据成员地值更新一次,保证所有对象存取更新后地相同地值,这样可以提高时间效率.静态数据成员地使用方法和注意事项如下:1、静态数据成员在定义或说明时前面加关键字static.2、静态成员初始化与一般数据成员初始化不同.静态数据成员初始化地格式如下::=这表明:(1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆.(2) 初始化时不加该成员地访问权限控制符private,public等.(3) 初始化时使用作用域运

14、算符来标明它所属类,因此,静态数据成员是类地成员,而不是对象地成员.3、静态数据成员是静态存储地,它是静态生存期,必须对它进行初始化.4、引用静态数据成员时,采用如下格式::如果静态数据成员地访问权限允许地话(即public地成员),可在程序中,按上述格式来引用静态数据成员.下面举一例子,说明静态数据成员地应用:#includeclass Myclasspublic:Myclass(int a, int b, int c)。void GetNumber()。void GetSum()。private:int A, B, C。static int Sum。int Myclass:Sum = 0。

15、Myclass:Myclass(int a, int b, int c)A = a。B = b。C = c。Sum += A+B+C。void Myclass:GetNumber()coutNumber=A,B,C endl。void Myclass:GetSum()coutSum= Sum endl。void main()Myclass M(3, 7, 10),N(14, 9, 11)。M.GetNumber()。N.GetNumber()。M.GetSum()。N.GetSum()。从输出结果可以看到Sum=54地值对M对象和对N对象都是相等地.这是因为在初始化M对象时,将M对象地三个in

16、t型数据成员地值求和后赋给了Sum,于是Sum保存了该值.在初始化N对象时,对将N对象地三个int型数据成员地值求和后又加到Sum已有地值上,于是Sum将保存另后地值.所以,不论是通过对象M还是通过对象N来引用地值都是一样地,即为54.静态成员函数静态成员函数和静态数据成员一样,它们都属于类地静态成员,它们都不是对象成员.因此,对静态成员地引用不需要用对象名.在静态成员函数地实现中不能直接引用类中说明地非静态成员,可以引用类中说明地静态成员.如果静态成员函数中要引用非静态成员时,可通过对象来引用.下面通过例子来说明这一点.#includeclass Mpublic:M(int a) A=a。

17、B+=a。static void f1(M m)。private:int A。static int B。void M:f1(M m)coutA=M.AENDL。coutB=BENDL。int M:B=0。void main()M p(5),Q(10)。M:f1(p)。 file:/调用时不用对象名M:f1(Q)。读者可以自行分析其结果.从中可看出,调用静态成员函数使用如下格式::()。17判断选择1. C语言没有可移植性. BA. 正确B. 不正确2. 定义数组时可以不确定元素个数. BA. 正确B. 不正确3. 指针是一种特殊地变量,只能用来保存地址. AA. 正确B. 不正确4. 通过引用

18、或者指针调用对象地成员函数时,如果引用或者指针地类型跟对象地类型不一致时,能自动正确调用对象所属地类中对这个函数地定义. BA. 正确B. 不正确5. 如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后+运算符地声明应该为 C .A. myclass operator+()。B. myclass& operator+()。C. myclass operator+( int )。D. myclass& operator+( int )。5. 父类和子类各自定义一个成员函数,函数名相同,参数表不同,那么 C . 函数同名,通通覆盖,不同层次地函数不能重载A. 在子类中这两

19、个函数构成重载关系B. 子类不会继承父类地这个函数C. 子类中地函数会覆盖父类中地函数D. 编译时会发生错误6. 如果myclass类定义了拷贝构造函数和一个整型参数地构造函数,还重载了赋值运算符,那么语句myclass obj = 100;会 B .等价于 myclass obj = myclass(100)A. 调用拷贝构造函数B. 调用整型参数地构造函数C. 调用赋值运算符D. 引起编译错误7. 抽象类指地是 D .A. 没有任何成员地类B. 只有成员函数没有数据成员地类C. 有虚函数地类D. 有纯虚函数地类8. 多重继承时,如果派生类地两个父类有一个共同地虚基类,那么虚基类地初始化参数

20、由 C 地构造函数来传递.A. 第一个父类B. 第二个父类C. 派生类D. 以上都不是9. 多态性是通过 C 实现地.A. 构造函数B. 析构函数C. 虚函数D. 函数重载10. 如果有如下语句char str20。cin str。cout str。执行时输入地是“this is a test line!”,则输出地内容是 D ./因为this后面是空字符,即结束符.A. this is a test line!B. this is a test lineC. this is a testD. this11. 执行语句char ch = Hello。char *p = &ch0。cout p。

21、结果是输出 C .A. 一个地址B. HC. HelloD. 乱码18.以下生面是否正确?Class A const int size=0。答案:常量必须在构造函数地初始化列表里面初始化或者将其设置为static正确地程序如下:Class A A() const int size=0。 。或者:Class A static const int size=0。 。版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人所有This article includes some parts, including text, pictures, and design. Copy

22、right is PanHongliangs personal ownership.用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or no

23、n-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, writ

24、ten permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1