1 / 37
文档名称:

嵌入式软件工程师笔试题.docx

格式:docx   大小:54KB   页数:37页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式软件工程师笔试题.docx

上传人:shijijielong001 2020/12/27 文件大小:54 KB

下载得到文件列表

嵌入式软件工程师笔试题.docx

相关文档

文档介绍

文档介绍:1、 将一个字符串逆序
2、 将一个链表逆序
3、 计算一个字节里(byte )里面有多少bit被置1
4、 搜索给定的字节(byte)
5、 在一个字符串中找到可能的最长的子字符串
6、 字符串转换为整数
7、 整数转换为字符串
/**题目:将一个字符串逆序
*完成时间:2006930深圳极讯网吧
*版权归刘志强所有
*描述:写本程序的目的是希望练一下手,希望下午去面试能成功,不希望国庆节之后再去找工作拉!
*/
#include <iostream>
using namespace std;
〃#define NULL ((void *)0)
char * mystrrev(char * const dest,const char * const src)
{
if (dest==NULL && src==NULL)
return NULL;
char *addr = dest;
int val_len = strlen(src);
dest[val_len] = '\0';
int i;
for (i=0; i<val_len; i++)
{
*(dest+i) = *(src+val_len-i-1);
}
return addr;
}
main()
{
char *str="asdfa";
char *str1= NULL;
strl = (char *)malloc(20);
if (strl == NULL)
cout<v"malloc failed";
cout<<mystrrev(str1,str);
free(strl);
str仁NULL;// 杜绝野指针
}
p=head;
q=p_>next;
while(q!=NULL)
{
temp=q->next;
q->next=p;
p=q;
q=temp;
}
这样增加个辅助的指针就行乐。
ok通过编译的代码:
#include <>
#include <>
#include <>
typedef struct List{
int data;
struct List *next;
}List;
List *list_create(void)
{
struct List *head,*tail,*p;
int e;
head=(List *)malloc(sizeof(List));
tail=head;
printf("\nList Create,input numbers(end of 0):");
scanf("%d", &e);
while(e){
p=(List *)malloc(sizeof(List));
p->data=e;
tail->next=p;
tail=p;
scanf("%d", &e);}
tail->next=NULL;
return head;
}
List *list_reverse(List *head)
{
List *p,*q,*r;
p=head;
q=p_>next;
while(q!=NULL)
{
r=q->next;
q->next=p;
p=q;
q=r;
}
head->next=NULL;
head=p;
return head;
}
void main(void)
{
struct List *head,*p;
int d;
head=list_create();
printf("\n");
for(p=head_>next;p;p=p_>next)
printf("--%d--",p->data);
head=list_reverse(head);
printf("\n");
for(p=head;p_>next;p=p_>next) printf("--%d--",p->data);
}
编写函数数N个BYTE勺数据中有多少位是1。
解:此题按步骤解:先定位到某一个BYTE数据;再计算其中有多少个1。叠加得解。
#in cluede<iostream>
#defi ne N 10
//定义BYTE类型别名
#ifndef BYTE
typedef un sig ned char BYTE;
#en dif in t comb(BYTE b[],i nt n)
{
int cou nt=O;
int bi,bj;
BYTE cc=1,tt;
//历遍到第bi个BYTE数据
for(bi=0;bi< n;bi++)
{