(转载)C++面试宝典2011版 (10)

几道c笔试题(含参考答案)

1. 
What is displayed when f() is called given the code:
class Number {
public:
string type; 

Number(): type(“void”) { }
explicit Number(short) : type(“short”) { } 
Number(int) : type(“int”) { }
};
void Show(const Number& n) { cout << n.type; }
void f()
{
short s = 42;
Show(s); 
}
a) void
b) short
c) int
d) None of the above

2. Which is the correct output for the following code
double dArray[2] = {4, 8}, *p, *q;
p = &dArray[0];
q = p + 1;
cout << q – p << endl; 
cout << (int)q - (int)p << endl;
a) 1 and 8
b) 8 and 4
c) 4 and 8
d) 8 and 1


第一个选C;
虽然传入的是short类型,但是short类型的构造函数被生命被explicit,也就是只能显示类型转换,不能使用隐式类型转换。
第二个选A;
第一个是指针加减,按照的是指向地址类型的加减,只跟类型位置有关,q和p指向的数据类型以实际数据类型来算差一个位置,因此是1。而第二个加减是实际指针值得加减,在内存中一个double类型占据8个字节,因此是8

54.Sony笔试题


  1.完成下列程序 
  * 
  *.*. 
  *..*..*.. 
  *...*...*...*... 
  *....*....*....*....*.... 
  *.....*.....*.....*.....*.....*..... 
  *......*......*......*......*......*......*...... 
  *.......*.......*.......*.......*.......*.......*.......*....... 
  #include 
  #define N 8 
  int main() 
  { 
   int i; 
   int j; 
   int k; 
   --------------------------------------------------------- 
   | | 
   | | 
   | | 
   --------------------------------------------------------- 
   return 0; 
  } 
  2.完成程序,实现对数组的降序排序 
  #include 
  void sort( ); 
  int main() 
  { 
   int array[]={45,56,76,234,1,34,23,2,3}; //数字任//意给出 
   sort( ); 
   return 0; 
  } 
  void sort( ) 
  { 
   ____________________________________ 
   | | 
   | | 
   |-----------------------------------------------------| 
  } 
  3.费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其 
他方法,但要说明你选择的理由。 
  #include 
  int Pheponatch(int); 
  int main() 
  { 
   printf("The 10th is %d",Pheponatch(10)); 
   return 0; 
  } 
  int Pheponatch(int N) 
  { 
  -------------------------------- 
  | | 
  | | 
  -------------------------------- 
  } 
  4.下列程序运行时会崩溃,请找出错误并改正,并且说明原因。 
  #include 
  #include 
  typedef struct{ 
   TNode* left; 
   TNode* right; 
   int value; 
  } TNode; 
  TNode* root=NULL; 
  void append(int N); 
  int main() 
  { 
   append(63); 
   append(45); 
   append(32); 
   append(77); 
   append(96); 
   append(21); 
   append(17); // Again, 数字任意给出 
  } 
  void append(int N) 
  { 
   TNode* NewNode=(TNode *)malloc(sizeof(TNode)); 
   NewNode->value=N; 


   if(root==NULL) 
   { 
   root=NewNode; 
   return; 
   } 
   else 
   { 
   TNode* temp; 
   temp=root; 

   while((N>=temp.value && temp.left!=NULL) || (N !=NULL 
  )) 
   { 
   while(N>=temp.value && temp.left!=NULL) 
   temp=temp.left; 
   while(N    temp=temp.right; 
   } 
   if(N>=temp.value) 
   temp.left=NewNode; 
   else 
   temp.right=NewNode; 
   return; 
   } 
  } 



──────────────────────────────────────── 

55请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。

应用层:为应用程序提供服务

表示层:处理在两个通信系统中交换信息的表示方式

会话层:负责维护两个结点间会话连接的建立、管理和终止,以及数据交换

传输层:向用户提供可靠的端到端服务。UDP TCP协议。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwfdg.html