A.1 B.n-1 C.n D.n+1
6.在下面的字符数组定义中,有语法错误的选项是
A.chara[15]; B.chara[10]--'5';
C.chara[]="x+y=55."; D.chara[20]="abcdefg";
7.下面叙述中不正确的是
A.函数必须有返回值
B.在一个函数中,可以同时存在多条return语句
C.不同的函数中可以使用相同名字的变量
D.函数的定义不能嵌套,但函数的调用可以嵌套
8.下面的标识符中,具备文件级作用域的是
A.语句标号 B.函数形参
C.自动类标识符 D.外部静态类标识符
9.C++语言的编译系统对于宏命令的处理过程是
A.在程序运行时进行
B.在程序连接时进行
C.和C++程序的其它语句同时进行编译
D.在对源程序中其它成分正式编译之前进行
10.文件包含命令中被包含的文件的扩展名
A.可以是.h或.cpp B.必须是.cpp
C.必须是.h D.不能是.h
11.关于封装,下列说法中说法不正确的是
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
12.C++的流库预定义了四个流,这四个流分别是cin、cout、clog和
A.cerr B.inline C.class D.object
13.面向对象软件开发中使用的OOD表示
A.面向对象分析 B.面向对象设计
C.面向对象语言 D.面向对象方法
14.在关键字private后面定义的成员为类的
A.公用成员 B.私有成员
C.保护成员 D.任何成员
15.若需要把一个类外定义的成员函数指明为内联函数,必须放在函数原型或函数头的前面的关键字是
A.in B.int C.inline D.include
16.对于一个类的析构函数,其函数名与类名
A.无关系 B.完全不同
C.完全相同 D.只相差一个字符
17.对类中引用成员的初始化是通过构造函数中给出的
A.函数体实现的 B.参数表实现的
C.初始化表实现的 D.初始化表或函数体实现的
18.下面针对静态数据成员的描述中,正确的说法是
A.静态数据成员是类的所有对象共享的数据
B.类的每个对象都有自己的静态数据成员
C.类的不同对象有不同的静态数据成员值
D.静态数据成员不能通过类的对象调用
19.下面关于虚函数的描述,错误的说法是
A.在成员函数声明的前面加上Virtual约束,就可将该函数声明为虚函数
B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数
C.虚函数可以是另一个类的友元函数,但不能是静态成员函数
D.基类中说明的纯虚函数在其任何派生类中都必须实现
20.在C++语言程序中,对象之间的相互通信主要是通过
A.继承实现 B.调用成员函数实现
C.封装实现 D.函数重载实现
21.派生类可以访问基类中的protected成员的派生方式包括
A.public和private B.public、protected和private
C.protected和private D.只有protected
22.当一个类的某个函数被说明为Virtual时,在该类的所有派生类中的同原型函数
A.都是虚函数 B.只有被重新说明时才是虚函数
C.都不是虚函数 D.只有被重新说明为virtual时才是虚函数
23.能作为C++程序的基本单位是
A.字符 B.语句 C.函数 D.源程序文件
24.在下面循环语句中循环体执行的次数是
inti=0;doi++;while(i*i<10);
A.2次 B.3次 C.4次 D.5次
25.以下关于函数模板描述正确的选项是
A.函数模板也是一个具体类型的函数
B.函数模板的类型参数与函数的参数是同一个概念
C.通过使用不同类型参数,函数模板可以生成不同类型函数
D.用函数模板定义的函数没有类型
26.函数原型语句正确的选项是
A.intFunction(voida); B.voidFunction(int);
C.intFunction(a); D.voidint(doublea);
27.下面的标识符中,文件级作用域是
A.函数形参 B.语句标号
C.外部静态类标识符 D.自动类标识符
28.设array为一个数组,则表达式sizeof(array)/sizeof(array[0]的结果是
A.array数组首地址 B.array数组中元素个数
C.array数组中每个元素所占的字节数 D.array数组占的总字节数
29.面向对象方法的多态性是指
A.一个类可以派生出多个特殊类
B.一个对象在不同的运行环境中可以有不同的变体
C.针对一消息,不同的对象可以以适合自身的方式加以响应
D.一个对象可以是由多个其他对象组合而成的
30.软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的
A.可维护性 B.可复用性 C.兼容性 D.正确性
二、填空题
31.如果类B继承了类A,则称类A为类B的基类,类B称为类A的 。
32.每个对象都是所属类的一个 。
33.对象是对问题域中客观事物的 。
34.C++支持两种多态性:
编译时的多态性和 时的多态性。
35.假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句为 。
36.与结构成员访问表达式p->name等价的表达式是 。
37.定义一个函数模板要用到的第一个修饰符是 。
38.对于无返回值函数,定义函数时要用 修饰函数类型。
39.假定p是一个指针,则*p++运算首先访问 。
40.假定对数组a[]进行初始化的数据为{2,7,9,6,5,7,10),则a[2]被初始化成 。
三、程序分析题
41.请写出下面程序的输出结果。
#include
voidmain()
intx=5;
switch(2*x-3){
case4:
cout< case7:
cout<<2*x+l<<'"
case10:
cout<<3*x-l<<'';break;
default:
cout<<"default"< }
cout<<"switchend."<}
42.请写出下面程序段的输出结果。
#include
voidf4(inta[],intn,int&s)
{
s=0;
for(inti=0;i}
voidmain()
{
intb[8]={4,8,6,9,2,10,7,12};
intx;f4(b,5,x);
cout< inty;f4(b+3,4,y);
cout< cout<}
43.请写出下面程序段的输出结果。
#include
voidmain()
{
chara[]="abcdabcabfgacd";
inti1:
0,i2=0,i=0;
while(a[i])
{
if(a[i]=='a')il++;
if(a[i]=:
'b')i2++;
i++;
}
cout<}
44.请写出下面程序段的输出结果。
#include
classA
{
int*a;
public:
A(intx=0):
a(newint(x)){}
-A() {deletea;}
intgetA0{return*a;}
voidsetA(intx){*a=x;}
};
voidmain()
{
Ax1,x2(3);
A*p=&x2;
p->setA(x2.getA0+5);
xl.setA(15+xl.getA0);
cout<}
45.请写出下面程序段的功能。
#include
#include
#include
voidmain()
{
inti=10,a;
while(i>0){
a=rand0%90+10;
intj,k=int(sqrt(a)+le-5); //sqrt(x)为求x的平方根函数
for(j=2;j<=k;j++)
if(a%j==0)break;
if(j>k){cout<}
}
46.请写出下面程序段的输出结果。
#include
classBase
{
public:
Base(inti){x=i;cout<<"Base:
"< virtual-Base0{cout<<"-Base:
"< private:
intx;
};
classDerived:
publicBase
{
public:
Derived(ihti,intj):
Base(i){y:
j;cout<<"Derived:
"< -Derived(){cout<<"~Derived:
"< private:
inty;
};
voidmain()
{
Base*b1=newBase(15);
deleteb1;
Base*b2=newDerived(20,25);
deleteb2;
}
四、程序设计题
47.给定正整数n,求平方不超过n的最大正整数。
48.设计一个循环计数器类CIRCU