联发科(9月21)

C语言如何实现C++的成员函数

  • C++成员函数是把this指针传进去,来操作类成员的;所以可以通过C语言的函数指针来实现

项目中碰到的难题?具体如何解决?你在解决问题中主要扮演角色?性格缺点?

  • 优点:善于发现和解决问题,非常注意细节,肯付出肯努力,能够承受一定的工作压力
  • 缺点:口才不是很好,可能做软件开发的原因,性格比较偏向文静,以后我会主动多跟身边人交流,提高提高自己的口才

内联函数

  • 内联函数是指用inline关键字修饰的函数;内联函数是在编译时将函数体嵌入到每个调用处,编译时,类似于宏替换,省去了函数调用和返回时的开销;但是内联函数具有普通函数的特征:参数检查,返回类型等等;对于频繁执行和小内存空间的函数非常受益

笔试编程题

公司了解?加班的看法?

  • MTK是全球著名的IC设计厂商,主要业务是无线通讯及数字多媒体领域,消费电子,

  • 我首先会争取在工作时间内把自己的工作完成,但是如果项目急,时间紧,为了项目的按时交付,加班也是很有必要的,我很乐意接受

对面试职位的理解

为什么选择MTK?为什么要来深圳?

  • MTK作为全球领先的IC设计商,主要业务涵盖消费电子,移动通讯讯等等,非常有前景的方向,与自己的研究方向和兴趣都很匹配,我相信自己能在MTK这个大平台能有更好的发展,为MTK的发展助力
  • 深圳是一个年轻的城市,充满激情和活力,年轻人,我想在这里实现自己的梦想

多线程编程注意什么?

  • 线程的优先级:当控制线程是与最终用户交互的界面线程时更是如此
  • 防止栈溢出:不再函数体内定义特别大的栈变量;传递参数(类或结构体)使用传指针或引用
  • 提高控制线程的响应速度
  • 注意信号量的使用

项目中的收获

  • 对于专业技能,自己的掌握的理论知识在实践中得到了检查,掌握得更加扎实
  • 解决问题的能力,细心,耐心
  • 团队合作

tcp数据传输如何保证安全性

  • tcp是一种面向链接的、可靠地字节流服务,
  • 超时重发:tcp发送一个段后,会启动定时器,等待目的端确认收到报文段,如果不能及时收到确认,将重发
  • tcp将保持它首部和数据的检验和,这是一个端到端的检验和,检验数据在传输过程中是够发生变化
  • tcp对失序数据进行重新排序,然后才交给应用层:tcp报文是通过ip数据报来传输,ip数据报的到达可能会失序
  • tcp提供流量控制:tcp连接的每一端 都有固定大小的缓冲区,tcp接收端只允许另一端发送接收端缓冲区所能容纳的数据

循环链表判断环的位置:O(n)的解法是定义两个指针,一个指针一次走两步,一个指针一次走一步,如果有环肯定会发生重合,没有就会一直走到链表尾部

Node* hasLoop(Node* head)
{
    if(head == NULL)
        return NULL;
    Node* slow = head;
    Node* fast = head->next;
    while(fast != NULL && fast->next != NULL)
        slow = slow->next;
        fast = fast->next->next;
        if(slow == fast)
            return slow;
    return NULL;        
}   

左旋字符串:把字符串看成两段,交换两段的位置

void Loop_Right_Move(char* str, int steps)
{
    int length = strlen(str);
    int n = steps % length;
    char temp[256];
    strcpy(temp,str+length-n);  
    strcpy(temp+n,str);
    *(temp+length) = '\0';
    strcpy(str,temp);       
}  

void Loop_Left_Move(char* str,int steps)
{
    int length = strlen(str);
    int n = steps % length;
    char temp[256];
    strcpy(temp,str+n);
    strcpy(temp+(length-n),str);
    *(temp+length) = '\0';
    strcpy(str,temp);       
}   

int to char *的程序

  • 初始化字符串为空;如果整数为0就输出0,结束
  • 将当前整数除以10,得到余数和商
  • 将余数转换为一个字符,把该字符接到字符串尾部
  • 如果商不为0,把它当做新的整形数,循环上面2步
  • 将字符串中的字符按放入顺序逆序输出

C和C++的区别

  • C和C++最大的区别在于解决问题的思想方法不一样:C是结构化语言,它的重点是算法和数据结构;C程序设计首先考虑的是如何通过一个过程,对输入进行运算得到输出,而C++是面向对象语言,首先考虑的是如何构造一个对象模型,通过获取对象的状态信息得到输出
  • 对于语言本身,C是C++的子集,C++是由C语言扩展得来的
    • C++增加了很多关键字:bool,typename,类型转换关键字
    • 内存分配:C++是使用new和delete进行动态内存分配
    • 增加字符串类型
    • 异常处理机制
    • 函数重载
    • 默认参数
    • C++允许变量在使用之前再定义,而C必须在作用域开始的位置定义变量
    • 引用

字符串拷贝

char* strcpy(char* dest, const char* src)
{
    assert(dest == NULL && src == NULL);
    char* ret = dest;   
    while((*dest++ = *src++) != '\0');
    return ret; 
}

猜你喜欢

转载自blog.csdn.net/qq_34121068/article/details/78018955