内容正文:
2.3与2.4节:整型数据与实型数据
一、单项选择题
1.下列关于 C 语言整型常量进制表示的叙述,正确的是( )
A. 八进制整型常量以数字 0 开头,可包含数字 0~9
B. 十六进制整型常量以 0x 或 0X 开头,可包含字符 a~f
C. 十进制整型常量必须以非 0 数字开头,不能为 0
D. 整型常量的三种进制表示中,只有十进制可带负号
2.下列属于合法八进制整型常量的是()
A. 083 B. 077 C. 0x12 D. 123
3.下列属于合法十六进制整型常量的是()
A. 0xG B. 0X1a C. x12 D. 0x12.3
4.已知 int 型变量占 2 字节,下列数值中,不能赋值给 int 型变量的是()
A. 0 B. 32767 C. -32768 D. 32768
5.下列数值中,可赋值给 short 型变量的是()
A. 32768 B. -32769 C. 32767 D. 65535
6.下列关于 long 型变量的叙述,错误的是()
A. long 型变量占 4 字节,范围 - 2³¹~2³¹-1
B. long 型变量可存储 int 型变量无法容纳的大整数
C. long 型变量的关键字是 long 或 long int
D. long 型变量不能被 unsigned 修饰
7.下列关于实型常量指数形式的叙述,正确的是()
A. 指数形式必须包含字母 E 或 e,且 E 后必须是整数
B. 指数形式可省略小数点,如 123E5 是非法的
C. 指数形式中 E 可大写或小写,1.2e3 与 1.2E3 是不同常量
D. 指数形式的数值范围与十进制小数形式完全不同
8.下列变量定义中,属于单精度实型变量的是()
A. int a; B. float b; C. double c; D. long d;
9.下列关于 double 型变量的叙述,正确的是()
A. double 型变量占 4 字节,有效数字 6~7 位
B. double 型变量精度高于 float,占 8 字节,适合高精度计算
C. double 型变量不能存储整数,只能存储小数
D. double 型变量与 float 型变量的数值范围完全相同
10.下列赋值操作中,存在语法错误的是()
A. int a = 0x12; B. short b = 077;
C. float c = 1.23; D. unsigned int d = -1;
11.下列属于合法指数形式实型常量的是( )
A. 1.2E3.4 B. 1.2e-3 C. .E3 D. 1.2E
12.下列变量定义中,最适合存储学生人数的是()
A. int num; B. float num; C. char num; D. double num;
13.下列关于 unsigned short 型变量的叙述,正确的是()
A. 占 4 字节,范围 - 32768~32767 B. 占 2 字节,范围 0~65535
C. 占 2 字节,范围 - 32768~32767 D. 占 4 字节,范围 0~4294967295
14.下列关于实型常量的叙述,错误的是()
A. 实型常量必须包含小数点,否则是整型常量
B. 实型常量可表示为十进制小数或指数形式
C. 30.0 是实型常量,30 是整型常量
D. 实型常量可带负号,如 - 1.23
15.下列属于合法十进制整型常量的是()
A. 012 B. 0x12 C. 12 D. 12.3
16.下列关于实型数据精度丢失的说法,正确的是()
A. float与double型均可精确存储所有小数,无精度丢失
B. 小数在计算机中以二进制存储,部分小数无法精确表示,会出现精度丢失
C. 实型数据精度丢失可通过增加字节数完全避免
D. 整数赋值给实型变量,一定会出现精度丢失
17.关于八进制与十六进制整型常量的使用,错误的是()
A. 八进制常量不能包含数字8、9,否则编译报错
B. 十六进制常量中字母A~F不区分大小写,0XAF与0xaf等价
C. 八进制、十六进制常量只能表示正数,不能表示负数
D. 整型常量可在三种进制间自由转换表示,数值不变
18.下列关于unsigned修饰符的作用,说法正确的是()
A. unsigned可修饰所有数据类型,包括实型与字符型
B. unsigned修饰整型后,变量范围扩大一倍,且可存储负数
C. unsigned修饰整型后,最高位不再作为符号位,全部用于存储数值
D. unsigned int与int占用字节数不同,范围也不同
19.下列十进制数与进制转换结果,对应正确的是()
A. 十进制20 → 八进制024,十六进制0x14
B. 十进制15 → 八进制017,十六进制0xF
C. 十进制31 → 八进制037,十六进制0x1F
D. 以上全部正确
20.下列赋值操作中,属于隐式类型转换且无数据丢失的是()
A. int a = 3.14; B. float b = 100;
C. double c = 1.2f; D. long d = 65535;
二、判断题。
1.八进制整型常量以 0 开头,只能包含数字 0~7,不能包含 8 或 9。( )
2.十六进制整型常量以 0x 或 0X 开头,字符 a~f 不区分大小写,分别代表 10~15。( )
3.实型常量的指数形式中,字母 E 或 e 后必须是十进制整数,不能是小数。( )
4.实型变量分为 float、double、long double 三种,其中 long double 精度最高,占字节数最多。( )
5.八进制整型常量 012 等价于十进制整型常量 10,十六进制整型常量 0xA 等价于十进制 10。( )
6.unsigned修饰符只能修饰整型数据,不能修饰float、double等实型数据。( )
7.整数赋值给实型变量,会自动转换为实型,无任何精度丢失。( )
8.实型常量的指数形式中,底数为1时可省略,例:E3等价于1E3。( )
9.十六进制数 0x10 等于十进制的 10。( )
10.在 C 语言中,同一个整型数值分别用十进制、八进制、十六进制表示时,其在内存中的存储形式完全一致。( )
三、填空题。
1.实型变量分为________、________、________三种,其中________占字节数最多,精度最高。
2.合法八进制常量:015(十进制____);合法十六进制常量:0xF(十进制____)。
3.指数形式常量:1.2E3 等价于________,-2.5E-2 等价于________。
4.下列常量的类型:123 是________常量,0x12 是_______常量,12.3 是________常量。
5.int a = 0x1A; 变量 a 的值为十进制________;short b = 077; 变量 b 的值为十进制________。
6.十进制50转换为八进制________,十六进制________,两种进制常量写法分别为________、________。
7.十进制 20 转换成八进制是________,写成 C 语言合法常量为________。
8.八进制常量 011 等于十进制________,十六进制 0x11 等于十进制________。
9.十进制 63 转换成八进制是________,十六进制是________。
10.八进制 036 等于十进制________,十六进制 0x24 等于十进制________。
三、编程题
1. 定义 int 型变量 age=20,short 型变量 score=90,输出两个变量的值。
2.定义 long 型变量 num=123456789,输出该变量的值。
3.定义 float 型变量 height=1.75,double 型变量 weight=68.5,输出身高和体重。
4.定义 int 型变量 a=10,long 型变量 b=20,输出 a+b 的和(用 long 型存储)。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
2.3与2.4节:整型数据与实型数据
一、单项选择题
1.下列关于 C 语言整型常量进制表示的叙述,正确的是( )
A. 八进制整型常量以数字 0 开头,可包含数字 0~9
B. 十六进制整型常量以 0x 或 0X 开头,可包含字符 a~f
C. 十进制整型常量必须以非 0 数字开头,不能为 0
D. 整型常量的三种进制表示中,只有十进制可带负号
【答案】B
【解析】八进制只能用 0~7;十进制常量可以是 0;三种进制都可带正负号。
2.下列属于合法八进制整型常量的是( )
A. 083 B. 077 C. 0x12 D. 123
【答案】B
【解析】八进制以0开头,数字只能是0~7;A含8非法,C是十六进制,D是十进制。
3.下列属于合法十六进制整型常量的是( )
A. 0xG B. 0X1a C. x12 D. 0x12.3
【答案】B
【解析】十六进制以 0x/0X 开头,字符为 0~9、a~f/A~F。
4.已知 int 型变量占 2 字节,下列数值中,不能赋值给 int 型变量的是( )
A. 0 B. 32767 C. -32768 D. 32768
【答案】D
【解析】2 字节 int 范围是 - 2¹⁵~2¹⁵-1(-32768~32767),32768 超出范围,无法赋值。
5.下列数值中,可赋值给 short 型变量的是( )
A. 32768 B. -32769 C. 32767 D. 65535
【答案】C
【解析】short 范围 - 32768~32767,仅 C 在此范围内;A、B、D 均超出范围。
6.下列关于 long 型变量的叙述,错误的是( )
A. long 型变量占 4 字节,范围 - 2³¹~2³¹-1
B. long 型变量可存储 int 型变量无法容纳的大整数
C. long 型变量的关键字是 long 或 long int
D. long 型变量不能被 unsigned 修饰
【答案】D
【解析】long 可被 unsigned 修饰为 unsigned long。
7.下列关于实型常量指数形式的叙述,正确的是( )
A. 指数形式必须包含字母 E 或 e,且 E 后必须是整数
B. 指数形式可省略小数点,如 123E5 是非法的
C. 指数形式中 E 可大写或小写,1.2e3 与 1.2E3 是不同常量
D. 指数形式的数值范围与十进制小数形式完全不同
【答案】A
【解析】指数形式 E 后必须是整数。
8.下列变量定义中,属于单精度实型变量的是( )
A. int a; B. float b; C. double c; D. long d;
【答案】B
【解析】float 是单精度实型;A 是整型,C 是双精度,D 是长整型。
9.下列关于 double 型变量的叙述,正确的是( )
A. double 型变量占 4 字节,有效数字 6~7 位
B. double 型变量精度高于 float,占 8 字节,适合高精度计算
C. double 型变量不能存储整数,只能存储小数
D. double 型变量与 float 型变量的数值范围完全相同
【答案】B
【解析】double 占 8 字节,精度 15~16 位,高于 float;A 是 float 特性,C 错可存整数,D 错范围不同。
10.下列赋值操作中,存在语法错误的是( )
A. int a = 0x12; B. short b = 077;
C. float c = 1.23; D. unsigned int d = -1;
【答案】D
【解析】unsigned int 不能存储负数,赋值 - 1 语法错误;A、B、C 均合法。
11.下列属于合法指数形式实型常量的是( )
A. 1.2E3.4 B. 1.2e-3 C. .E3 D. 1.2E
【答案】B
【解析】指数形式 E 后必须是整数。A 指数非整数,C 缺底数,D 缺指数,均非法。
12.下列变量定义中,最适合存储学生人数的是( )
A. int num; B. float num; C. char num; D. double num;
【答案】A
【解析】学生人数是整数,用 int 型最匹配;float、double 存小数,char 存字符。
13.下列关于 unsigned short 型变量的叙述,正确的是( )
A. 占 4 字节,范围 - 32768~32767 B. 占 2 字节,范围 0~65535
C. 占 2 字节,范围 - 32768~32767 D. 占 4 字节,范围 0~4294967295
【答案】B
【解析】unsigned short 占 2 字节,无符号,范围 0~2¹⁶-1=65535
14.下列关于实型常量的叙述,错误的是( )
A. 实型常量必须包含小数点,否则是整型常量
B. 实型常量可表示为十进制小数或指数形式
C. 30.0 是实型常量,30 是整型常量
D. 实型常量可带负号,如 - 1.23
【答案】A
【解析】指数形式实型常量可无小数点(如 1e3),并非必须包含。
15.下列属于合法十进制整型常量的是( )
A. 012 B. 0x12 C. 12 D. 12.3
【答案】C
【解析】A 是八进制,B 是十六进制,D 是实型;C 是合法十进制整型常量。
16.下列关于实型数据精度丢失的说法,正确的是( )
A. float与double型均可精确存储所有小数,无精度丢失
B. 小数在计算机中以二进制存储,部分小数无法精确表示,会出现精度丢失
C. 实型数据精度丢失可通过增加字节数完全避免
D. 整数赋值给实型变量,一定会出现精度丢失
【答案】B
【解析】实型数据二进制存储特性,部分十进制小数无法精确表示,存在精度丢失;double仅降低丢失概率,无法完全避免。
17.关于八进制与十六进制整型常量的使用,错误的是( )
A. 八进制常量不能包含数字8、9,否则编译报错
B. 十六进制常量中字母A~F不区分大小写,0XAF与0xaf等价
C. 八进制、十六进制常量只能表示正数,不能表示负数
D. 整型常量可在三种进制间自由转换表示,数值不变
【答案】C
【解析】八进制、十六进制常量均可加负号表示负数,例:-012、-0xAF均合法。
18.下列关于unsigned修饰符的作用,说法正确的是( )
A. unsigned可修饰所有数据类型,包括实型与字符型
B. unsigned修饰整型后,变量范围扩大一倍,且可存储负数
C. unsigned修饰整型后,最高位不再作为符号位,全部用于存储数值
D. unsigned int与int占用字节数不同,范围也不同
【答案】C
【解析】unsigned仅修饰整型,最高位改为数值位,无符号位;同类型有符号与无符号字节数相同,仅范围不同。
19.下列十进制数与进制转换结果,对应正确的是( )
A. 十进制20 → 八进制024,十六进制0x14
B. 十进制15 → 八进制017,十六进制0xF
C. 十进制31 → 八进制037,十六进制0x1F
D. 以上全部正确
【答案】D
【解析】三项进制转换均符合计算规则,无错误。
20.下列赋值操作中,属于隐式类型转换且无数据丢失的是( )
A. int a = 3.14; B. float b = 100;
C. double c = 1.2f; D. long d = 65535;
【答案】C
【解析】float转double为扩大精度,无数据丢失。
二、判断题。
1.八进制整型常量以 0 开头,只能包含数字 0~7,不能包含 8 或 9。( )
【答案】正确
【解析】八进制基数为 8,数字范围 0~7,以 0 开头是语法标识。
2.十六进制整型常量以 0x 或 0X 开头,字符 a~f 不区分大小写,分别代表 10~15。( )
【答案】正确
【解析】十六进制规则,a/A~f/F 对应 10~15,大小写等价。
3.实型常量的指数形式中,字母 E 或 e 后必须是十进制整数,不能是小数。( )
【答案】正确
【解析】指数形式语法要求,E 后必须是整数,如 1.2E3 合法,1.2E3.4 非法。
4.实型变量分为 float、double、long double 三种,其中 long double 精度最高,占字节数最多。( )
【答案】正确
【解析】三种实型分类,long double 精度最高、字节数最多。
5.八进制整型常量 012 等价于十进制整型常量 10,十六进制整型常量 0xA 等价于十进制 10。( )
【答案】正确
【解析】012 (8)=1×8+2=10,0xA (16)=10,两者等价。
6.unsigned修饰符只能修饰整型数据,不能修饰float、double等实型数据。( )
【答案】正确
【解析】unsigned仅针对整型,用于取消符号位,实型无符号位概念,不可修饰。
7.整数赋值给实型变量,会自动转换为实型,无任何精度丢失。( )
【答案】错误
【解析】超大整数赋值给float,超出精度范围仍会丢失精度,并非完全无丢失。
8.实型常量的指数形式中,底数为1时可省略,例:E3等价于1E3。( )
【答案】错误
【解析】指数形式底数不可省略,E3无底数,语法非法,必须书写完整底数。
9.十六进制数 0x10 等于十进制的 10。( )
【答案】错误
【解析】0x10 = 1×16=16,不是 10。
10.在 C 语言中,同一个整型数值分别用十进制、八进制、十六进制表示时,其在内存中的存储形式完全一致。( )
【答案】正确
【解析】进制仅为书写形式,整型数据在内存中均以二进制补码存储,与表示方式无关。
三、填空题。
1.实型变量分为________、________、________三种,其中________占字节数最多,精度最高。
【答案】float(单精度);double(双精度);long double(长双精度);long double
2.合法八进制常量:015(十进制____);合法十六进制常量:0xF(十进制____)。
【答案】13;15
3.指数形式常量:1.2E3 等价于________,-2.5E-2 等价于________。
【答案】1200;-0.025
4.下列常量的类型:123 是________常量,0x12 是_______常量,12.3 是________常量。
【答案】十进制整型;十六进制整型;实型
5.int a = 0x1A; 变量 a 的值为十进制________;short b = 077; 变量 b 的值为十进制________。
【答案】26;63
6.十进制50转换为八进制________,十六进制________,两种进制常量写法分别为________、________。
【答案】62;32;062;0x32
7.十进制 20 转换成八进制是________,写成 C 语言合法常量为________。
【答案】24,024
8.八进制常量 011 等于十进制________,十六进制 0x11 等于十进制________。
【答案】9,17
9.十进制 63 转换成八进制是________,十六进制是________。
【答案】77,0x3F
10.八进制 036 等于十进制________,十六进制 0x24 等于十进制________。
【答案】30,36
三、编程题
1. 定义 int 型变量 age=20,short 型变量 score=90,输出两个变量的值。
【答案】
#include <stdio.h>
main()
{
int age = 20;
short score = 90;
printf("年龄:%d,分数:%d", age, score);
}
2.定义 long 型变量 num=123456789,输出该变量的值。
【答案】
#include <stdio.h>
main()
{
long num = 123456789L;
printf("长整型变量值:%ld", num);
}
3.定义 float 型变量 height=1.75,double 型变量 weight=68.5,输出身高和体重。
【答案】
#include <stdio.h>
main()
{
float height = 1.75;
double weight = 68.5;
printf("身高:%.2f米,体重:%.1f公斤", height, weight);
}
4.定义 int 型变量 a=10,long 型变量 b=20,输出 a+b 的和(用 long 型存储)。
【答案】
#include <stdio.h>
main()
{
int a = 10;
long b = 20L;
long sum = a + b;
printf("和为:%ld", sum);
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$