单选题
1、第259题 (1.0分) 题号:204 在下列程序段中,枚举变量c1,c2的值依次是()。 enum color {red,yellow,blue=4,green,white} c1,c2; c1=yellow;c2=white; printf(”%d,%d\n”,c1,c2);
A
1,6
B
2,5
C
1,4
D
2,6
答案解析
正确答案:A
解析:
这道题考查的是 C 语言中**枚举类型(enum)**成员默认值的分配规则。
### 核心知识点
在 C 语言中,枚举成员的整数值遵循以下规则:
1. **第一个成员**:如果没有显式赋值,默认值为 `0`。
2. **后续成员**:如果没有显式赋值,其值为**前一个成员的值加 1**。
3. **显式赋值**:如果某个成员被显式赋予了特定值,则从该值开始,后续未赋值的成员继续依次递增。
### 逐步推导过程
根据代码 `enum color {red, yellow, blue=4, green, white} c1, c2;`,我们来确定每个枚举常量的值:
1. **`red`**:
- 它是第一个成员,且未显式赋值。
- 所以,`red = 0`。
2. **`yellow`**:
- 它紧跟在 `red` 之后,且未显式赋值。
- 所以,`yellow = red + 1 = 0 + 1 = 1`。
3. **`blue`**:
- 它被显式赋值为 `4`。
- 所以,`blue = 4`。
4. **`green`**:
- 它紧跟在 `blue` 之后,且未显式赋值。
- 所以,`green = blue + 1 = 4 + 1 = 5`。
5. **`white`**:
- 它紧跟在 `green` 之后,且未显式赋值。
- 所以,`white = green + 1 = 5 + 1 = 6`。
### 变量赋值与输出
代码接着执行了以下赋值操作:
```c
c1 = yellow;
c2 = white;
```
- `c1` 被赋值为 `yellow` 的值,即 **1**。
- `c2` 被赋值为 `white` 的值,即 **6**。
最后执行输出语句:
```c
printf("%d,%d\n", c1, c2);
```
- 输出结果为 `1,6`。
### 结论
对比选项:
A. 1,6
B. 2,5
C. 1,4
D. 2,6
正确答案是 **A**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第40题〗740) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,
单选题
1、〖第39题〗560) 能将高级语言编写的源程序转换为目标程序的是()。
单选题
1、〖第38题〗77) 以下描述中,正确的是()。
单选题
1、〖第37题〗528) 对于void类型函数,调用时不可作为()。
单选题
1、〖第36题〗88) 两个指针变量不可以()。
单选题
1、〖第35题〗567) 以下叙述中正确的是 ()。
单选题
1、〖第34题〗454) 以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
单选题
1、〖第33题〗214) C语言中的文件的存储方式有()。
单选题
1、〖第32题〗603) 以下符合C语言语法的赋值表达式是()。
单选题
1、〖第31题〗601) 下面四个选项中,均是不合法的浮点数的选项是()。
