华为笔试试题软件工程试题及答案

合集下载

华为IT软件测试笔试题

华为IT软件测试笔试题

华为IT软件测试笔试题it名企软件测试快开始了,下面人才网小编为大家带来的是华为it 软件测试笔试题,希望对大家有所帮助~判断题(10*1分):1、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象*。

(√)2、白盒测试侧重于程序结构,黑盒测试侧重于功能,其中白盒测试需要程序员参与,黑盒测试不需要(×)3、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。

(√)4、集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试(×)5、系统测试应尽可能在实际运行使用环境下进行(√)6、详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。

(√)7、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。

(×)8、程序、需求规格说明、设计规格说明都是软件测试的对象(√)9、第三方测试是在开发方与用户方的测试基础上进行的验*测试(×)10、数据流图和数据字典共同构成系统的逻辑模型。

(√)选择题(20*2分):1、软件测试的目的正确的是(d)①测试是为了发现程序中的错误而执行程序的过程;②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;③成功的测试是发现了至今为止尚未发现的错误的测试④测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;a、①b、①②③c、②③④d、①②③④2、软件测试的对象包括(b)a.目标程序和相关文档b.源程序、目标程序、数据及相关文档c.目标程序、*作系统和平台软件d.源程序和目标程序3、从是否关心软件内部结构和具体实现的角度划分。

(b)a、静态测试、动态测试b、黑盒测试、白盒测试、灰盒测试c、单元测试、集成测试、确认测试、系统测试、验收测试d、以上都不对4、关于软件测试模型,描述正确的是(c)a、v模型测试的对象就是程序本身,测试与开发可以同一阶段进行b、w模型测试的对象是程序,需求、设计等,可以支持迭代的开发模型c、h模型软件测试过程活动完全*,贯穿产品整个生命周期,与其他流程并发地进行。

华为软件测试笔试题

华为软件测试笔试题

华为软件测试笔试题
华为软件测试笔试题
华为软件测试笔试题
前面几道大题是基础形的判断、选择、阅读理解题,涉及到网络、通信、软件工程等等,都是大英文。

不过不难,CET4的水平就差不多了,但是重要的还是计算机方面的一些基础知识。

后面的几道大题如下:
1、有A、B两个水杯,都没有刻度,也不允许做刻度。

A杯装满水是5升,B杯装满水是3升。

不借助别的任何工具,只用这两个杯子如何精确的得到4升水?
A满5 B空
A将B满 A2
清空B
A2移于B
A满5
A5满B
A4
2、软件工程中,根据软件开发的` V 模型,有哪些基本的阶段划分?
3、软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些?
4、网络安全方面,简述Syn_FLOOD攻击的原理。

你还知道哪些类型的网络攻击?
一、根据一张“策略—收获”图,张三可以选择横向的方案A和方案B,李四可以选择纵向的方案1、方案2、方案3。

两人选择方案
的交叉点就是两人各自的收获。

比如张三选择方案B,李四选择方案1,交叉点是(50,80),则张三收获50元,李四收获80元。

两人都想让自己的收获尽可能的高,选择方案时两人均不知对方的选择。

问两人最终的收获各是多少?
二、桌上排列着一行乒乓球,一共100个。

两个人轮流拿球装入口袋,拿到第100个球的人是胜利者。

每次拿球最少拿1个,最多拿5个。

如果你先开始拿球,你要拿几个?以后你要怎样拿球,才能保证你能拿到第100个?
三、冒泡排序。

用C 或 Java 语言。

(从小到大排序)。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的三要素不包括以下哪一项?A. 工具B. 方法C. 过程D. 环境答案:D2. 软件需求分析阶段的主要任务是确定软件的()。

A. 功能需求B. 性能需求C. 界面需求D. 所有选项答案:D3. 软件测试的目的是()。

A. 发现软件中的错误B. 证明软件是正确的C. 验证软件是否满足需求D. 所有选项答案:D4. 以下哪一项不是软件维护的类型?A. 纠错性维护B. 适应性维护C. 完善性维护D. 开发性维护答案:D5. 软件项目管理的主要目标是()。

A. 提高软件质量B. 控制成本C. 缩短开发周期D. 所有选项答案:D6. 瀑布模型的主要缺点是()。

A. 缺乏灵活性B. 难以适应需求变化C. 无法并行开发D. 所有选项答案:D7. 敏捷开发方法的核心理念是()。

A. 以文档为中心B. 以人为中心C. 以过程为中心D. 以工具为中心答案:B8. 软件配置管理的主要目的是()。

A. 确保软件的一致性B. 跟踪软件的变更C. 控制软件的版本D. 所有选项答案:D9. 以下哪一项不是软件工程的原则?A. 抽象B. 模块化C. 复用D. 随机性答案:D10. 软件工程的目标是()。

A. 开发高质量的软件B. 提高软件生产率C. 降低软件成本D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件需求分析阶段可能包括以下哪些活动?A. 需求收集B. 需求分析C. 需求规格说明D. 需求验证答案:ABCD2. 软件测试的类型包括以下哪些?A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD3. 软件维护的常见原因包括以下哪些?A. 适应环境变化B. 修正软件缺陷C. 提高软件性能D. 增加新功能答案:ABCD4. 软件项目管理的关键活动包括以下哪些?A. 项目规划B. 项目监控C. 项目沟通D. 风险管理答案:ABCD5. 软件工程中的常见开发模型包括以下哪些?A. 瀑布模型B. 螺旋模型C. 敏捷模型D. 增量模型答案:ABCD三、判断题(每题2分,共10分)1. 软件工程的目标是开发出零缺陷的软件。

华为校园招聘软件工程师笔试题

华为校园招聘软件工程师笔试题

一、判断题〔对的写 T,错的写 F 并说明原因,每题 4 分,共 20 分〕1、有数组定义 int a[2][2]={{1},{2,3}};那末 a[0][1]的值为 0。

〔〕2、int (*ptr) (),那末 ptr 是一维数组的名字。

〔〕3、指针在任何情况下都可发展>, <, >=, <=, = =运算。

〔〕4、switch(c) 语句中 c 可以是 int, long, char, float, unsigned int 类型。

〔〕5、#define print(x) printf("the no, "#x",is ")二、填空题〔共 30 分〕1、在 windows 下,写出运行结果,每空 2 分,共 10 分。

char str[ ]= "Hello" ;char *p=str;int n=10;sizeof(str)=( )sizeof(p)=( )sizeof(n)=( )void func(char str[100]){ }sizeof(str)=( )2、void setmemory(char **p, int num){ *p=(char *) malloc(num);}void test(void){ char *str=NULL;getmemory(&str,100);strcpy(str,"hello");printf(str);}运行 test 函数有什么结果?〔〕10 分3、设 int arr[]={6,7,8,9,10};int *ptr=arr;(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr));( ) 10 分二、编程题〔第一小题 20,第二小题 30 分〕1、不使用库函数,编写函数 int strcmp(char *source, char *dest)相等返回 0,不等返回-1;2、写一函数 int fun(char *p)判断一字符串是否为回文,是返回1,不是返回 0,出错返回-1〔1〕什么是预编译,何时需要预编译:答案:1、总是使用不时常改动的大型代码体。

华为软件笔试

华为软件笔试

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

2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。

在这种情况下,可以将所有包含文件预编译为一个预编译头。

2)char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p; //常量指针,p的值不可以修改char const * p;//指向常量的指针,指向的常量值不可以改const char *p;//和char const *p 相同3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl;结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域4)一个32位的机器,该机器的指针是多少位答案:指针是多少位只要看地址总线的位数就行了。

软件工程笔试题

软件工程笔试题

软件工程笔试题一、选择题(共15题,每题2分,共30分)1. 软件工程的基本原则是:A. 高效性B. 可靠性C. 可维护性D. 所有选项都正确2. 下列哪种模型适合于需求变化频繁的项目?A. 瀑布模型B. 增量模型C. 原型模型D. 螺旋模型3. 在软件质量保证过程中,下列哪一项不是软件测试的目标?A. 发现系统中的缺陷B. 验证软件是否符合用户需求C. 验证软件的功能和性能D. 测试人员的工作量4. 下列哪项不属于结构化编程的原则?A. 自顶向下设计B. 模块化编程C. 循环结构D. 递归调用5. 需求获取阶段的主要任务是:A. 明确用户需求B. 定义系统的组成部分C. 编写详细的设计文档D. 评估软件开发成本6. 以下哪个例子不属于软件配置管理的内容?A. 版本控制B. 缺陷跟踪C. 文档管理D. 用户培训7. 下列哪个不是软件开发过程中需遵循的管理原则?A. 可行性分析B. 需求分析C. 软件设计D. 软件测试8. 在敏捷开发中,下列哪种方法是强调分阶段交付的?A. ScrumB. XP (极限编程)C. RAD (快速应用程序开发)D. 增量式开发9. 软件维护不包括以下哪项任务?A. 缺陷修复B. 系统升级C. 代码优化D. 需求获取10. 设计模式的主要目的是:A. 提高代码的可读性B. 简化复杂的软件设计C. 加快软件开发速度11. 面向对象的分析方法中,主要任务是:A. 确定软件的运行环境B. 识别系统中的对象和类C. 定义类之间的层次关系D. 实现类的封装和继承12. 下列哪个不是敏捷开发的原则?A. 个体和交互重于流程和工具B. 可工作的软件优先于详尽的文档C. 响应变化重于遵循计划D. 一次迭代周期内无法完成的任务必须放弃13. 软件开发的生命周期是:A. 需求分析 - 设计 - 编码 - 测试 - 维护B. 设计 - 编码 - 需求分析 - 测试 - 维护C. 测试 - 编码 - 维护 - 需求分析 - 设计D. 需求分析 - 编码 - 维护 - 测试 - 设计14. 在软件开发中,性能测试主要用于评估:B. 软件的响应速度C. 软件的功能完整性D. 软件的可靠性15. 在螺旋模型中,每个螺旋周期包括以下哪些阶段?A. 计划 - 需求分析 - 设计 - 编码 - 测试B. 计划 - 需求分析 - 设计 - 验收 - 维护C. 计划 - 需求分析 - 验收 - 用户培训 - 维护D. 计划 - 需求分析 - 设计 - 编码 - 用户培训二、填空题(共5题,每题5分,共25分)1. 软件开发的三要素是_____________、_____________和_____________。

软件工程学试题及答案

软件工程学试题及答案

软件工程学试题及答案一、单项选择题(每题2分,共10分)1. 软件工程的目的是()。

A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 下列哪项不是软件需求分析的任务?()。

A. 确定软件的功能需求B. 确定软件的性能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:D3. 软件生命周期中,()阶段是确定软件需求的阶段。

A. 需求分析B. 系统设计C. 编码D. 测试答案:A4. 软件测试的目的是()。

A. 证明软件是正确的B. 证明软件存在错误C. 发现软件中的错误D. 证明软件不存在错误答案:C5. 软件危机主要表现在()。

A. 软件成本B. 软件质量C. 软件进度D. 所有选项答案:D二、多项选择题(每题3分,共15分)1. 软件工程的基本原理包括()。

A. 用分阶段的生命周期计划严格管理B. 强调开发过程的迭代性质C. 采用合适的编程规范D. 强调软件工具的使用答案:ABD2. 软件需求分析的常用方法包括()。

A. 数据流图B. 用例图C. 状态转换图D. 流程图答案:ABC3. 软件测试的类型包括()。

A. 单元测试B. 集成测试C. 系统测试D. 验收测试答案:ABCD4. 软件维护的类型包括()。

A. 校正性维护B. 适应性维护C. 完善性维护D. 预防性维护答案:ABCD5. 软件工程中常用的设计模式包括()。

A. 单例模式B. 工厂模式C. 观察者模式D. 策略模式答案:ABCD三、简答题(每题5分,共20分)1. 简述软件工程中的模块化设计原则。

答案:模块化设计原则要求将系统分解成若干个模块,每个模块具有高内聚、低耦合的特点,以便于系统的开发、测试、维护和理解。

2. 描述软件需求分析的重要性。

答案:软件需求分析是软件开发过程中的关键步骤,它确保了开发团队对用户需求有清晰的理解,有助于避免开发出不符合用户需求的软件,减少返工和成本。

华为笔试试题软件工程试题及答案

华为笔试试题软件工程试题及答案

z=3, x=85, 83, ..., 1
z=4, x=80, 78, ..., 0
......
z=19, x=5, 3, 1
z=20, x=0
因此,组合总数为 100 以内的偶数+95 以内的奇数+90 以内的偶
数+...+5 以内的奇数+1,



(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)
华为笔试试题软件工程试题及答案
1.static 有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中 维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以 被模块内所用函数访问,但不能被模块外其它函数访问。它是一 个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其 它函数调用。那就是,这个函数被限制在声明它的模块的本地范 围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性在特定时间内完成特定的任务,实时 性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区 别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大 于 1。
struct stu{
char name[20];
char sex;

华为题目

华为题目

华为软件工程笔试真题(附答案)写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。

如:100个1是一个组合,5个1加19个5是一个组合。

请用C++语言写。

答案:最容易想到的算法是:设x 是1的个数,y是2的个数,z是5的个数,number是组合数注意到0=x=100,0=y=50,0=z=20,所以可以编程为:number=0;for (x=0; x=100; x++)for (y=0; y=50; y++)for (z=0; z=20; z++)if((x+2*y+5*z)==100)number++;coutnumberendl;上面这个程序一共要循环100*50*20次,效率实在是太低了事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。

我的解法如下:因为x+2y+5z=100所以x+2y=100-5z,且z=20 x=100 y=50所以(x+2y)=100,且(x+5z)是偶数对z作循环,求x的可能值如下:z=0, x=100, 98, 96, ... 0z=1, x=95, 93, ..., 1z=2, x=90, 88, ..., 0z=3, x=85, 83, ..., 1z=4, x=80, 78, ..., 0......z=19, x=5, 3, 1z=20, x=0因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+5以内的奇数+1,即为:(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+3)+1某个偶数m以内的偶数个数(包括0)可以表示为m/2+1=(m+2)/2某个奇数m以内的奇数个数也可以表示为(m+2)/2所以,求总的组合次数可以编程为:number=0;for (int m=0;m=100;m+=5){number+=(m+2)/2;}coutnumberendl;这个程序,只需要循环21次, 两个变量,就可以得到答案,比上面的那个程序高效了许多倍----只是因为作了一些简单的数学分析这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种种限制条件下的最优算法。

最新软件工程考试题库(含答案和解析)

最新软件工程考试题库(含答案和解析)

最新软件工程考试题库(含答案和解析)一、选择题1. 以下哪个不是软件工程的三个基本目标之一?A. 可维护性B. 可靠性C. 可用性D. 低成本答案:D解析:软件工程的三个基本目标是可维护性、可靠性和可用性。

低成本虽然也是一个重要的考虑因素,但并不是软件工程的基本目标。

2. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程答案:A解析:面向对象编程(OOP)通过将数据和操作数据的方法封装在一起,降低了软件复杂性,提高了代码的可重用性和可维护性。

3. 软件开发过程中,以下哪个阶段需要进行需求分析?A. 设计阶段B. 编码阶段C. 测试阶段D. 需求分析阶段答案:D解析:需求分析是软件开发过程中的第一个阶段,其主要任务是明确软件系统的功能、性能等需求。

4. 以下哪个软件工程方法主要关注软件项目的管理?A. 敏捷开发B. ScrumC. UMLD. 设计模式答案:B解析:Scrum 是一种敏捷开发方法,主要关注软件项目的管理和团队协作。

UML(统一建模语言)主要用于软件设计,设计模式主要用于解决软件设计中的常见问题。

5. 以下哪个软件工具主要用于版本控制?A. GitB. EclipseC. JiraD. Visual Studio答案:A解析:Git 是一款分布式版本控制系统,主要用于跟踪和管理软件开发过程中的代码变更。

二、填空题1. 软件工程的基本活动包括______、______、______和______。

答案:需求分析、设计、编码、测试2. 敏捷开发的核心价值观包括______、______、______、______和______。

答案:个体和互动、工作软件、客户协作、响应变化、持续交付3. 软件开发过程中,常用的设计模式包括______、______、______、______和______。

答案:工厂模式、单例模式、策略模式、装饰模式、观察者模式4. 软件测试的目的是______、______和______。

软件工程师笔试题及答案

软件工程师笔试题及答案

软件工程师笔试题及答案一、选择题(每题5分,共50分)1. 下列哪个选项是面向对象编程的三大特性?A. 封装、继承、多态B. 封装、继承、抽象C. 封装、继承、封装D. 继承、多态、抽象答案:A2. 在Java中,下列哪个关键字用于定义一个接口?A. classB. interfaceC. abstractD. extends答案:B3. 在关系型数据库中,用于创建表的SQL语句是?A. CREATE TABLEB. SELECT TABLEC. INSERT TABLED. DEFINE TABLE答案:A4. 下列哪个不是HTTP状态码?A. 200B. 404C. 500D. 600答案:D5. 在HTML中,用于定义文档标题的标签是?A. <title>B. <h1>C. <header>D. <div>答案:A6. 在JavaScript中,下列哪个方法用于将字符串转换为小写?A. toLowerCase()B. toUpperCase()C. toCamelCase()D. toTitleCase()答案:A7. 在C语言中,下列哪个关键字用于定义一个函数?A. defineB. functionC. defD. void答案:D8. 在Python中,下列哪个方法用于获取列表的长度?A. len()B. length()C. size()D. count()答案:A9. 在Unix/Linux系统中,下列哪个命令用于查看当前目录下的文件和文件夹?A. lsB. dirC. listD. show答案:A10. 下列哪个不是敏捷软件开发的价值观?A. 个体和互动B. 可工作的软件C. 详尽的文档D. 客户合作答案:C二、简答题(每题10分,共50分)1. 请简述什么是软件工程?答案:软件工程是一门研究如何高效、系统地开发、运行和维护软件的学科。

华为IT软件测试笔试题

华为IT软件测试笔试题

华为IT软件测试笔试题判断题(10*1分):1、软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。

(√)2、白盒测试侧重于程序结构,黑盒测试侧重于功能,其中白盒测试需要程序员参与,黑盒测试不需要(×)3、单元测试通常应该先进行“人工走查”,再以白盒法为主,辅以黑盒法进行动态测试。

(√)4、集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试(×)5、系统测试应尽可能在实际运行使用环境下进行(√)6、详细设计的目的是为软件结构图中的每一个模块确定使用的算法和块内数据结构,并用某种选定的表达工具给出清晰的描述。

(√)7、测试人员在测试过程中发现一处问题,如果问题影响不大,而自己又可以修改,应立即将此问题正确修改,以加快、提高开发的进程。

(×)8、程序、需求规格说明、设计规格说明都是软件测试的对象(√)9、第三方测试是在开发方与用户方的测试基础上进行的验证测试(×)10、数据流图和数据字典共同构成系统的逻辑模型。

(√)选择题(20*2分):1、软件测试的目的正确的是(D)①测试是为了发现程序中的错误而执行程序的过程;②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;③成功的测试是发现了至今为止尚未发现的错误的测试④测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;A、①B、①②③C、②③④D、①②③④2、软件测试的对象包括(B)A.目标程序和相关文档B.源程序、目标程序、数据及相关文档C.目标程序、操作系统和平台软件D.源程序和目标程序3、从是否关心软件内部结构和具体实现的角度划分。

(B)A、静态测试、动态测试B、黑盒测试、白盒测试、灰盒测试C、单元测试、集成测试、确认测试、系统测试、验收测试D、以上都不对4、关于软件测试模型,描述正确的是(C)A、V模型测试的对象就是程序本身,测试与开发可以同一阶段进行B、W模型测试的对象是程序,需求、设计等,可以支持迭代的开发模型C、H模型软件测试过程活动完全独立,贯穿产品整个生命周期,与其他流程并发地进行。

软件工程考试题及答案

软件工程考试题及答案

软件工程考试题及答案一、单项选择题(每题2分,共20分)1. 软件工程的主要目标是()。

A. 提高软件的生产率B. 提高软件的运行效率C. 降低软件的生产成本D. 提高软件的可维护性答案:A2. 软件工程的三要素包括()。

A. 方法、工具和过程B. 方法、工具和人员C. 方法、过程和人员D. 工具、过程和人员答案:C3. 软件需求分析阶段的主要任务是()。

A. 确定软件的功能需求B. 确定软件的非功能需求C. 确定软件的界面需求D. 确定软件的测试需求答案:A4. 软件设计阶段的主要任务是()。

A. 制定软件开发计划B. 确定软件的体系结构C. 编写软件详细设计文档D. 进行软件测试答案:B5. 软件测试的目的是()。

A. 证明软件是正确的B. 发现软件中的错误C. 证明软件是无错误的D. 证明软件是可维护的答案:B6. 软件维护不包括以下哪项活动()。

A. 改正性维护B. 适应性维护C. 完善性维护D. 软件设计答案:D7. 软件项目管理的主要任务不包括()。

A. 进度管理B. 质量管理C. 风险管理D. 软件编码答案:D8. 面向对象方法中,对象的基本特性不包括()。

A. 抽象B. 封装C. 继承D. 多态答案:D9. UML(统一建模语言)是一种()。

A. 程序设计语言B. 数据库查询语言C. 建模语言D. 脚本语言答案:C10. 在软件开发过程中,需求变更是不可避免的,以下哪项不是需求变更的原因()。

A. 客户的需求不明确B. 项目范围的扩大C. 技术实现的困难D. 软件已经完成答案:D二、多项选择题(每题3分,共15分)11. 软件工程的基本原理包括()。

A. 抽象B. 模块化C. 逐步求精D. 迭代开发答案:ABC12. 软件需求分析阶段的输出包括()。

A. 需求规格说明书B. 用户手册C. 系统架构图D. 测试计划答案:A13. 软件设计阶段的主要文档包括()。

A. 架构设计文档B. 详细设计文档C. 用户手册D. 测试计划答案:AB14. 软件测试的类型包括()。

软件工程师笔试题及答案

软件工程师笔试题及答案

软件工程师笔试题及答案一、选择题(每题5分,共50分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. structC. interfaceD. enum答案:A2. 下列关于Python中的列表推导式描述错误的是?A. 可以用于创建列表B. 可以用于列表元素的过滤C. 只能用于创建列表D. 可以用于列表元素的转换答案:C3. 在C++中,以下哪个操作符用于实现多态?A. &B. *C. newD. ::答案:D4. 在数据库设计中,以下哪个原则用于避免数据冗余?A. 范式设计B. 反范式设计C. 索引设计D. 视图设计5. 在HTML中,以下哪个标签用于定义文档的头部?A. <head>B. <title>C. <header>D. <h1>答案:A6. 在JavaScript中,以下哪个方法用于将字符串转换为小写?A. toUpperCase()B. toLowerCase()C. split()D. join()答案:B7. 在Unix/Linux系统中,以下哪个命令用于查看当前工作目录?A. pwdB. lsC. cdD. mkdir答案:A8. 在软件工程中,以下哪个阶段是软件开发生命周期的最后一个阶段?A. 需求分析B. 设计C. 测试D. 维护答案:D9. 在面向对象编程中,以下哪个概念用于描述对象的状态和行为?B. 继承C. 封装D. 多态答案:A10. 在网络编程中,以下哪个协议用于传输电子邮件?A. HTTPB. FTPC. SMTPD. TCP答案:C二、简答题(每题10分,共50分)1. 请简述什么是软件工程?答:软件工程是一门应用计算机科学、数学、逻辑学等学科知识,通过工程化方法进行软件开发、运行和维护的学科。

2. 什么是敏捷开发?答:敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法论,强调团队合作、客户反馈和对变化的适应性。

华为软件测试工程师笔试及部分答案.doc

华为软件测试工程师笔试及部分答案.doc

1:请你分别划OSI的七层网络结构图,和TCP/IP的五层结构图?OSI的七层网络结构图,和TCP/IP的五层结构图OSIOSI是Open System Interconnect的缩写,意为开放式系统互联。

在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构最为著名。

为了解决不同体系结构的网络的互联问题,国际标准化组织ISO(注意不要与OSI搞混))于1981年制定了开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。

这个模型把网络通信的工作分为7层,它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(Presen tation Layer)和应用层(Application Layer)。

第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。

每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。

当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。

物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。

总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。

OSI参考模型的各个层次的划分遵循下列原则:1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。

华为软件测试工程师笔试及部分答案

华为软件测试工程师笔试及部分答案

1:请你分别划OSI的七层网络结构图,和TCP/IP的五层结构图OSI的七层网络结构图,和TCP/IP的五层结构图OSIOSI是Open System Interconnect的缩写,意为开放式系统互联。

在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构最为著名。

为了解决不同体系结构的网络的互联问题,国际标准化组织ISO(注意不要与OSI搞混))于1981年制定了开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。

这个模型把网络通信的工作分为7层,它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(Presen tation Layer)和应用层(Application Layer)。

第一层到第三层属于OSI 参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。

每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。

当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。

物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。

总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。

OSI参考模型的各个层次的划分遵循下列原则:1、同一层中的各网络节点都有相同的层次结构,具有同样的功能。

华为软件笔试题精修订

华为软件笔试题精修订

华为软件笔试题标准化管理部编码-[99968T-6889628-J68568-1689N]华为软件笔试题一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。

()2、int(*ptr)(),则ptr是一维数组的名字。

()3、指针在任何情况下都可进行>,<,>=,<=,==运算。

()4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。

()5、#defineprint(x)printf("theno,"#x",is")二、填空题(共30分)1、在windows下,写出运行结果,每空2分,共10分。

charstr[]="Hello";char*p=str;intn=10;sizeof(str)=()sizeof(p)=()sizeof(n)=()voidfunc(charstr[100]){}sizeof(str)=()2、voidsetmemory(char**p,intnum){*p=(char*)malloc(num);}voidtest(void){char*str=NULL;getmemory(&str,100);strcpy(str,"hello");printf(str);}运行test函数有什么结果()10分3、设intarr[]={6,7,8,9,10};int*ptr=arr;(ptr++)+=123;printf("%d,%d",*ptr,*(++ptr));()10分二、编程题(第一小题20,第二小题30分)1、不使用库函数,编写函数intstrcmp(char*source,char*dest)相等返回0,不等返回-1;2、写一函数intfun(char*p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1(1)什么是预编译,何时需要预编译:答案:1、总是使用不经常改动的大型代码体。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华为笔试试题软件工程试题及答案1.static有什么用途?(请至少说明两种)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。

它是一个本地的全局变量。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。

那就是,这个函数被限制在声明它的模块的本地范围内使用2.引用与指针有什么区别?1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针可以改变所指的对象。

3) 不存在指向空值的引用,但是存在指向空值的指针。

3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性。

4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在堆栈。

5.什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。

6.堆栈溢出一般是由什么原因导致的?没有回收垃圾资源。

7.什么函数不能声明为虚函数?constructor函数不能声明为虚函数。

8.冒泡排序算法的时间复杂度是什么?时间复杂度是O(n^2)。

9.写出float x 与“零值”比较的if语句。

if(x>0.000001&&x<-0.000001)10.Internet采用哪种网络协议?该协议的主要层次结构?Tcp/Ip协议主要层次结构为:应用层/传输层/网络层/数据链路层/物理层。

11.Internet物理地址和IP地址转换采用什么协议?ARP (Address Resolution Protocol)(地址解析協議)12.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。

不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

13.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。

写出C程序。

循环链表,用取余操作做14.不能做switch()的参数类型是:switch的参数不能为实型。

上海华为的一道关于指针方面的编程题int A[nSize],其中隐藏着若干0,其余非0整数,写一个函数int Func(int* A, int nSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。

(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)华为笔试题含答案 [软件工程题]写一个程序, 要求功能:求出用1,2,5这三个数不同个数组合的和为100的组合个数。

如:100个1是一个组合,5个1加19个5是一个组合。

请用C++语言写。

答案:最容易想到的算法是:设x是1的个数,y是2的个数,z是5的个数,number是组合数注意到0<=x<=100,0<=y<=50,0<=z=20,所以可以编程为:number=0;for (x=0; x<=100; x++)for (y=0; y<=50; y++)for (z=0; z<=20; z++)if ((x+2*y+5*z)==100)number++;cout<<number<<endl;< p="" data-filtered="filtered">上面这个程序一共要循环100*50*20次,效率实在是太低了事实上,这个题目是一道明显的数学问题,而不是单纯的编程问题。

我的解法如下:因为x+2y+5z=100所以x+2y=100-5z,且z<=20 x<=100 y<=50所以(x+2y)<=100,且(x+5z)是偶数对z作循环,求x的可能值如下:z=0, x=100, 98, 96, 0z=1, x=95, 93, ..., 1z=2, x=90, 88, ..., 0z=3, x=85, 83, ..., 1z=4, x=80, 78, ..., 0......z=19, x=5, 3, 1z=20, x=0因此,组合总数为100以内的偶数+95以内的奇数+90以内的偶数+...+5以内的奇数+1,即为:(51+48)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18 )+(16+13)+(11+8)+(6+3)+1某个偶数m以内的偶数个数(包括0)可以表示为m/2+1=(m+2)/2 某个奇数m以内的奇数个数也可以表示为(m+2)/2所以,求总的组合次数可以编程为:number=0;for (int m=0;m<=100;m+=5){number+=(m+2)/2;}cout<<number<<endl;< p="" data-filtered="filtered">这个程序,只需要循环21次, 两个变量,就可以得到答案,比上面的那个程序高效了许多倍----只是因为作了一些简单的数学分析这再一次证明了:计算机程序=数据结构+算法,而且算法是程序的灵魂,对任何工程问题,当用软件来实现时,必须选取满足当前的资源限制,用户需求限制,开发时间限制等种种限制条件下的最优算法。

而绝不能一拿到手,就立刻用最容易想到的算法编出一个程序了事——这不是一个专业的研发人员的行为。

那么,那种最容易想到的算法就完全没有用吗?不,这种算法正好可以用来验证新算法的正确性,在调试阶段,这非常有用。

在很多大公司,例如微软,都采用了这种方法:在调试阶段,对一些重要的需要好的算法来实现的程序,而这种好的算法又比较复杂时,同时用容易想到的算法来验证这段程序,如果两种算法得出的结果不一致(而最容易想到的算法保证是正确的),那么说明优化的算法出了问题,需要修改。

可以举例表示为:#ifdef DEBUGint simple();#end ifint optimize();......in a function:{result=optimize();ASSERT(result==simple());}这样,在调试阶段,如果简单算法和优化算法的结果不一致,就会打出断言。

同时,在程序的发布版本,却不会包含笨重的simple()函数。

——任何大型工程软件都需要预先设计良好的调试手段,而这里提到的就是一种有用的方法。

一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起,给出一个age, 在些链表中删除学生年龄等于age的学生信息。

#include "stdio.h"#include "conio.h"struct stu{char name[20];char sex;int no;int age;struct stu * next;}*linklist;struct stu *creatlist(int n){int i;//h为头结点,p为前一结点,s为当前结点struct stu *h,*p,*s;h = (struct stu *)malloc(sizeof(struct stu));h->next = NULL;p=h;for(i=0;i<n;i++)< p="" data-filtered="filtered">{s = (struct stu *)malloc(sizeof(struct stu));p->next = s;printf("Please input the information of the student: name sex no age \n"); scanf("%s %c %d %d",s->name,&s->sex,&s->no,&s->age);s->next = NULL;p = s;}printf("Create successful!");return(h);}void deletelist(struct stu *s,int a) {struct stu *p;while(s->age!=a){p = s;s = s->next;}if(s==NULL)printf("The record is not exist."); else{p->next = s->next;printf("Delete successful!");}}void display(struct stu *s){s = s->next;while(s!=NULL){printf("%s %c %d %d\n",s->name,s->sex,s->no,s->age); s = s->next;}}int main(){struct stu *s;int n,age;printf("Please input the length of seqlist:\n"); scanf("%d",&n);s = creatlist(n);display(s);printf("Please input the age:\n");scanf("%d",&age);deletelist(s,age);display(s);return 0;}2、实现一个函数,把一个字符串中的字符从小写转为大写。

#include "stdio.h"#include "conio.h"void uppers(char *s,char *us){for(;*s!='\0';s++,us++){if(*s>='a'&&*s<='z')*us = *s-32;else*us = *s;}*us = '\0';}int main(){char *s,*us;char ss[20];printf("Please input a string:\n");scanf("%s",ss);s = ss;uppers(s,us);printf("The result is:\n%s\n",us);getch();}随机输入一个数,判断它是不是对称数(回文数)(如3,121,12321,45254)。

相关文档
最新文档