嵌入式系统开发人员C语言测试题

嵌入式开发考试内容是什么呢?下面yjbys小编为大家分享最新嵌入式开发考试面试题,希望对大家备考有帮助!

嵌入式系统开发人员C语言测试题

1.2 填空题

(32)说明下面变量的定义:

char (*p[])(); _____________________

char *p()[]; _____________________

char (*p)[10][10]; _____________________

*(*p())[])[]; _____________________

(33)下面共同体的存储空间是_____

union BOOKNUMBER

{

T_S16 age;

T_S8 title[10];

T_S8 post[32];

}

(34)若整数值范围是 -32768 至 32767。在执行下面的表达式之后, i 的结果是什么?

int i=32766;

i=i+1; i =

i=i+1; i =

(35)对于联合类型:

union x

{

char ch[7];

int i[2];

float f;

}tom;

那么, sizeof(tom) =

(36)有以下程序,程序的输出结果是______(注意: ch[0]在低字节,ch[1]在高字节)。

#include

union pw

{

int i;

char ch[2];

}a;

main()

{

[0] = 13;

[1] = 0;

printf("%d ", a.i);

}

(37)以下程序用以输出结构体变量bt所占内存单元的字节数,请在横线内填上适当内容。

struct ps

{

double i;

char arr[20];

};

main()

{

struct ps bt;

printf("bt size :%d ", _______);

}

(38)设位段的`空间分配由右到左,则以下程序的运行结果是_____。

struct packed_bit

{

unsigned a:2;

unsigned b:3;

unsigned c:4;

int i;

}data;

main()

{

data.a = 1;

data.b = 2;

data.c = 3;

data.i = 0;

printf("%d ", data);

}

(39)以下程序的运行结果是_____。

main()

{

enum COLOR{

RED,

BLUE = 5,

YELLOW

}cl;

printf("%d", OW);

}

(40)以下程序的运行结果是______。

main()

{

union EXAMPLE{

struct{

int x;

int y;

}in;

int a;

int b;

}e;

e.a = 1;

e.b = 2;

.x = e.a * e.b;

.y = e.a + e.b;

printf("%d %d", .x, .y);

}

(41)请补充下面代码:

#include

main()

{

T_S16 *a;

a = (int*)malloc(_________);

*a = 123;

______ = 456;

______ = 789;

}

(42)在小类型转大类型时应确保不会改变数据的值,在程序的逻辑上确认后,还应在强制转换代码后加上清高位代码以确保转换正确,请填充下面的代码以示例:

T_S8 cLocalHeight = 0xfe;

T_U32 g_lHeight = 0;

g_lHeight = _________cLocalHeight;

(43)在不同符号位转换时(T_U8?àT_S8, T_U16?àT_S16, T_U32?àT_S32)应在逻辑上确保不会改变数据的符号位或是含义值,请填充下面的代码以示例:

T_S16 nTop;

T_S16 nBottom;

T_VOID Img_SetHeight(T_U16 nHght)

T_S16 nHeight = nTop - nBottom;

Img_SetHeight(___________);

(44)写出判断字符变量c是英文字母的表达式____________。

(45)下面函数的返回值是______。

int data()

{

float x = 9.9;

return(x);

}

(46)下面程序段的输出结果是______。

Union

{

int b1, b2, b3;

} yy;

yy.b1 = 1;

yy.b2 = 2;

yy.b3 = 10 * yy.b1 + yy.b2;

printf("%d, %d, %d", yy.b1, yy.b2, yy.b3);