学嵌入式找工作,面试最重要,下面是我在文思海辉公司面试时遇到的一些c开发面试题,都是我之前面试时见过的,很常见,都可以看看给自己充充电。
1.关于结构的大小,以下描述正确的有()
struct A_S struct B_S
{ {
unsigned short us1; unsigned char uc1;
unsigned short us2; unsigned int uc2;
unsigned short us3; unsigned short us3;
}; };
struct C_S struct D_S
{ {
unsigned int ui1 unsigned char uc2;
unsigned char uc2; unsigned short us3;
unsigned short us3; unsigned int ui1;
}; };
A.结构struct A_S的大小是6
B.结构struct B_S的大小是12
C.联合union C_U的大小是12
D.联合union D_U的大小是12
2.关于以下代码,描述正确的有()
代码Ⅰ: 代码Ⅲ
const char * pcStr=”abcdefg”; char*pcStr=”abcdefg”
pcStr[3]=”a”;
代码Ⅱ:
void string_sizeof(char szStr1[10]) 代码Ⅳ
{ unsigned int uiA=100;
char szStr2[10]=”12345”; printf(“%s\r\n,”, uiA);
printf(“%u,”, sizeof(szStr1));
printf(“%u\r\n,”, sizeof(szStr2));
return;
}
Int main( )
{
string_ sizeof =(”12345”);
return 0;
}
A. 代码Ⅰ,const修饰符表明pcStr指针不能再次被赋值,也就是说不能指向其他缓冲区.
B. 代码Ⅱ,程序的运行结果是“4,10”.
C. 代码Ⅲ,对pcStr[3]的赋值会导致程序访问非法地址.
D. 代码Ⅳ,打印unsigned int时不应该使用“%s”,会导致程序访问非法地址。
3.以下语句中,能够判断uiNum(unsigned int)可以被8整除的有( )
A、If (((uiNum / 8)*8)== uiNum)
B、if ((uiNum % 8)== 1)
C、if ((uiNum &θ×θ7) ==θ)
D、if (((uiNum >> 3) << 3 )==uiNum )
编程题
数据的节点定义如下面的tagData所列,该数据节点有两个索引值,分别是index1和index2,请编写程序,有如下要求:
1)据上下文,由于需要分别以index1和index2索引查找,请建立两个单向链表,分别以index1和index2,索引值唯一,且均为从小到大
2)提供增加节点的函数和删除节点的操作,请注意增加和删除节点的操作均会影响这两个链表。
3)删除操作数据是依据index2删除的
/*节点数据*/
typedef struct tagData
{
Int index1;
Int index2;
Int iData;
}NODE_S;
/*Description:链表初始化*/void init( );
/*De scription:加入节点*/void add( int index1,int index2,int iData);
/*De scription:删除节点*/void delete( int index2 );
请写冒泡排序算法,a指向数组第一个元素,n为数组长度
Bubble_sort(int*a,int n)
Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5,京公海网安备11010802025203号