C语言习题~day26

1.以下关于枚举的说法,哪个是正确的?

A.枚举类型可以具有浮点数作为枚举值。

B.枚举类型在内存中存储为整数。

C.枚举类型可以包含字符串作为枚举值。

D.枚举类型不能作为函数的参数传递。

 B

2.下面代码的结果是:( )

enum ENUM_A
{
  X1,
  Y1,
  Z1 = 255,
  A1,
  B1,
};
enum ENUM_A enumA = Y1;
enum ENUM_A enumB = B1;
printf("%d %d\n", enumA, enumB);

A.1, 4

B.1, 257

C.2, 257

D.2, 5

枚举默认从0开始,所以X1是0,故Y1是1,给了数字后会根据数字向后推,那么Z1是255,A1是256,所以B1是257,故选B。 

3.关于枚举常量和#define 定义常量,下面哪个表述是不严谨的?

A.可读性更好:枚举符号提供了有意义的标识符,可以更清晰地表达代码的意图。相比之下,#define定义的符号只是简单的文本替换,不具备语义上的含义。

B.和#define定义的标识符比较枚举有类型检查,更加严谨。

C.枚举常量是遵循作用域规则的,枚举声明在函数内,只能在函数内使用,#define定义的符号没有作用域概念,会在整个代码中进行文本替换

D.#define没有类型检查,使用更加方便,更加推荐使用

 A:正确

B:正确

C:正确

D:枚举是一种类型,有类型检查,但是#define定义的符号没有类型检查,就是简单的替换,使用虽然方便,但是也很容易导致问题,所以更加推荐使用枚举常量。

4.关于动态内存函数的说法错误的是:( ) 

A.malloc函数向内存申请一块连续的空间,并返回起始地址

B.malloc申请空间失败,返回NULL指针

C.malloc可以向内存申请0字节的空间

D.malloc申请的内存空间,不进行释放也不会对程序有影响

 说明:不释放会产生内存泄漏,小型程序可以不关注,但是在中大型程序上影响极其深刻。故选D。AB是函数的基本功能,C选项比较特殊,malloc(0)是允许的,也会返回一个指针,只是没有空间所以不可使用而已。

5.关于动态内存相关函数说法错误的是:( ) 

A.malloc函数和calloc函数的功能是相似的,都是申请一块连续的空间。

B.malloc函数申请的空间不初始化,calloc函数申请的空间会被初始化为0

C.realloc函数可以调整动态申请内存的大小,可大可小

D.free函数不可以释放realloc调整后的空间

 realloc在操作过程中是释放旧空间分配并返回新空间,所以返回的新空间也是需要释放的,故选D。AB是malloc和calloc的区别。C是realloc的基础功能。

6.动态申请的内存在内存的那个区域?( ) 

A.栈区

B.堆区

C.静态区

D.文字常量区

 动态内存分配都是在堆上分配的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值