本页仅为文字内容,不可回答。

软件工程师(C/C++)笔试题-B卷

姓名
    ____________
手机号码
    ____________
应聘岗位
    ____________
一、逻辑填空题
1、 逻辑函数式F=AB+AC的对偶式为 ,最小项表达式为( )。
2、仓库门上装了两把暗锁,A、B两位保管员各管一把锁的钥匙,必须二人同时开锁才能进库。这种逻辑关系为 。
3、1=5,2=15,3=215,4=2145,那么5= 。 
4、1,11,21,1211,111221,下一个数是 。   
5、有一牧场,已知养牛27头,6天把草吃尽;养牛23头,9天把草吃尽。如果养牛21头,那么   天能把牧场上的草吃尽呢?并且牧场上的草是不断生长的。
6、1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到 瓶汽水?
二、逻辑选择题
(1)、1/2,1/3,2/3,6/3,( ),54/36
A、9/12
B、18/3
C、18/6
D、18/36
(2)、10、9、17、50、( )
A、45
B、189
C、199
D、80
(3)、2、8、24、64、( )
A、160
B、162
C、100
D、90
(4)、在函数F=AB+CD的真值表中,F=1的状态有()个。
A、2
B、4
C、6
D、7
(5)、图形中“?”处应为( )
A、
B、
C、
D、
(6)、
A、
B、
C、
D、
(7)、计算机键盘上有101个键,若用二进制代码进行编码,至少应为( )位。
A、6
B、7
C、8
D、51
(8)、来自英、法、日、德的甲、乙、丙、丁四位客人,刚好碰在一起。他们除懂本国语言外,每人还会说其他三国语言的一种。有一种语言是三个人都会说的,但没有一种语言人人都懂,现知道:  ① 甲是日本人,丁不会说日语,但他俩都能自由交谈 ;② 四个人中,没有一个人既能用日语交谈,又能用法语交谈 ;③ 乙、丙、丁交谈时,找不到共同语言沟通 ;④ 乙不会说英语,当甲与丙交谈时,他都能做翻译。可见( )  
A、甲日德、乙法德、丙英法、丁英德
B、甲日法、乙日德、丙英法、丁日英
C、甲日法、乙法德、丙英德、丁英法
D、甲日法、乙英德、丙法德、丁日德
分割线
三、专业选择题
1、class A{};class B{ inta; Aobj;};class C : private A{ inta;};根据程序: sizeof(A), sizeof(B), sizeof(C) 分别为( )
A. 1,5,4
B. 1,8,4
C. 0,5,5
D. 0,8,5
2、 c++ 中指针的长度为( )
A. 2
B. 4
C. 8
D. 以上都有可能.
3、关于c++ 中结构体描述正确的是 ( )
A、结构体中不能含有函数
B、结构体的大小就是其中每个变量类型的长度和
C、结构体能有构造函数和析构函数
D、结构体就是类
4、int c = 10; float *p = (float*)c; std::cout *p;以上程序的输出结果是( )
A、010
B、10
C、0x10
D、不确定
5、float ff = 100.0f; void *p1 = (void*)(*(int*)ff); float f2 = _______p1;若让f2为ff的值, 则空格处需要填( )
A、*(float*)
B、*(float*)
C、(float)
D、(float)*(int*)
6、根据二叉树写出后序遍历结果( )
A、F-D-B-A-C-E-G
B、G-E-C-B-D-F-A
C、A-B-D-F-C-E-G
D、F-D-B-G-E-C-A
7、C++ 中类中不存在的函数是( )
A、静态构造函数
B、静态函数
C、const 修饰的虚函数
D、const 修饰的纯虚函数
8、c++ 中哪种调用不属于静态联编( )
A、类名直接调用
B、对象名调用
C、派生类指针调用
D、父类指向子类的指针调用
9、属于c++ 中函数指针声明的是 ( )
A、typedef float* (*template(const char *, int &));
B、int *func(int);
C、typedef double* (*Template());
D、float (*ff1);
10、c++ 中virtual 关键字是否可以用来修饰成员变量( )
A.、可以
B、不可以
C、取决于类本身是否是纯虚类
D、不确定
四、专业填空题
1、完成程序使运行结果为 100。voidfunc(int a){ ______ = 100;}intmain(){ Int a = 0; func((int)a); std::cout a; return 0;}
2、完成程序使运行结果为 100。void func(______ a){ a= new int(); *a= 100;}int main(){ int*a = nullptr; func(a); std::cout *a; return0;}
3、阅读程序:class A{public: A(){} ~A(){std::cout ”A”;}};Class B{public: B(){} ~B(){std::cout “B”;}};int main(){ A*p = new B(); deletep; return0;}程序的输出结果是:________程序存在什么问题,如何修改:________修改后的运行结果:________
4、C++11 中代码 [](){}() 表示什么意思________
5、std::vectorint va; va.reserve(10); va.push_back(100); std::vectorintvb = std::move(va); 根据程序, 则va.size()为_______, vb.size() 为______
五、程序设计题
1、用C++设计字符串类,要求必须包含字符串赋值,拼接和支持std::cout输出。(20分)
2、C++ 编程实现,在平面上从大量已知点中找出到给定点距离最近的已知点。(20分)
六、附加题1、简述思路,写出核心代码。Given an 2D board, count how many different battleships are in it. The battleships are represented with 'X's, empty slots are represented with '.'s. You may assume the following rules: —— You receive a valid board, made of only battleships or empty slots.—— Battleships can only be placed horizontally or vertically. In other words, they can only be made of the shape 1xN (1 row, N columns) or Nx1 (N rows, 1 column), where N can be of any size.—— At least one horizontal or vertical cell separates between two battleships - there are no adjacent battleships.Example:X..X...X...XIn the above board there are 2 battleships.Invalid Example:...XXXXX...XThis is an invalid board that you will not receive - as battleships will always have a cell separating between them.Follow up:Could you do it in one-pass, using only O(1) extra memory and without modifying the value of the board?