C++习题之变量和基本类型
(习题主要选自C++ Primer,方便自己以后复习才写到博客上)
1. 当给16位的unsigned short对象赋值100000的时候,最终赋值结果是?
解:首先了解超出变量范围的时候,编译器的处理策略是二进制截取低16位
unsigned short的取最大值2^16-1=65535,那么大于16位的时候,肯定可以写成i*2^16这种形式,所以赋值结果相当于100000对2^16进行取余,结果就是34464
2. float和double的差别在哪里?
解:二者的存储位数不同,float是32位,double是64位,因此取值范围不同,精度也不同,float最多6~7位有效数字,double最少10位有效数字,一般是16位,指数位,尾数位因机器而异
3. 银行系统中,偿还金额,利率,本金和付款金额选择什么类型,说明原因?
解: 利率选择float,因为利率比较小
本金选择long类型,因为本金一般为整数,long最大数2^31-1
付款选用double类型
4. 常用的转义字符解释?
解:\n 换行 010 \r 回车(回到本行行首) 013
\t 水平制表 009 \“ 双引号 034 \b 退格 008
\v 垂直制表 011 \0 空字符 000
\\ 反斜杠 092 \' 单引号 039
5. 编写程序,用户输入底数(base)和指数(exponent),输出结果?
解:考查点是exponent是负数的的情况
6. 合法性判断
解:const int buf 不合法,const变量声明就必须被赋值
int &vall=1.01 不合法,非const引用不得绑定右值,可以绑定到一个已经被赋值的变量
const int &vall = 1; 合法
7. C++声明与定义的区别
解:在一个程序中,变量只能定义一次,可以被声明多次,参见此文
http://www.cnblogs.com/wangliang651/archive/2009/04/06/1430098.html