文档介绍:2 C 语言程序设计基础
一、选择填空
答案:C B B D A
分析:在一般微机系统中,int 和 unsigned 类型数据在内存中占 2 个字节;long 和 unsigned
long 类型数据在内存中占 4 个字节;short 和 unsigned short 类型数据占 2 个字节;一个 float
类型数据在内存中占 4 个字节;一个 double 类型数据占 8 个字节;一个 char 类型数据占 1
个字节。
答案:D
分析:C 语言对有符号和无符号整型数据的处理的区别,就在于对数据最高位的解释。
对于一个有符号整数,C 编译程序将把该值(二进制代码)的最高位作为符号标志位(符
号标志位是 0,表示正数;若为 1,则表示负数);而对于一个无符号整数,该数的最高位
将被作为数值位处理。设 int 型数据占 2 个字节,则-1 在内存中应以 16 位全 1 来表示,
如下图所示:
k=-1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
↑
符号位
因此,当把 k 值按%d 格式输出(即按有符号整数处理)时,仍为-1;而按%u 格式输出(即
按无符号整数处理)时为 65535(216-1=65535)。
答案:C
分析:通过本题应当明确以下几点。
(1) 在本题的格式字符串中的“|”将按原样输出。
(2) 若用格式描述%6d 输出 k 值,则输出占六格;右对齐;左边用空格填满。
(3) 若用格式描述%06d 输出 k 值,输出同上;只是左边用 0 填满。
(4) 若用格式描述%-06d,输出将为左对齐,右边用空格填满。
答案:B
分析:根据 C 语言规则,当用户使用 f 格式描述符输出浮点数时,可以指定输出项的字
段宽度,并规定小数点后面的位数。一般形式为% 或%-。其中,用 m 指定输出数
据所占的总列数;n 指定小数点后的位数;“-”的含义是使输出数据左对齐。当输出数据宽
度大于 m 时,数据的整数部分将按实际位数输出。本题中输出项 x 值的实际宽度应占 9 列,
大于格式说明中规定的输出宽度,因此按照 C 语言规则,x 值的整数部分(213)应按原样
输出,小数部分只保留两位(且要四舍五入)。此外,还应注意到,在本题中,输出项 x 的
实际宽度大于格式说明中所指定的输出宽度,因此%后面的字符“-”对输出格式无影响。
本题的最终输出为 。
答案:C
分析:在使用 e 格式描述符输出浮点数时(浮点数将以指数形式输出),用户也可指定
输出数据的宽度和小数部分的位数, 其一般形式为:% 或%-,其中,m, n 和字符
“-”的含意均与上题所述相同。需要指出的是,在不同的计算机系统中,虽然对指数部分
应占宽度的规定不同,但是数值部分均按标准化指数形式输出(即小数点前必须有而且仅有
1
一位非零数字)。本题中,输出项 x 的实际宽度为 9 列,而格式说明中所给定的域宽为 6,
因此只能按标准化指数形式输出 x 值的整数部分,截去小数部分并四舍五入,即输出结果为
+002。
答案:C
分