嵌入式软件工程师笔试题[小编推荐]_嵌入式软件开发笔试题

2020-02-28 其他范文 下载本文

嵌入式软件工程师笔试题[小编推荐]由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“嵌入式软件开发笔试题”。

1、将一个字符串逆序

2、将一个链表逆序

3、计算一个字节里(byte)里面有多少bit被置14、搜索给定的字节(byte)

5、在一个字符串中找到可能的最长的子字符串

6、字符串转换为整数

7、整数转换为字符串

/*

* 题目:将一个字符串逆序

* 完成时间:2006.9.30深圳极讯网吧

* 版权归刘志强所有

* 描述:写本程序的目的是希望练一下手,希望下午去面试能成功,不希望国庆节之后再去找工作拉!

*/

#include

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] = '';

int i;

for(i=0;i

{

*(dest+i)= *(src+val_len-i-1);

}

return addr;

}

main()

{

char *str=“asdfa”;

char *str1=NULL;

str1 =(char *)malloc(20);

if(str1 == NULL)

cout

cout

free(str1);

str1=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。叠加得解。

#incluede

#define N 10

//定义BYTE类型别名

#ifndef BYTE

typedef unsigned char BYTE;

#endif

int comb(BYTE b[],int n)

{

int count=0;

int bi,bj;

BYTE cc=1,tt;

//历遍到第bi个BYTE数据

for(bi=0;bi

{

//计算该BYTE的8个bit中有多少个1

tt=b[bi];

for(bj=0;bj

{

//与1相与或模2结果是否是1?测试当前bit是否为1//if(tt%2==1)

if((tt&cc)==1)

{

count++;

}

//右移一位或除以2,效果相同

//tt=tt>>1;

tt=tt/2;

}

}

return count;

}

//测试

int main()

{

BYTE b[10]={3,3,3,11,1,1,1,1,1,1};

cout

return 0;

}

1。编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。

char * search(char *cpSource, char ch)

{

char *cpTemp=NULL, *cpDest=NULL;

int iTemp, iCount=0;

while(*cpSource)

{

if(*cpSource == ch)

{

iTemp = 0;

cpTemp = cpSource;

while(*cpSource == ch)

++iTemp, ++cpSource;

if(iTemp > iCount)

iCount = iTemp, cpDest = cpTemp;

if(!*cpSource)

break;

}

++cpSource;

}

return cpDest;

}

#include

#include

//

// 自定义函数MyAtoI

// 实现整数字符串转换为证书输出

// 程序不检查字符串的正确性,请用户在调用前检查 //

int MyAtoI(char str[])

{

int i;

int weight = 1;// 权重

int rtn = 0;// 用作返回

for(i = strlen(str)'0')* weight;//

weight *= 10;// 增重

}

return rtn;

}

void main()

{

char str[32];

printf(“Input a string :”);

gets(str);

printf(“%dn”, MyAtoI(str));

}

#include

#include

void reverse(char s[])

{//字符串反转

int c, i=0, j;

for(j=strlen(s)-1;i

{c=s[i];

s[i]=s[j];

s[j]=c;

i++;

}

}

void IntegerToString(char s[],int n)

{int i=0,sign;

if((sign=n)

do //从个位开始变成字符,直到最高位,最后应该反转{s[i++]=n%10+'0';

}while((n=n/10)>0);

//如果是负数,补上负号

if(sign

s[i++]='-';

s[i]='';//字符串结束

reverse(s);

}

void main()

{int m;

char c[100];

printf(“请输入整数m: ”);

scanf(“%d”,&m);

IntegerToString(c,m);

printf(“integer = %d string = %sn”, m, c);}

《嵌入式软件工程师笔试题[小编推荐].docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
嵌入式软件工程师笔试题[小编推荐]
点击下载文档
相关专题 嵌入式软件开发笔试题 笔试 小编 嵌入式 嵌入式软件开发笔试题 笔试 小编 嵌入式
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文