1. C++源程序文件的缺省扩展名为( )。
A. cpp B. exe C. obj D. lik
2. 编写C++程序一般需经过的几个步骤依次是( )。
A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试
C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接
3. 程序中主函数的名字为( )。
A. main B. MAIN C. Main D. 任意标识符
4. 存储以下数据,占用存储字节最多的是( )。
A. 0 B. ‘0’ C. “0” D. 0.0
5. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式 的表达式是( )。
A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c
6. x>0 || y==5的相反表达式为( )。
A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5
7. 字符串”a+b=12/n”的长度为( )。
A. 6 B. 7 C. 8 D. 9
8. 循环语句“for(int i=0; i<n; i++) cout<<i*i<<’ ’;”中循环体执行的次数为( )。
A. 1 B. n-1 C. n D. n+1
9. 在下面循环语句中循环体执行的次数为( )。
int i=0,s=0; while(s<20) {i++; s+=i;}
A. 4 B. 5 C. 6 D. 7
10. 在下面循环语句中循环体执行的次数为( )。
int i=0,s=0; while(s<20) {i++; s+=i;}
A. 4 B. 5 C. 6 D. 7
11. 循环体至少被执行一次的语句为( )。
A. for循环 B. while循环 C. do循环 D. 任一种循环
12. 在下面的一维数组定义中,哪一个有语法错误。( )
A. int a[]={1,2,3}; B. int a[10]={0};
C. int a[]; D. int a[5];
13. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。
A. 2 B. 4 C. 6 D. 0
14. 以下说法中正确的是( )。
A. C++程序总是从第一个定义的函数开始执行
B. C++程序总是从main函数开始执行
C. C++函数必须有返回值,否则不能使用函数
D. C++程序中有调用关系的所有函数必须放在同一个程序文件中
15. 以下关于函数模板叙述正确的是( )。
A. 函数模板也是一个具体类型的函数
B. 函数模板的类型参数与函数的参数是同一个概念
C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数
D. 用函数模板定义的函数没有类型
16. 函数原型语句正确的是( )。
A. int Function(void a); B.void Function (int);
C. int Function(a); D.void int(double a);
17. 函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )个。
A. 1 B. 2 C. 4 D. 5
18. 以下正确的说法是( )。
A. 用户调用标准库函数前,必须重新定义
B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C. 系统不允许用户重新定义标准库函数
D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中
19.C++程序的基本功能模块为( )。
A. 表达式 B. 标识符 C. 语句 D. 函数
20.设x和y均为bool量,则x || y为假的条件是( )。
A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假
21. 若用数组名作为函数调用的实参,传递给形参的是( )。
A. 数组的首地址 B. 数组中第一个元素的值
C. 数组全部元素的值 D. 数组元素的个数
22. 采用重载函数的目的是( )。
A. 实现共享 B. 减少空间
C. 提高速度 D. 使用方便,提高可读性
23. 下面的标识符中,( )是文件级作用域。
A. 函数形参 B.语句标号 C.外部静态类标识符 D.自动类标识符
24. 当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( )。
A. 直接按系统设定的标准方式搜索目录
B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录
C. 仅仅搜索源程序所在目录
D. 搜索当前逻辑盘上的所有目录
25. 在下面存储类中,( )的对象不是局部变量。
A. 外部静态类 B. 自动类 C. 函数形参 D. 寄存器类
26. 预处理命令在程序中都是以( )符号开头的。
A. * B. # C. & D. @
27. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。
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}
28. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为( )。
A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m;
29. 关于void 指针,下列说法正确的是( )。
A. void 指针就是未指向任何数据的指针
B. void 指针就是已定义而未初始化的指针
C. 指向任何类型数据的指针可直接赋值给一个void 指针
D. void 指针值可直接赋给一个非void 指针
30. 假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加( )。
A. 1 B. 4 C. sizeof(double) D. sizeof(p)
31. 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( )。
A. int *p=new int[30]; B. int *p=new int(30);
C. int *p=new [30]; D. *p=new int[30];
32. 假定有“struct BOOK{char title[40]; float price;}; BOOK *book=new BOOK;”,则正确的语句为( )。
A. strcpy(book->title,”Wang Tao”); B. strcpy(book.title,”Wang Tao”);
C. strcpy(*book.title,”Wang Tao”); D. strcpy((*book)->title,”Wang Tao”);
33. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为( )。
A. pb=b; B. pb=&b[0]; C. pb=new int; D. pb=b[5];
34. 假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句( )。
A. delete p; B. delete *p; C. delete &p; D. delete []p;
35. 软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。
A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性
36. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
A. in B. inline C. inLine D. InLiner
37. 在关键字public后面定义的成员为类的( )成员。
A. 私有 B. 公用 C. 保护 D. 任何
38. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为( )。
A. x.a B. x.a() C. x->a D. x->a()
39. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( )。
A. int AA::a() B. int AA:a()
C. AA::a() D. AA::int a()
40. 在多文件结构的程序中,通常把类的定义单独存放于( )中。
A. 主文件 B. 实现文件 C. 库文件 D. 头文件
41. 一个C++程序文件的扩展名为( )。
A. .h B. .c C. .cpp D. .cp
42. 假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( )。
A. int B. char C. AA D. AA*
43. 假定AA是一个类,“AA* abc()const;”是该类中一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值( )。
A. 已经被改变 B. 可能被改变
C. 不变 D. 受到函数调用的影响
44. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( )。
A. n B. n+1 C. n-1 D. n-2
45. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为( )。
A. length+1 B. first+length
C. (first+length-1)%MS D. (first+length)%MS
46. 在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队非空,则进行插入时必须把新结点的地址赋给( )。
A. elemHead B. elemTail
C. elemHead->next和elemHead D. elemTail->next和elemTail
47. 对于一个类的构造函数,其函数名与类名( )。
A. 完全相同 B. 基本相同 C. 不相同 D. 无关系
48. 类的析构函数是一个对象被( )时自动调用的。
A. 建立 B. 撤消 C. 赋值 D. 引用
49. 假定AB为一个类,则执行 “AB x;”语句时将自动调用该类的( )。
A. 带参构造函数 B. 无参构造函数 C. 拷贝构造函数 D. 赋值重载函数
50. 假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。
A. 无参构造函数 B. 带参构造函数 C. 赋值重载函数 D. 拷贝构造函数
51. 假定一个类的构造函数为 “A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行 “A x(4,5);”语句后,x.a和x.b的值分别为( )。
A. 4和5 B. 5和4 C. 4和20 D. 20和5
52. 假定一个类的构造函数为“A(int aa=1, int bb=0) {a=aa; b=bb;}”,则执行“A x(4);”语句后,x.a和x.b的值分别为( )。
A. 1和0 B. 1和4 C. 4和1 D. 4和0
53.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。
A. x.a B. x.a() C. x->GetValue() D. x.GetValue()
54. 设px是指向一个类对象的指针变量,则执行 “delete px;”语句时,将自动调用该类的( )。
A. 无参构造函数 B. 带参构造函数 C. 析构函数 D. 拷贝构造函数
55. 假定AB为一个类,则执行 “AB a[10];”语句时调用该类无参构造函数的次数为( )。
A. 0 B. 1 C. 9 D. 10
56. 假定AB为一个类,则执行 “AB a(2), b[3], *p[4];”语句时共调用该类构造函数的次数为( )。
A. 3 B. 4 C. 5 D. 9
57. 假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )。
A. 0 B. 1 C. n D. n+1
58. 对类中引用成员的初始化是通过构造函数中给出的( )实现的。
A. 函数体 B. 参数表 C. 初始化表 D. 初始化表或函数体
59. 一个类的静态数据成员所表示属性 ( )。
A. 是类的或对象的属性 B. 只是对象的属性
C. 只是类的属性 D. 类和友元的属性
60. 被非静态成员函数访问的类的数据成员( )。
A. 可以是非静态数据成员或静态数据成员 B. 不可能是类的静态数据成员
C. 只能是类的非静态数据成员 D. 只能是类的静态数据成员
61. 引入友元的主要目的是为了( )。
A. 增强数据安全性 B. 提高程序的可靠性
C. 提高程序的效率和灵活性 D. 保证类的封装性
62. 在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( )。
A. 作为友元函数重载的1元运算符 B. 作为成员函数重载的1元运算符
C. 作为友元函数重载的2元运算符 D. 作为成员函数重载的2元运算符
63. 如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A. a.operator+(b) B. b.operator+(a)
C. operator+(a,b) D. operator(a+b)
64.如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A. a.operator++() B. operator++(a)
C. operator++(a,1) D. operator++(1,a)
65. 一个程序中数组a和变量k定义为“int a[5][10],k;”,且程序中包含有语句“a(2,5)=++k*3;”,则此语句中肯定属于重载操作符的是( )。
A. ( ) B. = C. ++ D. *
66. 下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是( )。
A. Value operator+(Value, Value); B. Value operator+(Value,int);
C. Value &operator+(Value, Value); D. Value &operator+(Value&, Value&);
67. 关于插入运算符<<的重载,下列说法不正确的是( )。
A. 运算符函数的返回值类型是ostream & 。
B. 重载的运算符必须定义为类的成员函数。
C. 运算符函数的第一个参数的类型是ostream & 。
D. 运算符函数有两个参数。
68. C++的继承性允许派生类继承基类的( )。
A. 部分特性,并允许增加新的特性或重定义基类的特性
B. 部分特性,但不允许增加新的特性或重定义基类的特性
C. 所有特性,并允许增加新的特性或重定义基类的特性
D. 所有特性,但不允许增加新的特性或重定义基类的特性
1. A 2. B 3. A 4. D 5. D 6. B 7. B 8. C 9. C 10. C
11. D 12. C 13. C 14. B 15. C 16. B 17. B 18. B 19.D 20.C
21. A 22. D 23. C 24. B 25. A 26. B 27. C 28. B 29. C 30. C
31. A 32. A 33. D 34. A 35. B 36. B 37. B 38. B 39. A 40. D
41. C 42. D 43. C 44. C 45. C 46. D 47. A 48. B 49. B 50. D
51. C 52. D 53. D 54. C 55. D 56. B 57. C 58. C 59. C 60. A
61. C 62. B 63. A 64. C 65. A 66. A 67. B 68. C
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
电大《心理学》期末复习资料04-27
电大《园林规划》期末考试复习资料04-27
电大《政府经济学》期末复习题(名词解释)04-27
电大《政府经济学》期末复习题(多选)04-27