您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页广联达面试

广联达面试

来源:爱go旅游网


1.

[编程]给定一个整数,获得它的逆序数,如整数87231,逆序后为13278

2.

[编程]两个无序链表A和B,将其合并为递增排列的一个链表

3.

[编程]找出两个排序数组的合集,如[1,3,4,5,6],[3,5,7,9],合集是[3,5],用一种高效的方法编程实现

4.

[编程]将一个句子的单词反过来(单词原样),比如\"i am cheating\"变成\"cheating am i\"

5.

[设计]有一个遥控,有四个按钮,编号为0,1,2,3,其中0,2控制电器1和电器2的开,1,3控制电器1,2的关,设计一个系统,要求能够开关客厅的电视和卧室的灯,设计一个系统,设计相关的类,要求具有较好的扩展性,最好采用UML方式,或者描述类的主要属性和关键操作

论述题:

描述自己在开发过程解决的一个最成功的问题,描述这个问题,并说明是用什么方法、途径解决的,给出必要的数据结构和算法

1. 给出一个字符串,编写程序看字符串是否为整数,如果是整数则返回值。

2. 2.给出一个字符串数组,让每个数组元素右移N个,如“abcdefg”右移2个,变成“fgabcde”

3. 3.用高效排序的方法,查找为数字为N的个数,如“1116667799”,“6”的个数为3

编程题一:

给出一组数,表示公司员工的年龄(无序),要求求出最小的年龄差。且要求时间复杂度小于O(N\\^2).

如果最简单的两重循环肯定可以得到结果,但是时间复杂度不合要求。一般想法是,先排序再遍历求解。选择快排和堆排序等时间复杂度为O(NlogN)的。

解答一:先排序后遍历一遍,遍历求出最小年龄差。排序选择库函数qsort,方便快捷。时间复杂度O(NlogN)+O(N)

解答二:既然都想到了排序,hash应该是必须的。申明大小为100的数组,将每个年龄是否出现进行统计,然后遍历求出最小年龄差就可以了。时间复杂度O(N)。(我居然没有想到!!)

编程题二:

给出单链表中某一个节点的指针,要求在O(1)的时间复杂度内删除该节点。

函数形式void delete(Node ** root, Node * pToBeDeleted);

解法如图:

编程题三:

给出一些名词、动词和副词,并规定语法规则,判断给出的句子是否符合语法规则。

语法规则:

• sentence = Noun + Verb

• sentence = sentence + adverb + sentence

词汇上给定名词 birds、flowers等,动词fly、grow等,副词and、or等

分析:因为这题就写了点想法和伪代码,不瞎说了。

感觉有点编译原理的味道,想法就是循环/递归来做。

1. 先判断是否为一个名词+动词的句子。是,返回true,否则返回false。

2. 判断后面是否有副词

3. 如果有,重复第1步

4. 如果没有,是文件结尾,则true,否则false

C++与C有什么不同?

C++语言是在C语言的基础上进行了较大量的扩充和改进而得到的。它继承了C语言的全部内容,并在C语言的基础之上增加了面向对象编程的内容,C++既支持面向过程的程序设计,又支持新型的面向对象程序设计。因此C++并不是一种新的语言,也不是纯粹的面向对象程序设计语言,因此学过C语言的人只要了解了C++与C语言的区别,很快就可进入到C++的面向对象程序设计部分。

C++与C语言的关系如下:

1、C++保持了与C语言的兼容

这种兼容性表现在许多C代码的程序不经修改就可为C++所用。用C语言编写的许多库函数和应用软件也都可以用于C++。

但是,这种兼容性使得C++不是一个纯正的面向对象程序设计语言。因为C语言是面向过程的语言,C++要与C语言兼容,所以C++也要支持面向过程的程序设计。由于面向过程程序设计和面向对象程序设计是两种不同风格的程序设计技术,对于已经习惯于面向过程程序设计的人员可能会有一定的障碍,相反没有学过程序设计的人员不会受面向过程程序设计方面的约束,更利于掌握面向对象程序设计技术。

2、C++对C语言作了很多改进

C++首先保持了语言的简洁、高效和接近汇编语言等优点,同时又给语言的不足和问题作了很多改进。下面列出一些重要改进之处。

(1)增加了一些在新的运算符,使得C++应用起来更加方便。例如:::,new,delete,.*,->.等。

(2)改进了类型系统,增加了安全性,C语言种类型转换很不严格。C++规定类型转换多采用强制转换。又规定函数的说明必须用原型。对缺省类型作了些限制。

(3)增加了引用概念,使得引用函数参数带来了很大方便。

(4)允许函数重载,允许设置缺省参数,这些措施提高了编程的灵活性,减少了冗余性。又引进了内联函数的概念,提高了程序的效率。

(5)对变量说明更加灵活了。C语言只允许在函数体或分程序内,显示对变量的说明语句,再是执行语句,两者不可交叉使用。C++打破了这一限制,可以对变量随时进行说明。

3、C++与C语言的本质差别

C++与C语言的本质差别就在于C++是面向对象的,而C语言是面向过程的。或者说C++是在C语言的基础上增加了面向对象程序设计的新内容,是对C语言的一次更重要的改革,使得C++成为软件开发的重要工具。

C++是纯面向对象的吗?

1) main函数不在任何类里面,因为这点,所以做不到完全面向对象,下面其他的都是可以解决的

2)基本的数据类型也不是对象(从这点上看Java也不是完全面向对象的) 3)友元会破坏封装性

4)支持独立的函数,数据,即过程化编程

其实所谓的完全面向对象,是一些人想出来的卖点,并没有太大的实际意义,难道把main包含进class这种语言就强大了?

C++支持面向过程、基于对象、和面向对象三种模式

类和对象有什么不同?

类和对象的区别

1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。

2,对象是类的一个具体。它是一个实实在在存在的东西。

3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。

4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务