首页 > 编程语言 >软件测试面试-编程(电子书)

软件测试面试-编程(电子书)

时间:2023-05-09 17:25:32浏览次数:60  
标签:函数 编程 派生类 面试 static C++ 基类 全局变量 软件测试

C++是面向过程也面向对象的语言,具有 预处理器、预处理器指令和宏、模板、对象、封装、继承、多态的特性。

1、C++程序的内存通常如何分配?

解答:

  • 全局数据区:通常存储全局变量、静态数据和常量
  • 代码区:所有类成员函数和非成员函数代码
  • 栈区:执行函数时分配的局部变量、函数参数、返回数据及返回地址等都是在栈区上创建的
  • 堆区:从堆区上分配的内存是在程序运行时由程序员申请的内存,在程序结时由程序员负责释放

2、请谈一下你对C++单元测试框架CppUnit的认识?

解答:CppUnit是C++单元测试框架,是个开源项目,最初版本移植自Junit,其主要功能就是对单元测试进行管理,并可以进行自动化测试。

CppUnit特点就是:

  • XML形式输出结果,可以获取附加数据以便于调试程序;
  • 类似编译器文本输出,并于IDE集成
  • 帮助宏更有利于测试套件的定义,并提供分层测试
  • 测试注册以减少重新编译的需要
  • 测试插件可以更快的编译测试
  • 可以保护封装测试的执行
  • 可支持Mfc和QT测试运行。

3、请分别详细解释C++中成员函数的重载、覆盖和隐藏的区别和联系。

解答:

重载:相同的范围;函数名相同;参数不同;virtual关键字可有可无。

覆盖:不同的范围,函数名相同;参数相同;基类函数必须有virtual关键字。

隐藏:指派生类函数屏蔽了与其同名的基类函数,如果派生类的函数和基类函数同名但参数不同,不论有没有virtual关键字,基类函数被隐藏;

如果派生类的函数和基类函数同名且参数相同,但基类函数没有virtual关键字,基类函数被隐藏。

4、谈谈对C++语言虚函数的认识,并解释纯虚函数的用途。

解答:虚函数首先是一种成员函数,可以被该类的派生类中被重新定义并被赋予另外一种处理功能。虚函数允许派生类取代基类所提供的实现,是动态确定的。

纯虚函数是一个抽象类,是不能被实例化的,用来规范派生类的行为,实际上也就是所谓的“接口”。

5、static全局变量与普通全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

解答:static全局变量是静态存储方式,普通全局变量也是静态存储方式,主要区别就是static全局变量限制了其作用域,只在定义该变量的源文件内有效,在其他源文件不能使用。static全局变量只能初始化一次,以防止在其他文件单元中被引用。将普通局部变量改为static局部变量就是改变了存储方式,即改变了它的生存期,static局部变量只能初始化一次,下一次依据上一次的结果值。?static函数与普通函数作用域不同,?static函数只在当前源文件使用,在当前源文件说明和定义,?static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。


 

C是面向过程的结构化语言,具有 高效、灵活、功能丰富、表达力强、移植性、兼容性、普遍性、基础性的特性。

1、使用bsearch()函数在包含300万个元素的数组中查找一个元素,最多需要进行多次比较?

解答:21。公式:log2(3000000)=21

2、如果使用下标超出了数组声明的界限,将发生什么情况?

解答:程序通过编译,甚至能够运行,但结果是不可预测,这会造成内存溢出问题。


Java是面向对象的语言。具有 面试对象技术、健壮性、多线程、安全性、分布式计算、跨平台、可移植性、动态性、高性能、解释执行、applet等一系列特点。

Java实现机制:

 

标签:函数,编程,派生类,面试,static,C++,基类,全局变量,软件测试
From: https://www.cnblogs.com/linxiu-0925/p/17385676.html

相关文章

  • 前端面试题-常见的水平垂直居中实现方案
    方案一:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="w......
  • 关于并发编程与线程安全的思考与实践
    作者:京东健康张娜一、并发编程的意义与挑战并发编程的意义是充分的利用处理器的每一个核,以达到最高的处理性能,可以让程序运行的更快。而处理器也为了提高计算速率,作出了一系列优化,比如:1、硬件升级:为平衡CPU内高速存储器和内存之间数量级的速率差,提升整体性能,引入了多级高速缓......
  • 单相锁相环。 在simulink中采用C语言实现锁相环,不是matlab编程语
    单相锁相环。在simulink中采用C语言实现锁相环,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C需要写的锁相环函数,程序的运行频率和实际的开关频率一致。仿真结果如图所示,基于双二阶广义积分器的锁相环成功锁得电网相位。且在初......
  • PWM整流器。 整个仿真采用simulink嵌C语言实现,不是matlab编程
    PWM整流器。整个仿真采用simulink嵌C语言实现,不是matlab编程语言ifend、forend,而是C语言,与DSP和32编程中的语言一样,整个仿真没有一个模块,只有C语言写的程序,程序的运行频率和实际的开关频率一致。包括基于双二阶广义积分器的锁相环、双闭环前馈解耦、SVPWM都是用C语言写的,代码可......
  • CPT204面向对象编程指南
    AdvancedObject-OrientedProgrammingCPT204–FinalProjectCPT204AdvancedObject-OrientedProgrammingFinalProjectTaskSheet2–SupplementaryCPT204-2223FinalProjectTaskSheet2–SupplementaryInfo●Thisdocumentcontainssupplementaryinformationon......
  • 1000个已成功入职的软件测试工程师简历经验总结:软件测试工程师简历项目经验怎么写?(含
    一、前言:浅谈面试 面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的。那如何才能顺利的通过面试,得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来看看吧。这里分享一下笔者十年测试生涯的面试总结!软件测试面试常......
  • 《Linux高性能服务器编程》学习记录(二)linux网络编程基础API
    Linux网络API主要有三种:socket地址API。socket最开始的含义是一个IP地址和端口对(ip,port)。它唯一地表示了使用TCP通信的一端,称其为socket地址。socket基础API。socket的主要API都定义在sys/socket.h头文件中,包括创建socket、命名socket、监听socket、接受连接、发起连接、读写......
  • 编程技巧
    一接口和面向接口编程1用ts编写基于interface的命令模式编写用户界面程序,页面有成百上千个子菜单约定基于命令模式编写负责子菜单的同事完成编程之后会将子菜单封装成一个命令对象,将其交给编写菜单集合界面的同事约定:调用子菜单的execute方法时会执行对应子菜单......
  • 不同设备如何统一语言编程平台高效开发?本文为你揭秘
     原文:https://mp.weixin.qq.com/s/8UHznZenc7A_UICta2bETg,点击链接查看更多技术内容。 随着数字化时代的发展,手机、平板、PC、电视、智能手表、车机等智能设备的普及率越来越高,但不同设备往往搭载了不同的操作系统。面对不同的操作系统与开发框架,应用开发难度大、成本高;同......
  • #yyds干货盘点# LeetCode面试题:不同的二叉搜索树 II
    1.简述:给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 示例1:输入:n=3输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]示例2:输入:n=1输出:[[1]]2.代......