嵌入式软件面试题集锦:
1、在CPU和物理内存之间进行地址转换时,( )将地址从虚拟(逻辑)地址空间映射到物理地址空间
A.TCB
B.MMU
C.CACHE
D.DMA
参考答案:B
2、下面有关new/delete和malloc/free的区别,描述错误的是?
A.malloc与free是标准库函数,new/delete是运算符
B.new初始化对象,调用对象的构造函数,malloc仅仅分配内存
C.new、delete只能在C++使用,而malloc、free只能在C中可以使用
D.new、delete返回的是所分配类型变量(对象)的指针,malloc、free返回的是void指针
参考答案:C
3、执行指令find / -name "test.c",按ctrl+z后的提示有[1] 166,可以继续执行的方式有()
A.kill 166
B.Ctrl+h
C.fg 1
D.bg 1
参考答案:C
4、以下代码执行结果?()
A.报错
B.循环换行打印全部记录
C.无任何结果
D.只打印第一条记录
参考答案:A
5、请选择下列程序的运行结果
#include
using namespace std;
class B0//基类BO声明
{
public://外部接口
virtual void display0//虚成员函数
{
cout<<"B0::display0"<
};
class B1:public B0//公有派生
{
public:
void display() { cout<
<"B1::display0"<
};
class D1: public B1//公有派生
{
public:
void display(){ cout<<"D1::display0"<
};
void fun(B0 ptr)//普通函数
{
ptr.display();
}
int main()//主函数
{
B0 b0;//声明基类对象和指针
B1 b1;//声明派生类对象
D1 d1;//声明派生类对象
fun(b0);//调用基类B0函数成员
fun(b1);//调用派生类B1函数成员
fun(d1);//调用派生类D1函数成员
}
A.B0::display() B0::display() B0::display()
B.B0::display() B0::display() D1::display()
C.B0::display() B1::display() D1::display()
D.B0::display() B1::display() B1::display()
参考答案:A 6、在一棵度为3的树中,度为3的节点个数为2,度为2的节点个数为1,则度为0的节点个数为()
A.6
B.5
C.4
D.7
参考答案:A
7、下面个些命令可以查看file1文件的第300-500行的内容?
A.cat file1 | tail -n +300 | head -n 200
B.cat file1| head -n 500 | tail -n 300
C.sed -n '300,500p' file1
参考答案:AC
8、下列选项中是正确的方法声明的是?()
A.protected abstract void f1()
B.public final void f1() {}
C.static final void fq(){}
D.private void f1() {}
参考答案:BCD
9、有命令:
awk'BEGIN { Arr[2,79]=78 __________ }'
为了让执行的结果是78,应该填()语句
A.print Arr["2\03479"]
B.print Arr[2,79]
C.idx=2 SUBSEP 79;print Arr[idx]
D.print Arr[ 2, 79]
参考答案:ABCD