嵌入式笔试刷题(第43天)

第1题:输出结果分析

main()
{
    char str[] = "world";    cout << sizeof(str) << ":";
    char *p = str;           cout << sizeof(p) << ":";
    char i = 10;             cout << sizeof(i) << ":";
    void *pp = malloc(10);  cout << sizeof(pp) << endl;
}

答案:6:8:1:8

解析:

  • str[] 是数组,长度为 6("world\0"),所以 sizeof(str) 是 6;
  • p 是指针,64 位系统下为 8 字节;
  • ichar 类型,占 1 字节;
  • ppvoid*,也是指针,占 8 字节。

第2题:类的静态成员变量行为

#include<iostream>
class test{
    static int count;
public:
    test() { count++; }
    ~test() { count--; }
    static int getCount() { return count; }
};
int test::count=0;
int main()
{
    test *p = new test;
    test *q = new test;
    delete p;
    std::cout << "count=" << test::getCount() << std::endl;
    return 0;
}

答案:count=1

解析:构造了两个对象 pq,调用两次构造函数,count = 2delete p; 后析构函数调用一次,count = 1

第3题:字符串反转函数

void reverseString(char* str)
{
    int n = strlen(str);
    for(int i=0; i<n/2; i++)
    {
        char t = str[i];
        int k = n - 1 - i;
        str[i] = str[k];
        str[k] = t;
    }
}

答案:k = n - 1 - i

解析:实现反转需要将对称位置的字符交换。str[0]str[n-1]str[1]str[n-2]...

第4题:输出结果分析

#include <stdio.h>
main()
{
    int a[] = {1,2,3,4,5,6};
    int *p = a + 1;
    int s = ++(*p);
    s = s + (*++p);
    printf("%d", s);
}

答案:7

解析:

  • p = a + 1,指向值为 2;
  • ++(*p) 将 2 改为 3,s = 3;
  • ++p 指向 3,*p 是 3,s = 3 + 3 = 6;
  • 实际打印为 6,但根据源码中是否初始值为 (语法

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

嵌入式笔试专栏 文章被收录于专栏

本专栏系统整理了嵌入式方向笔试中常见的知识点和高频考题,涵盖基础理论、常用算法、C语言陷阱、操作系统原理、驱动开发、常见外设通信协议(如 I2C/SPI/UART)、RTOS、Linux 内核、以及实用电路知识等内容。

全部评论

相关推荐

5月14日&nbsp;郑州某公司&nbsp;电子工程师实习生&nbsp;一面(视频面试)面试提问:(工程师提问)一、首先做一下自我介绍二、FATFS文件系统在你项目中的作用是什么三、手表这个项目,你是从PCB画板,焊接,写代码全过程完成对吧四、手表有实物吗?五、你自己的焊接能力怎么样六、你做了低功耗,在没做低功耗之前的功耗是多少,能够运行多少天,做了低功耗之后,功耗是多少,能运行多少天补充:你的专业课程有哪些?(HR提问)八、什么时候能够到岗,最长实习到什么时候九、为什么关注我们公司,之前来过郑州吗?(我的反问)十、该岗位(电子工程师实习)的是更偏向于硬件还是软件十一、我的简历为什么会接收到面试&quot;自我不足:一、自我介绍,还不够熟练,会出现卡壳二、对项目的熟练程度还是不够,不能很好的向面试官介绍清楚我的项目,这个周末要给我的总体代码写一个函数文档。三、面试前要关注一下公司信息,以及岗位描述四、感觉自己反问的问题没有深度,不能获取有用信息,要了解一下优秀反问五、要加强一下对硬件的了解,现在找实习生,都要求掌握基础的软硬件技能,公司就是找我进去打杂的不可能去干一些重要的事,所以软硬件都要会,但都不深,哪里要就去哪里,而我需要的只是公司的名气,公司名气越大,校招的时候面试官对你的能力就越认可。&quot;总结:反正进去都是打杂,别管做什么,先进去。
嵌入式求职之路:如果只有一个offer,那能去就去,打杂也去。如果要是有几个offer的话,要仔细衡量一下岗位。面试一定要好好准备,基础要牢固,可以看我的经验贴:https://www.nowcoder.com/share/jump/7322173081591352051
点赞 评论 收藏
分享
05-13 10:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务