努比亚2017校招工程师试卷

今天做了努比亚2017校招工程师试卷,第一个感觉是并不是我经常做的选择加编程题模式,而是填空加简答形式,填空题比较直接,都是些基本概念,简答题涉及的比较基础,而且范围广,所以借此就把很多知识复习一波
1.算法复杂度主要分为时间复杂度和空间复杂度
2.软件工程标准:基础标准、开发标准、文档标准、管理标准
3.软件生命周期的几个阶段:问题定义和规划,概要设计,软件设计,程序编写,软件测试,软件运维
4.动态局部变量存储在栈里面,静态局部变量和全局变量存储在全局区(静态区)中。
5.TCP 为传输控制协议,位于 传输层 ,向 应用层提供连接的服务, IP 为网基协议,是 TCP/IP 协议体系中的网络层协议。
6.完全二叉树:1.除了最后一层外,每一层上的结点数均达到最大值 2.一般不是满二叉树 3.具有n个结点的完全二叉树的深度为[log2n]+1。
7.windows 消息调度机制是消息队列(有优先级)
8.在结构化的程序设计中,模块划分的原则是高内聚,低耦合
9.软件生命周期包括软件设计、软件开发、运行维护三个阶段。
软件设计:可行性分析与计划制定、需求分析;
软件开发:概要设计、详细设计、软件实现、测试。
所以C选项软件维护不属于软件开发阶段任务。
10.要求所有行(元组)都有唯一的标识符,称为主关键字(主键)。
11.递归算法的执行过程,一般来说,可先后分成递推和回归两个阶段。
12.在 SQL语句中,更新数据使用的是update语句。
13.char str[]="Hello"; sizeof(str)=6字节(5+1 有一个转行符号要算进去)
char *p=str; (指针固定4字节)
int n=10; (int类型4字节)
void func(char str[100]){} (4字节)解释:在C/C++里数组作为参数时传递的实际上是指向数组第一个元素的指针,因此sizeof(str)返回的是指针的大小,即4字节。
14.如果数组初始化操作时,没有在初始化列表中初始化的元素统一赋值为0

15.通信系统的组成,各部分的作用(标准答案)
a.通信系统由发送端(信源)、接收端(信宿)、信道、消息和协议组成。
b.信源是信息的发送方;信宿是信息的接收方;消息是通信双方发送的数据内容,包括文本、音频、视频数据等;信道是消息传递的介质,可以是光纤、同轴电缆等有线传输信道,也可以是wifi等无线传输信道;协议是通信双方发送数据 时共同遵守的规则,包括通信如何建立,数据报格式等。

16.写一函数inf fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1。
解析:如果用java写,先用StringBuilder将字符串转换为数组,然后用字符串存储逆序后的字符串,最后用逆序后的字符串与原字符串比较(equal()函数),返回对应值。
用c++写,两个指针向中间移动,每次比较是否相等,返回对应

//C++代码
inf fun(char *p){
   if(p==NULL){
      return -1;
   }
   for(int i=0,j=strlen(p)-1;i<=j;i++,j--){
     if(p[i]!=p[j]){
        return 0;
     }
  }
   return 1;
}
//Java代码
StringBuilder a=new StringBuilder(str);
String str1=a.reverse().tostring();
if(str1.equals(str))
{
return 1;
}
else
{return -1;}

17.现有以下元素:学号,姓名,性别,年龄,年级,课程名。课程号,专业,教师
(1)请利用以上元素写出学生关系s,学习关系sc,课程关系c,每种关系必须包含基本元素且不同关系之间元素交叉不宜过多
(2)利用(1)中的关系,检索计算机系的全体学生的学号,姓名和性别
(3)利用(1)的关系,检索学习课程号为c2的学生学号与姓名
解析:第一个问题是数据库关系问题,这一问是基础,绝对不能错,我想的是,学生关系涉及到学号,姓名,性别,年龄,年级,专业;学习关系是学生在哪个老师课程下学习,涉及到的有学号,课程号,老师;课程关系涉及到课程号,课程名,专业,老师,所以关系就有了
s(学号,姓名,性别,年龄,年级,专业)
sc(学号,课程号,老师)
c(课程号,课程名,专业,教师)
第二问,基本sql语句,不说了

select 学号,姓名,性别
from s
where 专业=‘计算机系’;

第三问,连接两个表,也比较简单

select S.学号,S.姓名
from s S,sc SC
where S.学号=SC.学号
and SC.课程号='c2';
···
18.黑盒测试:针对软件功能进行测试,不涉及代码逻辑结构
     白盒测试:从代码层级进行测试
  测试方法(标准答案):
常见的黑盒测试方法为等价类划分、边界值划分、因果图法、场景法等。白盒测试方法可分为逻辑覆盖、循环覆盖和基本路径测试。
19.输入三个整数,判断是否可构成三角形,请根据你了解的测试用例设计方法设计用例。
解析:参考18题测试方法,使用等价类划分方法,首先A,B,C三条边都必须大于0,其次同时满足任意两边之和大于第三边,所以以A+B>C,A+C>B,B+C>A这三个公式为准则,可以使用典型用例,即等边,等腰,直角三种三角形进行设计

以上就是整个试卷的所有题目,复习了从算法,数据库,计算机网络,操作系统到测试的基本概念,虽然题不难,但是很多知识点还是需要巩固加深,为马上到来的校招做准备!

你可能感兴趣的:(努比亚2017校招工程师试卷)