嵌入式笔试题1

1.大小端

     ①   大端:存储时先放高字节,再放低字节(即低字节占高地址,高字节占低地址);

            小端:存储时先放低字节,再放高字节(即低字节占低地址,高字节占高地址);

     ②请写一个c函数,当前系统为大端,返回0,小端返回1。

#include <stdio.h>
#include <stdio.h>

int main(int argc,char* argv[])
{
    int a = 0x1234;
    char b = *(char*)&a;
    if(b==0x12)
    {
        printf("big end\n");
    }
    else
    {
        printf("little end\n");
    }

    return 0;
}

     

   ③32位的数0x12345678在小端模式和大端模式下的存放方式:

内存地址         小端存放内容          大端存放内容
0x4000             0x78                 0x12
0x4000             0x56                 0x34
0x4000             0x34                 0x56
0x4000             0x12                 0x78

 

2.要使用WinCE或标准Linux嵌入式操作系统,ARM必须带有MMU(内存管理单元)功能。

3.关于汇编语言正确的是:(D)

        A.汇编程序,C、C++之间可以相互调用。

        B.C/C++可以嵌入汇编指令。

        C.在汇编程序和C/C++的程序之间可以进行变量的互访。

        D.A、B、C都对。

4.BootLoader程序其中关键的系统初始化部分使用的的语言是:(D)

        A.ARM汇编语言。

        B.Thumb汇编语言。

        C.C语言

        D.汇编和C语言都可以

5.ARM系统复位后,第一条指令在00000000H。

6.针对没有MMU的ARM芯片,其操作系统可以使用uClinux、UC/OS-II。

7.在嵌入式芯片接口中,其中IIS是音频接口。

8.下面判断正确的是:(C)

        A.char *a= "china";等价于char a; a="china";

        B.char str[5]="china";等价于char s; s="china";

        C.char s = "china";等价于char s;s="china";

        D.char C[4]= "abc",d[4]="abc";等价于char c[4]=d[4]="abc";

9.若用数组名作为函数调用的实参,则实际上传给形参的是数组首地址。

10.定义一个结构体,需4字节对齐,应填入v1~v6的值为:(B)

#define PADS(x,y) char pad##x[y]
typedef struct
{
    short a;
    PADS(v1,v2);
    char b[3];
    PADS (v3,v4);
    char *p;
    PADS(v5,v6);
}ST_TEST;

替换后:

#define PADS(x,y) char pad##x[y]
typedef struct
{
    short a;(1)
   char pad##v1[v2]  (v2)
    char b[3]; (3)
    char pad##v3[v4]  (v4)
    char *p;(4)
    char pad##v5[v6] (v6)
}ST_TEST;

        A.   0,1,0,4,0,0

        B.  1,2,3,4,5,6

        C.  100,2,1234,1,0,0

        D.  1,2,3,7,1,12

11.以下程序结果为:

答案:52

12.0x01<<2+3的值为:

        0000 0001 左移5位,结果为32

13.以下两个结构体有什么区别?

test1 占用12个字节,test2占用8个字节。char占1位,short占2位,int占4位。

14.定义一个函数宏,求x的平方

        #define SQR(x)  ((x)*(x))

15.下列代码有什么问题?

答: Segmentation fault (core dumped)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值