1.对一个字,存储时先存放低字节,再存放高字节(即低字节占低地址,高字节占高地址,则这种存储格式为(小端模式)
2.要使用WinCE 或标准Linux 嵌入式操作系统,ARM 必须带有MMU 功能。
3.关于汇编语言与C/C++的混合程序叙述正确的是?(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系统复位后,第一条指令在(A)
A.00000000H
B.00000004H
C.00000008H
D.由编程着决定
6.针对没有MMU的ARM芯片,其操作系统可以使用(C)
A、Windows CE ,Linux
B、VxWork
C、uClinux, UC/OS-II
D、以上都可以
7.在嵌入式芯片的接口中,其中_B_ 是音频接口。
A IIC
B IIS
C SPI
D PWM
8.下面判断正确的是( C)。
A.char *a=“china”;等价于char a;a=“ghina”;
B.char str[5]=“china”;等价于char str[]=“china”;
C.chars=“china”;等价于chars;s=“china”;
D.char c[4]=“abc”,d[4]=“abc”;等价于char c[4]=d[4]=“abc”;
9.若用数组名作为函数调用时的实参,则实际上传递给形参的是___A__。
A、数组首地址
B、数组第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
10.定义一个结构体,需4字节对齐,应填入V1、V2、V3、V4、V5、V6的值为:
#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
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
替换后:
typedef struct
{
short a;
char pad##V1[V2];
char b[3];
char pad##V3[V4];
char *p;
char pad##V5[V6];
}ST_TEST
#include<stdio.h>
#define OPERATIOS(X,Y) ((long)(&(((X *)0)->Y)))
typedef struct
{
int a;
int b[12];
int c[100];
}ST_TEST;
int main()
{
printf("%ld\n",OPERATIOS(ST_TEST,c));
return 0;
}
输出结果:52
1.0x01<<2+3的值为多少?为什么???
答:32
2.
(1)struct test1
{
char c1;
short s;
char c2;
int i;
};
(2)struct test2
{
char c1;
char c2;
short s;
int i;
};
答:(1)占用12个字节,代码(2)占用8个字节。
3.定义一个函数宏,求x的平方。
答:“#define SQR(x) ((x)*(x))”。注意:定义一个宏时要把括号加上。
4.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
char *name;
int score;
}stu,*pstu;
int main()
{
pstu = (struct student*)malloc(sizeof(struct student));
pstu->name = (char*)malloc(sizeof(10));
strcpy(pstu->name, "tom");
pstu->score = 99;
free(pstu);
return 0;
}
5.大小端
不写了,自己写。