找工作笔试面试那些事儿(6)---简单测试题

作者:寒小阳

时间:2013年9月。

出处:http://blog.csdn.net/han_xiaoyang/article/details/10894159
声明:版权所有,转载请注明出处,谢谢。



C/C++测试题

      前几个部分从编程风格、函数设计、内存管理和类的一些相关知识和注意点出发,对C/C++基础知识和笔试面试易考察的点进行了归纳总结。下面这是针对前述知识出的一份测试题,也是一些易考点,大家认真阅读了之前的部分,这些题大家都很容易就能做出来。

一、请填写BOOL, float,  指针变量 与“零值”比较的 if  语句。 

提示:这里“零值”可以是0 ,  0.0 , FA LSE 或者“空指针”。例如 int  变量 n  与“零值”

比较的 if  语句为: 

        if ( n  ==  0 )  

        if ( n != 0 ) 

以此类推。 

 

请写出 BOOL  flag  与“零值”比较的 if  语句: 

 

 

请写出 float  x  与“零值”比较的 if  语句: 

 

 

请写出 char  *p  与“零值”比较的 if  语句: 

二、以下为Windows xp 下的32位C++ 程序,请计算sizeof 的值

char str[]  = “Hello” ; 

char  *p  =  str ; 

int  n  =  10; 

请计算 

sizeof (str ) =          

          

sizeof (p)   =          

           

sizeof (n) = 

void Func ( char str[100]) 

}

请计算 

  sizeof( str )  =     

  void *p = malloc( 100 ); 

请计算 

sizeof ( p ) =

三、简答

1 、头文件中的 ifndef/define/endif  干什么用? 

 

2 、#include <filename.h>    和  #include“filename .h”有什么区别? 

 

3 、const有什么用途?(请至少说明两种) 

 

4 、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern“C” 声明? 


5 、请简述以下两个for 循环的优点和缺点

//  第一个 

for (i=0; i<N; i++) 

if (condition) 

    DoSomething(); 

else 

    DoOtherthing(); 

}

//  第二个 

if (condition) 

for (i=0; i<N; i++) 

    DoSomething(); 

else 

    for (i=0; i<N; i++) 

    DoOtherthing(); 

}

四、看程序写结果题

请问运行以下Test函数会有什么样的结果?

//第一个

void GetMemory(char *p) 

p = (char *)malloc(100); 

void Test(void)   

char *str = NULL; 

GetMemory(str);  

strcpy(str, "hello world"); 

printf(str); 

//第二个

char *GetMemory(void) 

{  

char p[] = "hello world"; 

return p; 

void Test(void) 

char *str = NULL; 

str = GetMemory();   

printf(str); 

}

//第三个

Void GetMemory2(char **p, int num) 

*p = (char *)malloc(num); 

}  

void Test(void) 

char *str = NULL; 

GetMemory(&str, 100); 

strcpy(str, "hello");   

printf(str);  

}  

//第四个

void Test(void) 

char *str = (char *) malloc(100);

 strcpy(str, “ hello ” ); 

  free(str);       

  if(str != NULL) 

 { 

    strcpy(str, “ world ” );  

printf(str); 

五、C函数编写题

已知strcpy 函数的原型是 

  char *strcpy(char *strDest, const char *strSrc); 

其中strDest是目的字符串,strSrc 是源字符串。 

 

(1 )不调用C++/C 的字符串库函数,请编写函数 strcpy 

 

(2 )strcpy 能把strSrc 的内容复制到strDest,为什么还要char *  类型的返回值? 

六、类函数编写题

已知类String的原型为: 

 class String 

 { 

    public: 

    String(const char *str = NULL);  //  普通构造函数 

    String(const String &other);      //  拷贝构造函数 

  ~ String(void);            //  析构函数 

    String & operate =(const String &other);  //  赋值函数 

    private: 

   char  *m_data;     // 用于保存字符串 

 }; 

  请编写String的上述4 个函数。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页