分类: 嵌入式
2009-12-19 09:06:13
1.2 填空题
(32)说明下面变量的定义:
char (*p[])(); _____________________
char *p()[]; _____________________
char (*p)[10][10]; _____________________
char(*(*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()
{
a.ch[0] = 13;
a.ch[1] = 0;
printf("%d\n", a.i);
}
(37)以下程序用以输出结构体变量bt所占内存单元的字节数,请在横线内填上适当内容。
struct ps
{
double i;
char arr[20];
};
main()
{
struct ps bt;
printf("bt size :%d\n", _______);
}
(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\n", data);
}
(39)以下程序的运行结果是_____。
main()
{
enum COLOR{
RED,
BLUE = 5,
YELLOW
}cl;
printf("%d", cl.YELLOW);
}
(40)以下程序的运行结果是______。
main()
{
union EXAMPLE{
struct{
int x;
int y;
}in;
int a;
int b;
}e;
e.a = 1;
e.b = 2;
e.in.x = e.a * e.b;
e.in.y = e.a + e.b;
printf("%d %d", e.in.x, e.in.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);