C++面试题大全

2011-03-19 00:28:14|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C/C++|来源:唯设编程网

32位的系统下,

int i = 65536;

cout << i; // 输出65536;

int i = 65535;

cout << i; // 输出65535;

A2:

int a = ~0;
if( a>65536 )
{
	cout<<"32 bit"<<endl;
}
else
{
	cout<<"16 bit"<<endl;
}

---------------------------------------------------------------------

16.C和C++有什么不同?

从机制上:c是面向过程的(但c也可以编写面向对象的程序);c++是面向对象的,提供了类。但是, c++编写面向对象的程序比c容易从适用的方向:c适合要求代码体积小的,效率高的场合,如嵌入式;c++适合更上层的,复杂的; llinux核心大部分是c写的,因为它是系统软件,效率要求极高。

从名称上: c++比c多了+,说明c++是c的超集;那为什么不叫c+而叫c++呢,是因为c++比C来说扩充的东西太多了,所以就在C后面放上两个+;于是就成了C++,C语言是结构化编程语言,C++是面向对象编程语言。
C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。

---------------------------------------------------------------------

17.在不用第三方参数的情况下,交换两个参数的值

#include <stdio.h>
void main()
{
	int i=60;
	int j=50;
	i=i+j;
	j=i-j;
	i=i-j;
	printf("i=%d
",i);
	printf("j=%d
",j);
}

方法二:

i^=j;
j^=i;
i^=j;

方法三:

// 用加减实现,而且不会溢出

a = a+b-(b=a)

---------------------------------------------------------------------

18.有关位域的面试题(为什么输出的是一个奇怪的字符)

a.t = 'b';效果相当于 a.t= 'b' & 0xf;

'b' --> 01100010

'b' & 0xf -->>00000010

所以输出Ascii码为2的特殊字符

char t:4;就是4bit的字符变量,同样

unsigned short i:8;就是8bit的无符号短整形变量

---------------------------------------------------------------------

发表评论0条 】
网友评论(共?条评论)..
C++面试题大全