正文

C++/C编程质量试题2006-01-18 22:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/zz80/9718.html

分享到:

       本试题仅用于考查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  <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(); } 优点: 缺点: 优点: 缺点: 四、有关内存的思考题(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个函数。

阅读(4293) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册