科大讯飞2021笔试题
发布日期:2021-06-30 18:50:59
浏览次数:2
分类:技术文章
本文共 2800 字,大约阅读时间需要 9 分钟。
来源于读者投稿,作者Angel
笔试时间:2020.09.12,19:00——21:00
岗位:嵌入式软件开发
题型:四道编程题,4*10=40分
题目
1、定义一个n*m矩阵,找到两个不在同一行同一列的数字,使得成绩最大。
2、输入一个数N,求数的二进制中1的个数(已AC)
//写一个函数返回参数的二进制中1的个数#include#include int count_one_bits(unsigned int value){ int count = 0; while (value != 0) { if (value % 2 == 1) { count++; } value = value >>1; } return count;}int main(){ int num; int ret; printf("请输入一个大于0的数\n"); scanf("%d", &num); ret=count_one_bits(num); printf("%d", ret); system("pause"); return 0;}
3、数组的排序(时间复杂度最小),应该是让你用冒泡或者选择排序。
题型是给了一种排序算法的中间过程,让你认出是哪一种排序,然后写代码。
#include#include #include void sortA1(int a[], int length){ int i, j, temp; for(i = 0; i < length; ++i){ for(j = i + 1; j < length; ++j){ if(a[j] < a[i]){ //如果后一个元素小于前一个元素则交换 temp = a[i]; a[i] = a[j]; a[j] = temp; } } }}void printA1(int a[], int length){ int i; for(i = 0; i < length; ++i){ printf("%d,", a[i]); } printf("\n");}void sortA2(int a[], int length){ int i, j, temp; for(i = 0; i < length; ++i){ for(j = length - 1; j > i; --j){ if(a[j] > a[j - 1]){ temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } } }}int main(){ int length = 0; int a[] = {12, 43, 8, 50, 100, 52,0}; length = sizeof(a) / sizeof(a[0]); printf("排序前\n"); printA1(a, length); sortA1(a, length); printf("选择排序后\n"); printA1(a, length); sortA2(a, length); printf("冒泡排序后\n"); printA1(a, length); system("pause");}
4、字符串左旋(case 20%,不知道是哪里没考虑到,读者可以尝试)
输入 1234abcd , 左旋3
输出 4abcd123
void swap(char *start, char *end){ while (start < end) { *start ^= *end; *end ^= *start; *start ^= *end; start++, end--; }}void reverse_left_2(char *str, int n, int len){ char *mid = NULL;//定义一个指针,将指向左旋分段点 n %= len;//判断左旋的有效次数 mid = str + n - 1;//指向分段点的最后一个字符 swap(str, mid);//逆置前一段字符串 swap(mid + 1, str + len - 1);//逆置后一段字符串 swap(str, str + len - 1);//整个字符串逆置}int main(){ char str[] = "abcd1234"; int n = 0, len = strlen(str); printf("please enter->"); scanf("%d", &n);//输入左旋的次数 printf("before reverse_left string is :%s\n", str); reverse_left_2(str, n, len); printf("reverse_left string is :%s\n", str); system("pause"); return 0;}
·················· END ··················
点击关注公众号,免费领学习资料
欢迎大家关注我的微信公众号,定期给大家分享C语言、单片机、嵌入式Linux、硬件设计、代码人生相关文章。公众号内回复【电子书】即可获得嵌入式全套500本全套电子书。回复【入群】即可加入嵌入式技术交流群。
我创建了知识星球,欢迎大家扫码加入。在知识星球中有问必答。提供全套的嵌入式学习规划、嵌入式学习资料、简历指导、嵌入式求职规划、嵌入式笔试面试指导、公司推荐等。
推荐阅读:
关注公众号,后台回复「1024」获取学习资料网盘链接。
欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~
转载地址:https://linus.blog.csdn.net/article/details/115774555 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月06日 03时10分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
零基础学UI设计能够学会吗?
2019-04-30
入门学习ui设计就业方向有哪些?
2019-04-30
软件测试的学习门槛高吗?
2019-04-30
Linux复习归纳1-文件和基本命令
2019-04-30
Linux复习归纳2-其它常用命令
2019-04-30
Linux复习归纳3-特殊符号和命令
2019-04-30
Linux复习归纳4-高级命令
2019-04-30
Linux复习归纳5-top
2019-04-30
Linux复习归纳6-sed
2019-04-30
Linux复习归纳7-awk
2019-04-30
Linux复习归纳8-练习题
2019-04-30
Linux复习与归纳9-tcpdump和Wirshark上篇
2019-04-30
Linux复习归纳10-tcpdump和Wireshark下篇
2019-04-30
Vim精简版(常用)
2019-04-30
OSI模型、TCP/IP、数据解、封装
2019-04-30
认识信号与光纤、数制转换、IP划分
2019-04-30
交换机原理与配置
2019-04-30
网络层协议与应用
2019-04-30
TCO/IP协议族的协议(TCP、UDP)、传输层协议
2019-04-30
路由、静态路由、默认路由、命令
2019-04-30