大华嵌入式软件开发工程师笔试 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++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。