c++笔试题--来自林锐的《高质量c++语言编程》

来源:互联网 发布:网络智能办公系统 编辑:程序博客网 时间:2024/06/11 23:59

说明:本篇的题目来自于林锐编写的一本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++;)
  DoOtherthing();
  }
  
  优点:
  缺点:
  优点:
  缺点:
  
  四、有关内存的思考题(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(); 
  printf(str);
  }
  
  
  请问运行Test函数会有什么样的结果?
  答:
  Void GetMemory2(char **p, int num)
  {
  *p = (char *)malloc(num);
  }
  
  void Test(void)
  {
  char *str = NULL;
  GetMemory(&str, 100);
  strcpy(str, "hello"); 
  printf(str); 
  }
  
  请问运行Test函数会有什么样的结果?
  
  答:
  void Test(void)
  {
  char *str = (char *) malloc(100);
  strcpy(str, “hello”);
  free(str); 
  if(str != NULL)
  {
  strcpy(str, “world”); 
  printf(str);
  }
  }
  
  请问运行Test函数会有什么样的结果?
  
  答:
  
  五、编写strcpy函数(10分)
  已知strcpy函数的原型是
  char *strcpy(char *strDest, const char *strSrc);
  其中strDest是目的字符串,strSrc是源字符串。
  (1)不调用C++/C的字符串库函数,请编写函数 strcpy
  (2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
  
  六、编写类String的构造函数、析构函数和赋值函数(25分)
  已知类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个函数。
  
  文章出自http://www.ad0.cn/
  文章出自网魂工作室http://www.ad0.cn/
  附录C :C++/C试题的答案与评分标准
  一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)
  
  请写出 BOOL flag 与“零值”比较的 if 语句。(3分)
  
  标准答案:
  if ( flag )
  if ( !flag )
  如下写法均属不良风格,不得分。
  
  If (flag == TRUE) 
  if (flag == 1 ) 
  if (flag == FALSE) 
  if (flag == 0) 
  
  请写出 float x 与“零值”比较的 if 语句。(4分)
  
  标准答案示例:
  
  const float EPSINON = 0.00001;
  if ((x >= - EPSINON) && (x <= EPSINON)
  不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
  
  如下是错误的写法,不得分。
  
  If (x == 0.0) 
  if (x != 0.0) 
  
  
  
  请写出 char *p 与“零值”比较的 if 语句。(3分)
  
  标准答案:
  
  if (p == NULL)
  if (p != NULL)
  如下写法均属不良风格,不得分。
  
  If (p == 0) 
  if (p != 0) 
  
  if (p) 
  if (!) 
  
  二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)
  char str[] = “Hello” ;
  char *p = str ;
  int n = 10;
  请计算
  sizeof (str ) = 6 (2分) 
  sizeof ( p ) = 4 (2分)
  sizeof ( n ) = 4 (2分)
  void Func ( char str[100])
  {
  请计算
  sizeof( str ) = 4 (2分)
  }
  
  void *p = malloc( 100 );
  请计算
  sizeof ( p ) = 4 (2分)
  
  三、简答题(25分)
  1、头文件中的 ifndef/define/endif 干什么用?(5分)
  答:防止该头文件被重复引用。
  
  2、#include 和 #include “filename.h” 有什么区别?(5分)


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机四位数密码忘记了怎么办 锡山教育app登陆密码忘了怎么办 新商盟手机订烟登录忘记密码怎么办 在qq上修改支付密码忘记怎么办 微信红包支付密码忘了怎么办 qq钱包绑定了别人的银行卡怎么办 用支付宝充手机话费怎么退款怎么办 我有个qq号丢了怎么办 微信红包密码输错了怎么办 qq钱包支付限额付不了款怎么办 电信手机没开流量被扣流量钱怎么办 运动鞋子买大了一码怎么办 淘宝直播间粉丝福利购优惠券怎么办 微信卡包的券不小心删了怎么办 0pp0手机官网手机总跳屏怎么办 很想买一部手机但是舍不得钱怎么办 自己没钱了还想贷款买手机怎么办 4g手机锁屏密码忘了怎么办 oppo手机锁屏密码忘了怎么办 三星手机锁屏密码忘了怎么办 网上买的手机想退了怎么办 沙棘排湿排毒后皮肤痒怎么办 做了沙棘排毒两次上上痒怎么办? 微信支付打款认证超时怎么办 微信上买东西钱付款了货没发怎么办 掌上道聚城王者轮回分解错了怎么办 鞋子脱胶了怎么办别傻傻用胶水粘 斗鱼主播积分太低无法收礼物怎么办 信誉积分没有了什么也玩不了怎么办 忘记自己电信卡号的密码怎么办 淘宝卖出去东西的钱被冻结了怎么办 手机店铺搞抽奖活动上当了怎么办 网易云音乐上传作品编辑失败怎么办 手机连了wifi后自动扣费怎么办 店铺被低价拍了一部分商品该怎么办 淘宝买家退货快递单号填错了怎么办 卖家同意退款了买家不退货怎么办 淘宝代购衣服有破损不给退怎么办 网上购飞机票身份证号写错了怎么办 交易猫买家把我号清了怎么办 光大普卡额度4万封顶了怎么办