笔试 & CVTE-嵌入式单片机方向实习

形式:笔试和视频题分开考,视频有2分钟准备,5分钟答题;笔试有20(单选多选都有)+2(编程题)有90分钟。

有感:准备不充分,而且题目填了不能回头,代码不能调试,只能告诉编译成不成功,唉寄了。

题目知识:

1.查看linux使用了多少内存 ——命令cat/proc/meminfo

2.Kill 9命令的意思 向目标进程发送 SIGKILL 信号(编号为 9)

3.嵌入式存储速度最快的是A 寄存器组,cache ,内存, flash

SRAM与DRAM的区别

4.哈佛结构

5.嵌入式存储结构的分配需遵循“Bootloader→内核→参数→文件系统”的物理顺序。

存储区域 地址范围 内容 大小

Bootloader 0x0800_0000 启动代码、中断向量表 64 KB

内核代码 0x0801_0000 内核.text段 512 KB

参数区 0x080F_0000 系统配置、校准数据 32 KB

文件系统 0x0810_0000 UBIFS分区 1 MB

6.IIC与SPI的区别。

7.bootcmd 是 U-Boot 引导加载程序的核心环境变量,定义了系统启动时自动执行的命令序列

8.线程与进程的区别

9.USB、UART 异步时序 ; IIC、SPI、PCI同步

视频题:中断能不能有延时操作?不能又是为什么?有什么优化方案?

编程题:

1.输入“2FF” 0010 1111 1111 输出8

/*
题目:	输入字符串,内容是十六进制数,输出连续1最长是多少。
input: 
	2FF
【 0010 1111 1111 最长连续1的个数为8 】 
output: 
	8
*/
#include<bits/stdc++.h>
using namespace std; 

//预设输入纯数据,且无其他符号,没有0x  base填写进制数 
unsigned long long My_easy_strtoull( const char *str ,int base){
	const char *ptr = str ;
	unsigned long long res = 0 ;
    // 转换循环
    for (; *ptr != '\0'; ptr++) {
        int digit;
        if (isdigit(*ptr) && (*ptr - '0') < base) { //是否0-9 
            digit = *ptr - '0';
        } else if (isalpha(*ptr)) { //是否字母 
            char c = tolower(*ptr); //统一小写 
            if (c >= 'a' && c < 'a' + base - 10) {
                digit = c - 'a' + 10;
            } else {
                break; // 非法字符
            }
        } else {
            break; // 非法字符
        }
        res = res * base + digit;
    }	
	return res ;
}
int strhex_to_max_ones(const char *hex_str){
	int res = 0 ;
	
	char *endptr ; //char **endptr ; strtoull函数输入是char** ,这里定义char* ,再取地址也是一样的
	//unsigned long long num = strtoull(hex_str, &endptr, 16) ;
	unsigned long long num = My_easy_strtoull(hex_str,16) ; 
	printf("%lld\n",num);
	int max_count = 0 ; 
	int current_count = 0 ;
	
	for( int i = 0 ; i < sizeof(num)*8 ; i++ ){ //字节数*8 = bit位 
		if( (num >> i) & 1ULL ){
			current_count++ ;
			max_count = (current_count > max_count) ? current_count : max_count ;
		}else{
			current_count = 0 ;
		} 
	}
	res = max_count ;
	return res ;
}
int main()
{
	char str[8] ;
	scanf("%s",str);
	int ans = strhex_to_max_ones(str);
	printf("%d\n",ans);
	return 0 ;
}

2.字符串的频率

/*
题目:	输入n个字符串,输出频率最高的一个和它的频率
input: 
5
168.192.0.1 2021-01-02T00:11:11
168.192.0.2 2021-01-02T00:11:11
168.192.0.3 2021-01-02T00:11:11 
168.192.0.1 2021-01-02T00:11:11
168.192.0.1 2021-01-02T00:11:11
output: 
168.192.0.1 3
*/
#include<bits/stdc++.h>
using namespace std; 

typedef struct {
	char *str ;
	int count ;
}String_T;

int main()
{
	int different_count = 0 ;
	char temp[35];
	char str_in[35];
	
	int n ;
	scanf("%d\n",&n);
	String_T *list = ( String_T* )malloc( n*sizeof( String_T ) );
	for( int i = 0 ; i < n ; i++ ){
		if( i == n-1 ) { scanf("%s %s",str_in ,temp ); }
		else { scanf("%s %s\n",str_in , temp ); }
		
		bool flag_finish = false ; //没操作本次输入 
		for( int j = 0 ; j < different_count ; j++ ){
			if( strcmp( list[j].str , str_in ) == 0  ){
				list[j].count++ ;
				flag_finish = true ;
			} 
		}
		if( flag_finish == false ){ //没操作,说明是新的字符串 
			list[different_count].str = strdup( str_in )  ;//需要配备free 
			list[different_count].count = 1 ;
			different_count++ ;
		}
	}
	int max_count = 0 ;
	for( int i = 0 ; i < different_count ; i++ ){
		if( list[i].count > max_count  ){
			max_count = list[i].count ;
		} 
	}
	for( int i = 0 ; i < different_count ; i++ ){
		if( list[i].count == max_count  ){
			printf("%s %d\n",list[i].str , max_count);
			break ;
		} 
	}	
	//free
	for( int i = 0 ; i < different_count ; i++ ){
		free( list[i].str );
	}	
	free( list );
	
	return 0 ;
}

#笔试#
全部评论
哥,编程题是考算法的吗
1 回复 分享
发布于 05-12 21:37 天津

相关推荐

5月15日&nbsp;华勤&nbsp;&nbsp;测试工程师(实习生)一面(视频面试)老哥们,可以看下最后一个自我不足,有没有好的解决方法,可以在评论区留言。谢谢大家这个面试是,最近面试聊得最久的面试,也学到了很多东西,也是很感谢陪我聊天面试官。面试提问:一、请用英语自我介绍一下(我要求的,笑哭了,因为他上午问了我英语口语水平)二、用英语介绍一下香港这个城市三、之前了解过我们公司吗?四、你是哪里人,为什么不投西安和成都的分公司五、说一下你未来的规划(这里就进入面试官的陷阱了)六、看了你的未来规划,你是更偏向研发的为什么会投测试岗位呢?(我就和他说我只想找一份暑期时期,来让我的简历上一个台阶)七、面试官给我讲了一下公司的实习生计划(其实是在劝退我的)反问:一、实习生计划的淘汰率是多少(50%)二、公司里面嵌入式开发人员要求软硬都会吗?(分开的)三、为什么不愿意只招暑期实习生而是招求转正的(暑期实习没有任何意义,不能带来大的产出)四、正式招聘招双非的学生吗?(招,按照一定比例,一本、211、985,二本除非技术非常好)五、面试的时候忘记问为什么要求英语口语,后面在BOSS上追问了(后续会对接美国客户)自我不足:一、不是外国人,不要说自己英语好。哈哈,开个玩笑,其实我的英语自我介绍还不错。自我介绍结束之后,他上来就是一句please&nbsp;you&nbsp;introduce&nbsp;hong&nbsp;kong&nbsp;this&nbsp;city.我楞一下,然后开始介绍,发现脑子一片混乱,没有词语啊,然后我说please&nbsp;give&nbsp;me&nbsp;some&nbsp;seconds,I&nbsp;need&nbsp;to&nbsp;think&nbsp;about&nbsp;it。然后想了半天,还是没有词汇蹦出来,然后就瞎说了一些有很多美食,风景,外国人很多。下来之后,我发现其实不能这么回答,如果他只是想测试我的英语口语水平,我直接换个话题。(sir,if&nbsp;you&nbsp;just&nbsp;want&nbsp;to&nbsp;test&nbsp;how&nbsp;my&nbsp;Spoken&nbsp;English&nbsp;level&nbsp;is,maybe&nbsp;we&nbsp;can&nbsp;talk&nbsp;about&nbsp;my&nbsp;hometown,because&nbsp;I&nbsp;am&nbsp;not&nbsp;familiar&nbsp;with&nbsp;hongkong)这样既可以体现你的英语能力,又达到了面试官的目的。这点非常重要,当面试官问到你不熟悉的领域,你一定要把话题往你会的话题上扯,但是要有一定的相关度,这样才不会让你陷入自证陷阱。(老哥们遇在英语口语测试时,到的奇葩问题可以留在评论区。)二、一定要端正求职态度,为什么说这一点,因为几乎每家公司,都会问了解我们公司,为什么会投递我们公司,这其实是HR在看你的态度,你是真的想找一份工作,老老实实的干下去,还只是说,只是随便投递的,刚好有面试,就来了。一定不要有这种想法,所以在面试之前最后去网上了解一下关于该公司的业务,然后在面试的时候猛吹一波,让面试官相信你是真的想做这份工作。你自己的心里,也一定要认可我真的想成为这个公司的一员,这样才不会露馅。三、不用把项目介绍的很详细,只是笼统说一下完成了什么功能,为面试官留下提问空间(今天自我介绍的时候,这点做的很不错,但是面试官没问)四、当面试官问你的未来规划,你要往你是真的认可这份工作,想要扎根做下去,不要把自己的真实想法透露出来(我的错误回答:我出来工作,看一下行业发展水平,然后有其他打算)。(其实我还没有这个问题的完美的回答方案,有想法的老哥可以把应对方法在评论区留言。)
投递华勤技术等公司6个岗位 面试时最害怕被问到的问题 新手牛友村
点赞 评论 收藏
分享
评论
1
14
分享

创作者周榜

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