C++ Exercises(十九)

1.写一个函数,将字符串中的\t 都转换成4 个空格。

  
  
  
  
  1. #include <iostream>  
  2. #include <string>  
  3. using namespace std;  
  4.  
  5. string replaceTab(const string& strSrc)  
  6. {//strSrc源字符串,将源字符串中的’\t’转换为4个空格  
  7.     int i,j;  
  8.     string strDes;  
  9.     for (i=0;i<strSrc.length();++i)  
  10.     {  
  11.         if(strSrc[i]!='\t')  
  12.         {  
  13.             strDes+=strSrc[i];  
  14.         }  
  15.         else 
  16.         {  
  17.             for(j=1;j<=4;++j)  
  18.             {  
  19.                 strDes+=' ';  
  20.             }  
  21.         }  
  22.     }  
  23.     return strDes;  
  24. }  
  25. int main()   
  26. {   
  27.     string str("I am\tphinecos\t\tbi\t \\tng");  
  28.     cout<<str<<endl;  
  29.     cout<<replaceTab(str)<<endl;  
  30.     return 0;  
  31. }  

2.如何定义和实现一个类的成员函数为回调函数?

答:成员函数声明为static,如下示例:

 

  
  
  
  
  1. //声明函数指针  
  2. typedef   void   (*FunPtr)(void);     
  3.  
  4. class   MyClass     
  5. {     
  6. public:     
  7.     //回调函数  
  8.     static void callBackFun(void)     
  9.     {     
  10.         cout<<"callBackFun"<<endl;     
  11.     }     
  12. };     
  13. void   FunTest(FunPtr pFun)     
  14. {     
  15.     pFun();     
  16. }    
  17. int main()   
  18. {   
  19.     FunTest(MyClass::callBackFun);  
  20.     return 0;  
  21. }  

 

3C++里面是不是所有的动作都是main()引起的?如果不是,请举例。

答:全局变量初始化

 

4C++里面如何声明const void f(void)函数为C 程序中的库函数?

答:extern “C”

 

5.下列哪两个是等同的

    int b;

    A const int* a = &b;

    B const* int a = &b;

    C const int* const a = &b;

    D int const* const a = &b;

答:A表示*a是常量,但指针a可变。B表示指针a是常量,但*a可变。CD都表示a*a都是常量,所以C,D是等同的。

 

6, 内联函数在编译时是否做参数类型检查?

答:内联函数要做参数类型检查, 这是内联函数跟宏相比的优势。

 

7,数列6101832,“?”,问“?”是几?

答,54。两次逐差,第一次得到4814,第二次得到46,则可以推断下一个差值为8,反推回去得到第一级差下一个是22,再往回推可到原数列下一个是54

 

87 个人用7 小时挖了7 米的沟,以同样的速度在 50 小时挖50 米的沟要多少人?

答:7个人。由题可得,17小时可挖1米,则150小时可挖50/7米,则750小时可挖7*50/7=50米。

 

9,某人出70 买进一个x80 卖出,90 买回,100 卖出,这桩买卖怎么样?

答,赚是赚了,但是利润率变低了。就毛利润来说,每次都赚10,但是开始利润是1/8, 后来是1/10 。但从另外一方面来看, 这个人很有冒险精神,敢高买高卖,不怕套牢。

 

10,鱼头长9,鱼尾等于鱼头加半个,鱼身等于鱼头加鱼尾,问鱼全长多少?

答:通过简单的二元一次方程可算得,鱼身长36,鱼尾长27,因此鱼全长72.
 

11,王先生看到一则招聘启事,发现两个公司除了以下条件不同外,其他条件都相同

    A 半年年薪50 万,每半年涨 5

    B 一年年薪 100 万,每一年涨20

王先生想去一家待遇比较优厚的公司,他会去哪家?

答:明显是A公司。以2年为例,A公司给的年薪是50+55+60+65=230B给的是100+120=220,有道是,细水长流呀。

 

12, 问哪个袋子里有金子?

    A 袋子上的标签是这样写的:B 袋子上的话是对的,金子在A 袋子。

B 袋子上的标签是这样写的:A 袋子上的话是错的,金子在A 袋子里。

:B袋。因为若在A袋,则两句话相互矛盾,因此不成立。

 

13 3 个人住酒店 30 块钱,经理找回 5 块钱,服务生从中藏了 2 块钱,找给每人 1 块钱, 3 ×(10-1+2=29,问这是怎么回事?

答:对顾客来说,他们花了30327 ;对经理来讲,他只收了30525元;对服务生来讲,他得了532 ;就是说,服务生偷了三位顾客2元钱。

你可能感兴趣的:(C++,职场,休闲,Exercises)