1、面向对象程序设计形成性考核册作业二 一、选择题: 1. 若用数组名作为函数调用的实参,传递给形参的是( A )。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组全部元素的值 D. 数组元素的个数 2. 采用重载函数的目的是( D )。 A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 3. 下面的标识符中,( C )是文件级作用域。 A. 函数形参 B.语句标号 C.外部静态类标
2、识符 D.自动类标识符 4. 当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( B )。 A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录 D. 搜索当前逻辑盘上的所有目录 5. 在下面存储类中,( A )的对象不是局部变量。 A. 外部静态类 B. 自动类 C. 函数形参 D. 寄存器类 6. 预处理命令在程序中都是以( B )符
3、号开头的。 A. * B. # C. & D. @ 7. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( C )。 A. int *p=new a[10]; B. int *p=new float[10]; C. int *p=new int[10]; D. int *p=new int[10]={1,2,3,4,5} 8. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为( B )。 A. int p=&m;
4、 B. int *p=&m; C. int &p=*m; D. int *p=m; 9. 关于void 指针,下列说法正确的是( C )。 A. void 指针就是未指向任何数据的指针 B. void 指针就是已定义而未初始化的指针 C. 指向任何类型数据的指针可直接赋值给一个void 指针 D. void 指针值可直接赋给一个非void 指针 10. 假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加(C )。 A.
5、1 B. 4 C. sizeof(double) D. sizeof(p) 11. 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( A )。 A. int *p=new int[30]; B. int *p=new int(30); C. int *p=new [30]; D. *p=new int[30]; 12. 假定有“struct BOOK{char title[40]; float price;}; BOOK *book=ne
6、w BOOK;”,则正确的语句为(A )。 A. strcpy(book->title,”Wang Tao”); B. strcpy(book.title,”Wang Tao”); C. strcpy(*book.title,”Wang Tao”); D. strcpy((*book)->title,”Wang Tao”); 13. 下列对引用的陈述中不正确的是( C )。 A. 每一个引用都是其所引用对象的别名,因此必须初始化 B. 形式上针对引用的操作实际上作用于它所引用的对象
7、 C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行 D. 不需要单独为引用分配存储空间 14. 假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句( A )。 A. delete p; B. delete *p; C. delete &p; D. delete []p; 15. 关于消息,下列说法中不正确的是( B )。 A. 发送消息的对象请求服务,接受消息的对象提供服务 B. 消息的发送者必须
8、了解消息的接收者如何相应消息 C. 在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用 D. 每个对象只能接收某些特定格式的消息 16. 软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( A )。 A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 17. 软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的( D )。 A. 可维护性 B. 可复用性 C. 兼容
9、性 D. 正确性 二、填空题 1. 作为语句标号使用的C++保留字case和defaule只能用于__switch______语句的定义体中。 2. 当在程序中执行到__break______语句时,将结束本层循环类语句或switch语句的执行。 3.在程序执行完_主(或main)_______函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。 4. 存储字符’a’和字符串”a”分别需要占用___1_____和____2____个字节。 5. 字符串”a:\\xxk\\数据”的长度为__11______。 6.
10、一个二维字符数组a[10][20]能够存储___10_____个字符串,每个字符串的长度至多为___19_____。 7. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行__strcpy______函数的调用来实现。 8. 如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__static________C++保留字。 9. 在函数模板的参数中,用class修饰的参数称为__虚拟类型(或类型)________参数。 10. 如果一个函数定义中使用了____ static ______修饰,则该函数不允许被其它文件中的函数调用。
11、 11.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的__ __头文件______。 12. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__代码区(程序区)________。 13. 若二维数组a有m列,设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中位置序号的公式为__i*m+j+1(从1开始算起,若从0开始则为:i*m+j)__________。 14. 一个指针类型的对象占用内存的___4_____个字节的存储空间。 15. 假定一个数据对象为int*类型,则指向该对象
12、的指针类型为__int**_____。 16.假定p所指对象的值为25,p+1所指对象的值为42,则*p++的值为__25______。 17.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为__42______。 18. 一个数组的数组名实际上是指向该数组___首_____元素的指针,并且在任何时候都不允许__修改______它。 三、程序填空: 1. 从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。注意二进制数的存放是按照从低位到高位的次序进行的。
13、 #include






