面试题:6个问题
2015-08-17 17:47
561 查看
1.当参数*x==1,*y==1,*z==1时,下列不可能是函数add的返回值的(D)? int add(int *x,int *y,int *z) { *x += *x; *y += *x; *z += *y; return *z; } A.4 B.5 C.6 D.7 解析: 1.当x,y,z指向同一快地址时,z=8。 2.当只有x,y指向同一快地址时,z=5。 3......x,z.................,z=4。 4......y,z.................,z=6。 2.C++中,为了让莫个类只能通过new来创建(即如果直接创建对象,编译器会报错),应该(B) A.将构造函数设置为私有。 B.将析构函数设置为私有。 C.将构造函数和析构函数均设置为私有。 D.没有办法做到。 解析: 编译器在为类对象分配栈空间时,会先检查类的所有非静态函数的访问性, 包括析构函数,如果类的析构是私有的,则编译器不会在栈空间上为类分 配内存。 3.经过强制转换后,变量a,b的值分别为多少? short a = 128; byte b = (byte) a; 答案:128 -128(截取的是后4位). 4.32位机上根据下面的代码,问那些说法是正确的?(C) signed char a = 0xe0; unsigned int b = a; unsigned char c = a; A.a>0&&c>0为真。 B.a==c为真。 C.b的十六进制表示是:0xffffffe0。 D.以上都不对。 解析: 对于B选项,编译器首先检查关系表达式"==" 左右两边a ,c的类型, 如果某个类型是比int的位宽小的类型,就会先进行Integer Promotion, 将其提升为int类型,至于提升的方法,是先根据原始类型进行位扩展 (如果原始类型为unsigned ,进行零扩展,如果原始类型为signed,进 行符号位扩展)至32位,再根据需要进行unsigned to int 形式的转换。 因此:a 为signed char 型,位宽比int小,执行符号位扩展,被提升 为 0xffffffe0;c 为unsigned char型,位宽比int小,执行零扩展,被提 升为 0x000000e0; 5.纯虚基类是不能被实例化的。 6.虚函数可不可以重载为内联函数。 虚函数可以是内联函数。虚函数与普通函数的主要区别是否具有运行 时的多态性,虽然会被内联展开,可是并不影响多态。
相关文章推荐
- LeetCode解题报告--Letter Combinations of a Phone Number
- 黑马程序员——JAVA基础之面向对象(上)
- 求职最受欢迎的十大技能
- 黑马程序员——JAVA之final所定义的
- 如果你喜欢上了一个程序员小伙,献给所有的程序员女友
- 面试中如何回答“你是否愿意加班”
- 网易面试题 输入一个正数n,输出所有和为n连续正数序列
- Java技术体系大全,准备面试的可以参考一下!
- 黑马程序员--Java基础学习(环境配置)第一天
- 剑指offer——面试题25:二叉树中和为某一值的路径(递归,深度优先搜索)
- 黑马程序员——集合的遍历
- 黑马程序员——JAVA——抽象类和接口
- 为什么程序员的业余项目大多都死了?
- 大公司的Java面试题集
- 大公司的Java面试题集
- Web前端面试题集锦
- IT人的职场该怎么走!!!
- 黑马程序员——JAVA——多线程
- 职场励志故事:950130000客服的人生,简单别样
- 950130000客服中心的职场故事:一个女孩子到底要不要活得那么拼?