zoukankan      html  css  js  c++  java
  • 【转】C/C++基本编程技能

    一、请填写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个函数。
    ************************************************************************ Key***********

    ************************************************************************ Key************

    一、请填写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分)

    答:对于#include

  • 相关阅读:
    简单工厂模式
    c# 接口属性继承
    web安全测试---跨站点脚本测试
    web安全测试---WebScarab工具介绍
    Appscan安全漏洞扫描使用(转)
    web安全测试---AppScan扫描工具(转)
    修改DB-LINK连接数方法
    LoadRunner 11破解方法
    数据库学习网站和linux学习网站
    关于误删表可在回收站中闪回
  • 原文地址:https://www.cnblogs.com/91program/p/5238377.html
Copyright © 2011-2022 走看看