欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年全国计算机二级C考试复习知识点汇总 .pdf

    • 资源ID:27303489       资源大小:140.92KB        全文页数:13页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年全国计算机二级C考试复习知识点汇总 .pdf

    2017 年全国计算机二级C+ 考试复习知识点汇总一、C+ 概述( 一) 发展历史1980 年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C+ 语言。1985 年,C+ 开始在外面慢慢流行。经过多年的发展,C+ 已经有了多个版本。为次,ANSI 和 ISO的联合委员会于 1989年着手为 C+ 制定标准。 1994年 2 月,该委员会出版了第一份非正式草案, 1998 年正式推出了 C+ 的国际标准。( 二) C 和 C+ C+ 是 C的超集,也可以说C是 C+ 的子集,因为 C先出现。按常理说, C+ 编译器能够编译任何 C程序,但是 C和 C+ 还是有一些小差别。例如 C+ 增加了 C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管 C+ 包含了所有的 C ,但显然没有任何C+ 编译器能编译这样的C程序。C程序员可以省略函数原型, 而 C+ 不可以,一个不带参数的 C函数原型必须把 void 写出来。而 C+ 可以使用空参数列表。C+ 中 new和 delete 是对内存分配的运算符,取代了C中的 malloc 和 free 。标准 C+ 中的字符串类取代了C标准 C函数库头文件中的字符数组处理函数。C+ 中用来做控制态输入输出的iostream 类库替代了标准 C中的 stdio函数库。C+ 中的 try/catch/throw异常处理机制取代了标准C中的 setjmp() 和 longjmp() 函数。二、关键字和变量C+ 相对与 C增加了一些关键字,如下:typename bool dynamic_cast mutable namespace static_cast using catch explicit new virtual operator false private template volatile const protected this wchar_t const_cast public throw friend true reinterpret_cast try bitor xor_e and_eq compl or_eq 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - not_eq bitand 在 C+ 中还增加了 bool 型变量和 wchar_t 型变量:布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1 或 0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假 ; 反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。#include int main() bool flag; flag=true; if(flag) cout return 0; C+ 中还包括 wchar_t 数据类型, wchar_t 也是字符类型,但是是那些宽度超过8位的数据类型。许多外文字符集所含的数目超过256个,char 字符类型无法完全囊括。 wchar_t数据类型一般为 16 位。标准 C+ 的 iostream 类库中包括了可以支持宽字符的类和对象。用wout 替代 cout 即可。#include int main() wchar_t wc; wc=b; wout wc=y; wout wc=e; wout return 0; 说明一下:某些编译器无法编译该程序(不支持该数据类型 )。三、强制类型转换名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 有时候,根据表达式的需要,某个数据需要被当成另外的数据类型来处理,这时,就需要强制编译器把变量或常数由声明时的类型转换成需要的类型。为此,就要使用强制类型转换说明,格式如下:int* iptr=(int*) &table; 表达式的前缀 (int*)就是传统 C风格的强制类型转换说明 (typecast), 又可称为强制转换说明 (cast) 。强制转换说明告诉编译器把表达式转换成指定的类型。有些情况下强制转换是禁用的,例如不能把一个结构类型转换成其他任何类型。数字类型和数字类型、指针和指针之间可以相互转换。当然,数字类型和指针类型也可以相互转换,但通常认为这样做是不安全而且也是没必要的。强制类型转换可以避免编译器的警告。long int el=123; short i=(int) el; float m=; int i=(int) m; 上面两个都是 C风格的强制类型转换,C+ 还增加了一种转换方式,比较一下上面和下面这个书写方式的不同:long int el=123; short i=int (el); float m=; int i=int (m); 使用强制类型转换的最大好处就是:禁止编译器对你故意去做的事发出警告。但是,利用强制类型转换说明使得编译器的类型检查机制失效,这不是明智的选择。通常,是不提倡进行强制类型转换的。除非不可避免,如要调用malloc() 函数时要用的 void 型指针转换成指定类型指针。四、标准输入输出流在 C语言中,输入输出是使用语句scanf() 和 printf()来实现的,而 C+ 中是使用类来实现的。#include main() 的声明class 类名 private: . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - public: . ; 2. 类的成员一般在 C+ 类中,所有定义的变量和函数都是类的成员。如果是变量,我们就叫它数据成员如果是函数,我们就叫它成员函数。3. 类成员的可见性private和 public访问控制符决定了成员的可见性。由一个访问控制符设定的可访问状态将一直持续到下一个访问控制符出现,或者类声明的结束。 私有成员仅能被同一个类中的成员函数访问, 公有成员既可以被同一类中的成员函数访问,也可以被其他已经实例化的类中函数访问。当然,这也有例外的情况,这是以后要讨论的友元函数。类中默认的数据类型是private ,结构中的默认类型是public 。一般情况下,变量都作为私有成员出现,函数都作为公有成员出现。类中还有一种访问控制符protected ,叫保护成员,以后再说明。4. 初始化在声明一个类的对象时,可以用圆括号() 包含一个初始化表。看下面一个例子:#include class Box private: int height,width,depth; 联函数内联函数和普通函数的区别是:内联函数是在编译过程中展开的。通常内联函数必须简短。定义类的内联函数有两种方法:一种和C语言一样,在定义函数时使用关键字inline。如:inline int Box:volume() return height*width*depth; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 还有一种方法就是直接在类声明的内部定义函数体,而不是仅仅给出一个函数原型。我们把上面的函数简化一下:#include class Box private: int height,width,depth; public: Box(int ht,int wd,int dp) height=ht; width=wd; depth=dp; Box(); int volume() return height*width*depth; ; int main() Box thisbox(3,4,5); 用默认参数的构造函数当在声明类对象时,如果没有指定参数,则使用默认参数来初始化对象。#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - class Box private: int height,width,depth; public: Box(int ht=2,int wd=3,int dp=4) height=ht; width=wd; depth=dp; Box(); int volume() return height*width*depth; ; int main() Box thisbox(3,4,5); 认构造函数没有参数或者参数都是默认值的构造函数称为默认构造函数。如果你不提供构造函数,编译器会自动产生一个公共的默认构造函数,这个构造函数什么都不做。 如果至少提供一个构造函数,则编译器就不会产生默认构造函数。3. 重载构造函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 一个类中可以有多个构造函数。这些构造函数必须具有不同的参数表。在一个类中需要接受不同初始化值时,就需要编写多个构造函数,但有时候只需要一个不带初始值的空的Box 对象。#include class Box private: int height,width,depth; public: Box() 四、转换函数的调用C+ 里调用转换函数有三种形式:第一种是隐式转换,例如编译器需要一个Date 对象,而程序提供的是 CustomDate对象,编译器会自动调用合适的转换函数。另外两种都是需要在程序代码中明确给出的显式转换。C+ 强制类型转换是一种,还有一种是显式调用转换构造函数和成员转换函数。下面的程序给出了三中转换形式:#include class CustomDate public: int da, yr; CustomDate(int d=0,int y=0) da=d; yr=y; void display() cout ; class Date int mo, da, yr; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - public: Date(int m,int d,int y) mo=m; da=d; yr=y; operator CustomDate(); ; Date:operator CustomDate() static int dys=31,28,31,30,31,30,31,31,30,31,30,31; CustomDate cd(0,yr); for(int i=0;i +=da; return cd; int main() Date dt(11,17,89); CustomDate cd; cd = dt; (); cd = (CustomDate) dt; (); cd = CustomDate(dt); (); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - return 0; 五、转换发生的情形上面的几个例子都是通过不能类型对象之间的相互赋值来调用转换函数,还有几种调用的可能:参数传递初始化返回值表达式语句这些情况下,都有可能调用转换函数。下面的程序不难理解,就不分析了。#include class CustomDate public: int da, yr; CustomDate() CustomDate(int d,int y) da=d; yr=y; void display() cout ; class Date int mo, da, yr; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - public: Date(int m,int d,int y) mo=m; da=d; yr=y; operator CustomDate(); ; Date:operator CustomDate() static int dys=31,28,31,30,31,30,31,31,30,31,30,31; CustomDate cd(0,yr); for (int i=0;i +=da; return cd; class Tester CustomDate cd; public: explicit Tester(CustomDate c) cd=c; void display() (); ; void dispdate(CustomDate cd) (); CustomDate rtndate() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - Date dt(9,11,1); return dt; int main() Date dt(12,24,3); CustomDate cd; cd = dt; (); dispdate(dt); Tester ts(dt); (); cd = rtndate(); (); return 0; 六、显式构造函数注意上面 Tester 类的构造函数前面有一个explicit修饰符。如果不加上这个关键字,那么在需要把 CustomDate对象转换成 Tester 对象时,编译器会把该函数当作转换构造函数来调用。但是有时候,并不想把这种只有一个参数的构造函数用于转换目的,而仅仅希望用它来显式地初始化对象,此时,就需要在构造函数前加explicit。如果在声明了 Tester 对象以后使用了下面的语句将导致一个错误:ts=jd; /error 这个错误说明, 虽然 Tester 类中有一个以 Date 型变量为参数的构造函数, 编译器却不会把它看作是从 Date 到 Tester 的转换构造函数, 因为它的声明中包含了explicit修饰符。七、表达式内部的转换名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 在表达式内部,如果发现某个类型和需要的不一致,就会发生错误。数字类型的转换是很简单,这里就不举例了。下面的程序是把Date 对象转换成长整型值。#include class Date int mo, da, yr; public: Date(int m,int d,int y) mo=m; da=d; yr=y; operator long(); ; Date:operator long() static int dys=31,28,31,30,31,30,31,31,30,31,30,31; long days=yr; days*=365; days+=(yr-1900)/4; /从 1900 年 1 月 1 日开始计算for(int i=0;i days+=da; return days; int main() Date today(12,24,2003); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - const long ott=123; long sum=ott+today; cout return 0; 在表达式中, 当需要转换的对象可以转换成某个数字类型,或者表达式调用了作用于某个类的重载运算符时,就会发生隐式转换。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

    注意事项

    本文(2022年全国计算机二级C考试复习知识点汇总 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开