1、 一、单选题 1. C++源程序文献的缺省扩展名为( A )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文献编译而成的目的文献的缺省扩展名为( C )。 A. cpp B. exe C. obj D. lik 3. 由C++目的文献连接而成的可执行文献的缺省扩展名为( B )。 A. cpp B. exe C. obj D. lik 4. 编写C
2、程序一般需通过的几个环节依次是( B )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标记符中不全是保存字的是( B )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程
3、序的基本单位是( C )。 A. 字符 B. 语句 C. 函数 D. 源程序文献 7. 程序中主函数的名字为( A )。 A. main B. MAIN C. Main D. 任意标记符 8. C++程序的基本模块为( D )。 A. 表达式 B. 标记符 C. 语句 D. 函数 9. 可用作C++语言用户标记符的一组标记符是( B )。 A. void define +WORD B. a3_b
4、3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( D )。 A. 0 B. ‘0’ C. “0” D. 0.0 11. 程序运营中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”
5、a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能对的表达代数式1/abc的表达式是( D )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( D )。 A. 15 B. 26,15 C. 15,
6、26 D. 26 15. 设x是一个bool型的逻辑量,y的值为10,则表达式 x && y的值为( C )。 A. 1 B. 0 C. 与x值相同 D. 与x值相反 16. x>0 && x<=10的相反表达式为( A )。 A. x<=0 || x>10 B. x<=0 && x>10 C. x<=0 || x<=10 D. x>0 && x>10 17. x>0 || y==5的相反表达式为( B )。 A. x<=0 || y!=5 B. x
7、<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5 18.设x和y均为bool量,则x && y为真的条件是( A )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 19.设x和y均为bool量,则x || y为假的条件是( C )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 20. 字符串”a+b=12\n”的长度为
8、 B )。 A. 6 B. 7 C. 8 D. 9 21. 假定下列x和y均为int型变量,则不对的的赋值为( B )。 A. x+=y++ B. x++=y++ C. x=++y D. ++x=++y 22. 下列的符号常量定义中,错误的定义是( C )。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=tr
9、ue;
23. 循环语句“for(int i=0; i
10、句的执行总次数为( D )。
for(int i=0; i 11、行的次数为( A )。
int i=0; do i++; while(i*i<10);
A. 4 B. 3 C. 5 D. 2
28. 当解决特定问题时的循环次数已知时,通常采用( A )来解决。
A. for循环 B. while循环 C. do循环 D. switch语句
29. 循环体至少被执行一次的语句为( C )。
A. for循环 B. while循环 C. do循环 D. 任一种循环
12、 30. switch语句可以改写为( B )语句。
A. for B. if C. do D. while
31. do语句可以改写为( D )语句。
A. 复合 B. if C. switch D. while
32. 在下面的一维数组定义中,哪一个有语法错误。( C )
A. int a[]={1,2,3}; B. int a[10]={0};
C. int a[]; D. int a[5] 13、
33. 在下面的字符数组定义中,哪一个有语法错误。( D )。
A. char a[20]=”abcdefg”; B. char a[]=”x+y=55.”;
C. char a[15]; D. char a[10]=’5’;
34. 在下面的二维数组定义中,对的的是( C )。
A. int a[5][]; B. int a[][5];
C. int a[][3]={{1,3,5},{2}}; D. in 14、t a[](10);
35. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( C )。
A. 2 B. 4 C. 6 D. 8
36. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( A )。
A. 0 B. 4 C. 8 D. 6
37. 若定义了函数 double *function(), 则函数function的返 15、回值为( B )。
A. 实数型 B.实数的地址 C.指向函数的指针 D.函数的地址
38. 以下说法中对的的是( B )。
A. C++程序总是从第一个定义的函数开始执行
B. C++程序总是从main函数开始执行
C. C++函数必须有返回值,否则不能使用函数
D. C++程序中有调用关系的所有函数必须放在同一个程序文献中
39. 以下叙述中不对的的是( C )。
A. 在一个函数中,可以有多条return语句
16、B. 函数的定义不能嵌套,但函数的调用可以嵌套
C. 函数必须有返回值
D. 不同的函数中可以使用相同名字的变量
40. 函数重载是指( A )。
A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C. 两个以上的函数名字不同,但形参的个数或类型相同
D. 两个以上的函数取相同的函数名,并且函数的返回类型相同
41. 以下关于函数模板叙述对的的是( C )。
17、 A. 函数模板也是一个具体类型的函数
B. 函数模板的类型参数与函数的参数是同一个概念
C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数
D. 用函数模板定义的函数没有类型
42. 下列( C )的调用方式是引用调用。
A. 形参和实参都是变量 B.形参是指针,实参是地址值
C. 形参是引用,实参是变量 D.形参是变量,实参是地址值
43. 为了提高程序的运营速度,可将不太复杂的功能用函数实现,此函数应选择( A )。
18、 A. 内联函数 B.重载函数 C.递归函数 D.函数模板
44. 函数原型语句对的的是( B )。
A. int Function(void a); B.void Function (int);
C. int Function(a); D.void int(double a);
45. C++中函数返回值的类型是由( B )决定的。
A. return语句中表达式的类型 B.该函数定义时的类型
C.调用函数时的调用语句 D.系统根据结果
19、 46. 以下函数的返回结果是( A )。
int function(char *x) {
char *p=x; while(*p++); return(p-x-1);
}
A. 求字符串的长度 B.将字符串x连接到字符串p后面
C. 将字符串x复制到字符串p中 D.将字符串x反向存放
47. 函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( B )个。
A. 1 B 20、 2 C. 4 D. 5
48. 设有如下函数定义
int f(char *s) {
char *p=s;
while(*p!=’\0’) p++;
return(p-s);
}
在主函数中用cout< 21、nt x,int y)
B. double fun(int x;int y)
C. double fun(int,int);
D. double fun(int x,y);
50. 以下对的的说法是( B )。
A. 用户调用标准库函数前,必须重新定义
B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C. 系统不允许用户重新定义标准库函数
D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文献涉及到用户源文献中
51. 函 22、数调用不可以( D )。
A. 出现在一个表达式中
B. 出现在执行语句中
C. 作为一个函数的实参
D. 作为一个函数的形参
52. 以下对的的描述是( B )。
A. 函数的定义可以嵌套,函数的调用不可以嵌套
B. 函数的定义不可以嵌套,函数的调用可以嵌套
C. 函数的定义和函数的调用均可以嵌套
D. 函数的定义和函数的调用均不可以嵌套
53. 若用数组名作为函数调用的实参,传递给形参的是( A )。
23、 A. 数组的首地址 B. 数组中第一个元素的值
C. 数组所有元素的值 D. 数组元素的个数
54. 以下错误的描述是( D )。
A. 被调用函数中可以不用return语句
B. 被调用函数中可以用多个return语句
C. 被调用函数中,假如有返回值,就一定要有return语句
D. 被调用函数中,一个return语句可返回多个值给调用函数
55. 以下对的的描述是( C )。
A. 不允许设立参数的默认值
24、B. 设立参数的默认值只能在定义函数时设立
C. 设立参数的默认值时,应当设立右边的参数
D. 设立参数的默认值时,应当所有参数都设立
56. 采用重载函数的目的是( D )。
A. 实现共享 B. 减少空间
C. 提高速度 D. 使用方便,提高可读性
57. 将两个字符串连接起来组成一个字符串时,选用( C )函数。
A. strlen() B. strcap() C. strcat() D. strcmp()
58. 25、 以下叙述中对的的是( B )。
A. 使用#define可认为常量定义一个名字,该名字在程序中可以再赋此外的值
B. 使用const定义的常量名有类型之分,其值在程序运营时是不可改变的
C. 在程序中使用内联函数使程序的可读性变差
D. 在定义函数时可以在形参表的任何位置给出缺省形参值
59. 下面的标记符中,( C )是文献级作用域。
A. 函数形参 B.语句标号 C.外部静态类标记符 D.自动类标记符
60. 以下叙述不对的的是( D )。
A 26、 宏替换不占用运营时间 B. 宏名无类型
C. 宏替换只是字符替换 D. 宏名必须用大写字母表达
61. C++语言的编译系统对宏命令的解决是( D )。
A. 在程序运营时进行
B. 在程序连接时进行
C. 和C++程序的其它语句同时进行编译
D. 在对源程序中其它成分正式编译之前进行
62. 当#include后面的文献名用双引号括起来时,寻找被包含文献的方式是( B )。
A. 直接按系统设定 27、的标准方式搜索目录
B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录
C. 仅仅搜索源程序所在目录
D. 搜索当前逻辑盘上的所有目录
63. 当#include后面的文献名用尖括号括起来时,寻找被包含文献的方式是( A )。
A. 直接按系统设定的标准方式搜索目录
B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录
C. 仅仅搜索源程序所在目录
D. 搜索当前逻辑盘上的所有目录
64. 在下面存储类中, ( C ) 对象 28、的可见性与生存期不一致。
A. 外部类 B. 自动类 C. 内部静态类 D. 寄存器类
65. 在下面存储类中,( A )的对象不是局部变量。
A. 外部静态类 B. 自动类 C. 函数形参 D. 寄存器类
66. 关于局部变量,下面说法对的的是( C )。
A. 定义该变量的程序文献中的函数都可以访问
B. 定义该变量的函数中的定义处以下的任何语句都可以访问
C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问
29、
D. 定义该变量的函数中的定义处以上的任何语句都可以访问
67. 文献包含命令中被包含的文献的扩展名( C )。
A. 必须是.h B. 不能是.h C. 可以是.h或.cpp D. 必须是.cpp
68. 预解决命令在程序中都是以( B )符号开头的。
A. * B. # C. & D. @
69. 设array为一个数组,则表达式sizeof(array)/sizeof(array[0])的结果为( B )。
A. array数 30、组首地址
B. array数组中元素个数
C. array数组中每个元素所占的字节数
D. array数组占的总字节数
70. 用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}
71. 下列给字符数组赋初值时,对的的是( A )。
31、 A. char s1[]=”abcdef”; B. char s2[4]=”abcd”;
C. char s3[2][3]={“abc”,”xyz”}; D. char s4[4][]={‘a’,’x’,’s’,’t’};
72. 设有定义“static int data[5][6];”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data[2][3]的地址为( D )。
A. 115 B.124 C.130 D.160
32、
73. 假定变量m定义为“int m=7;”,则定义变量p的对的语句为( B )。
A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m;
74. 假定k是一个double类型的变量,则关于变量p的对的定义语句为( D )。
A. double p=&k; B. int *p=&k;
C. double &p=*k; D. char *p=”Thank you!”;
75. 变量s的 33、定义为“char *s=”Hello world!”;”,要使变量p指向s所指向的同一个字符串,则应选取( A )。
A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s;
76. 关于void 指针,下列说法对的的是( C )。
A. void 指针就是未指向任何数据的指针
B. void 指针就是已定义而未初始化的指针
C. 指向任何类型数据的指针可直接赋值给一个void 指针
D. void 指针值 34、可直接赋给一个非void 指针
77. 假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不对的的语句为( D )。
A. x=pa[3]; B. x=*(a+3); C. x=a[3]; D. x=*pa+3;
78. 假定有定义“int b[10]; int *pb;”,则不对的的赋值语句为( D )。
A. pb=b; B. pb=&b[0]; C. *pb=new int; D. pb=b[5];
35、79. 假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增长( C )。
A. 1 B. 4 C. sizeof(double) D. sizeof(p)
80. 假定p指向的字符串为”string”,则cout< 36、t<<*s; B. cout< 37、 B. p=new int*; C. p=new int**; D. p=new int[10];
84. 要使语句“p=new int[10][20];”可以正常执行,p应被事先定义为( D )。
A. int *p; B. int **p; C. int *p[20]; D. int(*p)[20];
85. 假定有“struct BOOK{char title[40]; float price;}; BOOK *book=new BOOK;”,则对的的语句为( A )。
A. strcpy(bo 38、ok->title,”Wang Tao”); B. strcpy(book.title,”Wang Tao”);
C. strcpy(*book.title,”Wang Tao”); D. strcpy((*book)->title,”Wang Tao”);
86. 假定有“struct BOOK{char title[40]; float price;}; BOOK *book;”,则不对的的语句为( A )。
A. BOOK *x=new book; B. BOOK x={"C++ Programming",27.0} 39、
C. BOOK *x=new BOOK; D. BOOK *x=book;
87. 假定有“struct BOOK{char title[40]; float price;}book;”,则对的的语句为( B )。
A. BOOK &x= &book; B. BOOK &x=book;
C. BOOK &x=new BOOK; D. BOOK &x=BOOK;
88. 下列对引用的陈述中不对的的是( C )。
A. 每一个引用都是其所引用 40、对象的别名,因此必须初始化
B. 形式上针对引用的操作事实上作用于它所引用的对象
C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D. 不需要单独为引用分派存储空间
89. 假定变量a和pa定义为“double a[10], *pa=a;”,要将12.35赋值给a中的下标为5的元素,不对的的语句是( D )。
A. pa[5]=12.35; B. a[5]=12.35;
C. *(pa+5)=12.35; D. *(a[0]+5)=12.35;
41、 90. 假定变量b和pb定义为“int b[10], *pb=b;”,要将24赋值给b[1]元素中,不对的的语句是( C )。
A. *(pb+1)=24; B. *(b+1)=24; C. *++b=24; D. *++pb=24;
91. 假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句( A )。
A. delete p; B. delete *p; C. delete &p; D. delete []p;
92. 42、假定指针变量p定义为“int *p=new int[30];”,要释放p所指向的动态内存,应使用语句( D )。
A. delete p; B. delete *p; C. delete &p; D. delete []p;
93. 假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( D )。
A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x;
94. 关于消息,下列说法中不对的的是( B )。 43、
A. 发送消息的对象请求服务,接受消息的对象提供服务
B. 消息的发送者必须了解消息的接受者如何相应消息
C. 在C++中,消息的发送具体体现为对接受消息的对象的某个函数的调用
D. 每个对象只能接受某些特定格式的消息
95. 关于封装,下列说法中不对的的是( D )。
A. 通过封装,对象的所有属性和操作结合在一起,形成一个整体
B. 通过封装,一个对象的实现细节被尽也许地隐藏起来(不可见)
C. 通过封装,每个对象都成为相对独立的实体
44、 D. 通过封装,对象的属性都是不可见的
96. 面向对象方法的多态性是指( C )。
A. 一个类可以派生出多个特殊类
B. 一个对象在不同的运营环境中可以有不同的变体
C. 针对一消息,不同的对象可以以适合自身的方式加以响应
D. 一个对象可以是由多个其他对象组合而成的
97. 软件产品在需求发生变化、运营环境发生变化或发现软件产品自身的错误或局限性时进行相应的软件更新的难易限度叫做软件的( A )。
A. 可维护性 B. 可复用性 C. 兼容性 D 45、 对的性
98. 软件产品可被所有或部分地再用于新的应用的能力叫做软件的( B )。
A. 可维护性 B. 可复用性 C. 兼容性 D. 对的性
99. 软件产品与其他软件产品组合成一个整体的难易限度叫做软件的( C )。
A. 可维护性 B. 可复用性 C. 兼容性 D. 对的性
100. 软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的( D )。
A. 可维护性 B. 可复用性 C. 兼容性 D. 46、对的性
101. 面向对象软件开发中使用的OOA表达( A )。
A. 面向对象分析 B. 面向对象设计
C. 面向对象语言 D. 面向对象方法
102. 面向对象软件开发中使用的OOD表达( B )。
A. 面向对象分析 B. 面向对象设计
C. 面向对象语言 D. 面向对象方法
103. 关于面向对象系统分析,下列说法中不对的的是( B )。
A. 术语“面向对象分析”可以用缩写OOA表达
B. 面向对象分 47、析阶段对问题域的描述比实现阶段更具体
C. 面向对象分析涉及问题域分析和应用分析两个环节
D. 面向对象分析需要辨认对象的内部和外部特性
104. 在一个类的定义中,包具有( C )成员的定义。
A. 数据 B. 函数 C. 数据和函数 D. 数据或函数
105. 在类作用域中可以通过直接使用该类的( D )成员名进行访问。
A. 私有 B. 公用 C. 保护 D. 任何
106. 在关键字public后面定义的成员为类的( B 48、 )成员。
A. 私有 B. 公用 C. 保护 D. 任何
107. 在关键字private后面定义的成员为类的( A )成员。
A. 私有 B. 公用 C. 保护 D. 任何
108. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。
A. x(a) B. x[a] C. x->a D. x.a
109. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访 49、问x对象中函数成员a()的格式为( B )。
A. x.a B. x.a() C. x->a D. x->a()
110. 假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为( C )。
A. px(a) B. px[a] C. px->a D. px.a
111. 假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( D )。
50、 A. x.a B. x.a() C. x->GetValue() D. x.GetValue()
112. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( A )。
A. int AA::a() B. int AA:a()
C. AA::a() D. AA::int a()
113. 假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为( A )。
A. a






