您好,欢迎访问三七文档
1C++习题集主要知识点:C++基础知识、结构化程序设计、函数定义和调用一、填空题1、结构化程序设计的程序基本控制结构为_______,_____,_____。2、C++提供的基本数据类型主要包括整型及___、__、__。3、程序设计的四个层次是为算法的设计与分析及、、____。4、结构程序设计是一种设计程序的技术,它采用______、_____的设计方法和______的控制结构。5、在C++与C中只支持面向过程的程序设计的语言是____、既支持面向过程又支持面向对象的程序设计语言为_____、支持函数重载的语言为_______。6、C++的变量按作用域可以划分为_____变量与____变量;按照存储状态又可以划分为静态存储变量与_____变量。7、在C/C++中的预处理命令有____、_____、____。8、“new”运算符是程序中除了变量说明之外又一种生成变量的方法,用new生成的变量为______变量,它返回的是_____,与其对应的运算符为___。9、C/C++中无条件跳出循环的语句为___,结束本次循环的语句为____、无条件转向语句为__。二、读程序写运行结果1、#includeiostream.hvoidadd_1(intx){x++;}voidadd_2(int&x){x++;}voidadd_3(int*p){(*p}++;}voidmain(){inta=2;add_1(a);coutaendl;输出的结果为:__________add_2(a);coutaendl;输出的结果为:__________add_3(&a);coutaendl;}//输出的结果为:__________}2、#include“iostream.h”constn=6;intfun(intk){intresult;if(k==1)result=1;elseresult=2*fun(k-1);returnresult;}voidmain(){inta=3,res=0;res=n/a;2coutresendl;//输出结果为:__________res=fun(a);coutresendl;输出结果为:_____________}三、简答题1、简述C++语言的特点。2、在函数调用过程中,什么是赋值传递,什么是引用传递四、名词解释1、SP与OOP2、主函数3、函数递归参考答案:一、填空题1、顺序选择循环2、浮点型字符型布尔型(void型)3、程序设计方法程序设计语言程序设计环境与工具4、自顶向下逐步求精单入口单出口5、C语言C++语言C++语言6、全局局部动态7、宏定义文件包含编译预处理8、动态变量空间的地址delete9、breakcontinuegoto二、阅读程度写结果1、_______2____________3____________4_____2、_______1___________4_____三、简答题1、要点:(1)、C++是C的超集。(2)、C++支持面向对象及面向过程的程序设计(3)、代码效率高。(4)、支持模板,运算符重载,引用等。2、要点:赋值传递是将实参赋值给形参变量,然后执行被调函数体。赋值传递有两种形式,一是直接传常量或变量值,二是传变量的地址。-----------------5引用传递是将形参引用给形参,需要形参与实参指的是同一变量。--------3四、名词解释1、SP与OOP要点:SP为面向过程的程序设计;OOP为面向对象的程序设计方法。2、主函数要点:C++程序的入口函数,由操作系统调用,是整个程序的主控模块。3、函数递归要点:是函数嵌套调用的一种特殊情况,是函数本身又调用了自己。3第一部分面向对象基础-类与对象主要知识点:类与对象概念、类的设计与构建、构造函数、静态成员、友元成员。一、填空题1、能够被所有类对象共享的类成员为____成员,在类对象产生时能够自动被调用的成员函数为___函数,既不属于类又可以访问其私有成员的函数为_____函数。2、按照与硬件的接近程度,程序语言可以分为高级语言与__________语言,而按照编程的思想,高级语言又可以分为面向__________程序设计的语言与面向对象的程序设计语言,C++语言的函数按照从属关系可以分为___________函数与类成员函数。3、面向对象的程序设计基本特性为_________性、________性与____________性。4、在C++的类中,其数据成员按照访问权限可以分为__________成员,________成员与_______成员。5、类中必须包含的函数为____________函数与_____________函数,被所有类对象所共享的成员为_________成员。6、类的友元具体可以分为____________、____________、____________。7、计算机语言可以分为支持面向对象的程序设计语言与支持程序设计的语言,面向对象程序设计是一种围绕____________组织模型的程序设计方法,其主要特性为______性、_____性与多态性。8、类是对象的____、类的成员有两类一是数据成员,二是_______,类中定义的数据成员不能直接初始化,但可以在产生对象时通过__________函数对数据成员进行初始化。对象的属性是通过其中的数据成员来体现的,其具体的值表示了对象属性的_____。9、说明友元的关键字为_____________,友元可以分为友元全局函数、_________、______。10、类是对____和_____的封装,类与对象是____和具体的关系。11、在类中必须有的成员函数为_____与_____函数,若用户不定义,则它们会有由______自动生成12、定义内联函数的关键字为__,在____定义的函数即使不用关键字也默认为内联函数利用预编译中的__方式,也可以达到内联函数相同的功能。二、选择题1、在下面有关构造函数的描述中,正确的是()A构造函数可以带有返回值;B构造函数的名称必须与类名完全相同;C构造函数必须带有参数;D构造函数必须定义,不能默认。2、在进行类声明时,下面说法正确的是()A类中的公有成员函数不可以访问类的私有成员;B类的静态成员函数不能访问对象中的非静态成员;C在类中可以直接对数据成员初始化;D没有用private,public,protected修饰的成员,默认为公有成员。3、下列有关结构化编程的特点不正确的是()A、按照自顶向下,逐步细化的原则将功能划分成各个模块。B、基本控制结构为顺序结构、选择结构、循环结构。C、数据与对数据的操作是封装为一体的。D、将各项功能编写成不同的函数或者过程以便于调用。44、下列关于C++语言的说法正确的是()A、C++语言不能编写结构化程序。B、C++语言不能调用用C语言编写的函数。C、C++即支持面向对象的程序设计也支持面向过程(结构化)程序设计。D、C语言支持所有C++的语法。5、关于析构函数下列正确的是()。A、析构函数与类同名。B、析构函数名在类中可以不存在。C、析构函数在对象产生时自动执行。D、一个类中只能定义一个析构函数;6、关于内联函数正确的是()。A、全局内联函数的前面必须加关键字inline。B、内联函数的调用方式与非内联函数的调用方式相同。C、类的成员函数不可以定义为内联函数。D、内联函数中的代码在编译前嵌入。7、下列静态数据成员的特性中,()是错误的。A、说明静态数据成员时前边要加关键字staticB、若在类中定义了一个静态成员,则不同的类对象有不同的静态成员。C、静态数据成员要在类体外进行初始化。D、可以通过在类名称前加类名::来引用静态数据成员。8、下列关于C与C++与说法错误的是()A、C语言是面向过程的语言B、C++支持所有C的语法C、C++即支持面向对象的程序设计也支持面向过程的程序设计D、C语言的支持所有C++的语法9、()不是构造函数的特征。A、构造函数的函数名与类名相同;B、构造函数可以被重载;C、构造函数可以被子类继承D、构造函数在类对象产生的时候将自动调用执行10、()是析构函数的特征。A、析构函数可以有一个或多个参数;B、析构函数名与类名不同;C、析构函数的定义只能在类体内;D、一个类中只能定义一个析构函数;三、判断题1、只有类成员函数可以访问类对象的私有成员()。2、程序员定义了类的构造函数后,系统将不再产生构造函数()。3、只有用关键字“inline”修饰的函数才是内联函数()。54、类的拷贝构造函数如果不定义则不存在()5、C++语言同时支持结构化与面向对象编程()。6、动态产生的类对象不调用类的构造函数()。7、A类的友元类B就是允许B中的所有成员函数可以访问A类的所有成员()。8、C++语言高级语言()。9、主函数main不可以有参数()。10、类与对象是抽象与具体的关系()。11、用delete删除类对象时将调用类的析构函数()。12、C++语言是C语言的超集()。13、类的静态成员被所有类对象所共享()。14、一个类可以被定义成另一个类的友元()。15、机器语言与汇编语言都属于低级语言()。16、类中的私有成员不能被任何外部函数所访问()。17、析构函数可以被重载()。四、算法与编程题目1.#include“iostream.h”#include“stdio.h”classtimer{//定义一个时间类intseconds;public:timer();{seconds=0;}timer(intx){seconds=x;}timer(intmin,intsec){seconds=min*60+sec;}intgettime(){returnseconds;}};main(){timera,b(10),c(1,10);couta.gettime()’endl;coutb.gettime()endl;coutc.gettime()endl;return0;}运行结果为:______________________________2、classStudent{intstudentNo;staticintcount;public:Student(){count++;StudentNo=count;}voidprint(){coutStudentNoendl;}};intStudent::count=0;main()6{Studentstudent1;student1.print();Studentstudent2;student2.print();student*p;p=newStudent;p-print();}运行结果为:________________________________________________五、编程题1、编写一个BOOK类,包含name(书名),writer(著者),public_name(出版社),price(价格),number(数量),NO(书号)定义必要的构造函数,定义成员函数Borrow和Restore,分别用来表示借阅与归还,定义成员函数print用于输出—有关书的信息,定义set_NOr与get_NO来实现修改类对象的书号与获得类对象的书号。2、仔细阅读下面矩阵类,完成各要求。(1)补充编写析构函数和输出函数以使该类能够实用。classMatrix{//类定义开始private:introw,column;//行与列int**p;//用于动态开辟二维数组空间public:Matrix(intm,intn);voidSetvalue(inti,intj,inte);~Matrix();voidprint();};Matrix::Matrix(intm,intn)//构造函数开始{inti,j;//循环变量p=new[m];//动态开辟m个连续的指针变量空间for(i=0;im;i++)p[i]=newint[n];;//依次动态开连续n个整型
本文标题:c++习题集
链接地址:https://www.777doc.com/doc-4087608 .html