CVTE嵌入式应用开发长期实习生线上笔试+线上面试(一面)

线上笔试:20不定项选择+2编程       ——2019.01.15

  • 编程1:[LeetCode]有效的括号(C语言解法)
  • 编程2:分离字符串,提取有用信息(下面是自己当时写的,因为不让用IDE,所以肯定有问题,^_^)
#include 
#define FALSE -1
#define TRUE 0

int parseSoundSetting(char* configure, stSoundSetting* setting)
{
    if( *configure == 'I' && *(configure+1) == 'D' && *(configure+2) == '_' && *(configure+3) == 'S'
     && *(configure+4) == 'O' && *(configure+5) == 'U' && *(configure+6) == 'N' 
     && *(configure+7) == 'D' && *(configure+8) == '_' )   //前缀合法
    {
        int i=9;
        int j=0;
        while( *(configure+i) != '_' )      //检查功放型号
        {
            setting->amplifier[j] = *(configure+i);
            i++;
            j++;
        }
        setting->amplifier[j] = '\0';   //末尾补上结束符
        j=0;    //清零,记录下一个偏移值
        
        
        while( *(configure+i) != '_' )      //检查机型号
        {
            setting->modelname[j] = *(configure+i);
            i++;
            j++;
        }
        setting->modelname[j] = '\0';    //末尾补上结束符
        j=0;    //清零,记录下一个偏移值
        
        
        char vol[3];
        char imped[8];
        char powe[5];
        while( *(configure+i) != 'V' && *(configure+i) >='0' && *(configure+i) <='9' )  //电压
        {
            vol[j] = *(configure+i);
            i++;
            j++;
        }
        vol[j] = '\0';   //末尾补上结束符
        int count=0;    //计算字符长度,即将要转化为整数的位数
        while(vol[j] != '\0')
            count++;
        for(int k=0; kvoltage = (vol[k]-'0') * pow(10,count-k);
        }
        j=0;    //清零,记录下一个偏移值
        count=0;
        
        
        while( *(configure+i) != 'R' && *(configure+i) >='0' && *(configure+i) <='9' )  //电阻
        {
            imped[j] = *(configure+i);
            i++;
            j++;
        }
        imped[j] = '\0';   //末尾补上结束符
        while(imped[j] != '\0')
            count++;
        for(int k=0; kimpedance = (imped[k]-'0') * pow(10,count-k);
        }
        j=0;    //清零,记录下一个偏移值
        count=0;
        

        while( *(configure+i) != 'W' && *(configure+i) >='0' && *(configure+i) <='9' )  //功率
        {
            powe[j] = *(configure+i);
            i++;
            j++;
        }
        power[j] = '\0';   //末尾补上结束符
        while(power[j] != '\0')
            count++;
        for(int k=0; kpower = (powe[k]-'0') * pow(10,count-k);
        }
        
        return TRUE;    //解析成功
        
    }
    
    else
        return FALSE; //解析失败
}

一面:(第一次面试,炒鸡紧张,腿一直在抖,面试大哥比较严肃,不过说话蛮柔和,长得很像我初中同学。。。)——2019.01.22

  • 自我介绍:说了下学校情况,学习情况,面试岗位等
  • 数组和指针区别?链表?数组和链表呢?双向链表和单向链表?好处、优势
  • 预编译在做些什么事情?
  • 简单说些IIC?最多能挂多少个设备?跟 UART SPI比较下。
  • 传感器用法举例说明。
  • 算法研究过吗?
  • 动态库和静态库?
  • c++学到什么程度?
  • Linux了解到什么程度?
  • 对嵌入式操作系统有了解吗?你刚刚提到的ucos,能简单说说吗?
  • 考研?兴趣爱好?
  • 面试题:判断一个数是否为2的幂  循环+递归
  1. 第一次,就只考虑到>=1次幂,像2 4 8 ......然后提交他说,这里1=2^0没有考虑到,如果乱输入最好有个出错判断。再改下。
  2. 第二次,在上一次基础上添加0次幂和负数次幂情况,然后提交。(⊙o⊙)…他说如果不用循环呢?就一个函数然后输入返回。
  3. 这里他要求应该是只求>=0次幂,我多考虑了些负数次幂,递归时写了挺久的还是有些问题,当时应该问清楚是非负整数次幂还是全体整数次幂。。。
  4. 【LeetCode】2的幂(C语言4种解法)

  • 有消息的话,会在24小时内通知你的。你还有什么要问的吗? (⊙o⊙)…没了

总结:基本围绕项目展开,然后根据你回答里提到的相关术语,再做进一步提问,所以主动权其实在你,你向什么地方引,面试官可能就会顺着这个话题提问。(⊙o⊙)…虽然问的都比较基础,但是自己第一次面试,比较紧张慌乱之下,可能回答的不是很完善。。。

//CVTE一面:线上面试    判断一个数是否为2的幂  循环+递归
#include 
using namespace std;

void isMI(double num)
{
	if (num > 1)
		isMI(num / 2);
	///if (num < 1)
		//isMI(num * 2);
	else if (num == 1)
		cout << "YES" << endl;
	else
		cout << "NO" << endl;
}
int main()
{
	//double num;
	//cin >> num;
	//while (num > 1)
	//	num /= 2;
	//while (num > 0 && num < 1)
	//	num *= 2;
	//if (num == 1)
	//	cout << "YES" << endl;
	//else
	//	cout << "NO" << endl;
	double num;
	cin >> num;
	isMI(num);
	/*if (isMI(num) == true)
		cout << "YES" << endl;
	else
		cout << "NO" << endl;*/
}

CVTE嵌入式应用开发长期实习生线上笔试+线上面试(一面)_第1张图片——2019.01.25  凉凉。。。

【总结】准备不充分+心态紧张+基础不扎实+表达能力欠佳

你可能感兴趣的:(贪狼-紫电青霜)