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.大小端 不写了,自己写。
|