DOC嵌入式软件开发面试C语言笔试题 答案Word下载.docx
- 文档编号:14524818
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:15
- 大小:19.20KB
DOC嵌入式软件开发面试C语言笔试题 答案Word下载.docx
《DOC嵌入式软件开发面试C语言笔试题 答案Word下载.docx》由会员分享,可在线阅读,更多相关《DOC嵌入式软件开发面试C语言笔试题 答案Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
4.用变量a给出下面的定义a)一个整型数b)一个指向整型数的指针c)一个指向指针的指针,它指向的指针是指向一个整型数d)一个有10个整型数的数组e)一个有10个指针的数组,该指针是指向一个整型数的f)一个指向有10个整型数数组的指针g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
a)int
b)inta;
//Aninteger*a;
//Apointertoaninteger
c)int**a;
//Apointertoapointertoaninteger
d)int
e)int
f)int
g)inta[10];
//Anarrayof10integers*(a[10]);
//Anarrayof10pointersto
integers(*a)[10];
//Apointertoanarrayof10integers(*a)(int);
//Apoint
ertoafunctionathattakesanintegerargument
andreturnsaninteger
h)int(*a[10])(int);
//Anarrayof10pointerstofunctionsthattakeanin
tegerargumentandreturnaninteger
5.什么是存储机制里的大、小端模式,试举例说明
大端模式(big-edian):
MSB存放在最低端的地址上。
举例,双字节数
0x1234以big-endian的方式存在起始地址0x00002000中:
|data|<
--address
|0x12|<
--0x00002000
|0x34|<
--0x00002001
在Big-Endian中,对于bit序列中的序号编排方式如下(以双字节数
0x8B8A为例):
bit|01234567|89101112131415
MSB----------------------------------LSB
val|10001011|10001010|
=0x8B8A
小端模式(little-endian):
LSB存放在最低端的地址上。
举例,双字节数0x1234以little-endian的方式存在起始地址0x00002000中:
在Little-Endian中,对于bit序列中的序号编排和Big-Endian刚好相反,其方式如下(以双字节数0x8B8A为例):
bit|15141312111098|76543210
MSB-----------------------------------LSB
6.写一段用来判断内存存储方式是大端还是小段的代码。
联合体union的存放顺序是所有成员都从低地址开始存放,利用该特性就可以轻松地获得了对内存采用Little-endian还是Big-endian模式读写。
代码如下:
intcheckCPUendian()
{
union
unsignedinta;
unsignedcharb;
}c;
c.a=1;
return(c.b==1);
}
/*return1:
little-endian,return0:
big-endian*/
7.定义一个返回值是指向函数的指针且有一个指向函数的指针作参数的函数。
通用形式如下:
typedefint(*P)();
//定义一个函数指针P类型
Pfunction(int(*p)());
//定义一个函数返回值P类型,且定义一个指向函数的指针p作参数8.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#defineSECONDS_PER_YEAR(60*60*24*365)UL//UL怎么个用法,你暂不要加
9.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
两个作用:
1)局部变量被声明为static则这一函数调用结束后该变量值保持不变。
2)外部变量被声明为static表明它是一个本地全局变量。
该变量只能在该文件内被访问,不能被其它文件访问。
11(关键字const有什么含意,
声明一个变量为只读。
12.下面的声明都是什么意思,
1)constinta;
2)intconsta;
3)constint*a;
4)int*consta;
5)intconst*consta;
1,2一样a为只读整形变量;
3指向一个只读整形变量的指针;
4指向整形的只读指针;
5指向只读整形的只读指针。
1234的整型变量的值为0xaa55。
13.C语言实现设置一绝对地址为0x0x12340xaa55
int*p;
p=(int*)0x1234;
//把整型数0x1234强制转换(typecast)为一指针
*p=0xaa55;
14.找出下面一段ISR的问题。
__interruptdoublecompute_area(doubleradius)
doublearea=PI*radius*radius;
printf("
\nArea=%f"
area);
returnarea;
1)ISR不能传递参数。
2)ISR不能有返回值。
3)ISR应该短且有效率,在ISR中做浮点运算不明智。
15.下面的代码输出是什么,为什么,
voidfoo(void)
unsignedinta=6;
intb=-20;
(a+b>
6)?
puts("
>
6"
):
<
=6"
);
输出>
6,原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。
-20成了一个非常大的正数。
//此题的输出确实是这样,但单纯输出a+b时结果又是-14很怪异迷惑~~~~~~~
16.评价下面的代码片断:
unsignedintzero=0;
unsignedintcompzero=0xFFFF;
如果碰巧int型是16位则上述代码没有问题,否则上面的代码不正确。
应写成:
unsignedintcompzero=~0;
17.下面代码执行后a,b,c的值各是多少,
inta=5,b=7,c;
c=a+++b;
//c=(a++)+b
a=6,b=7,c=12.//吾已试,结果确如此
18.Typedef和#define的区别
#define在预编译的时候处理作机械的字符替换。
Typedef在编译的时候处理,并不是作简单的字符替换。
而是如同定义变量一样声明一个类型。
然后用它去定义这种类型的变量。
比如下面的例子:
#definedPSstructs*
dPSp1,p2;
tPSp3,p4;
第一句扩展为structs*p1,p2;
这条代码定义p1为指向结构的指针,p2为一个实际的结构体。
第二句定义p3和p4为指向结构体s的指针。
/************************
Chapter2系统类
1.Linux和Uc/os是如何实现任务调度的,
2.Bootloader移植过程要注意的事项,要做哪些工作
3.Emacs用过没有,
Chapter3编程类
1.在字符串中找出所有与给定字符相同字符的位置。
#include<
stdio.h>
chars[6]="
hello"
;
voidsearch(chargiven)
inti=0,j=0;
while(s[i]!
='
\0'
){
if(s[i]==given){
location=%d\n"
i);
j++;
i++;
if(j==0)
No%cfound\n"
given);
intmain(void)
search('
o'
return0;
2.将一个字符串自身逆序.
#defineLEN12
intm,i;
chartemp;
chars[LEN]="
hellotiger"
m=(LEN-1)/2;
%s\n"
s);
for(i=0;
i<
m;
i++){
temp=s[i];
s[i]=s[LEN-2-i];
s[LEN-2-i]=temp;
/*-------E------*/
3.链表的基本操作及链表自身逆序。
/*----chainoperatefromDataStructure---*/#include<
malloc.h>
stdlib.h>
typedefintDataType;
typedefstructNode
DataTypedata;
structNode*next;
}SLNode;
//----initiate
voidListInitiate(SLNode**head)
if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)elseprintf("
OK\
n"
(*head)->
next=NULL;
//----lengthcal
intListLength(SLNode*head)
SLNode*p=head;
intsize=0;
while(p->
next!
=NULL){
p=p->
next;
size++;
returnsize;
exit
(1);
intListInsert(SLNode*head,inti,DataTypex)
SLNode*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DOC嵌入式软件开发面试C语言笔试题 答案 DOC 嵌入式 软件 开发 面试 语言 笔试