- 首页 > it技术 > >
2022春招魔视智能科技-嵌入式开发工程师笔试回忆版
声明:
- 这家公司偏人工智能
- 题目仅代表个人观点,若有错误欢迎指出。
一、单选
- 瀑布模型把软件生命周期划分为8个主要阶段,其中(C)阶段定义的规划将成为软件测试中的系统测试阶段的目标。
A.问题的定义
B.可行性研究
C.软件需求分析
D.系统总体设计
这题一开始我选的B,记住答案就行了,太偏了
- 有以下程序,执行后的结果是(B)
void main() {
char *s[] = {"one", "two", "three"}, *p;
p = s[1];
printf("%c, %s\n", *(p + 1), s[0]);
}
A. n,two
B. w,one
C. t,one
D. o,two
- 这题我写错了,错因在不清楚字符指针数组。
- 这里s是一个字符指针数组,数组中存放的是一个个字符指针,char p = "abc"表示将字符串常量abc的首地址赋值给p,所以p=s[1]即为char p = "two",接下来就柳暗花明了。
二、填空
- 在32位系统中,写代码向内存0x30008000地址写入一个整形值0x100
- 属实不会,上网查了下“如何往指定内存写数据”但是我测试的时候发现什么都输出不了,望友友们解答下~~
- 参考:int *p = (int )0x30008000;
*p = 0x100;
或(int *)0x30008000 = 0x100;
三、简答
- 【2022春招魔视智能科技-嵌入式开发工程师笔试回忆版】delete和delete[]的区别:
- delete:回收用 new 分配的单个对象的内存空间
- delete[]:回收用 new[] 分配的一组对象的内存空间
- new、delete、malloc、free之间的关系:
- 都可以用来在堆上分配和回收空间。new/delete是操作符,malloc/free是库函数。
- 执行new实际上执行两个过程:a.分配未初始化的内存空间(malloc作用)b.使用对象的构造函数对空间进行初始化;
执行delete也有两个过程:a.使用析构函数对对象进行析构 b.回收内存空间(free作用)
- 对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
C语言中为宏定义,C++中为内联函数
- 说明静态绑定和动态绑定的特性和用法:
- 静态绑定:绑定的是静态类型,所对应的函数或属性依赖于对象的静态类型,发生在编译期;(静态类型:对象在声明时采用的类型,在编译期既已确定;)
- 动态绑定:绑定的是动态类型,所对应的函数或属性依赖于对象的动态类型,发生在运行期;(动态类型:通常是指一个指针或引用目前所指对象的类型,是在运行期决定的;)
- 区别:静态绑定发生在编译期,动态绑定发生在运行期;对象的动态类型可以更改,但是静态类型无法更改;要想实现动态,必须使用动态绑定;在继承体系中只有虚函数使用的是动态绑定,其他的全部是静态绑定;
四、编程
- 编程用二分法实现整数快速查找:
int BinarySearch(vector &num, int target) {
int left = 0, right = num.size() - 1;
while(left <= right) {
int mid = left + right / 2;
if(mid == target)
return mid
else if(mid > target)
left = mid + 1;
else
right = mid - 1;
}
return -1;
//查找失败
}
- 转换整数,如x=123则返回321,若x=-123则返回-321.编程实现,C语言或C++都可:
源引
推荐阅读