第一部分 面向对象方法与C++概述

第一周课后评测

1、单选题:
‎关于C++语言和C语言的关系的下列描述中,错误的是(    )‌
选项:
A: C语言是C++语言的一个子集
B: C语言和C++语言都是面向对象的语言
C: C++语言与C语言兼容
D: C++语言对C语言做了些改进
答案: 【 C语言和C++语言都是面向对象的语言

2、单选题:
‏下列哪个是 C++语言中有效标识符(    )‏
选项:
A: 12345
B: No.1
C:  _No1
D:  int
答案: 【  _No1

3、单选题:
​由C++源程序文件编译而成的目标文件的缺省扩展名为(    )‎
选项:
A: .obj
B: .lik
C: .exe
D: .cpp
答案: 【 .cpp

4、单选题:
‎在下面的一维数组定义中,(  )语句有语法错误‏
选项:
A: int a[ ]={1,2,3};
B: int a[10]={0};
C: int a[ ];
D: int a[5];
答案: 【 int a[ ];

5、单选题:
​返回类型就是函数返回结果值的数据类型。返回类型可以是(    )‎
选项:
A: 除数组和类以外的任意数据类型
B: 除数组和结构类型以外的任意数据类型
C:  除数组类型以外的任意数据类型
D: 除指针和引用类型以外的任意数据类型
答案: 【  除数组类型以外的任意数据类型

6、单选题:
‏在C++中,数据封装要解决的问题是(    )​
选项:
A: 数据的规范化
B: 便于数据转换
C: 避免数据丢失
D: 防止不同模块之间数据的非法访问 
答案: 【 防止不同模块之间数据的非法访问 

随堂测验1

1、单选题:
‍下面4句话中,最准确的表述是(    )‍
选项:
A: A、程序=算法+数据结构
B: B、程序是使用编程语言实现算法
C: C、程序的开发方法决定算法设计
D: D、算法是程序设计中最关键的因素
答案: 【 A、程序=算法+数据结构

2、单选题:
‌解释程序的功能是(    )‍‌‍
选项:
A: A、将高级语言程序转换为目标程序  
B: B、将汇编语言程序转换为目标程序
C: C、解释执行高级语言程序         
D: D、解释执行汇编语言程序
答案: 【 C、解释执行高级语言程序         

3、单选题:
‎数据的逻辑结构分为(    )‌
选项:
A: A、纯属结构和非线性结构   
B: B、顺序结构和非顺序结构
C: C、树型结构和图型结构     
D: D、链式结构和顺序结构
答案: 【 A、纯属结构和非线性结构   

4、单选题:
‎软件工程的出现主要是由于(   )‍‎‍
选项:
A: A、程序设计方法学的影响  
B: B、其他工程科学的影响
C: C、软件危机的出现       
D: D、计算机的发展
答案: 【 C、软件危机的出现       

5、单选题:
‍数据的逻辑结构分为(    )​
选项:
A: A、纯属结构和非线性结构   
B: B、顺序结构和非顺序结构
C: C、树型结构和图型结构     
D: D、链式结构和顺序结构
答案: 【 A、纯属结构和非线性结构   

随堂测验2

1、单选题:
‏封装是指把对象的( )结合在一起,组成一个独立的对象。‎
选项:
A: 属性和操作
B: 信息流
C: 消息和事件
D: 数据的集合
答案: 【 属性和操作

2、单选题:
​类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必须有( )。‏
选项:
A: 正负号
B: 动作
C: 具体值
D: 私有成员
答案: 【 具体值

3、单选题:
​对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是类成员访问限定性( )‏
选项:
A: Public
B: Protected
C: Private
D: friendly
答案: 【 friendly

随堂测验3

1、单选题:
‌ 5.下列关于面向对象的分析与设计的描述,正确的是( )。​
选项:
A: A.面向对象设计描述软件要做什么
B: B.面向对象分析不需要考虑技术和实现层面的细节
C: C.面向对象分析的输入是面向对象设计的结果
D: D.面向对象设计的结果是简单的分析模型
答案: 【 B.面向对象分析不需要考虑技术和实现层面的细节

2、单选题:
‌一个对象和另一个对象之间,通过消息来进行通信。消息通信在面向对象的语言中即( )‏
选项:
A: 方法实现
B: 方法调用
C: 方法嵌套
D: 方法定义
答案: 【 方法调用

随堂测验4

1、单选题:
‌以下关于C++语言的描述不正确的是()‍
选项:
A: 支持过程化程序设计
B: 不支持以抽象数据类型为特点的程序设计
C: 支持以继承和多态为特点程序设计
D: 可以提高大规模程序的编程质量与程序设计语言的问题描述能力
答案: 【 不支持以抽象数据类型为特点的程序设计

2、单选题:
编写C++程序一般需经过的几个步骤依次是()‌
选项:
A: 编辑、调试、编译、连接
B: 编辑、编译、连接、运行
C: 编译、调试、编辑、连接
D: 编译、编辑、连接、运行
答案: 【 编辑、编译、连接、运行

3、多选题:
‌C++语言有()特点‎
选项:
A: 数据封装
B: 数据隐藏
C: 继承和重用
D: 多态性
答案: 【 数据封装;
数据隐藏;
继承和重用;
多态性

4、填空题:
‌下列程序段的输出结果是___。‌‌for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);
cout<<k‌
答案: 【 4

第二部分 过程化编程技术-函数应用

第三周课后评测

1、单选题:
‌下列函数原型声明中错误的是____。‎
选项:
A: void Fun(int x=0,int y=0);
B: void Fun(int x,int y);
C: void Fun(int x,int y=0);
D: void Fun(int x=0,int y);
答案: 【 void Fun(int x=0,int y);

2、单选题:
‌下列关于C++函数的描述中正确的是____。‌
选项:
A: 主函数是程序的入口,它由用户定义的函数调用
B: 函数在调用之前必须先被声明
C: 每个用户定义函数只能被其他函数调用一次
D: 函数是C++中面向对象程序设计框架的基本组成单元
答案: 【 函数在调用之前必须先被声明

3、单选题:
以下函数值的类型是____。‏‎fun(float x)‏‎{ float  y;‏‎  y=3*x-4;‏‎  return(y);‏‎}‏
选项:
A: int
B: char
C: void
D: float
答案: 【 int

4、单选题:
‍下面关于C++语言说法不正确的是____‍
选项:
A: 具有函数式的程序结构,其程序至少由一个函数构成,不论是主函数,还是其他函数
B: 变量的数据类型丰富,而且使用不同的存储类别,以控制函数内外信息的交换
C: 具有编译预处理的功能,为程序的设计与修改、调试、移植带来方便
D: 既是面向结构的程序设计语言,又是面向对象的程序设计语言,使用起来很方便
答案: 【 具有函数式的程序结构,其程序至少由一个函数构成,不论是主函数,还是其他函数

5、单选题:
‍关于函数的调用下面不正确的是____‏
选项:
A: 一个函数可以自己调用自己
B: 函数的调用可以在任意函数之间进行,只要有需要
C: 由于程序总是从主函数开始,所以函数的调用总是在主函数和其他函数之间进行
D: 函数返回时可以不必带返回值,这时函数在定义时其类型应用void标示
答案: 【 由于程序总是从主函数开始,所以函数的调用总是在主函数和其他函数之间进行

6、单选题:
​下列函数的声明正确的是____‏
选项:
A: float sum(float x,y)        {.......}
B: flaot sum(float,float );
C: float sum(x,y)
D: float sum(floatx,floaty)         {.......}
答案: 【 flaot sum(float,float );

7、单选题:
‎在C++中,函数原型不能标识____‏
选项:
A: 函数的返回类型
B: 函数参数的个数
C: 函数参数类型
D: 函数的功能
答案: 【 函数的功能

8、单选题:
‍决定C++语言中函数的返回值类型的是____‏
选项:
A: return语句中的表达式类型
B: 调用该函数时系统随机产生的类型
C: 调用该函数时的主调用函数类型
D: 在定义该函数时所指定的数据类型
答案: 【 在定义该函数时所指定的数据类型

9、单选题:
‎以下说法中正确的是____‏
选项:
A: C++语言程序总从第一个的函数开始执行
B: 在C++语言程序中,要调用的函数必须在main( )函数中定义
C: C++语言程序总是从main( )函数开始执行
D: C++语言程序中的main( )函数必须放在程序的开始部分
答案: 【 C++语言程序总是从main( )函数开始执行

10、单选题:
‏关于内联函数的说法不正确的是____​
选项:
A: 在说明类的同时定义成员函数,则函数隐含为内联函数
B: 也可在类外用inline关键字,对成员函数进行说明,则该函数也为内联函数
C: 当内联函数被调用时,内联函数的代码在调用处被打开
D: 当内联函数被调用时,内联函数将返回结果
答案: 【 当内联函数被调用时,内联函数将返回结果

11、单选题:
‎关于函数的返回不正确的是____‍
选项:
A: 使程序的执行重新返回到主函数,使程序继续往下执行
B: 释放调用函数时临时分配的存储单元
C: 返回一个值给主调函数
D: 其返回值可为数值、地址,也可没有任何返回值
答案: 【 返回一个值给主调函数

12、单选题:
‍在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是____​
选项:
A: 地址传递
B: 单向值传递
C: 由实参传给形参,再由形参传回实参
D: 传递方式由用户指定
答案: 【 单向值传递

第二周课后评测

1、单选题:
‌当一个函数无返回值时,定义它的函数的类型是(    )。‍
选项:
A: int 
B: 无 
C: void
D: long
答案: 【 void

2、单选题:
​对于C/C++语言的函数,下列叙述中正确的是(    )。‌
选项:
A: 函数的定义可以嵌套,但函数调用不能嵌套
B: 函数的定义不能嵌套,但函数调用可以嵌套
C: 函数的定义和调用都不能嵌套
D: 函数的定义和调用都可以嵌套
答案: 【 函数的定义不能嵌套,但函数调用可以嵌套

3、单选题:
‎在一个被调用函数中,关于return语句使用的描述,(   )是错误的。‎
选项:
A: 被调用函数中可以不用return语句
B: 被调用函数中可以使用多个return语句
C: 被调用函数中,如果有返回值,就一定要有return语句
D: 被调用函数中,一个return语句可以返回多个值给调用函数
答案: 【 被调用函数中,一个return语句可以返回多个值给调用函数

4、单选题:
‍在函数调用时,如某一默认参数要指明一个特定值,则有(     )。‏
选项:
A: 其之前所有参数都必须赋值
B: 其之后所有参数都必须赋值
C: 其前、后所有参数都必须赋值 
D: 其前、后所有参数都不必赋值
答案: 【 其之前所有参数都必须赋值

5、单选题:
‎设存在函数int max(int,int)返回两参数中较大值,若求22,59,70中最大值,下列表达式不正确的是(     )。‏
选项:
A: int m = max(22,max(59,70))
B: int m = max(max(22,59),70)
C: int m = max(22,59,70)
D: int m = max(59,max(22,70))
答案: 【 int m = max(22,59,70)

6、单选题:
‏在C++中使用流进行输入输出,其中用于屏幕输出的对象是(    )。‏
选项:
A: cerr
B: cin
C: cfile
D: cout 
答案: 【 cout 

7、单选题:
​在编译指令中,宏定义使用哪个指令(     )。‎
选项:
A: #include
B: #define
C: #if
D: #else
答案: 【 #define

8、填空题:
‎要把一个文件输出流对象myFile与文件“f:myText.txt相关联,所用的C++语句是                                              。​
答案: 【 myFile.open("f:\myText.txt")

9、填空题:
‍C++语言中可以实现输出一个换行符并刷新流功能的操控符是                            。‎
答案: 【 endl

10、填空题:
​下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。‏​#include<iostream>‏​ using namespace std;‏​ const double pi=3.14159;‏​  void main( )‏​  {‏​  double r;‏​  cout<<″r=″;‏​                                  ;‏​  double l=2.0*pi*r;‏​  double s=pi*r*r;‏​  cout<<″\n The long is:″<<l<<endl;‏​  cout<<″The area is:″<<s<<endl;‏​   }‏
答案: 【 cin>>r

11、填空题:
‎ 面向对象的程序设计有四大特征,它们是抽象、                  、 继承 、 多态 。​
答案: 【 封装

12、填空题:
‎在函数原型说明中,                                不是必要的。‌
答案: 【 函数参数名

第四周课后评测

1、单选题:
‏C++语言中所有在函数中定义的变量,连同形式参数,都属于(    )‏
选项:
A: 全局变量
B: 局部变量
C: 静态变量
D: 函数
答案: 【 局部变量

2、单选题:
‎函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为(   )‏
选项:
A: 1 
B: 2 
C: 4
D: 5 
答案: 【 2 

3、单选题:
‌下列有关重载函数的说法中正确的是(      )​
选项:
A: 重载函数必须具有不同的返回值类型
B: 重载函数参数个数必须相同  
C: 重载函数必须有不同的形参列表
D: 重载函数名可以不同
答案: 【 重载函数必须有不同的形参列表

4、单选题:
一个交换两个浮点数的函数swap,并在主函数中调用这个 函数进行两个浮点数的交换,但结果未正确输出,只修改哪一行代码来使程序正确‍  Void swap(float a,float b)‍{  float temp=a; ‍a=b; ‍ b=temp; }  ‍void main( ) ‍{  float a=1,b=2;‍ swap ( a, b ); }‍
选项:
A: 第1行 
B: 第2行
C: 第4行
D: 第6行
答案: 【 第1行 

5、单选题:
‎适宜采用inline定义函数情况是(     )‍
选项:
A: 函数体含有循环语句
B: 函数体含有递归语句
C: 函数代码少、频繁调用
D: 函数代码多、不常调用
答案: 【 函数代码少、频繁调用

6、单选题:
‏在int a=3,int *p=&a;中,*p的值是(     )​​
选项:
A: 变量a的地址值
B: 无意义
C: 变量p的地址值
D: 3
答案: 【 3

7、单选题:
关于宏定义,执行如下的程序段后,判断正确的是(     )​#define  A  10​#define  B(a)  (A*A/a)​int main( ){int n=B(A-5); }​
选项:
A: n=20
B: n=4
C: n=5
D: 程序出错,因为宏定义不能嵌套
答案: 【 n=5

8、填空题:
int f( )‎{ static int a1 = 0;‎static int a2 = 1; //change‎a1 = a2;‎return(a2 += 2 * a1 +1);‎}‎int main( )‎{int i, sum, f( );‎ for(i = sum = 0; i<5; i++)‎  { sum+=f( );‎    cout<<"sum = "<<sum<<'n'; }‎} ‎第三行的输出是(               )‎
答案: 【 sum=57

随堂测验1

1、单选题:
在C++中,使用流进行输入输出,其中用于屏幕输入()‎
选项:
A: cin
B:  cerr
C: cout
D:  clog
答案: 【 cin

2、单选题:
语句ofstream f(“TEMP.DAT”,ios::app|ios::binary)?的功能是建立流对象f,试图打开文件TEMP.DAT 并与之连接,并且()‎
选项:
A: 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
B: 若文件存在,将其置为空文件;若文件不存在,打开失败
C: 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件
D: 若文件存在,打开失败;若文件不存在,建立一个新文件
答案: 【 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

随堂测验2

1、单选题:
决定C++语言中函数的返回值类型的是()​
选项:
A: return语句中的表达式类型
B: 调用该函数时系统随机产生的类型
C: 调用该函数时的主调用函数类型
D: 在定义该函数时所指定的数据类型
答案: 【 在定义该函数时所指定的数据类型

2、单选题:
在C++中,函数原型不能标识()‎
选项:
A: 函数的返回类型
B: 函数参数的个数
C: 函数参数类型
D: 函数的功能
答案: 【 函数的功能

3、单选题:
在函数定义中的形参属于()‏
选项:
A: 全局变量
B: 局部变量
C: 静态变量
D: 寄存器变量
答案: 【 局部变量

4、单选题:
‎有如下程序‌‎#include <iostream>
using namespace std;

int max(int x,int y)
{
    int z;
    if(x>y) z=x;
    else z=y;
    return z;
}
int main()
{
    int a=3,b=5;
    cout<<"max="<<max(a,b)<<endl;
}‌
选项:
A: max=3
B: max=4
C: max=5
D: max=6
答案: 【 max=5

5、单选题:
函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为()‎
选项:
A: 1
B: 2
C: 4
D: 5
答案: 【 2

6、单选题:
​ 在C++中不返回任何类型的函数应该说明为()‎
选项:
A:  int
B:  char
C:  void
D: double
答案: 【  void

随堂测验3

1、单选题:
‍以下程序的运行结果是( )​‍#include <iostream>
int func(int n)
{
    if(n==1) return 1;
    else return (n*func(n-1));
}
int main()
{
    int x;
    x=fun(3);
    cout<<x<<endl;
}​
选项:
A: 5
B: 6
C: 7
D: 8
答案: 【 6

随堂测验4

1、单选题:
‏使用地址作为实参传给形参,下列说法正确的是()‏
选项:
A: 实参是形参的备份
B: 实参与形参无联系
C: 形参是实参的备份
D: 实参与形参是同一对象
答案: 【 实参与形参是同一对象

2、单选题:
‌使用值传递方式将实参传给形参,下列说法正确的是(      )‍
选项:
A: 形参是实参的备份
B: 实参是形参的备份
C: 形参和实参是同一对象
D: 形参和实参无联系
答案: 【 形参是实参的备份

随堂测验5

1、单选题:
要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()‏
选项:
A: const char *p=“ABCD”;
B: char *const p=“ABCD”;
C: char const *p=“ABCD”;
D:  const char * const p=“ABCD”;
答案: 【  const char * const p=“ABCD”;

随堂测验6

1、单选题:
 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 ()‎
选项:
A: 内联函数
B: 重载函数
C: 递归函数
D: 嵌套函数
答案: 【 内联函数

2、单选题:
适宜采用inline定义函数情况是()‎
选项:
A: 函数体含有循环语句
B: 函数体含有递归语句
C:  函数代码少、频繁调用
D:  函数代码多、不常调用
答案: 【  函数代码少、频繁调用

随堂测验7

1、单选题:
下列有关重载函数的说法中正确的是()​
选项:
A: 重载函数必须具有不同的返回值类
B: 重载函数参数个数必须相同
C: 重载函数必须有不同的形参列表
D: 重载函数名可以不同
答案: 【 重载函数必须有不同的形参列表

随堂测验8

1、单选题:
实现两个相同类型数加法的函数模板的声明是()‎
选项:
A:  add(T x,T y)
B: T add(x,y)
C: T add(T x,y)
D:  T add(T x,T y)
答案: 【  T add(T x,T y)

随堂测验9

1、单选题:
‍如下程序的最后运行结果为( )#include <iostream>
using namespace std;

int f(int a)
{
    auto int b=0;
    static int c=3;
    b=b+1;c=c+1;
    return (a+b+c);
}
int main()
{
    int a=2,i;
    for(i=0;i<3;i++)
        cout<<f(a)<<endl;
}‌
选项:
A: 678
B: 789
C: 567
D: 无输出结果
答案: 【 789

2、单选题:
‌以下只有在使用时才为该类型变量分配内存的存储单元说明是(  )‎
选项:
A: auto和static
B: auto和register
C: register和static
D: extern和register
答案: 【 auto和register

第三部分 封装与信息隐藏-类与对象

第七周课后评测

1、单选题:
​下面(          )内存区域是C++中的运行时动态内存分配区域。‌
选项:
A: 代码区
B: 栈区
C: 数据区
D: 堆区
答案: 【 堆区

2、单选题:
​下列(          )对象的数据成员类型可以不用初始化表的方式进行初始化。‎
选项:
A: 常量数据成员
B: 引用数据成员
C: 类中对象成员
D: 一般数据成员
答案: 【 一般数据成员

3、单选题:
‍一个类中的公有(public)性质的静态数据成员,以下(          )访问方式是错误的。‎
选项:
A: 对象名.静态数据成员名 
B: 指向对象的指针—>静态数据成员名
C: 类名::静态数据成员名
D: 类名.静态数据成员名 
答案: 【 类名.静态数据成员名 

4、单选题:
‎下面说法正确的是(           )。 ‎
选项:
A: 构造函数可以重载,析构函数不能重载
B: 构造函数不能重载,析构函数可以重载
C: 构造函数可以重载,析构函数也可以重载
D: 构造函数和析构函数都不可以重载
答案: 【 构造函数可以重载,析构函数不能重载

5、单选题:
‍假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(           )。‍
选项:
A: px(a)
B: px[a]
C: px->a
D: px.a
答案: 【 px->a

6、单选题:
‏二维数组int b[][4]={{1,2},{1,2,3},{1,2,3,4}}的元素个数为(          )。‍
选项:
A: 7
B: 9
C: 10
D: 12
答案: 【 12

7、判断题:
‌const关键词可以参与区分重载函数。‎
选项:
A: 正确
B: 错误
答案: 【 正确

8、判断题:
‏类中的非静态成员函数不能访问类的静态数据成员。​
选项:
A: 正确
B: 错误
答案: 【 错误

9、判断题:
‏类中的静态数据成员为了方便访问,一般还需要再类中定义静态成员函数用于访问。‏
选项:
A: 正确
B: 错误
答案: 【 正确

10、判断题:
‌默认拷贝构造函数只能完成“浅拷贝”。‌
选项:
A: 正确
B: 错误
答案: 【 正确

11、判断题:
​构造函数和析构函数一般的权限都应该设为public。‌
选项:
A: 正确
B: 错误
答案: 【 正确

12、判断题:
‌不管是建立何种对象,在对象不使用时,都应该手动调用析构函数进行清除对象的操作。‏
选项:
A: 正确
B: 错误
答案: 【 错误

13、判断题:
​类中所有数据成员都是在构造函数内完成。‏
选项:
A: 正确
B: 错误
答案: 【 错误

14、判断题:
‎类中的静态数据成员都是公有的(public)。​
选项:
A: 正确
B: 错误
答案: 【 错误

第五周课后评测

1、单选题:
‏如没有使用private关键字定义类的数据成员,则默认为(      )‎
选项:
A: public 
B: private
C: protected
D: friend
答案: 【 private

2、单选题:
​对类中声明的变量,下列描述中正确的是(      )‌
选项:
A: 属于全局变量
B: 只属于该类     
C: 属于该类,某些情况下也可被该类不同实例所共享
D: 任何情况下都可被该类所有实例共享
答案: 【 属于该类,某些情况下也可被该类不同实例所共享

3、单选题:
‌类的私有成员可在何处访问(       )‏
选项:
A: 通过子类的对象访问 
B: 本类及子类的成员函数中  
C: 通过该类对象访问
D: 本类的成员函数中
答案: 【 本类的成员函数中

4、单选题:
‏下列关于类的权限的描述错误的是(       )‎
选项:
A: 类本身的成员函数只能访问自身的私有成员
B: 类的对象只能访问该类的公有成员
C: 普通函数不能直接访问类的公有成员,必须通过对象访问
D: 一个类可以将另一个类的对象作为成员
答案: 【 类本身的成员函数只能访问自身的私有成员

5、单选题:
​关于成员函数特征的下列描述中,错误的是(  )​
选项:
A: 成员函数一定是内联函数
B: 成员函数可以重载
C: 成员函数可以设置缺省参数值
D: 成员函数可以是静态的
答案: 【 成员函数一定是内联函数

6、单选题:
‏下列不是构造函数特征的是(       )​
选项:
A: 构造函数的函数名与类名相同
B: 构造函数可以重载
C: 构造函数可以设置缺省参数
D:  构造函数必须指定返回类型 
答案: 【  构造函数必须指定返回类型 

7、单选题:
‏如果没有为一个类定义任何构造函数的情况下,下列描述正确的是(       )‏
选项:

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注