AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第298题 (1.0分) 题号:537 在定义构造数据类型时,不能()。

A
 说明变量
B
 说明存储类型
C
 初始化
D
 末尾不写分号

答案解析

正确答案:D

解析:

**解析:** 在 C 语言中,构造数据类型(如结构体 `struct`、联合体 `union`、枚举 `enum`)的定义遵循特定的语法规则。我们需要分析各个选项在定义类型时的合法性: 1. **关于选项 A(说明变量)**: 在定义构造数据类型的同时,是可以声明该类型的变量的。例如: ```c struct Student { int id; char name[20]; } stu1, stu2; // 这里同时定义了结构体类型并声明了变量 stu1 和 stu2 ``` 因此,定义时说明变量是**允许**的。 2. **关于选项 B(说明存储类型)**: 同样,在定义类型的同时声明变量时,也可以指定变量的存储类型(如 `static`、`extern` 等,尽管 `extern` 通常用于声明而非定义,但在某些上下文或针对静态存储期变量是合法的)。例如: ```c static struct Data { int x; } myData; // 合法,指定了静态存储类型 ``` 因此,这通常也是**允许**的(取决于具体语境,但相比 D 选项,这不是语法错误的关键点)。 3. **关于选项 C(初始化)**: 在定义构造数据类型的同时声明变量,是可以对变量进行初始化的。例如: ```c struct Point { int x; int y; } p1 = {10, 20}; // 合法,对变量 p1 进行了初始化 ``` 因此,初始化是**允许**的。 4. **关于选项 D(末尾不写分号)**: 这是 C 语言语法的硬性规定。构造数据类型的定义语句必须以分号 `;` 结尾。如果遗漏分号,编译器会报错。例如: ```c struct Test { int a; } // 错误!缺少分号 ``` 正确的写法必须是: ```c struct Test { int a; }; // 正确,必须有分号 ``` 因此,在定义构造数据类型时,**不能**末尾不写分号。 **结论:** 题目问的是“不能”做什么。选项 A、B、C 都是在定义类型时可能伴随的合法操作(针对同时声明的变量),而选项 D 违反了基本的语法规则,会导致编译错误。 故正确答案为 **D**。
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码