当前位置:首页 > c++习题集
C++习题集
主要知识点:C++基础知识、结构化程序设计、函数定义和调用
一、填空题 1、 结构化程序设计的程序基本控制结构为___顺序_ __,__选择 __,__循环 __。 2、 C++提供的基本数据类型主要包括整型及_浮点型 _、字符型 、__ void型 。 3、 程序设计的四个层次是为算法的设计与分析及 程序设计方法 、 程序设计语言 、_程序设计环境与工具 。 4、 结构程序设计是一种设计程序的技术,它采用_自顶向下_、_逐步求精_ _的设计方法和_单入口单出口 _的控制结构。 5、 在C++与C中只支持面向过程的程序设计的语言是_C语言_、既支持面向过程又支持面向对象的程序设计语言为__C++语言__、支持函数重载的语言为_C++语言 。 6、 C++的变量按作用域可以划分为_全局__变量与__局部 变量;按照存储状态又可以划分为静态存储变量与_动态 变量。 7、 在C/C++中的预处理命令有__宏定义 、文件包含、_编译预处理_。
8、 “new”运算符是程序中除了变量说明之外又一种生成变量的方法,用new生成的变量为_动态 变量,它返回的是变量空间的地址_,与其对应的运算符为_ delete _。
9、C/C++中无条件跳出循环的语句为_ break ,结束本次循环的语句为_continue _、无条件转向语句为 goto _。
二、读程序写运行结果 1、#include
{ x++; }
void add_2(int &x) { x++; }
void add_3(int *p) { (*p}++; }
void main()
{ int a=2; add_1(a);
cout< cout< cout< 2、#include “iostream.h” const n=6; int fun(int k) { int result; if(k==1) result=1; else result=2*fun(k-1); return result; } void main( ) { int a=3,res=0; res=n/a; 1 cout< cout< } 三、简答题 1、简述C++语言的特点。 2、在函数调用过程中,什么是赋值传递,什么是引用传递 四、名词解释 1、SP与OOP 2、主函数 3、函数递归 参考答案: 一、填空题 1、 顺序 选择 循环 2、浮点型 字符型 布尔型(void型) 3、程序设计方法 程序设计语言 程序设计环境与工具 4、自顶向下 逐步求精 单入口单出口 5、C语言 C++语言 C++语言 6、全局 局部 动态 7、宏定义 文件包含 编译预处理 8、动态 变量空间的地址 delete 9、break continue goto 二、阅读程度写结果 1、 _______2_____ _______3_____ _______4_____ 2、 ______ 2_____ ______ 4_____ 三、简答题 1、 要点:(1)、C++是C的超集。 (2)、C++支持面向对象及面向过程的程序设计 (3)、代码效率高。 (4)、支持模板,运算符重载,引用等。 2、 要点:赋值传递是将实参赋值给形参变量,然后执行被调函数体。赋值传递有两种形式,一是直接传常量或变量值,二是传变量的地址。-----------------5 引用传递是将形参引用给形参,需要形参与实参指的是同一变量。--------3 四、名词解释 1、SP与OOP 要点:SP为面向过程的程序设计;OOP为面向对象的程序设计方法。 2、主函数 要点:C++程序的入口函数,由操作系统调用,是整个程序的主控模块。 3、函数递归 要点:是函数嵌套调用的一种特殊情况,是函数本身又调用了自己。 2 第一部分 面向对象基础-类与对象 主要知识点:类与对象概念、类的设计与构建、构造函数、静态成员、友元成员。 一、填空题 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、将各项功能编写成不同的函数或者过程以便于调用。 3 4、下列关于C++语言的说法正确的是( ) A、C ++语言不能编写结构化程序。 B、C++语言不能调用用C语言编写的函数。 C、C++即支持面向对象的程序设计也支持面向过程(结构化)程序设计。 D、C 语言支持所有C++的语法。 5、关于析构函数下列正确的是( )。 A、析构函数与类同名。 B、析构函数名在类中可以不存在。 C、析构函数在对象产生时自动执行。 D、一个类中只能定义一个析构函数; 6、关于内联函数正确的是( )。 A、全局内联函数的前面必须加关键字inline。 B、内联函数的调用方式与非内联函数的调用方式相同。 C、类的成员函数不可以定义为内联函数。 D、内联函数中的代码在编译前嵌入。 7、下列静态数据成员的特性中,( )是错误的。 A、说明静态数据成员时前边要加关键字static B、若在类中定义了一个静态成员,则不同的类对象有不同的静态成员。 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”修饰的函数才是内联函数( )。 4
共分享92篇相关文档