大华嵌入式软件开发工程师笔试 9-17

《嵌入式软件开发笔试与面试手册》https://blog.nowcoder.net/zhuanlan/jvN8gj

《软件开发笔试汇总》https://blog.nowcoder.net/zhuanlan/0oDWVm

点赞收藏超50附上参考答案

单选题

1.语句switch(c)中的c不能是哪种数据类型()

char

char*

time_t

unsigned long long

 

2.下列函数中,可以作为虚函数的是:

全局静态函数

普通成员函数

静态成员函数

构造函数

 

3.下面哪个操作是安全的,不会导致内存操作越界

void func(char *p){char a[20] ={0}; strcpy(a, p);}

void func(char * p){int len = strlen(p)-1; char *a =(char*) malloc(len); memcpy(a,p, len);}

void func(char *p){int len = strien(p); char *a = (char*) malloc(len+1); memcpy(a, p, len); a[len] ='\0';}

void func(char*p){ char a[100] = {0}; sprintf(a,"%s%d" , p, 1);}

 

4.如下代码,打印输出的结果是

typedef struct

{

int a:8;

int b:8;

int c:8;int d:8;

}field;

int main(void)

{

field t1;

memset(&t1,0, sizeof(t1));

t1.a = 257;

printf("%d %d\n", t1.a, t1.b);

return 0;

}

A 257 0

B 255 2

C 0 2

D 1 0

 

5. std::map<key,value>,当key值不是非基本类型时,需要实现哪个函数?

operator<()

operator<<()

operator>>()

operator>()

 

6.有关析构函数的说法不正确的是:

析构函数有且仅有一个

析构函数和构造函数一样可以有形参

析构函数的功能是用来释放一个对象

析构函数无任何函数类型

 

7.以下错误的行是:

std:cout<<"测试\n";

operator<<(std:cout,"测试\n");

endl(std::cout);

std::cout <<endl;

 

8.下列关于函数模板的描述中,正确的是

函数模板的类型参数与函数的参数是同一个概念

使用函数模板定义的函数没有返回类型

函数模板的类型参数与函数的参数相同

一个类定义中,只要有一个函数模板,则这个类是类模板

 

9. #include <iostream>

struct X

{

X (){ std::cout << "1";}

X(const X&) { std::cout << "3";}

~X() { std:cout << "2";}

void f() { std::cout<< "4";}

}object;

int main()

{

X (object);

object.f();

}

11422

13422

12342

13242

 

10.class A

{

public:

A()

{

printf("A Constructn");

func_init();

}

virtual ~A()

{

printf("A Destructin");

func_deinit();

}

virtual void func_init()

{

printf("this is A func_init\n");

}

virtual void func_deinit()

{

printf("this is A func_deinit\n");

}

};

class B: public A

{

public:

B()

{

printf("B Constructln");

func_init();

~B()

{

printf("B Destructln");

func_deinit();

}

void func_init()

{

printf("this is B func_init\n");

}

void func_deinit()

{

printf("this is B func_deinit\n");

}

};

int main()

A* p = new B();

delete p;

}

以上代码的输出是:

A Constuct this is B func_init B Construct this is B func_init B Destruct this is B func_deinit A Destruct this is B func_deinit

A Construct this is A func_init B Construct this is B func_init B Destruct this is B func_deinit A Destruct this is A func_deinit

A Construct this is B func_init B Construct this is B func_init A Destruct this is B func deinit B Destruct this is B func_deinit

B Construct this is A func_init A Construct this is B func init A Destruct this is B func deinit B Destruct this is A func_deinit

 

11.template<typename T>

void print(T&& v)

{}

函数中,如果传入的是一个std::string &进来,那么v会被推导成:

string &&

string &

string

string *

 

12. test.cpp内容如下

#include <iostream>

using namespace std;

int show(char* p)

{

return sizeof(p);

}

int main()

{

char p[2];

cout<< sizeof(p)<<"" << show(p)<< endl;

return O;

}

用g++-m32 test.cpp编译执行结果是?

22

24

44

28

 

13.下面代码运行输出是

#include <stdio.h>

int

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要发布嵌入式软件开发相关岗位的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论
发个答案呗
点赞
送花
回复
分享
发布于 2023-10-27 20:49 福建

相关推荐

点赞 评论 收藏
转发
11 10 评论
分享
牛客网
牛客企业服务