《Visual C++ 实用教程(第3版)》课后答案

  • 更新时间:
  • 2152人关注
  • 点击下载

给大家带来的是关于C++教程相关的课后习题答案下载,介绍了关于C++、C++教程方面的内容,由濮星汉 网友提供,本资源目前已被544人关注,高等院校C++教程类教材综合评分为:9.9分

资源详情相关推荐
《Visual C++ 实用教程(第3版)》封面
  • 出版社:电子工业出版社
  • 作者:郑阿奇
  • 大小:437 MB
  • 类别:C++教程
  • 热度:764
  • C++面向对象程序设计教程(第3版)
  • 嵌入式C/C++系统工程师实训教程
  • Visual C++实用教程(第4版)
  • c++语言基础教程
  • C/C++程序设计教程
  • 本教程包含实用教程、上机操作指导、模拟测试题和附录等部分。本教程内容主要包括AutoCAD 2007(中文版)操作环境、绘图流程、基本绘图命令、基本编辑命令、图案填充、文字、块及外部参照、尺寸和公差、显示控制、设计中心查询及其他辅助功能、输出、三维建模等。实用教程一般包括(菜单、按钮和命令)操作方法和操作实例,每一章后的习题主要是为了搞清基本概念和方法;上机操作指导通过综合实例先引导操作,然后提出问题思考,给出练习题由读者自己完成。本教程各部分内容既相互联系又相互独立,并依据教学特点精心安排,方便读者根据自己需要选择讲解内容。

    本书可作为大学本、专科有关课程的教材。由于内容比较实用,也同样适用于广大AutoCAD用户自学和参考。

    目录

    • 部分 实用教程
    •  章 Auto CAD 2007中文版操作环境
    •   1.1 概述
    •   1.2 Auto CAD 2007中文版新特性
    •   1.3 启动Auto CAD 2007中文版
    •   1.4 界面介绍
    •   1.5 Auto CAD 2007中文版基本操作
    •   1.6 文件操作命令
    •   1.7 帮助信息
    •   1.8 绘图环境设置
    •   习题
    •  第2章 绘图流程
    •   2.1 绘图流程
    •   2.2 绘图示例
    •   2.3 绘图一般原则
    •   习题
    •  第3章 基本绘图命令
    •   3.1 画直线LINE
    •   3.2 画射线RAY
    •   3.3 画构造线(参照线)XLINE
    •   3.4 画多线
    •   3.5 画多段线PLINE
    •   3.6 画正多边形POLYGON
    •   3.7 画矩形RECTANG
    •   3.8 画圆弧ARC
    •   3.9 画圆CIRCLE
    •   3.10 画圆环DONUT
    •   3.11 画样条曲线SPLINE
    •   3.12 画椭圆和栯圆弧ELLIPSE
    •   3.13 画点
    •   3.14 画徒手线SKETCH
    •   3.15 画二维填充SOLID
    •   3.16 画宽线TRACE
    •   3.17 修订云线REVCLOUD
    •   3.18 表格TABLE
    •   3.19 三维多段线3DPOLY
    •   3.20 定数等分DIVIDE
    •   3.21 定距等分MEASURE
    •   习题
    •  第4章 基本编辑命令
    •   4.1 选择对象
    •   4.2 使用夹点编辑
    •   4.3 利用编辑命令编辑图形
    •   4.4 特性编辑
    •   习题
    •  第5章 图案填充和渐变色
    •   5.1 图案填充和渐变色的绘制
    •   5.2 图案填充和渐变色编辑HATCHEDIT
    •   5.3 图案填充分解
    •   习题
    •  第6章 文字
    •   6.1 文字样式的设置STYLE
    •   6.2 文字注写命令
    •   6.3 特殊文字输入
    •   6.4 文字编辑DDEDIT
    •   6.5 缩放文字SCALETEXT
    •   6.6 对正文字
    •   6.7 查找FIND
    •   6.8 改变文字样式
    •   习题
    •  第7章 块及外部参照
    •   7.1 创建块BLOCK
    •   7.2 插入块INSERT
    •   7.3 写块WBLOCK
    •   7.4 在图形文件中引用另一图形文件
    •   7.5 块属性
    •   7.6 块编辑
    •   7.7 外部参照
    •   习题 
    •  第8章 尺寸及公差
    •   8.1 尺寸组成及尺寸标注规则
    •   8.2 尺寸样式设定DIMSTYLE
    •   8.3 尺寸标注DIM
    •   8.4 尺寸编辑
    •   8.5 形位公差标注
    •   习题
    •  第9章 显示控制
    •   9.1 重画REDRAW或REDRAWALL
    •   9.2 重生成REGEN或REGENALL
    •   9.3 显示缩放ZOOM
    •   9.4 实时平移PAN
    •   9.5 鸟瞰视图DSVIEWRES
    •   9.6 命名视图VIEW
    •   9.7 平铺视口
    •   9.8 显示图标、属性、文本窗口
    •   9.9 显示精度VIEWRES
    •   9.10 填充模式FILL
    •   习题
    •  0章 设计中心、查询及其他辅助功能
    •   10.1 设计中心简介
    •   10.2 查询命令
    •   10.3 辅助功能
    •   10.4 CAD标准
    •   习题
    •  1章 输出
    •   11.1 模型空间输出图形PLOT
    •   11.2 打印管理
    •   习题
    •  2章 三维建模
    •   12.1 三维视点
    •   12.2 三维坐标
    •   12.3 三维图素建模 
    •   12.4 二维图形转换成三维立体模型 
    •   12.5 三维编辑
    •   12.6 轴测图
    •   习题
    • 第2部分 上机操作指导 
    • 第3部分 模拟测试 
    • 附录
    展开阅读
    精选笔记1:基于C++内存分配、函数调用与返回值的深入分析

    19小时59分钟前回答

    在谈述函数调用和返回值问题之前,先来看看C++中内存分配的问题。
    C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区,动态数据区包括堆区和栈区。
    以下是各个区的作用:
    (1)代码区:存放程序代码;
    (2)数据区
    a.静态数据区: 在编译器进行编译的时候就为该变量分配的内存,存放在这个区的数据在程序全部执行结束后系统自动释放,生命周期贯穿于整个程序执行过程。
    b.动态数据区:包括堆区和栈区
    堆区:这部分存储空间完全由程序员自己负责管理,它的分配和释放都由程序员自己负责。这个区是唯一一个可以由程序员自己决定变量生存期的区间。可以用malloc,new申请对内存,并通过free和delete释放空间。如果程序员自己在堆区申请了空间,又忘记将这片内存释放掉,就会造成内存泄露的问题,导致后面一直无法访问这片存储区域。
    栈区:存放函数的形式参数和局部变量,由编译器分配和自动释放,函数执行完后,局部变量和形参占用的空间会自动被释放。效率比较高,但是分配的容量很有限。
    注意:
    1)全局变量以及静态变量存放在静态数据区;
    2)注意常量的存放区域,通常情况下,常量存放在程序区(程序区是只读的,因此任何修改常量的行为都是非法的),而不是数据区。有的系统,也将部分常量分配到静态数据区,比如字符串常量(有的系统也将其分配在程序区)。但是要记住一点,常量所在的内存空间都是受系统保护的,不能修改。对常量空间的修改将造成访问内存出错,一般系统都会提示。常量的生命周期一直到程序执行结束为止。
    在弄懂内存分配的问题过后,来看看函数调用的过程:
    执行某个函数时,如果有参数,则在栈上为形式参数分配空间(如果是引用类型的参数则类外),继续进入到函数体内部,如果遇到变量,则按情况为变量在不同的存储区域分配空间(如果是static类型的变量,则是在进行编译的过程中已经就分配了空间),函数内的语句执行完后,如果函数没有返回值,则直接返回调用该函数的地方(即执行远点),如果存在返回值,则先将返回值进行拷贝传回,再返回执行远点,函数全部执行完毕后,进行退栈操作,将刚才函数内部在栈上申请的内存空间释放掉。
    下面通过几个例子来谈谈内存分配函数返回值的问题:
    内存分配的问题:
    复制代码 代码如下:

    int a=1;           a在栈区
    char s[]="123";    s在栈区,“123”在栈区,其值可以被修改
    char *s="123";     s在栈区,“123”在常量区,其值不能被修改
    int *p=new int;    p在栈区,申请的空间在堆区(p指向的区域)
    int *p=(int *)malloc(sizeof(int)); p在栈区,p指向的空间在堆区
    static int b=0;    b在静态区
    1.test1 
    复制代码 代码如下:

    #include<iostream>
    using namespace std;
    void test(int *p)
    {
        int b=2;
        p=&b;
        cout<<p<<endl;
    }
    int main(void)
    {
        int a=10;
        int *p=&a;
        cout<<p<<endl;
        test(p);
        cout<<p<<endl;
        return 0;
    }
    第一行输出和第三行输出的结果相同,而第一行、第三行与第二行输出的结果不同。从这里可以看出,当指针作为参数进行传递时传递的也只是一个值,只不过该值只一个地址,因此对于形参的改变并不影响实参。
    2.test2
    复制代码 代码如下:

    #include<iostream>
    using namespace std;
    char* test(void)
    {
        char str[]="hello world!";
        return str;
    }
    int main(void)
    {
        char *p;
        p=test();
        cout<<p<<endl;
        return 0;
    }
    输出结果可能是hello world!,也可能是乱麻。
    出现这种情况的原因在于:在test函数内部声明的str数组以及它的值"hello world”是在栈上保存的,当用return将str的值返回时,将str的值拷贝一份传回,当test函数执行结束后,会自动释放栈上的空间,即存放hello world的单元可能被重新写入数据,因此虽然main函数中的指针p是指向存放hello world的单元,但是无法保证test函数执行完后该存储单元里面存放的还是hello world,所以打印出的结果有时候是hello world,有时候是乱麻。
    3.test3 
    复制代码 代码如下:

    #include<iostream>
    using namespace std;
    int test(void)
    {
        int a=1;
        return a;
    }
    int main(void)
    {
        int b;
        b=test();
        cout<<b<<endl;
        return 0;
    }
    输出结果为 1
    有人会问为什么这里传回来的值可以正确打印出来,不是栈会被刷新内容么?是的,确实,在test函数执行完后,存放a值的单元是可能会被重写,但是在函数执行return时,会创建一个int型的零时变量,将a的值复制拷贝给该零时变量,因此返回后能够得到正确的值,即使存放a值的单元被重写数据,但是不会受到影响。
    4.test4
    复制代码 代码如下:

    #include<iostream>
    using namespace std;
    char* test(void)
    {
        char *p="hello world!";
        return p;
    }
    int main(void)
    {
        char *str;
        str=test();
        cout<<str<<endl;
        return 0;
    }
    执行结果是 hello world!
    同样返回的是指针,为什么这里会正确地打印出hello world1?这是因为char *p="hello world!",指针p是存放在栈上的,但是"hello world!”是一个常量字符串,因此存放在常量区,而常量区的变量的生存期与整个程序执行的生命期是一样的,因此在test函数执行完后,str指向存放“hello world!”的单元,并且该单元里的内容在程序没有执行完是不会被修改的,因此可以正确输出结果。
    5.test5
    复制代码 代码如下:

    #include<iostream>
    using namespace std;
    char* test(void)
    {
        char *p=(char *)malloc(sizeof(char)*100);
        strcpy(p,"hello world");
        return p;
    }
    int main(void)
    {
        char *str;
        str=test();
        cout<<str<<endl;
        return 0;
    }
    运行结果 hello world
    这种情况下同样可以输出正确的结果,是因为是用malloc在堆上申请的空间,这部分空间是由程序员自己管理的,如果程序员没有手动释放堆区的空间,那么存储单元里的内容是不会被重写的,因此可以正确输出结果。
    6.test6
    复制代码 代码如下:

    #include<iostream>
    using namespace std;
    void test(void)
    {
        char *p=(char *)malloc(sizeof(char)*100);
        strcpy(p,"hello world");
        free(p);
        if(p==NULL)
        {
            cout<<"NULL"<<endl;
        }
    }
    int main(void)
    {
        test();
        return 0;
    }
    没有输出
    在这里注意了,free()释放的是指针指向的内存!注意!释放的是内存,不是指针!这点非常非常重 要!指针是一个变量,只有程序结束时才被销毁。释放了内存空间后,原来指向这块空间的指针还是存在!只不过现在指针指向的内容的垃圾,是未定义的,所以说是垃圾。因此,释放内存后应把把指针指向NULL,防止指针在后面不小心又被使用,造成无法估计的后果。
    展开阅读

    C++教程相关资源

    • Visual C++面向对象编程教程(第2版)

      Visual C++面向对象编程教程(第2版)

      本书系统地介绍了Visual C++面向对象编程的基本原理和方法。主要内容包括C++程序设计、Visual C++编程基础和Visual C++高级编程三个部分,按照VisualC++编程环境C++语言应用程序向导文档/视图结构对话框和控件MFC图形处理编程深入的顺序计教学内容。本书适合作为高等学校相关课程的教材或参考书,也可作为Visual C++应用开发人员的自学读本或培训教材。 目录 前言 第1章 Visual C++集成开发环境 1.1 Visual C++概述 1.1.1 Visual C++的

      大小:5.71 MBC++编程

      立即下载
    • C++大学教程

      C++大学教程

      C++大学教程(第九版) 是一本C++编程方面的优秀教程,全面地介绍了过程式编程与面向对象编程的原理和方法,细致地分析了各种性能问题、移植性问题和可能出错的地方,介绍了如何提高软件

      大小:197.6 MBC++教程

      立即下载
    • C++语言程序设计教程(第2版)

      C++语言程序设计教程(第2版)

      《C++语言程序设计教程(第二版)》是2014年清华大学出版社出版的图书,作者是沈显军、杨进才。 C++语言是目前最为流行的程序设计语言,它既支持面向过程的结构化程序设计,也支持基于对象的面向对象程序设计。本书依据ANSI C++标准,从面向过程的编程到面向对象的编程方法展开,形成一条自然流畅的主线,同时两个部分又自成体系,以满足不同基础与需求的学习者。内容包括: C++编程简介、数据类型与表达式、控制结构、函数、构造数据类型、

      大小:129 KBC++

      立即下载
    • 计算机图形学基础教程:Visual C++版(第二版)

      计算机图形学基础教程:Visual C++版(第二版)

      提供了丰富的教学资源,涵盖了计算机图形学原理的主要知识点,由于采用VC++的MFC编程可以模拟真实感光照以及纹理等效果,对学生很有吸引力,对提升计算机图形学的教学效果也很有帮助。原理的案例化可以让学生面对枯燥的图形数学模型及绘制算法,能尽快直观地体验到真实效果并深刻理解绘制算法的原理。《高等学校计算机专业教材精选图形图像与多媒体技术:计算机图形学基础教程(VisuaC++版)(第2版)》不仅可以作为大学本科生教材,还可供计算机

      大小:13.9 KBC++

      立即下载
    • 现代C++教程:高速上手C++

      现代C++教程:高速上手C++

      C++ 是一个用户群体相当大的语言。从 C++98 的出现到 C++11 的正式定稿经历了长达十年多之久的积累。C++14/17 则是作为对 C++11 的重要补充和优化,C++20 则将这门语言领进了现代化的大门,所有这些新标准中扩充的特性,给 C++ 这门语言注入了新的活力。 那些还在坚持使用传统 C++(本书把 C++98 及其之前的 C++ 特性均称之为传统 C++)而未接触过现代 C++ 的 C++ 程序员在见到诸如 Lambda 表达式这类全新特性时,甚至会流露出『学的不是同一门语言』的惊叹之

      大小:1.55 MBC++

      立即下载

    学习笔记

    19小时23分钟前回答

    查找算法之二分查找的C++实现

    二分查找 二分查找算法,说白了就是在有序的数组里面给予一个存在数组里面的值key,然后将其先和数组中间的比较,如果key大于中间值,进行下一次mid后面的比较,直到找到相等的,就可以得到它的位置。 前提:线性表中的记录必须是关键字有序(通常从小到大),线性表必须采用顺序存储。 基本思想:取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;否则,在右半区查找。不断重复,直到查找成功或查找失败为止。 #includeiostream#includestdio.h #define N 10using namespace std;int main(){int a[N],front,end,mid,i,x;cout"请输入……

    13小时52分钟前回答

    VScode编译C++ 头文件显示not found的问题

    一直用codeblocks,想试试vscode,结果这个问题给我弄懵逼了。一开始以为是iostream这个头文件not found,后来发现第一个头文件都会这样显示,放到后面就不会了,然而,光这一个显示not found(虽然并不影响编译),就能逼死强迫症的啊~~~ 言归正传,这个问题解决方法是: 文件——首选项——设置——搜索“clang.diagnostic.enable",然后把勾勾去掉就好了。这是插件C/C++ Clang Command Adapter的一个选项~~ 如果一堆英文看着难受的话,安装插件Chinese (Simplified) Language Pack for Visual Studio Code就可以调成中文了。 如果还有波浪线,那就只好配置includePath了,最简单的方式是让vscode帮你完成: 首先在c_cpp_properties.json的"browse"的……

    1小时14分钟前回答

    C++实现基数排序的方法详解

    基数排序(Radix sort)是一种非比较型整数排序算法 ,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献。 它是这样实现的: 将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零. 然后, 从最低位开始, 依次进行一次排序.这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列. 基数排序的方式可以采用LSD(Least significant digital)或MSD(Most significant digital)……