参考解析:“ %o”表示八进制无符号型输出整型数据 ( 即不带前导 0); “%x”表示以十
六进制无符号型输出整型数据 ( 即不带前导 ox 或 0X); “%d”表示输出带符号的十进制整型
数。
6 有下列程序:
程序执行后的输出结果是 ( ) 。
A.45B.20C.25 D.36
参考答案: C
参考解析:在 for 循环语句中自变量 i 从 0 开始,每次自加 2,执行 s+一*(t+i) 语句,
因为 C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,
*(t+i) 代表数组的第 i+1 个元素,所以程序运行的结果是 1+3+5+7+9=25,即变量 S 的值等
于 25。
7 若有正确定义语句 double x=5.16894 :
A. 输出格式说明与输出顶不匹配,输出无定值 B.5.170000C.5.168000D.5.169000
参考答案: D
参考解析: (x*1000+0.5)--x 移动 3 位小数,加 0.5 ,也就是小数第 4 位加 5,若这
位大于等于 5,则进 1 到个位。 5.16894*1000-)5168.94+0.5->5169.44 接下来:
(int)(x*1000+0.5) 取整变 51 69 ,5169/(double)1000)-)5.169 。所以 printf( ″%f\n ″,
5.169) 结果是 5.16900 。因此正确答案为 D。
8