嵌入式系统开发人员C语言测试题--填空题(数据类型和变量)

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<stdio.h>
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<alloc.h>
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);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值