C语言习题~day26

简介: 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.文字常量区

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

目录
相关文章
TU^
|
12天前
|
存储 C语言
C语言习题~day35
C语言习题~day35
TU^
11 1
TU^
|
12天前
|
编译器 C语言
C语言习题~day31
C语言习题~day31
TU^
8 2
TU^
|
12天前
|
算法 程序员 C语言
C语言习题~day36
C语言习题~day36
TU^
15 1
TU^
|
12天前
|
存储 C语言
C语言习题~day34
C语言习题~day34
TU^
9 1
TU^
|
12天前
|
算法 C语言
C语言习题~day33
C语言习题~day33
TU^
10 1
TU^
|
12天前
|
C语言
C语言习题~day32
C语言习题~day32
TU^
9 1
TU^
|
12天前
|
C语言
C语言习题~day30
C语言习题~day30
TU^
7 1
TU^
|
12天前
|
自然语言处理 C语言 C++
C语言习题~day29
C语言习题~day29
TU^
7 1
TU^
|
12天前
|
存储 C语言
C语言习题~day28
C语言习题~day28
TU^
7 1
TU^
|
12天前
|
C语言
C语言习题~day27
C语言习题~day27
TU^
9 1