单选题
2.经下列语句定义后,sizeof( ),sizeof( ),sizeof( ),sizeof( )在 微机上的值分别为()。 char x=65; float y=7.3; int a=100; double b=4.5;
A
2,2,2,4
B
1,2,2,4
C
1,4,2,8
D
2,4,2,8
答案解析
正确答案:C
解析:
这道题考查的是 C 语言中基本数据类型在特定编译环境(通常指传统的 16 位微机或 Turbo C 环境)下所占用的内存字节数。我们需要根据题目给出的选项反推其对应的编译器环境标准。
**1. 分析各数据类型的常规大小:**
* **`char` 类型**:
* 在所有标准的 C 语言编译器中,`char` 类型始终占用 **1 个字节**。
* 因此,`sizeof(x)` 的值应为 1。
* 观察选项:
* A: 2 (错误)
* B: 1 (可能)
* C: 1 (可能)
* D: 2 (错误)
* 排除 A 和 D。
* **`float` 类型**:
* 遵循 IEEE 754 标准,`float`(单精度浮点数)通常占用 **4 个字节**。
* 因此,`sizeof(y)` 的值应为 4。
* 观察剩余选项 B 和 C:
* B: 第二个值为 2 (错误,float 极少为 2 字节)
* C: 第二个值为 4 (正确)
* 此时基本可以确定答案为 C。为了严谨,我们继续验证后续类型。
* **`int` 类型**:
* `int` 的大小取决于编译器和机器字长。
* 在 **16 位微机**(如早期的 DOS 环境、Turbo C 编译器)上,`int` 占用 **2 个字节**。
* 在 **32 位或 64 位微机**(如现代 Windows/Linux GCC/VC++)上,`int` 通常占用 **4 个字节**。
* 题目中提到“在微机上”,且结合选项来看,选项 C 中 `sizeof(a)` 为 2,这符合 **16 位编译环境** 的特征。
* **`double` 类型**:
* `double`(双精度浮点数)通常占用 **8 个字节**。
* 因此,`sizeof(b)` 的值应为 8。
* 选项 C 中第四个值为 8,符合标准。
**2. 综合验证选项 C:**
* `sizeof(char)` -> **1** 字节
* `sizeof(float)` -> **4** 字节
* `sizeof(int)` -> **2** 字节 (注:此处特指 16 位环境,如 Turbo C)
* `sizeof(double)` -> **8** 字节
对应的序列为:**1, 4, 2, 8**。
**3. 结论:**
* 选项 A:2,2,2,4 —— 错误,char 不为 2,double 不为 4。
* 选项 B:1,2,2,4 —— 错误,float 不为 2,double 不为 4。
* 选项 C:1,4,2,8 —— **正确**,符合 16 位微机环境下各类型的大小。
* 选项 D:2,4,2,8 —— 错误,char 不为 2。
故正确答案为 **C**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、以下符合C语言语法的赋值表达式是()。
单选题
1、下面四个选项中,均是不合法的浮点数的选项是()。
单选题
1、下列语句的输出结果是()。
单选题
1、执行下列语句后,a和b的值分别为()。 int a,b; a=1+'a'; b=2+7%-4-'A';
单选题
1、以下数据中,不正确的数值或字符常量是()。
单选题
1、以下能对二维数组a进行正确初始化的语句是()。
单选题
1、下列程序的输出为()。 main() 
单选题
1、假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};, 则数组x在内存中所占字节数是()。
单选题
1、下列字符序列中,不可用作C语言标识符的是()。
单选题
1、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
