快速业务通道

C++经典面试题

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
= 10;   cout << sizeof(i) << ": ";
  void *pp  = malloc(10); cout << sizeof(p) << endl;
}

6:4:1:4

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

14.写出运行结果:

{// test2
  union V {
struct X {
 unsigned char s1:2;
 unsigned char s2:3;
 unsigned char s3:3;
} x;
unsigned char c;
  } v;
  v.c = 100;
  printf("%d", v.x.s3);
}

3

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

15.用C++写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数

A1:

16位的系统下,
int i = 65536;
cout << i; // 输出0;
int i = 65535;
cout << i; // 输出-1;

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=%dn",i);
    printf("j=%dn",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的无符号短整形变量

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

19.int i=10, j=10, k=3; k*=i+j; k最后的值是?

60

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

20.进程间通信的方式有?

进程间通信的方式有 共享内存, 管道 ,Socket ,消息队列 , DDE等

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

21.

struct A
{
char t:4;
char k:4;
unsigned short i:8;
unsigned long m;
}
sizeof(A)=?(不考虑边界对齐)

7

struct CELL       // Declare CELL bit field
{
  unsigned character : 8; // 00000000 ????????
  unsigned foreground : 3; // 00000??? 00000000
  unsigned intensity : 1; // 0000?000 00000000
  unsigned background : 3; // 0???0000 00000000
  u

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号