就业数据资源平台
当前位置:首页 > 笔试题目
C++/C程序员基本编程技能笔试






  本试题仅用于考查C++/C程序员的基本编程技能。



  内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。



  考试成绩能反映出考生的编程质量以及对C++/C的理解程度,



  但不能反映考生的智力和软件开发能力



  笔试时间90分钟。请考生认真答题,切勿轻视。



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



  (10分)



  提示:这里"零值"可以是0, 0.0 , FALSE或者"空指针"。



  例如 int 变量 n 与"零值"比较的 if 语句为:



  if ( n == 0 )



  if ( n != 0 )



  以此类推。



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



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



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



  二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)



  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 ) =



  三、简答题(25分)



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



  2、#include 和



  #include "filename.h" 有什么区别?



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



  4、在C++ 程序中调用被 C编译器编译后的函数,



  为什么要加 extern "C"声明?



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



  // 第一个for (i=0; i



  {if (condition)



  DoSomething();



  else



  DoOtherthing();}



  优点:缺点:



  // 第二个if (condition)



  {for (i=0; i



  DoSomething();}



  else{



  for (i=0; i



  优点:缺点:



  四、有关内存的思考题(20分)



  void GetMemory(char *p)



  {



  p = (char *)malloc(100);



  }



  void Test(void)



  {



  char *str = NULL;GetMemory(str);



  strcpy(str, "hello world");



  printf(str);



  }请问运行Test函数会有什么样的结果?答:



  char *GetMemory(void)



  {



  char p[] = "hello world";



  return p;



  }



  void Test(void)



  {



  char *str = NULL;



  str = GetMemory();


就业数据资源平台