46道嵌入式工程师相关的经典面试题

简介: 46道嵌入式工程师相关的经典面试题

面试题1:

   用find 写出查找/opt/kernel目录下(包括子目录)文件名为Kconfig的命令。

面试题2:

   用 Vi 编译器底行命令模式实现字符串替换,把当前文件中的“xiaodai”全部替换成“banzhang”。

面试题3:

   变量的声明和定义有什么区别?

面试题4:

   sizeof是库函数吗?sizeof 和 strlen 的区别?

面试题5:

   链表和数组有什么区别

面试题6:

   简述队列和栈的异同

面试题7:

有以下语句: char a=3, b=6, c; c = a^b<<2; 则c的二进制值是_____。

面试题8:

   如何打印出当前源文件的文件名以及源文件的当前行号?

面试题9:

   假设某个函数的原型为:void foo( int x, int y ); 该函数分别被C编译器和C++编译器编译后在符号库中的名字是什么?

面试题10:

   在QT程序中可以调用被C 编译器编译后的函数吗?如果可以怎么实现?

面试题11:

   .h头文件中的ifndef/define/endif 的作用?#i nclude<file.h> 与 #include "file.h"的区别?

面试题12:

   结构与联合有和区别?

面试题13:

   全局变量和局部变量可否同名,他们是否有区别?如果有,是什么区别?    

面试题14:

   static有什么用途? static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

面试题15:

   什么是预编译,何时需要预编译?

面试题16:

   有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为多少?

面试题17:

   请计算sizeof的值。

char  str[] = “Hello” ;
char   *p = str ;
int     n = 10;
请计算
sizeof (str ) =_____
sizeof ( p ) =_____
sizeof ( n ) =_____
void Func ( char str[100])
{
    请计算sizeof( str ) =
}
 void *p = malloc( 100 ); 请计算sizeof ( p ) =
 char *str[]={“Hello”,”HI”, “\x0”};
请计算:
sizeof(str)   =
sizeof(str[0]) =

面试题18:

头文件中有如下宏定义,

#define DECLARE_TASKLET(name, func, data)  \    
struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data }

.c源文件中有如下语句:

static DECLARE_TASKLET(btn_tasklet,
                    btn_tasklet_func,
                    (unsigned long)&mydata);

请写出预编译后,该语句展开的结果.


面试题19:

   写一个程序,以递归方式反序输出一个字符串。如给定字符串“abc”输出“cba ”。

面试题20:

   对于一个字节(8bit)的无符号整形变量,求二进制表示中“1”的个数,要求算法执行效率尽可能地高。

面试题21:

   参数传递有哪些形式?寄存器和堆栈传递各有什么优缺点?

面试题22:

   define宏语句和inline函数有什么区别?

面试题23:

   char a[5][4]a的地址为0,问printf(“%d”a[4]+3)值

面试题24:

   编写一个宏,实现判断数组a元素的个数

面试题25:

   .#define DOUBLE(x) x+x  ,i = 5*DOUBLE(5);  i  是多少?

面试题26:

   i++一下代码的输出结果是?

int i = 1;
int j = 2;
int k = i+++j;
cout << k << endl;

面试题27:

   下面代码输出是什么?为什么

void foo(void)
{
    unsigned int a = 6;
    int b = -20;
    (a+b > 6) puts("> 6") : puts("<= 6");
}

面试题28:

   关于动态申请内存的问题

void GetMemory(char *p)
{
    p = (char *)malloc(100);
}
void Test(void) 
{
    char *str = NULL;
    GetMemory(str);   
    strcpy(str, "hello world");
    printf(str);
}

请问运行 Test 函数会有什么样的结果?

面试题29:

   请问运行 Test 函数会有什么样的结果?

char *GetMemory(void)
{  
    char p[] = "hello world";
    return p;
}
void Test(void)
{
    char *str = NULL;
    str = GetMemory();
    printf(str);
}

面试题30:

   请问运行 Test 函数会有什么样的结果?

void GetMemory2(char **p, int num)
{
    *p = (char *)malloc(num);
}
void Test(void)
{
    char *str = NULL;
    GetMemory(&str, 100);
    strcpy(str, "hello"); 
    printf(str);
}

面试题31:

   请问运行 Test 函数会有什么样的结果?

void Test(void)
{
    char *str = (char *) malloc(100);
    strcpy(str, “hello”);
    free(str); 
    if(str != NULL) 
    {
        strcpy(str, “world”); 
        printf(str);
    }
}

面试题32:

   用预处理指令#define  声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题)


面试题33:

   C 语言中结构化程序设计的三种基本控制结构


面试题34:

   请说出 const 与#define相比,有何优点?


面试题35:

   简述数组与指针的区别?


面试题36:

   main 函数执行完毕后,是否可能会再执行一段代码,给出说明?


面试题37:

   如果编写一个标准 strlen 函数


面试题38:

   如何引用一个已经定义过的全局变量?


面试题39:

   do……while 和 while……do 有什么区别?


面试题40:

   写一个“标准”宏 MIN


面试题41:

   typedef 和 define 有什么区别


面试题42:

   Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。

例如,思考一下下面的例子:

#define dPS struct s * 
typedef struct s * tPS;

以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?


面试题43:

int (*s[10])(int)  表示的是什么


面试题44:

写出 bool  、int、  float、指针变量与“零值”比较的 if 语句bool 型数据:


面试题45:

请写出以下代码的打印结果

#include<stdio.h>
void main( void )
{
    int a[5]={1,2,3,4,5};
    int *ptr=(int *)(&a+1);
    printf("%d,%d",*(a+1),*(ptr-1));
    return;
}


面试题46:

设置地址为 0x67a9 的整型变量的值为 0xaa66


 

目录
相关文章
|
8天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
25 2
|
1月前
|
C语言
经典面试题:嵌入式系统中经常要用到无限循环,怎么样用C编写死循环呢
在嵌入式系统开发中,无限循环常用于持续运行特定任务或监听事件。使用C语言实现死循环很简单,可以通过`while(1)`或`for(;;)`的结构来编写。例如:`while (1) { /* 循环体代码 */ }`,这种写法明确简洁,适用于需要持续执行的任务或等待中断的场景。
|
3月前
|
网络协议 网络架构
OSPF邻居关系建立失败?揭秘网络工程师面试中最常见的难题,这些关键步骤你掌握了吗?网络配置的陷阱就在这里!
【8月更文挑战第19天】OSPF是网络工程中确保数据高效传输的关键协议。但常遇难题:路由器间无法建立OSPF邻居关系,影响网络稳定并成为面试热点。解决此问题需检查网络连通性(如使用`ping`),确认OSPF区域配置一致(通过`show running-config`),校准Hello与Dead计时器(配置`hello`和`dead`命令),及核查IP地址和子网掩码正确无误(使用`ip address`)。系统排查上述因素可确保OSPF稳定运行。
72 2
|
3月前
|
运维 Kubernetes 关系型数据库
云计算运维工程师面试技巧
【8月更文挑战第6天】
391 1
|
4月前
|
算法 网络协议 Linux
|
6月前
|
人工智能 开发工具 Python
2024年利用Python突破验证码限制,2024年最新Python高级开发工程师面试题
2024年利用Python突破验证码限制,2024年最新Python高级开发工程师面试题
2024年利用Python突破验证码限制,2024年最新Python高级开发工程师面试题
|
5月前
|
存储 异构计算 内存技术
【硬件工程师面试宝典】常见面试题其一
- Setup时间:时钟前数据需稳定的最小时间。 - Hold时间:时钟后数据需保持稳定的时间。 - 竞争现象:不同路径信号汇合导致输出不稳定。 - 冒险现象:竞争引起的短暂错误状态。 - D触发器实现2倍分频电路。
90 5
|
4月前
|
传感器 芯片
嵌入式通信协议全解析:SPI、I²C、UART详解(附带面试题)
通信是指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递。从广义上来说,通信是指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法、任意媒质,将信息从某方准确安全地传送到另方。在出现电波传递通信后,通信被单一解释为信息的传递,是指由一地向另一地进行信息的传输与交换,其目的是传输消息。通信方式包括利用“电”来传递消息的电信,这种通信具有迅速、准确、可靠等特点,且几乎不受时间、地点、空间、距离的限制,因而得到了飞速发展和广泛应用。
986 0
|
5月前
|
安全 网络安全 网络协议
精选30道“渗透测试工程师”面试题
渗透测试 信息收集 网络安全 web安全
262 3
|
5月前
【硬件工程师面试宝典】常见面试题其二
检查单片机上电不运行:电源电压、时钟信号、复位电路、程序烧录。三极管特性:输出特性曲线和转移特性曲线。频率响应指系统对不同频率信号的响应,稳定要求幅度和相位不变。改变响应曲线方法:调整反馈、使用滤波器、改变元件参数。差分运放相位补偿通过在反馈回路加电容,波特图显示补偿效果。基本放大电路类型有共射、共集、共基,差分结构用于抗干扰和提高共模抑制比。电阻电容串联,电容电压为低通滤波,电阻电压为高通滤波。选择电阻考虑阻值、功率、温度系数、精度和尺寸。CMOS电路传递低电平用N管。电流偏置电路通过R1、Q1产生稳定电流。施密特电路回差电压由R1、R2决定。LC振荡器的哈特莱、科尔皮兹、克拉
59 0
下一篇
无影云桌面