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

作者:寒小阳
时间:2013年8月。
出处:http://blog.csdn.net/han_xiaoyang/article/details/10473845
声明:版权所有,转载请注明出处,谢谢。

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 的值
\color{blue}{计算题1:}

char str[]  = “Hello” ; 

char  *p  =  str ; 

int  n  =  10; 

请计算

sizeof (str ) =          
sizeof (p)   =          
sizeof (n) = 

\color{blue}{计算题2:}

void Func ( char str[100]) 

{ 

}

请计算

  sizeof( str )  =     

\color{blue}{计算题3:}

  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 & operator=(const String &other);  //  赋值函数 

    private: 

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

 }; 

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,451评论 0 2
  • 史上最全的iOS面试题及答案 迷途的羔羊--专为路痴量身打造的品牌。史上最精准的定位。想迷路都难!闪电更新中......
    南虞阅读 1,574评论 0 8
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,479评论 0 35
  • 最全的iOS面试题及答案 iOS面试小贴士 ———————————————回答好下面的足够了-----------...
    zweic阅读 2,750评论 0 73
  • 大家好,我来给大家分享一下今天下午看的时间的朋友,里面讲了关于中国的六大脑洞,我目前为止看到了:动车组脑洞比特式脑...
    尤雯慧阅读 174评论 0 0