自我测验(每题只有一个正确答案,为2分)
1. 可用作C++语言用户标识符的一组标识符是( ) A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof
2. 以下标识符中不全是保留字的是( ) A. case for int B. default then while C. bool class long D. goto return char
3. 以16进制表示8进制的123应为( ) A. 053 B . 0x53 C . 53 D . 5.3e1
4. 0.0104 E12的有效位为( ) A. 1 B . 2 C . 3 D . 4
5. 规格化0.0104 E12则表示为( ) A. 0.0104E12 B. 0.104E11 C. 1.04E10 D. 1.04E10
6. 存储以下数据,占用存储字节最多的是( ) A. 0 B .'0' C . "0" D . 0.0
7. const型变量在定义时就必须初始化,这种说法( ) A. 正确 B. 错误
8. 下列的符号常量定义中,错误的定义是( ) A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true;
9. 12.3l占用( C )字节 A.2 B.4 C.8 D.10
10. struct {char s;int num;} A的长度应为( )字节 A.2 B.3 C.4 D.5
11. struct {char s;int num;} A的长度应为( )字节 A.2 B.3 C.4 D.5
12. 类型修饰符unsigned不能修饰( ) A. char B. int C. long int D. float \double
13. 表达式a>=x || b>2*y+10 || x的相反式是( ) A. a<=x && b<=2*y+10 && !x B. a<x && b<=2*y+10 && !x
14. 设 int a=3,b=4,c=5; 表达式( a+b ) >c&&b==c 的值是( ) A.2 B.-1 C.0 D.1
15. 设x=3,y=3表达式 (x++,y+=x,++x) 的返回是( ) A.3 B.4 C.5 D.6
16. 设x=2,y=3表达式 (x>y? x:y) 的返回是( ) A.2 B.3 C.0 D.1
17. 在下列成对的表达式中,运算符“+”的意义不相同的一对是( ) A.5.0+2.0和5.0+2 B.5.0+2.0和5+2.0 C.5.0+2.0和5+2 D.5+2.0和5.0+2
18. 假定下列x和y均为int型变量,则不正确的赋值为( ) A. x+=y++ B. x++=y++ C. x=++y D. x=++y
19. 设 int a=2;则switch(a){ case 1:a++; case 2:a--; case3: --a;break; default: a++;break;} 执行后a为( ) A.0 B.1 C.2 D.3
20. while(!x) 中的 (!x) 与下面条件( )等价 A.x==1 B.x!=1 C.x!=0 D.x==0
21. 下列for循环的次数为( )
for(i=0, x=0; !x && i<=5; i++){} A.5 B.6 C.1 D.无限
22. 在下面循环语句中循环体执行的次数为( ) for(int i=0; i<n; i++) if(i>n/2) break; A. n/2 B. n/2+1 C. n/2-1 D. n-1
23. int x=0;do x+=2; while(x<8); x被加了( )次 A. 2 B. 3 C. 4 D. 5
24. 以下说法中正确的是( ) A. C++程序总是从第一个定义的函数开始执行 B. C++程序总是从main函数开始执行 C. C++函数必须有返回值,否则不能使用函数 D. C++程序中有调用关系的所有函数必须放在同一个程序文件中
25. 函数原型语句正确的是( ) A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a);
26. 下面的哪个保留字不能作为函数的返回类型 ( ) A. void B. int C. new D. long
27. 若定义了函数 double *function(), 则函数function的返回值为( ) A. 实数型 B.实数的地址 C.指向函数的指针 D.函数的地址
28. 以下函数的返回结果是( )
int function(char *x) { char *p=x; while(*p++); return(p-x-1); } A. 求字符串的长度 B.将字符串x连接到字符串p后面 C. 将字符串x复制到字符串p中 D.将字符串x反向存放
29. 一个函数功能不太复杂,但要求被频繁调用,宜选用( ) A.内联函数 B.重载函数 C.递归函数 D.嵌套函数
30. 在( )情况下适宜采用inline定义内联函数 A.函数体含有循环语句 B.函数体含有递归语句 C.函数代码少、频繁调用 D.函数代码多、不常调用
31. 函数重载是指( ) A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同
32. 以下关于函数模板叙述正确的是( ) A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型
33. 设有函数模板 template<class Q> Q Sum(Qx,Qy){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是( ) A.Sum(10,2); B.Sum(5.0,6.7); C.Sum(15.2f,16.0f); D.Sum(″AB″,″CD″);
34. 设有定义“static int data[5][6];”,设该数组在静态存储区中的起始地址为十进制的100, 若每个int型数占4个字节,则数组元素data[2][3]的地址为( ) A. 115 B. 124 C. 130 D. 160
35. 在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"中,a[0][4]的值是( ) A. 0 B. 2 C. 4 D. 6
36. 设array为一个数组,则表达式sizeof(array)/sizeof(array[0])的结果为( ) A. array数组首地址 B. array数组中元素个数 C. array数组中每个元素所占的字节数 D. array数组占的总字节数
37. 用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}
38. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,
则队首的后一个位置为( ) A. first+1 B. (first+1)%MS C. (first-1)%MS D. (first+length)%MS
39. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first, 队列长度为length,则队尾(即最后一个)元素的位置为( ) A. length+1 B. first+length C. (first+length-1)%MS D. (first+length)%MS
40. 单链表的每个结点中包括一个指针next,它指向该结点的后继结点.现要将 指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列 中哪一个是正确的?( ) A. q=p->next; p->next=q->next; B. p->next=q->next;q=p->next; C. q->next=p->next; p->next=q; D. p->next=q; q->next=p->next;
41. 面向对象软件开发中使用的OOA表示( ) A. 面向对象分析 B. 面向对象设计 C. 面向对象语言 D. 面向对象方法
42. 面向对象的程序设计语言必须具备的要素是( ) A.抽象和封装 B.抽象和多态性 C.抽象、封装、继承和多态性 D.抽象、封装和继承性
43. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( ) A.类 B.对象 C.函数体 D.数据块
44. C++中实现封装是借助于( ) A.枚举 B.类 C.数组 D.函数
45. 类的构造函数被自动调用执行的情况是在定义该类的( ) A.成员函数时 B.数据成员时 C.对象时 D.友元函数时
46. 已知:类A中一个成员函数说明如下: void Set(A&a); 其中,A&的含义是( ) A.指向类A的指针为a B.将a的地址值赋给变量Set C.a是类A对象的引用,用来作函数Set()的参数 D.变量A与a按位与作为函数Set( )的参数
47. 假定一个类的构造函数为A(int aa,int bb){a=aa--;b=a*bb--;},则执行A x(4,5);语句后,x.a和x.b的值分别为( ) A. 4和5 B. 5和4 C. 4和20 D. 20和5
48. 通常,拷贝构造函数的参数是( ) A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名
49. 类的析构函数的作用是( ) A.一般成员函数 B.类的初始化 C.对象的初始化 D.删除对象创建的所有对象
50. 如果类A被说明成类B的友元,则( ) A.类A的成员即类B的成员 B.类B的成员即类A的成员 C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元