Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1223278
  • 博文数量: 322
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3276
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-17 09:21
文章分类

全部博文(322)

文章存档

2010年(155)

2009年(167)

我的朋友

分类: 嵌入式

2009-12-19 09:08:30

1.3 问答与设计
(47)请说明以下数据类型的表示范围:
T_S8:
T_U8:
T_S16:
T_U16:
T_S32:
T_U32:
T_pVOID:
float:
double:
(注:
#define T_S8  signed char
#define T_U8  unsigned char
#define T_S16 signed short
#define T_U16 unsigned short
#define T_S32 signed int
#define T_U32 unsigned int
#define T_pVOID void *
)

(48)请说明无值型的用途。

(49)浮点型变量可以用'%'求余运算吗?为什么?

(50)什么情况下适合使用联合类型?

(51)已知联合类型union data 已被正确定义,指出下面代码的错误并说明原因:
mix()
{
    extern union data mid;
    mid.ival = 5;
    mid->fval = 3.6;
    mid.pval = 'c';
    printf("%d", mid.ival);
    printf("%d", mid.pval);
}

(52)找出下面的程序中的错误并改正。
#include
main()
{
    float a[3] = {0,0};
    int i;
    for (i=0; i<3; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i=1; i<3; i++)
    {
        a[0] = a[0] + a[i];
    }
    printf("%f\n", a[0]);
}

(53)可以对结构体变量初始化吗?可以对共同体变量进行初始化吗?为什么?

(54)结构体变量可以作为函数参数吗?共同体变量可以作为函数参数吗?为什么?

(55)说明位操作提高程序运行效率的原理。

(56)变量有哪几种存储类型,它们的关键字、作用范围和生存时间各是什么?

(57)什么是结构类型的自然对界条件?

(58)如何改变结构类型缺省的对界条件?

(59)用变量a给出下面的定义:
        a. 一个整型数;
        d. 一个指向整型数的指针;
        c. 一个指向指针的的指针,它指向的指针是指向一个整型数;
        d. 一个有10个整型数的数组;
        e. 一个有10个指针的数组,该指针是指向一个整型数的;
        f. 一个指向有10个整型数数组的指;
        g. 一个指向函数的指针,该函数有一个整型参数并返回一个整型;
        h. 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数。
       
(60)关键字static的作用是什么?
(61)下面的声明都是什么意思?
        const int a;
        int const a;
        const int *a;
        int * const a;
        int const * a const;
       
(62)关键字volatile有什么含意?并给出三个不同的例子。

(63)一个参数既可以是const还可以是volatile吗?为什么?

(64)一个指针可以是volatile 吗?为什么?

(65)嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。

(66)能够把一个整型数强制转换为一指针吗?说明理由。

(67)假定PI宏已正确定义,请指出下面代码的错误:
__interrupt double compute_area (double radius)
{
    double area = PI * radius * radius;
    printf("\nArea = %f", area);
    return area;
}

(68)评价下面代码的合理性:
    unsigned int zero = 0;
    unsigned int compzero = 0xFFFF;
   
(69)请分别写出BOOL , float, 指针变量 与"零值"比较的 if 语句。

(70)外部变量的定义性声明与引用性声明在应用上的区别是什么?

(71)请说明外部变量的特性。(至少三点)

(72)外部变量和静态变量的区别是什么?

(73)对控制寄存器正确赋值要注意些什么?

(74)请区别如下代码?
    const int a;
    int const a;
    const int *a;
    int * const a;
    int const * a const;
   
(75)已知a为整数,比较下面代码的效率并说明原因:
        a++;
        a = a+1;
       
(76)已知a为整数,比较下面代码的效率并说明原因:
        a = a*4;
        a << 2;
       
(77)说明一个变量和定义一个变量有什么区别?
(78)可以在头文件中说明static变量吗?
(79)全局变量的缺省关键字是什么?
(80)局部变量的缺省关键字是什么?
(81)静态局部变量的使用范围和生命周期是什么?
(82)全局变量的使用范围和生命周期是什么?
(83)静态全局变量和全局变量的区别是什么?
(84)寄存器变量的使用有什么限制?能用取址运算符"&"来获取register变量的地址吗,原因是什么?
(85)为什么指针型变量在使用前必须初始化?
(86)请指出下面代码的缺陷:
main()
{
    T_S16 *i;
    T_S8 *str;
    *I = 100;
    str = "Good";
}
(87)分别从大转小、小转大两方面说明类型转换可能存在的隐患,并给出解决措施。
(88)减少全局变量使用的原因是什么?
(89)为什么禁止在符号变量上进行移位操作?
(90)请从类型转换精度损失的角度分析以下代码。
#define DELAY_MILLISECONDS 10000
T_S8 cTime;
cTime = DELAY_MILLISECONDS;
WaitTime(cTime);

(91)结构体中的位域为什么要尽可能相邻?
(92)判断下面语句是否正确并说明原因。
float a;
scanf("%7.2f", &a);

(93)判断下面语句是否正确并说明原因。
#include
void main(void)
{
    int x;
    scanf("%d", x);
    printf("%d", x);
}
(94)判断下面语句是否正确并说明原因。
main()
{
    int a = 5;
    printf("%d", a);
}
(95)判断下面语句是否正确并说明原因。
main()
{
    float a, b;
    printf("%d", a%b);
}

(96)判断下面语句是否正确并说明原因。
int a, b;
scanf("%d%d", a, b);

(97)判断下面语句是否正确并说明原因。
int n;
scanf("%d", &n);
int a[n];

(98)全局变量与局部变量、动态存储变量与静态存储变量的区别?
(99)为什么说使用尽量小的数据类型能够优化代码?
(100)已知整型变量I,那么I++;与 I = I + 1;那个效率高,说明原因。
(101)要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码实现这一要求。
(102) 描述下列变量说明:
short int a;
float b[3];
long (* c)[3];
unsigned * d[3];
void (*f)(int);

阅读(588) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~