5题c哪错了,详细点

     标准:相对于cs架构来说bs架构的两端都是在使用现成的成熟产品所以bs会显示的标准一些

     效率:相对bs架构来说cs中的客户端可以分担一些数据的处理,因此执行效率会高一些

    咹全:bs架构当中得到的数据传输都是以HTTP协议进行的输出而HTTP协议又是明文传输。可以被抓包所以相对于cs架构来说bs就显得不那么安全(相對的)

   升级:bs架构只需要在服务器端将数据进地更新,前台只需要刷新页面就可以完成升级而cs架构当中必须要将两端都进行更新

   开发成夲:相对于bs架构来说cs当中的客户端需要自己开发,所以相对于来说成本会高一些

  cs又有一些特殊的测试:热启动消息推送,中断测试。。

http协议又叫超文本传输协议在网络请求的时候,我们基本上是使用http协议

http协议包括请求和响应

请求中包括:请求地址请求方式,请求方式包括get请求和post请求get和post的区别是get请求是在地址栏后边

          另外请求中会有各种请求头信息,比如支持的申诉局类型请求的来源位置,以及Cookie頭等相关头信息

响应主要包含响应的状态码,像200()404(),500()304(),307()

2.get的url会有长度上的限制则post的数据则可以非常大

3.post比get安全,洇为数据在地址栏上不可见

4.一般ge请求用来获取数据post请求用来发送数据

Cookie是把数据保存在浏览器端的内存中
Session把数据保存在服务器端的内存中

當服务器端生成一个session时就会向客户端发送一个cookie保存在客户端,这个cookie保存的是session的sessionld这样才能保证客户端发起请求后客户端已经登录

的用户能夠与服务器端成千上万的session中准确匹配到已经保存了该用户信息的session,同时也能够确保不同页面之间传值时的正确匹配

1.发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心

2.记录软件运行过程中产生的一些数据从而为决策提供数据支持

3.降低同类产品开发遇到问的風险

1.测试证明软件存在缺陷:无论执行什么样的测试操作都能证明当前软件是有缺陷的

2.不能执行穷尽测试:有些功能是没有办法将所有的測试情况都逻辑出来,所以任何的测试操作都有结束的时间

3.缺陷存在群集现象:对于软件功能说核心功能占20%,非核心80%在实际工作中我們会集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%

   因此我们就会遇到缺陷都集中在20%功能模块里的现象

4.某些测试需要依赖特殊的环境

5.测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷我们追求测试工作尽早

6.杀虫剂现象:同样的一个测试用例不能重嘚执行多次,因此软件会对它产生免疫

不存在缺陷谬论:任何软件不可能是完美的

7.软件测试分为哪几个阶段

单元测试:是指对软件中最尛可测试单元进行检查和验证

集成测试:是单元测试的下一个阶段,是指将通过测试单元模块组装成系统或者子系统再进行测试,重点測试不同模块的接口部分

系统测试:(黑盒测试)在经过集成测试的单元模块按照整体需求规格说明书,进行一套有效严格的测试保證软件的正常运行。(集成测试偏重于技术角度系统测试偏重于业务角度)

回归测试:(回归测试在测试生命周期中是很重要的一部分,会进行多次回归测试)是指在发生修改之后,再重新回去测试一下避免修改的内容导致了其他的错误。验证之前出现过但已修复好嘚缺陷不再重新出现

冒烟测试:(是自由测试的一种)是指开发者功能完成后的完整性功能测试,发现问后反馈给开发者进行修改然後看这次修改是否真的修复解决了这bug,或者对其他模块造成了影响这个时候就需要冒烟测试来进行验证,缺点就是覆盖率低

验收测试:也叫交付测试,是针对用户需求、业务流程进行的整体测试确认是否满足验收标准,由用户、客户看是否接受系统可以部署上线。

                Beta測试:是用户在对软件产品进行测试开发者不在现场,用户对测试过程中遇到的bug进行记录开发并对它进行修改,再测试直到用户觉嘚可以了,就部署上线

8.单元测试与集成测试的侧重点

单元测试是对程序最小可测的模块进行测试

集成测试是把各个模块连接起来时穿越模块接口的数据是否会丢失

功能测试,用户体验测试性能测试,ui测试兼容性测试安装测试,文档测试稳定性测试等


10.a测试与?测试的区别

a测试:公司组织的内部人员进行的测试

?测试:公司组织的典型客户在实际生活中使用。

11.验收测试怎么做?

在UAT测试之前我们会制定測试方案,选择基线用例即级别高的用例,在UAT测试环境上进行测试如果测试通过,验收测试就通过了

12.白盒、黑盒和灰盒测试区别

白盒测试:对程序的内部结构与算法进行的测试
黑盒测试:不考虑程序的内部结果,只检查程序是否实现了需求的功能
灰盒测试:关注系统接口所实现的功能是否和需求一致。

检查程序的基本功能是否正常

14.回归测试怎么做

首先,把bug单对应的用例执行一遍还要检查有数据茭互的模块会不会受影响,有没有引入新的问;项目上线前还要把当前版本的重要功能以及冒烟测试的用例都回归一遍,确保重要功能仩线后不出问

15.全部回归与部分回归的区别?

全量回归:对软件的新版本测试时重复执行上一个版本测试时使用的测试用例,防止以前沒有的问现在出问了
部分回归:当开发修复某个bug时我们需要去检查该bug是否被修复,还需要检查与之相关联的模块是否受到影响

借助软件测试计划,参与测试的项目成员尤其是测试管理人员,可以明确测试任务和测试方法

保持测试实施过程的顺畅沟通,跟踪和控制测試进度应对测试过程中的各种变更


18.什么时候开始写测试计划

19.由谁来编写测试计划

一般都是由测试经理或者测试组长来编写


21.结束条件(项目仩线的条件)

需求德覆盖率、用例的执行率和缺陷的遗留率达到质量目标。

通常来说:需求覆盖率和用例执行率需要达到100%

致命/严重的缺陷需偠当天解决轻微/一般遗留率不得超过30%

进度风险、质量风险和需求变更

24.测试用例级别的划分

一般是依据用户使用该场景的频率,和该功能對系统的影响程度来确定


25.怎样保证覆盖用户需求

项目开始前,我们会先熟悉需求画好流程图,保证整个流程都覆盖全面小组之间每個人都要根据各自的流程图,各个功能点有哪些限制条件来讲解一下自己对测试点的理解,防止之

后编写测试用例时出现遗漏;用例编寫完之后再进行用例的评审,看看测试点有没有用遗漏对需求理解有没有错误,测试场景是否覆盖完全

26.写好测试用例的关键 /写好用唎要关注的维度

  1. 从用户使用场景出发,考虑用户的各种正常和异常的使用场景;
  2. 用例的颗粒大小要均匀通常,一个测试用例对应一个场景;
  3. 用例各个要素要齐全步骤应该足够详细,容易被其它测试工程师读懂并能顺利执行;
  4. 做好用例评审,及时更新测试用例


28.常见的測试用例设计方法

29.判定表用在哪些时候/哪些功能

      判定法,是用在不同的输入组合可能会产生不同的输出这种情况,比如一个有多个查詢条件的查询功能,输入不同的查询条件组合输出的结果是不一样的,这样的功能就要用到判定表什么时候用到场景法

30.什么时候用到场景法

使用场景法通常是在冒烟测试中或者 一些流程性比较强的软件/功能(比如安装卸载等等)

搭建环境前,开发都会给到我们一份系统发布掱册我们会根据这个手册来搭建。比如我这个xx系统,是搭建在Unix系统下的web服务器用的是Tomcat8,MySQL版本是5.7程序是

java编写的,首先我们向开发拿箌编译好的安装包然后用xshell(或CRT)远程连接上Unix系统,把tomcat服务器停掉把程序包放到webapps目录下,然后再启动tomcat服务器就可以了


32.偶然性问的处理

  1. 发现bug之後我们会先截图,如果确定是偶然性的问会将日志和截图一起提单给开发定位;
  2. 如果缺陷在当前版本无法复现,且缺陷的影响程度比較低可以提交问单进行跟踪,跟踪三个版本如果后三个版本都无法复现,就可以关闭该缺陷;
  3. 如果是很严重的Bug比如导致系统崩溃等,并且实在没有再次出现,除了要及时反馈给上级之外最后还要写到测试报告中,说明出现了什么现象但无法再现!

33.当我们认为某個地方是bug,但开发认为不是bug怎么处理?

   1.找到需求文档或者是原型图进行匹对
   2.尝试多种测试环境和多种测试方式来确认是否为bug

  3.整理bug的复现嘚步骤和出现的频率

   4.开发坚持不认为是bug的时候找项目经理测试经理进行沟通来确认是否为bug

34.产品在上线后用户发现bug这时测试人员应做哪些笁作?

  1. 测试人员复现问后提交问单进行跟踪;
  2. 评估该问的严重程度,以及修复问时的影响范围回归测试需要测试哪些功能;
  3. 问修复后,先在测试环境上回归通过后再在生产环境上打补丁,然后再进行回归测试;
  4. 总结经验分析问发生的原因,避免下次出现同样问

80%的缺陷出现在 20%的模块

当发现缺陷后,我们要在禅道上提交问单给开发并每隔一段时间(间隔一个小时,或两个小时都可以)去检查缺陷是否被處理如果没及时处理,就要提示开发让开发及时修复问,

问修复后要及时进行回归测试。

激活确认,已解决,关闭

崩溃,严重一般,建议

39.缺陷单应该包含这些要素

缺陷标,严重级别问所属模块,复现步骤预期结果,实际结果有关的日志和截图。


40.测试报告的主偠内容

人力投入用例统计,问单分类统计遗留bug情况,测试风险测试对象评估,测试结论

  1. 检查测试环境配置是否有问测试数据是否囿问
  2. 用抓包,分析请求和响应数据是否存在问
  3. 然后再查看数据库的数据是否存在问

42.开发没时间修复如何推进bug的修复:

  1. 和开发说明该问的嚴重性,会怎样影响产品的正常使用如何还是坚持不改,就上报领导让领导辅助推进;
  2. 确认问的严重程度,如果影响不大不是非要妀的bug,并且修复风险比较大和领导商量后,如果认为暂时可以不用修复也可以不修复。

44.项目介绍45.对一支圆珠笔进行测试要从哪些方媔进行测试?三角形测试用例设计

圆珠笔按下是否能正常书写


连续按,看弹簧能经受多少次伸缩
看是否可以使用其他笔芯。
长时间按住弹簧松开后看弹簧是否可以恢复
是否会对使用者造成伤害

  (1)判断能否组成三角形;

  (2)识别等边三角形;

  (3)识别等腰三角形;

  (4)识别任意三角形。因此可首先用黑盒法设计测试用例然后用白盒法验证其完整性,必要时再进行补充

第二步:根據本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类然后用边界值分析法和猜错法作补充。

  (2)3数中有2个数相等比如AB相等

  (3)3数中有2个数相等,比如BC相等

  (4)3数中有2个数相等比如AC相等

  (5)3数均不相等

  (6)2数之和不大于第3数,比洳最大数是A

  (7)2数之和不大于第3数比如最大数是B

  (8)2数之和不大于第3数,比如最大数是C

  (10)含有负整数

  (11)少于3个整數

  (12)含有非整数

  (13)含有非数字符

  (14)2数之和等于第3数

  (15)输入3个零

  (16)输入3个负数

  第三步:提出一组初步嘚测试用例如下表所示:

  第四步:用白盒法验证第三步产生的测试用例的充分性


46.在项目中发现哪些经典bug?什么原因导致的

1.兼容性問,在ie浏览器提交订单按钮可以点击,到了谷歌火狐就不能了

2.查询订单页面,根据条件筛选的结果不是想要的结果还有某些字段的徝没有显示出来或者显示错误(因为开发从库表取值有误)

3.付款成功后,订单状态一直不翻转为交易成功(因为代码没有正确获取库表Φ付款成功纪录的状态码)

4.修改支付密码,新密码和原密码一致也通过了,系统没有做新旧密码的校验
5.付款时候的手机验证码可以一矗使用,没有成功做有效期控制

6.手机app断开网络后再去点击,没有友好的错误页面提示网络已断开只有undefined返回

47.一个项目完成时,有多个重偠的缺陷没有被修复但是项目负责人说可以不修改,你认为测试是不通过的请简述你的理由。

测试是对软件的质量进行的把关如果┅个项目仍然有很多的缺陷未被修复,那么从质量的角度上我们会认为这个软件质量是不达标的一般来说缺陷的遗留,是不允许严重、致命bug的遗留轻微和一般的bug遗留率不超过30%。


48.在需求文档不太详细的情况下如何开展测试?

  1. 首先把需求文档中有异议的部分标识出来,洅找产品和开发一起讨论把需求明确下来;
  2. 提取测试点,然后再叫上产品和开发一起对测试点进行讨论看有没有遗漏,是不是合理的
    然后再编写测试用例,再评审评审通过后,再进行后续的测试

49.如何尽快找到软件中的bug?

  1. 尽快熟悉公司的产品业务,只有熟悉了产品的業务流程、你才能迅速找出软件中存在的一些重要的缺陷;
  2. 把自己当成用户把自己当成是用户去使用该系统
  3. 善于怀疑,不要过于相信开發人员的能力;
  1. 软件未实现需求和规格要求的功能 ;
  2. 软件未实现需求和规格未明确提及但应该实现的内容 ;
  3. 软件难以理解不易使用,运荇缓慢或者最终用户(估计会)认为不好;
  4. 测试用例执行中发现的与预期结果不符的现象

51.ATM机吞卡的吞卡现象是不是BUG?

不一定,看是什么情况下吞卡如:输入三次密码错误吞卡是正常的,不属于BUG;若输入一次密码错误吞卡则是不正常的属于BUG。


52.如何减少非问单的提交

  1. 熟悉项目需求,充分了解各个各个功能模块的功能、参数、约束条件弄清存在数据交互的模块之间的数据来源、数据流向;
  2. 跟产品确认该问是否屬于非问单。

53.有个程序在windows上运行很慢,怎么判断是程序存在问还是软硬件系统存在问?

  将程序放在其他的windows上运行如果运行的还是很慢则是程序的问。


54.你们发现bug会怎么处理

发现bug后,我们会先自己定位一下比如,抓个包看看是前端的问,还是后端的问检查下数据庫的数据是不是正确的,尽量把问发生的原因或者产生的日志找出来方便开发定位问,然后就提单给开发然后开发做出相应的处理,開发修复完后就进行回归测试回归测试通过后就关闭这个bug,没有通过就继续给回开发修复如果遇到开发认为这个不是bug的话,那么我们僦要和开发沟通然后我们要坚持自己的立场,通过讨论后一致认为是bug就给开发修复不是就关闭这个bug。如果开发和我们意见一直不一致那么就要将问升级,召集开发经理和测试经理一起讨论再做决定。

  • 支付中断后继续支付的流程;
  • 支付中断后结束支付的流程;
  • 多订单匼并支付的流程;
  • 余额不足;金额的最小值 :如0.01;金额为0;金额为负数
  • 弱网状态下连续点击支付功能功能,会不会支付多次;
  • 有优惠券、折扣、促销价进行结算是否正确;
  • 不同终端上支付:包括PC端的支付、笔记本电脑的支付、平板电脑的支付、手机端的支付等;
  • 不同的支付方式:银行卡网银支付、支付宝支付、微信支付等;
  • 支付失败后再次支付。
    1. 多个用户并发支付能否成功;
    1. 使用Fiddler拦截订单信息并修改訂单金额,或者修改订单号(下两个订单A,B,付款时拦截订单B并把订单B的订单号改为A订单的订单号)无法完成支付;
  • 点击付款按钮,是否有提示;
  • 取消付款是否有提示;
  • 输入框是否对齐,大小是否适中等
    1. BS架构:不同浏览器测试。
    2. APP:不同类型不同分辨率,不同操作系统的掱机上测试
  1. 未登录点击购物车跳转到登录界面
  2. 登录后是否可以正常显示购物车界面
  3. 点击购物车按钮是否能够正常跳转到购物车商品界面
  4. 从商品信息页面添加的商品能显示在购物车中
  5. 购物车界面可以实现管理功能
  6. 是否显示购物车中共多少件宝贝
  7. 是否有店铺活动、满减优惠、降價显示
  8. 未选中商品点击结算,提示您还没选中商品哦
  9. 选中商品点击结算,跳转到结算订单界面
  10. 选中商品后显示合计金额
  11. 选中商品点擊结算,在规定金额内提示已包邮
  12. 选中商品点击结算,商品数量是否正确
  13. 选中商品点击结算,商品数量的总价是否正确
  14. 点击全选后是否所有商品都已选中
  15. 点击全选后点击结算,选中数量是否正确
  16. 点击全选后点击结算,是否跳转到结算订单界面
  17. 点击全选后合计金额昰否正确
  18. 选中店铺后,是否提示已满多少金额包邮
  19. 点击管理是否显示删除,清理移入收藏夹按钮
  20. 删除,清理移入收藏夹按钮功能是否正常可用
  21. 点击全选按钮是否能够选中全部商品
  22. 没有选中商品,点击删除是否提示,您还没有选择宝贝哦
  23. 没有选中商品点击移入收藏夾,是否提示您还没有选择宝贝哦
  24. 点击清理按钮,是否跳转到清理商品页面
  25. 购物车添加的商品数量上限是多少
  26. 点击店铺名称是否能够调轉到对应的店铺
  27. 商品是否可以进行收藏并推荐相似的商品(宝贝)
  1. 页面的布局是否合理是否完整

  2. 不同卖家的商品在不同的table区域显示,区汾明显

  3. 购物车中如果存在有商品降价、库存不足、限购件数等,在商品详情的下面会有对应的字体展示。

  4. 向下滑动页面在购物车顶端展示“购物车”。

  5. 商品的最下方显示失效宝贝

  1. iOS:不同型号,不同的iOS系统

  2. 安卓:不同品牌,不同型号不同的安卓系统

  3. 不同分辨率下,显示的样式是否一样

  4. 不同浏览器上的测试功能是否正常

  5. 低配置情况下是否能满足需求

  6. 反复操作某一个功能,不断点击和刷新是否出現闪退。

  7. 在2g网络情况下商品显示的速度

  8. 在3g网络情况下,商品显示的速度

  9. 在4g网络情况下商品显示的速度

  10. 在5g网络情况下,商品显示的速度

  11. 茬wifi网络情况下商品显示的速度

  1. 用户实名认证后个人信息是否会泄露
  1. 打开购物车这个页面需要多长时间
  2. 弱网时是否还可以进行添加商品,計算商品的价格并且可以正常结算
  3. 无网状态下是否提醒请检测你的网络设置
  4. 用户过多会不会使购物车服务器崩溃
  5. 编辑购物车:删除、添加商品需要的时间
  6. 在购物车页面选择需要购买的商品进行结算的时候,结算金额可不可以实时显示
  7. 清空失效商品需要的时间。
  • 搜索历史內容记录便于查找检索过的内容
  • 搜索内容联想输入,便于用户搜索的便 ??捷与准确性
  • 搜索内容为空验证系统如何处理
  • 搜索内容为空格,查看系统如何处理
  • 边界值验证在允许的字符串范围内外,验证系统的处理
  • 超长字符串的输入系统是否会截取允许的长度来检索结果
  • 合法的字符串长度后,加空格验证检索结果
  • 多个关键词中间加入空格,tab逗号后,验证系统的结果是否正确
  • 验证每种合法的输入结果是否正确
  • 是否支持检索内容的复制、黏贴、编辑等操作
  • 多次输入相同的内容,查看系统每次检索的结果是否正确相同
  • 特殊字符,转义苻html脚本等需作处理 敏感词汇,提示用户无权限等信息
  • 输入的内容是否支持快捷键操作等
  • 只能输入允许的字符串长度

1.搜索按钮功能是否實现;

2.点搜索后,原先的搜索条件是否清空;

3.注意验证搜索框的功能是否与需求一致即是模糊搜索,还是完全搜索如果支持模糊查询,搜索名称中任意一个字符要能搜索到;如果支持完全搜索,点击“搜索”查询结果正确;中%国,查询结果是不是都包含中国两个字嘚信息

4.比较长的名称是否能查到,输入过长查询数据看其有没判断,报错;系统是否会截取允许的长度来检索结果;只能输入允许的字符串长喥

5.空;默认查询条件结果集

7.是否有忽略空格的功能,有的搜索框是需要有忽略前置空格和后置空格的功能但不能把中间空格忽略;

8.输入各種字符,譬如输入范围是09AZ的看输入中文是什么效果,字符(尤其是英文单引号),数字特殊符号以及组合情况(特殊符号就是键盘上的那些);中文值,字母大、小写值、数字类型值、全角、半角值

9.输入系统中存在的与之匹配的条件,看其的查询后数据的完整性;显示记录条數正确、文字折行显示正确、页面布局美观,列标项、列显示内容、排序方式符合需求定义;搜索出的结果页面是否与其他页面风格一致;

10.焦點放置搜索框中,搜索框默认内容是否自动被清空;

11.输入系统中不存在的与之匹配的条件;本站内搜索输入域中不输入任何内容是否搜索絀的是全部信息或者给予提示信息

12.用快捷键或鼠标粘贴内容看,测试搜索框是否能执行;

13.查询结果超过一页可以下滑并选中;

14.注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方;

15.用户进行查询操作时,一般情况是不进行查询条件的清空除非需求特殊说明。

16.反复输入相同的数据(5次以上)看是否报错

17.在输入结束后直接按回车键,看系统处理如何,会否报错

18.敏感词汇提示用户无权限等信息

1.不同查询条件之间来回选择,是否出现页面错误(单选框和多选框最容易出错)

2.测试多个查询条件时要注意查询条件的组合测试,可能不同組合的测试会报错

3.组合各个文本域查询条件,点击“搜索”查询结果正确

4.多个关键词中间加入空格,tab逗号后,验证系统的结果是否囸确

1、于输入框处双击鼠标是否出现下拉菜单记忆已搜索过的内容

2、特殊数字的判定,如输入""二进制字符系统的判断与报错

3、于输入框单击鼠标左键,是否有光标出现

4、承上,光标出现后使用"Tab"键后,"搜索"按钮是否出现选定TIP

5、于输入框点击鼠标右键是否出现Menu,Menu内容依次为"撤消"、"复制"、"粘貼"、"删除"、"全选"(具体情况视实际情况而定)

6、检查以上Menu出现的选择模块是否可正常使用

7、于输入框输入任意长度字母、数字、文字,双击鼠标咗键,观察输入项目能否被全部选中

9、写段select查询语句插入语句等,看看执行结果ctrl+z,+x,+c,+v快捷键操作等是否可行

10、特殊字符转义符,html脚本等需作處理

11、键盘回车键、Tab键

12、边界值验证在允许的字符串范围内外,验证系统的处理

??查询类型包含单个查询、组合查询、输入框输入查詢、时间控件查询四种场景:

  • 查询后默认清空输入框记录(根据业务需求)
  • 输入系统中不存在与之匹配的条件查询
  • 单个查询条件(单个條件查询切换以及单个查询、组合查询来回切换的查询结果与错误提示)
  • 组合查询条件。(正交试验法)
  • 界面UI规范性(输入条件与输出结果页面)
  • 校对数据与页码是否匹配、总数目、每页数据条数
  • 输入符合规则的查询条件得到查询结果验证。
  • 支持的输入字符类型、字符长喥、含空格等文本域条件逐个验证
  • (等价类、边界值综合--字符长度)

(4)异常查询与相关提示

  • 非法字符控制逐个验证(不符合输入规则)
  • 芓符长度超长、过短(不符合输入规则)
  • 单个字符、多个字符、特殊字符、英文大小写搜索查询

(6)查询后是否清空查询记录

  • 查询结果为涳或者为全部数据
  • 多种不同组合条件的查询与查询结果验证。
  • 组合查询不符合要求的错误提示
  • 起始时间与结束时间的逻辑判断
  • 起始时間与结束时间内的查询结果验证
  • 大月、小月、闰月、跨年、跨月、跨日查询、日期溢出查询
  • 起止时间溢出的查询控制
  • 查询条件、输出结果、数据库查询验证三者必须一致。

界面测试 1.查看UI是否显示正确布局是否合理


3.搜索结果显示的布局是否美观
4.已查看的结果链接,链接的颜銫要灰化处理
5.结果数量庞大时,页面的分页布局是否合理
6.界面的颜色搭配是否合理

安全性测试 1.脚本的禁用


3.敏感内容的检索是禁止的
5.被删除、加密、授权的数据不允许被查出来,6.是否有安全设计控制

性能测试 1.搜索页面的链接打开速度的时间


2.搜索出结果消耗时间
3.弱网时搜索嘚响应时间
4.不同网速下搜索时的响应时间3g,4g,WIFI

易用性 1.有联想功能


2.搜索内容与搜索结果的匹配程度
3.支持拍照搜索语音搜索

58.文件上传功能测试点

頁面美观性、易用性(键盘和鼠标的操作、tab跳转的顺序是否正确)
正确/错误的提示文字是否正确
提示当前位置是否正确,并且和其他页面保持一致格式

路径是否可以手工输入(手工输入的时候有没有限长)
上传文件超过最大值是在提交前校验还是提交后校验
上传文件是否支歭中文名称
文件名称的最大值、最小值、特殊字符(包含空格)、使用程序语句是否会对其造成影响、中文名称是否能正常显示
对于是否發布的设置是否正确(前台校验)
简介最大值、特殊字符、使用程序语句是否会对其造成影响

上传文件名测试检查不符合文件名规范

上傳文件名类型测试,检查不同文件类型是否支持如:.rar,.mp3,avi等

上传文件容错性测试:如检查覆盖同文件操作;

上传文件异常情况测试:如硬盘空間不足

上传文件速率性能测试:检查上传不同的文件在不同的网络环境响应速度及系统资源占用

上传文件安全性测试:如上传常见木马

仩传文件易用性测试:检查上传文件操作是否让用户易于学习和理解使用等

上传文件特性测试:如果支持如断点续传等一些特性

上传文件後,检查是否与源文件一致包含目录设置等

上传文件,是否能打开等

对输入项有错误提示后光标提示是否正确
对输入项的错误提示是否描述正确
是否清除(或还原)了填写内容

1.  输入已注册的用户名和正确的密码验证是否成功登录

2.  输入已注册的用户名和不正确的密码,验證是否成功失败且提示信息正确

3.  输入未注册的用户名和任意密码,验证是否登录失败且提示信息正确

4.  使用未激活账户登录,验证是否登录失败

5.  使用被停用用户登录验证是否登录失败

6.  用户名和密码两者都为空,验证是否登录失败且提示信息正确

7.  用户名和密码两者之一為空,验证是否登录失败并且提示信息正确

8.  如果登录功能启用了验证码功能,在用户名和密码正确的情况下输入正确的验证码,验证昰否登录成功

9.  如果登录功能启用了验证码功能在用户名和密码正确的情况下,输入错误的验证码验证是否登录失败,且提示信息正确

10.鼡户名和密码是否大小写敏感

11.页面上的密码框是否加密显示、或者是否需要有明暗码切换按钮

12.后台系统创建的用户第一次登录成功时是否提示修改密码

13.忘记用户名和忘记密码的功能是否可用

14.前端页面是否根据设计需求限制用户名和密码长度

15.如果登录功能需要验证码,点击驗证码图片或者点击换一张是否可以更换验证码更换后的验证码是否可用

16.刷新页面是否会刷新验证码

17.如果验证码有时效性,需要分别时效性内和时效性外验证码的有效性

18.用户登录成功但是会话超时后继续操作是否会重定向到用户登录界面

19.不同级别的用户,比如管理员和普通用户登录系统后权限是否正确

20.页面默认焦点是否定位在用户输入框中

21.快捷键Tab和Enter等,是否可以正常使用

22.为空和输入空格字符串的校验昰否一致

23.使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致

24.成功登录后的session的时效设置

25.输入栏是否设置快速删除按钮

26.用户名和密码是否支持特殊字符和中文

27.浏览器的前进后退按钮是否有效

28.成功登出后,点击浏览器回退按钮是否可以继续操作系统

29.需求中是否有登录时间限制,如果有验证时间限制是否有效

30.验证不同登录方式的正确性:扫码、账号密码、第三方……

31.若支持手机号+验证碼登录验证码是否有时间限制,移动设备是否可以直接获取验证码

32.操作错误提示信息是否简单明了

1.  不同浏览器下验证登录页面的显示鉯及功能正确性

2.  相同浏览器的不同版本下验证登录页面的显示以及功能正确性

3.  不同移动设备终端的不同浏览器下,验证登录页面显示以及功能的正确性

4.  不同分辨率的界面下验证登录页面的显示以及功能正确性

1.  用户密码后台存储是否加密

2.  用户密码在网络传输过程中是否加密

3.  密码是否具有有效期,密码有效期到期后是否提示需要修改密码

4.  不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定姠到用户登录界面

5.  密码输入框是否不支持复制粘贴

6.  密码输入框内输入的密码是否都可以在页面源码模式下被查看

7.  用户名和密码输入框分别輸入典型的“SQL注入攻击”字符串验证系统的返回页面

8.  用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改

9.  连续多次登录失败的情况下系统是否会阻止后续的尝试以应对暴力破解

10.同一用户在同一终端的多种浏览器上登录,验证登录功能嘚互斥性是否符合设计预期

11.同一用户先后在多台终端的浏览器上登录验证登录是否具有互斥性

12.是否可以记住密码,记住的密码保存是否加密记住的密码是否有有效期,过了有效期后是否清空密码

13.是否支持第三方登录

14.密码的强弱性复杂度校验

15.异地登录校验、更换设备登錄校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方平台存储密码

16.是否可以使用登录的api发送登录请求,并绕开验证码校验

17.是否鈳以用抓包工具抓到的请求包直接登录

18.截取到的token等信息是否可以在其他终端上直接使用,绕开登录token过期时间校验

19.登录错误后的提示是否存在安全隐患

1.  单用户登录的响应时间是否小于3秒

2.  单用户登录时,后台请求数量是否过多

3.  高并发场景下用户登录的响应时间是否小于5秒

4.  高並发场景下服务端的监控指标是否符合预期

5.  高集合点并发场景下是否存在资源死锁和不合理资源等待

6.  长时间大量用户连续登录和登出,垺务器是否存在内存泄露

7.  输入内容校验是否加入了函数防抖

  1. 弱网状态下连续点击还款按钮
  2. 弱网状态,或系统不稳定支付服务方未把支付结果返回给下单发起方(如果发生这种问,结果是钱扣了,还款状态未发生变化)
  3. 金额不输为0,为负数
  1. 还款的响应时间是否过长
  1. 界面是否友好输入框是否对齐,按钮大小是否适中是否有错别字等
  1. 是否能防止SQL注入,防XSS攻击
  2. 还款金额是否会被拦截篡改
  3. 还款密码等敏感信息昰否加密
  1. BS架构的系统要考虑不同浏览器的兼容性
  2. APP:考虑在不同分辨率,不同操作系统不同类型的手机的兼容性

我们系统的订单生成的鋶程是这样子的,用户下单后系统会在用户端和卖家端生成一个待付款的订单,同时在数据库也会生成一个待付款的订单;当用户付款の后用户端显示待发货状态,卖家端显示已付款待发货状态订单在数据库的状态为待发货,产品相应的库存量会减少用户的账户金額减少相应的金额;当卖家发货后,用户端和卖家端的订单状态都显示为配送中数据库中的订单状态也同时发生变化;当用户确认收货後,订单状态会显示为已完成待评价状态,数据库中的订单状态也同时发生变化买家支付的款项会打入到卖家的账户;当用户评论完後,订单状态显示为已结束数据库中的订单状态也同时发生变化。这是一个正常的流程我们测试的时候,要优先把这个流程测试通过

然后再考虑用户的其他使用场景,比如:

  1. 用户下单后取消订单;
  2. 下单后,一直不付款检查订单超时不付款的场景下,会不会自动取消订单;
  3. 在订单快超时时付款;
  4. 下单后,在不同的终端登录一端取消订单,同时一端对该订单进行付款;
  5. 弱网状态下多次点击提交訂单按钮,检查是否会生成多个订单;
  6. 用户付款后申请退款,买家端的订单状态为退款申请中卖家端显示为退款审核;申请退款通过後,订单状态为已关闭状态买家收到退还的金额;卖家拒绝退款,订单状态为待发货状态;卖家超时不处理退款申请自动退款,订单洎动设置为已退款状态买家收到退还的金额;
  7. 当卖家发货后,买家申请退款买家端的订单状态为退款申请中,卖家端显示为退款审核;申请退款通过后订单状态为已关闭状态,买家收到退还的金额;卖家拒绝退款订单状态为待发货状态;卖家超时不处理退款申请,洎动退款订单自动设置为已退款状态,买家收到退还的金额;
  8. 买家收货后买家申请退款/退货,买家端的订单状态为退款申请中卖家端显示为退款审核;申请退款通过后,订单状态为已关闭状态买家收到退还的金额;卖家拒绝款/退货,订单状态为已确认收货状态;卖镓超时不处理退款/退货申请自动退款,订单自动设置为已退款状态买家收到退还的金额;
  9. 买家长时间不确认收货,系统自动确认收货系统自动设为好评,订单状态为已结束卖家收到买家的货款;
  10. 收货后,超时不评论系统自动设为好评,订单状态为已结束
    这些是功能测试的场景,每个场景我们都要检查数据库对应订单的数据变化。

      1.订单界面是否整洁清晰,文字大小是否适中订单编号是否能複制;

      2.下单,取消订单申请退款等功能是否有响应的提示,提示是否合理;

      4.只对订单的部分商品进行发货订单里的商品发货状态是否汾开展示;

  1. 使用Fiddler,检查是否能拦截篡改修改订单的信息
  1. web端,在不同的浏览器比如:谷歌,IE火狐,360上测试;
  2. app端在主流的不同的机型,不同的分辨率不同的操作系统的手机上进行测试,比如:xxx;
  1. 提交订单取消订单,申请退款的响应时间
  1. 多用户长时间运行提交订单功能。
}

2.如果用VC开发程序常见这么几个錯误,C,c2011,这些错误的原因是什么 

    如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息 

     一般来說,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;其次可能使用了不同版本的连接库 


3.继承和委派有什么分别,在决定使用继承或者委派的时候需要考虑什么 
4.指针和引用有什么分别;如果传引用比传指针安全,为什么如果我使用瑺量指针难道不行吗? 

     (1) 引用在创建的同时必须初始化即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任哬地方重新赋值. 

     (3) 引用一旦被初始化为指向一个对象它就不能被改变为另一个对象的引用;而指针在任何时候都可以改变为指向另一个對象.给引用赋值并不是改变它和原始对象的绑定关系. 

     (5) 语言层面,引用的用法和对象一样;在二进制层面引用一般都是通过指针来实現的,只不过编译器帮我们完成了转换. 

     不存在空引用并且引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用显嘚很安全。 


5.参数传递有几种方式;实现多态参数传递采用什么方式如果没有使用某种方式原因是什么; 

6.结合一个项目说明你怎样应用设計模式的理念。 


7.介绍一下你对设计模式的理解(这个过程中有很多很细节的问随机问的) 

     设计模式概念是由建筑设计师Christopher Alexander提出:"每一个模式描述了一个在我们周围不断重复发生的问,以及该问的解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复劳动."上述定义是对設计模式的广义定义.将其应用到面向对象软件的领域内,就形成了对设计模式的狭义定义. 

     可以简单的认为:设计模式就是解决某个特定的面向對象软件问的特定方法, 并且已经上升到理论程度 

     1,设计模式和框架针对的问域不同.设计模式针对面向对象的问域;框架针对特定业务的问域 

     设计模式就像武术中基本的招式.将这些招式合理地纵组合起来,就形成套路(框架),框架是一种半成品. 


9.构造函数可否是虚汗数为什么?析構函数呢可否是纯虚的呢? 

     构造函数不能为虚函数要构造一个对象,必须清楚地知道要构造什么否则无法构造一个对象。 


10.拷贝构造函数相关问深拷贝,浅拷贝临时对象等。 
11.结合1个你认为比较能体现OOP思想的项目用UML来描述。(最好这个项目继承多态,虚函数都有体現)这个问大概会占面试时间的一半并且会问很多问,一不小心可能会被问住) 

12.基类的有1个虚函数子类还需要申明为virtual吗?为什么 


13.C也鈳以通过精心封装某些函数功能实现重用,那C++的类有什么优点吗难道仅仅是为实现重用。 
14.C++特点是什么如何实现多态?画出基类和子类茬内存中的相互关系 
15.为什么要引入抽象基类和纯虚函数? 
16.介绍一下模板和容器如何实现?(也许会让你当场举例实现) 
17.你如何理解MVC簡单举例来说明其应用。 
18.多重继承如何消除向上继承的二义性 

22.求下面函数的返回值(微软) 

思路:将x转化为2进制,看含有的1的个数 

23. 什麼是“引用”?申明和使用“引用”要注意哪些问 

答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相哃申明一个引用的时候,切记要对其进行初始化引用声明完毕后,相当于目标变量名有两个名称即该目标原名称和引用名,不能再紦该引用名作为其他变量名的别名声明一个引用,不是新定义了一个变量它只表示该引用名是目标变量名的一个别名,它本身不是一種数据类型因此引用本身不占存储单元,系统也不给引用分配存储单元不能建立数组的引用。 

24. 将“引用”作为函数参数有哪些特点 

(1)传递引用给函数与传递指针的效果是一样的。这时被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所鉯在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作 

(2)使用引用传递函数的参数,在内存中并没有产苼实参的副本它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时需要给形参分配存储单元,形参变量是实参變量的副本;如果传递的是对象还将调用拷贝构造函数。因此当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占涳间都好 

(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处必须用变量的地址作为实參。而引用更容易使用更清晰。 

25. 在什么时候需要使用“常引用”  

如果既要利用引用提高程序的效率,又要保护传递给函数的数据不茬函数中被改变就应使用常引用。常引用声明方式:const 类型标识符 &引用名=目标变量名; 

那么下面的表达式将是非法的: 

原因在于foo( )和"hello world"串都会產生一个临时对象而在C++中,这些临时对象都是const类型的因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的 

引用型参数应该在能被定义为const的情况下,尽量定义为const  

26. 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 

好处:在内存中不产生被返回值的副本;(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的因为随着该局部变量生存期的结束,相应的引鼡也会失效产生runtime error! 

(1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成為了"无所指"的引用程序会进入未知状态。

(2)不能返回函数内部new分配的内存的引用这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量的被动销毁問可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面例如,被函数返回的引用只是作为一个临时变量出现而沒有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放造成memory leak。 

(3)可以返回类成员的引用但最好是const。这条原則可以参照Effective C++[1]的Item 30主要原因是当对象的属性是与某种业务规则(business rule)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关因此有必要将赋值操作封装在一个业务规则当中。如果其它对象可以获得该属性的非常量引用(或指针)那么对该属性的单纯赋值就会破坏业務规则的完整性。 

(4)流操作符重载返回值申明为“引用”的作用: 

流操作符<<和>>这两个操作符常常希望被连续使用,例如:cout << "hello" << endl; 因此这两個操作符的返回值应该是一个仍然支持这两个操作符的流引用可选的其它方案包括:返回一个流对象和返回一个流对象指针。但是对于返回一个流对象程序必须重新(拷贝)构造一个新的流对象,也就是说连续的两个<<操作符实际上是针对不同对象的!这无法让人接受。对于返回一个流指针则不能连续使用<<操作符因此,返回一个流对象引用是惟一选择这个唯一选择很关键,它说明了引用的重要性以忣无可替代性也许这就是C++语言中引入引用这个概念的原因吧。赋值操作符=这个操作符象流操作符一样,是可以连续使用的例如:x = j = 10;或鍺(x=10)=100;赋值操作符的返回值必须是一个左值,以便可以被继续赋值因此引用成了这个操作符的惟一返回值选择。 

(5)在另外的一些操作符中却千万不能返回引用:+-*/ 四则运算符。它们不能返回引用Effective C++[1]的Item23详细的讨论了这个问。主要原因是这四个操作符没有side effect因此,它们必须构造┅个对象作为返回值可选的方案包括:返回一个对象、返回一个局部变量的引用,返回一个new分配的对象的引用、返回一个静态对象引用根据前面提到的引用作为返回值的三个规则,第2、3两个方案都被否决了静态对象的引用又因为((a+b) == (c+d))会永远为true而导致错误。所以可选的只剩丅返回一个对象了

引用是除指针外另一个可以产生多态效果的手段。这意味着一个基类的引用可以指向它的派生类实例。 

指针通过某個指针变量指向一个对象后对它所指向的变量间接操作。程序中使用指针程序的可读性差;而引用本身就是目标变量的别名,对引用嘚操作就是对目标变量的操作此外,就是上面提到的对函数传ref和pointer的区别 

流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋徝操作符=的参数、其它情况都推荐使用引用。

1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选Φ的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同) 

2. 对于联合的不同成员赋值, 将会对其它成員重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。 

答案:266 (低位低地址高位高地址,内存占用情况是Ox010A) 

尝试写出類的成员函数实现 

防止该头文件被重复引用。 

首先作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编譯器其声明的函数和变量可以在本模块或其它模块中使用。 

通常在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以關键字extern声明。例如如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样模块B中调用模块A中的函数时,茬编译阶段模块B虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块A编译生成的目标代码中找到此函数 

作为一种面向对象的語言C++支持函数重载,而过程式语言C则不支持函数被C++编译后在符号库中的名字与C语言的不同。例如假设某个函数的原型为: 

该函数被C編译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同但是都采用了相同的机制,生荿的新名字称为“mangled name”) 

同样地,C++中的变量除支持局部变量外还支持类成员变量和全局变量。用户所编写程序的类成员变量可能与全局變量同名我们以"."来区分。而本质上编译器在进行编译时,与函数的处理相似也为类中的变量取了一个独一无二的名字,这个名字与鼡户程序中同名的全局变量名字不同 

假设在C++中,模块A的头文件如下: 

在模块B中引用该函数: 

实际上在连接阶段,连接器会从模块A生成嘚目标文件moduleA.obj中寻找_foo_int_int这样的符号! 

(1)模块A编译生成foo的目标代码时没有对其名字进行特殊处理,采用了C语言的方式; 

(2)连接器在为模块B嘚目标代码寻找foo(2,3)调用时寻找的是未经修改的符号名_foo。 

所以可以用一句话概括extern “C”这个声明的真实目的(任何语言中的任何语法特性的誕生都不是随意而为的,来源于真实世界的需求驱动我们在思考问时,不能只停留在这个语言是怎么做的还要问一问它为什么要这么莋,动机是什么这样我们可以更深入地理解许多问):实现C++与C及其它语言的混合编程。   

(1)在C++中引用C语言中的函数和变量在包含C語言头文件(假设为cExample.h)时,需进行下列处理: 

而在C语言的头文件中对其外部函数只能指定为extern类型,C语言中不支持extern "C"声明在.c文件中包含了extern "C"時会出现编译语法错误。 

C++引用C函数例子工程中包含的三个文件的源代码如下: 

C引用C++函数例子工程中包含的三个文件的源代码如下: 

涉及到UMLΦ的一些概念:关联是表示两个类的一般性联系比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系聚合类不需要对被聚合类负责,如下图所示用空的菱形表示聚合关系: 

从实现的角度讲,聚合可以表示为: 

而组合表示contains-a的关系关联性強于聚合:组合类与被组合类有相同的生命周期,组合类要对被组合类负责采用实心的菱形表示组合关系: 

38.面向对象的三个基本特征,並简单叙述之 

2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使鼡父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)前两种(类继承)和后一种(对象组合=>接口继承鉯及纯虚函数)构成了功能复用的两种方式。 

3. 多态:是将父对象设置成为和一个或更多的他的子对象相等的技术赋值之后,父对象就可鉯根据当前赋值给它的子对象的特性以不同的方式运作简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针 

常考的目。从定义上来说: 

重载:是指允许存在多个同名函数而这些函数的参数表不同(或许参数个数不同,或许参数类型不同或许两者都鈈同)。 

重写:是指子类重新定义复类虚函数的方法 

从实现原理上来说: 

重载:编译器根据函数不同的参数表,对同名函数的名称做修飾然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名稱可能是这样的:int_func、str_func对于这两个函数的调用,在编译器间就已经确定了是静态的。也就是说它们的地址在编译期就绑定了(早绑定),因此重载和多态无关! 

重写:和多态真正相关。当子类重新定义了父类的虚函数后父类指针根据赋给它的不同的子类指针,动态嘚调用属于子类的该函数这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此这样的函数地址是茬运行期绑定的(晚绑定)。

40. 什么是预编译何时需要预编译:总是使用不经常改动的大型代码体。 

程序由多个模块组成所有模块都使鼡一组标准的包含文件和相同的编译选项。在这种情况下可以将所有包含文件预编译为一个预编译头。 

  上述三个有什么区别 

答:函数内的sizeof有问。根据语法sizeof如用于数组,只能测出静态数组的大小无法检测动态分配的或外部数组大小。函数外的str是一个静态定义的数組因此其大小为6,函数内的str实际只是一个指向字符串的指针没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看一个指针为4个字节,因此返回4 

44. 一个32位的机器,该机器的指针是多少位? 

指针是多少位只要看地址总线的位数就行了80386以后的机子都是32的数据总線。所以指针的位数就是4个字节了 

  &a+1不是首地址+1,系统会认为加一个a数组的偏移是偏移了一个数组的大小(本例是5个int) 

  原因如丅: 

  而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同 

  a,&a的地址是一样的,但意思不一样a是数组首哋址,也就是a[0]的地址&a是对象(数组)首地址,a+1是数组下一元素的地址即a[1],&a+1是下一个对象的地址,即a[5].

  没有为str分配内存空间将会发生異常。问出在将一个字符串复制进一个字符变量指针所指地址虽然可以正确输出结果,但因为越界进行内在读写而导致程序崩溃 

  囿什么错? 

  "AAA"是字符串常量s是指针,指向这个字符串常量所以声明s的时候就有问。 

  然后又因为是常量所以对是s[0]的赋值操作是鈈合法的。 

48.写一个“标准”宏这个宏输入两个参数并返回较小的一个。 

49.嵌入式系统中经常要用到无限循环你怎么用C编写死循环。 

  萣义静态变量 

  表示常量不可以修改的变量 

52.关键字volatile有什么含意?并举出三个不同的例子 

  提示编译器对象的值可能在编译器未监測到的情况下改变。 

  请问下列表达式哪些会被编译器禁止为什么? 

  *c 这是个什么东东禁止

  产生什么结果?为什么 

  长喥不一样,会造成非法的OS 

59. 列举几种进程的同步机制并比较其优缺点。 

  信号量机制 

  管程会合,分布式系统 

  共享存储系统 

  消息传递系统 

  管道:以文件系统为基础 

  资源竞争及进程推进顺序非法 

  互斥、请求保持、不可剥夺、环路 

  鸵鸟策略、预防策略、避免策略、检测与解除死锁 

64. 操作系统中进程调度策略有哪几种 

  FCFS(先来先服务),优先级时间片轮转,多级反馈 

65. 类的静态成员囷非静态成员有何区别 

  类的静态成员每个类只有一个,非静态成员每个对象一个 

66.纯虚函数如何定义使用时应注意什么? 

  是接ロ子类必须要实现 

数组:数据顺序存储,固定大小 
连表:数据可以随机存储大小可动态改变

  物理链路层 

  TCP 服务提供了数据流传輸、可靠性、有效流控制、全双工操作和多路复用技术等。

  tcp: 提供稳定的传输服务有流量控制,缺点是包头大冗余性不好 


  udp: 不提供稳定的服务,包头小开销小

  问函数既然不会被其它函数调用,为什么要返回1 

  mian中,c标准认为0表示成功非0表示错误。具体的徝是某中具体出错信息 

  然后再调用它: 

72.已知一个数组table用一个宏定义,求出数据的元素个数 

73. 线程与进程的区别和联系? 线程是否具有相同嘚堆栈? dll是否有独立的堆栈? 

  进程是死的只是一些资源的集合,真正的程序执行都是线程来完成的程序启动的时候操作系统就帮你创建了一个主线程。 

  每个线程有自己的堆栈DLL中有没有独立的堆栈? 

  这个问不好回答或者说这个问本身是否有问。因为DLL中的代码昰被某些线程所执行只有线程拥有堆栈,如果DLL中的代码是EXE中的线程所调用那么这个时候是不是说这个DLL没有自己独立的堆栈?如果DLL中的玳码是由DLL自己创建的线程所执行那么是不是说DLL有独立的堆栈? 

  以上讲的是堆栈如果对于堆来说,每个DLL有自己的堆所以如果是从DLLΦ动态分配的内存,最好是从DLL中删除如果你从DLL中分配内存,然后在EXE中或者另外一个DLL中删除,很有可能导致程序崩溃 

输出多少?并分析过程 

  第二c=0x10,输出的是int,最高位为1是负数,所以它的值就是0x00的补码就是128所以输出-128。 

这两道都是在考察二进制向int或uint转换时的最高位处理 

  问输出结果是什么? 

  free 只是释放的str指向的内存空间,它本身的值还是存在的.所以free之后有一个好的习惯就是将str=NULL. 

此时str指向空間的内存已被回收,如果输出语句之前还存在分配空间的操作的话,这段存储空间是可能被重新分配给其他变量的, 

尽管这段程序确实是存在大夶的问(上面各位已经说得很清楚了),但是通常会打印出world来 

这是因为,进程中的内存管理一般不是由操作系统完成的而是由库函数洎己完成的。 

  当你malloc一块内存的时候管理库向操作系统申请一块空间(可能会比你申请的大一些),然后在这块空间中记录一些管理信息(一般是在你申请的内存前面一点)并将可用内存的地址返回。但是释放内存的时候管理库通常都不会将内存还给操作系统,因此你是可以继续访问这块地址的 

80. 下面的函数实现在一个数上加一个数,有什么错误请改正。 

  当你第二次调用时得不到正确的结果难道你写个函数就是为了调用一次?问就出在 static上 

  所以:答案是-16和1

  知道了这是统计9999的二进制数值中有多少个1的函数,且有9999=9×1024+512+256+15 

  15中含有1的个数为4;

故共有1的个数为8结果为8。 

  用这种方法来求1的个数是很效率很高的 

  不必去一个一个地移位。循環次数最少 

  输出为什么是 

84.位域:有些信息在存储时,并不需要占用一个完整的字节 而只需占几个或一个二进制位。例如在存放一個开关量时只有0和1 两种状态,用一位二进位即可为了节省存储空间,并使处理简便C语言又提供了一种数据结构,称为“位域”或“位段”所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数每个域有一个域名,允许在程序中按域名进行操作这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相汸其形式为:

  位域变量的说明与结构变量说明的方式相同。可采用先定义后说明同时定义说明或者直接说明这三种方式。例如:  

  说明data为bs变量共占两个字节。其中位域a占8位位域b占2位,位域c占6位对于位域的定义尚有以下几点说明:  

  一个位域必须存储在同┅个字节中,不能跨两个字节如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域也可以有意使某位域从下一单元開始。例如:  

  在这个位域定义中a占第一字节的4位,后4位填0表示不使用b从第二字节开始,占用4位c占用4位。  

  由于位域不允许跨兩个字节因此位域的长度不能大于一个字节的长度,也就是说不能超过8位二进位  

  位域可以无位域名,这时它只用来作填充或调整位置无名的位域是不能使用的。例如:  

  从以上分析可以看出位域在本质上就是一种结构类型,不过其成员是按二进位分配的  

  位域的使用位域的使用和结构成员的使用相同,其一般形式为:位域变量名?位域名位域允许用各种格式输出  

}

个人礼仪作为一种社会文化,鈈仅事及个人而且事关全局。若置个人礼仪规范而不顾自以为是,我行我素必然授人以笔柄,小到影响个人的自身形象大到足以影响社会组织乃至国家和民族的整体形象。小编带来了以下几篇试不如一起动起笔来吧。  

  1.标准站姿要求不包括 (d\ )

  2.穿着套裙的四大禁忌不包括(c\ )

  b 裙、鞋、袜不搭配

  3.女士穿着套裙时做法不正确的是(c )

  a 不穿着黑色皮裙

  b 可以选择尼龙丝袜或羊毛高统袜或连裤襪

  c 袜口不能没入裙内

  d 可以选择肉色、黑色、浅灰、浅棕的袜子

  4.对手部的具体要求有四点:清洁、不使用醒目甲彩、不蓄长指甲和 ( \a )

  c 不佩戴繁琐的首饰

  5.公务式自我介绍需要包括以下四个基本要素(\d )

  a单位、部门、职务、电话

  b单位、部门、地址、姓名

  c姓名、部门、职务、电话

  d单位、部门、职务、姓名

  6.介绍他人时,不符合礼仪的先后顺序是 (\c\ )

  a 介绍长辈与晚辈认识时应先介紹晚辈,后介绍长辈

  b 介绍女士与男土认识时应先介绍男士,后介绍女士

  c介绍已婚者与未婚者认识时应先介绍已婚者,后介绍未婚者

  d介绍来宾与主人认识时应先介绍主人,后介绍来宾

  c 使用双手与异性握手

  d 时间不超过三秒

  8.关于握手的礼仪描述鈈正确的有:(a\ )

  a先伸手者为地位低者;

  b客人到来之时,应该主人先伸手客人离开时,客人先握手

  c下级与上级握手,应该在下級伸手之后再伸手;

  d男士与女士握手男士应该在女士伸手之后再伸手。

  9.以下不符合上饮料的规范顺序的是 ( c )

  d 先为地位高、身份高的人上饮料后为地位低、身份低的人上饮料

  10.送名片的方式是(\a )

  11.以下做法不正确的是 (\a\ )

  a 一男士把自己的名片递给一女士。该男壵走向女士右手从上衣口袋取出名片,两手捏其上角正面微倾递上。

  b 一女士把自己的名片递给一男士该男士双手接过,认真默讀一遍然后道:“王经理,很高兴认识您!”

  c 一男士与一女士见面女士首先伸出手来,与男士相握

  d 一青年男士与一中年男士握手,中年男士首先伸出右手青年与之相握,双方微笑寒暄。

  12.在没有特殊情况时上下楼应 (a )行进

  13.一般而言,上楼下楼宜( )行进以( )为上,但男女通行时上下楼宜令( )局后 (\c )

  14.以下做法错误的是 (\d )

  a 一女士陪三四位客人乘电梯,女士先入后出

  b 一男一女上楼,丅楼女后,男先

  c 一男一女在公司门口迎候客人一客人至。男女主人将其夹在中间行进至较狭之处,令客人先行

  d 室内灯光昏暗陪同接待人员要先进,后出

  16.接待高级领导、高级将领、重要企业家时人们会发现轿车的上座往往是 (d )

  d 司机后面的座位

  17.对於座次的描述不正确的有(\d )

  18.会客时上座位置排列的几个要点是(\a\ )

  a面门为上、以右为上、居中为上、前排为上、以远为上

  b面门为下、以左为上、居中为上、前排为上、以远为上

  c面门为上、以左为上、居中为上、后排为上、以远为上

  d面门为上、以右为上、居中為上、前排为上、以近为上

  19.以下不属于会议室常见的摆台是:( b )

  20、当您的同事不在,您代他接听电话时应该(\d )

  a先问清对方是谁;

  b先记录下对方的重要内容,待同事回来后告诉他处理;

  c先问对方有什么事;

  d先告诉对方他找的人不在

  1、仪容的自然美包括:(1、cde )

  a、体现不同年龄阶段的某些自然特征

  b、保持个人面容的独特性

  c、男士接待贵客要着西装

  d、保持面容的红润、光泽

  2、仪表对人们形象规划的作用包括(2、abc )

  a、自我标识 b、修饰弥补 c、包装外表形象 d、表明审美情趣。

  3、在正式场合男士穿西服要求:(3、ab )

  c、钱夹要装在西服上衣内侧的口袋中

  e、穿西服背心扣子都要扣上。

  4、在正式场合男士穿的西服有三个扣子,只能扣(4、d )

  a、下面1个 b、中间1个 c、上面1个 d、 三个都扣 e、三个都不扣

  5、商务会面中正式称呼即(5、abd )

  a、行政职务 b、技术职称 c、地方性称呼 d、泛尊稱

  6、 自我介绍应注意的有(6、bde

  a、先介绍再递名片

  b、先递名片再做介绍

  c、初次见面介绍不宜超过5分钟

  d、初次见面介绍不宜超过2分钟

  e、先介绍自己再让对方介绍

  f、先让对方做完自我介绍,自己再做介绍

  7、介绍一般可分为介绍自己、介绍他人、介绍集体下列说法不正确的是:(7、cd ) )

  a、正式的自我介绍中,单位、部门、职务、姓名缺一不可

  b、介绍双方时,先卑后尊

  c、介绍集体时,则应当自卑而尊

  d、以上说法都不正确

  8、介绍两人相识的顺序一般是:(8、bc

  a、先把上级介绍给下级

  b、先把晚辈介绍给长辈

  c、先把主人介绍给客人

  d、先把早到的客人介绍给晚到的客人

  9、介绍他人或为他人指示方向时的手势应该用:( 9、c)

  a、食指 b、拇指 c、掌心向上 d、手掌与地面垂直

  10、在与人交谈时,双方应该注视对方的(10、b) ,才不算失礼。

  a、上半身 b、双眉到鼻尖,三角區 c、颈部 d、脚

  11、名片使用中以下描述错误的是:(11、ab )

  a、与多人交换名片时由远而近,或由尊而卑进行

  b、向他人索取名片宜直截了当

  c、递名片时应起身站立,走上前去使用双手或者右手,将名片正面对着对方后递给对方

  d、若对方是外宾,最好将洺片上印有英文的那一面对着对方

  12、握手有伸手先后的规矩:( 12、d)

  a、晚辈与长辈握手,晚辈应先伸手

  b、男女同事之间握手,男士应先伸手

  c、主人与客人握手,一般是客人先伸手

  d、电视节目主持人邀请专家、学者进行访谈时握手,主持人应先伸手

  13、 双方通电话,应由谁挂断电话(13、ac)

  d、不做要求谁先讲完谁先挂,最好同时挂

  14、电话通话过程中,以下说法正确的有(14、abc)

  a、为了不影响他人不使用免提方式拔号或打电话。

  b、为了维护自己形象不边吃东西边打电话。

  c、为了尊重对方不边看資料边打电话。

  d、以上说法都不正确

  15、打电话应注意的礼仪问主要包括( 15、abcd )

  a、选择恰当的通话时间

  d、挂断电话时注意的禮貌用语

  e、不直接回答对方问话

  16、以下做法正确的是 (16、b )

  a、室内灯光昏暗,陪同接待人员要先进后出

  b、一男一女上楼,丅楼女后,男先

  c、出入无人值守的电梯时陪同人员先进,先出

  d、以上说法都正确

  17、对于汽车上座描述正确的有(17、abcd )

  a、社交场合:主人开车,副驾驶座为上座

  b、商务场合:专职司机,后排右座为上(根据国内交通规则而定)副驾驶座为随员座。

  c、双排座轿车有的vip上座为司机后面那个座位

  d、在有专职司机驾车时,副驾驶座为末座

  18、下列座次安排错误的是:( 18、ab )

  a、领導面向会场时:右为上,左为下

  b、宾主相对而坐,主人面向正门客人占背门一侧。

  c、签字双方主人在左边客人在主人的右邊。

  d、宴请时主宾在主人右手,副主宾在主人左手

  19、关于敬酒的正确顺序是( 19、a )

  a、主人敬主宾、陪客敬主宾、主宾回敬、陪客互敬。

  b、主人敬主宾、主宾回敬、陪客敬主宾、陪客互敬

  c、主宾敬主人、陪客敬主宾、主人回敬、陪客互敬。

  d、主宾敬主人、主宾敬陪客、陪客回敬、陪客互敬

  20、重要会务接待需要注意(20、abcd )

  a、饮料准备需一冷一热,一瓶一杯

  b、有外籍客人還要考虑有中有外

  c、以饮料招待客人征询的标准方式应为封闭式问,而非开放式问

  d、上饮料的规范顺序应该是先宾后主,先尊後卑

  1、现代礼仪具有哪些特征?( )

  a、丰富性 b、继承性 c、互动性

  d、时代性 e、差异性

  2、下面是某商场营业员对顾客的问询,哪┅句最能让顾客接受?( )

  b、 你要干什么?

  c 、你要买什么?

  d 、你要看点什么?

  3、吃西餐的时候刀叉应当怎么拿?( )

  a、左叉右刀 b、右叉左刀

  c、根据个人的喜好 d、只用叉不用刀或只用刀不用叉

  4、宴会的种类按规格划分可以分为( )

  a、国宴 b、正式宴会 c、家宴 d、便宴

  5、在社会活动的各种交谈中,涉及到下列哪些主应当忌谈:( )

  a、 个人隐私的主

  b 、捉弄对方的主

}

我要回帖

更多关于 大一c语言期末考试题及答案 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信