好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c和c++经典笔试题及答案.doc

10页
  • 卖家[上传人]:ni****g
  • 文档编号:451971422
  • 上传时间:2024-01-07
  • 文档格式:DOC
  • 文档大小:175KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • C++/C经典笔试题及答案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 ” ;void Func ( char str[100])char *p = str ;{int n = 10;请计算请计算sizeof( str )=sizeof (str )=} sizeof ( p )=void *p = malloc( 100 ); 请计算sizeof ( n )=sizeof ( p )=三、简答题(25分)1、 头文件中的ifndef/define/endif干什么用?2、 #include 和 #include “ filename.h 有什么区别?3、 const有什么用途?(请至少说明两种)4、 在C++程序中调用被C编译器编译后的函数,为什么要加extern 声明?5、 请简述以下两个for循环的优缺点//第一个//第二个for (i=0; i

      1) 不调用C++/C的字符串库函数,请编写函数 strcpy(2) strcpy能把strSrc的内容复制到strDest,为什么还要char *类型的返回值? 六、编写类String的构造函数、析构函数和赋值函数(25分)已知类String的原型为:class String{public:String(const char *str = NULL); // 普通构造函数Stri ng(co nst Stri ng & other); // 拷贝构造函数~ Stri ng(void); // 析构函数Stri ng & operate =(co nst Stri ng & other); // 赋值函数 private:char *m_data; //用于保存字符串}; 一请编写String的上述4个函数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 st[] = “ Hello ” ;void Func ( char str[100])char *p = str ;{int n = 10;请计算请计算sizeof( str ) = 4 ( 2 分)sizeof (str ) = 6 ( 2 分)}void *p = malloc( 100 );sizeof ( p ) = 4 (2 分) 请计算sizeof ( p ) = 4 (2 分) sizeof ( n ) = 4 (2 分) 三、简答题(25分)1、 头文件中的ifndef/define/endif干什么用? ( 5分) 答:防止该头文件被重复引用。

      2、 #inelude 和 #inelude “filename.h 有什么区别? ( 5 分)答:对于#include vfilename.h>,编译器从标准库路径开始搜索 filename*对于#include “filename.h,”编译器从用户的工作路径开始搜索 filename.h3、 const有什么用途?(请至少说明两种)(5分)答:(1)可以定义const常量(2)const可以修饰函数的参数、返回值,甚至函数的定义体被 const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性4、 在C++程序中调用被 C编译器编译后的函数,为什么要加extern “?’(5 分)答:C++语言支持函数重载,C语言不支持函数重载函数被C++编译后在库中 的名字与C语言的不同假设某个函数的原型为: void foo(int x, int y);该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字C++提供了 C连接交换指定符号extern “(来解决名字匹配问题 5、请简述以下两个for循环的优缺点(5分)for (i=0; i

      优点:循环的效率咼 缺点:程序不简洁四、有关内存的思考题(每小题 5分,共20分)void GetMemory(char *p)char *GetMemory(void){{p = (char *)malloc(100);char p[] = "hello world";}return p;void Test(void)}{void Test(void)char *str = NULL;{GetMemory(str);char *str = NULL;strcpy(str, "hello world");str = GetMemory();prin tf(str);}请问运行Test函数会有什么样的结prin tf(str);}请问运行Test函数会有什么样的结果?果?答:程序崩溃答:可能是乱码因为GetMemory并不能传递动态内因为GetMemory返回的是指向“栈内存,存”的指针,该指针的地址不是Test函数中的str 一直都是NULLNULL但其原现的内容已经被清除,strcpy(str, "hello world");将使程序崩溃新内容不可知void GetMemory2(char **p, int num) {*p = (char *)malloc( nu m);void Test(void){char *str = (char *)}malloc(100);void Test(void)strcpy(str, hello ”);{free(str);char *str = NULL;if(str != NULL)GetMemory(& str, 100);{strcpy(str, "hello");strcpy(str, world ”);prin tf(str);}请问运行Test函数会有什么样的结prin tf(str); }}果?请问运行Test函数会有什么样的结。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.