cout<<″Theareais:
″<
}
4.若有定义语句:
inta=3,b=2;,则表达式a
a:
b的值是___________。
5.类的成员包括_________和_________两种,在面向对象的术语中,前者称为属性、后者称为方法。
其访问权限有三种,由符号_________、________和________指定,其中具有________权限的成员只有类中的成员函数才能访问、而具有________权限的成员在任何函数中都可访问。
6.构造函数是一个特殊的成员函数,其特殊性表现在创建对象时会__________。
构造函数名必须与__________相同。
7.函数重载是指一组函数具有相同的_________,在函数调用时,编译程序根据________的个数和类型确定使用那一个版本。
二、选择题
1.C++源程序文件的默认扩展名为()。
A.cppB.exeC.objD.lik
2.设有数组定义:
chararray[]="China";则数组array所占的空间为()。
A.4个字节B.5个字节C.6个字节D.7个字节
3.下列选项中,与实现运行时多态性无关的是()。
A.重载函数B.虚函数C.指针D.引用
4.若a是int类型变量,则计算表达式a=1000%999的值是()。
A.0B.1C.2D.3
5.下面程序段中,for循环的执行次数是()。
inti=10;
for(i=1;i<10;i++)
cout<<"*";
A.9B.10C.8D.7
6.以下叙述中错误的是()。
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.程序执行中,数组元素的下标越界时,系统给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数
7.有如下函数模板定义
template
Tfunc(Tx,Ty)
{
returnx*x+y*y;
}
在下列对func()的调用中,错误的是()。
A.func(3,5);B.func(3.0,5.5)
C.func(3,5.5)D.func((double)3,5.5)
8.类的析构函数的作用是()。
A.对象的初始化B.删除对象时的清理任务
C.与一般成员函数一样D.类的初始化
9.程序段
inta,b;
a=5;
b=a++;
cout<
的输出应为()。
A.4B.5C.6D.7
10.程序段
inti,a;
for(i=0;i<=10;i++)
a=i;
cout<
的输出应为()。
A.0B.9C.10D.11
11.下列有关函数重载的叙述中,错误的是()。
A.函数重载就是用相同的函数名定义多个函数
B.重载函数的参数列表必须不同
C.重载函数的返回值类型必须不同
D.重载函数的参数可以带有默认值
12.下列变量名中,()是合法的。
A.CHINAB.byte-sizeC.doubleD.A+a
13.下列各种函数中,()不是类的成员函数。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数
14.下列()是正确的语句。
A.;B.a=17C.x+yD.cout<<"\n"
15.循环while(inti=0)i--;执行次数是()。
A.0B.1C.5D.无限
16.使用操作符setw对数据进行格式输出时,需要包含()文件。
A.iostreamB.fstreamC.iomanipD.stdlib
17.对C++语言和C语言的兼容性,描述正确的是()
A.C++兼容CB.C++部分兼容C
C.C++不兼容CD.C兼容C++
18.对使用关键字new所开辟的动态存储空间,释放时必须使用()
A.freeB.createC.deleteD.realse
19.如没有使用private关键字定义类的数据成员,则默认为()
A.privateB.publicC.protectedD.friend
20.使用值传递方式将实参传给形参,下列说法正确的是()
A.形参是实参的备份B.实参是形参的备份
C.形参和实参是同一对象D.形参和实参无联系
三、判断题
1.C++语言规定,标识符中的字母一般区分大、小写。
2.控制台标准输入设备一般是指键盘。
3.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。
4.循环体中continue语句的作用是结束整个循环的执行。
5.关系表达式的值是0或1。
6.用class定义的类中,默认的访问权限是私有的。
7.一个类中必须要有公有成员和私有成员。
8.如果在一个程序块中有两个变量具有相同的名字,并且都有效,只是它们的作用域不同,则优先访问作用域较小的那个变量。
9.类中成员函数都是公有的,数据成员都是私有的。
10.构造函数不能重载。
四、写出程序运行结果(注意结果的输出格式。
)
1.
voidmain()
{
inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)
p[i]=i;
for(i=0;i<3;i++)
cout<}
2.
#include
usingnamespacestd;
#include
intf1(intx)
{
staticintz=3,y=0;
y++;
z++;
return(x+y+z);
}
voidmain()
{
inta=1,k;
for(k=0;k<3;k++)cout<}
3.
#include
longsub(intnum)
{
inti;
longsubsum=1;
for(i=1;i<=num;i++)
subsum*=i;
return(subsum);
}
voidmain()
{
inti;longsum=0;
for(i=1;i<=5;i++)
{
sum+=sub(i);
cout<
}
}
4.
#include
usingnamespacestd;
classPerson
{
public:
Person()
{
cout<<"ConstructPerson"<}
~Person()
{
cout<<"DestructPerson"<}
};
classStudent:
publicPerson
{
public:
Student()
{
cout<<"ConstructStudent"<}
~Student()
{
cout<<"DestructStudent"<}
};
classTeacher:
publicPerson
{
public:
Teacher()
{
cout<<"ConstructTeacher"<}
~Teacher()
{
cout<<"DestructTeacher"<}
};
voidmain()
{
Students;
Teachert;
}
五、编程题
1.编程求数列1,
,
,
,
,……的所有大于等于0.000001的数据项之和并输出结果。
2.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。
3.定义一个时间类Time,包含3个保护数据成员Hour(小时),Minute(分钟),second(秒)以及两个公有成员函数SetTime()用来为对象设置时间,ShowTime()用来输出显示时间。
定义该类的构造函数,初始化对象的Hour,Minute和Second;
主函数中定义两个对象,时间分别为15点38分42秒和3点4分5秒,并且输出。
《C++程序设计基础》复习题B
一、填空题
8.面向对象的程序设计中的对象是对一个客观实体的和的封装体。
9.C++语言中的每条基本语句以__________作为结束符,每条复合语句是以________字符作为开始符,以________字符作为结束符的。
10.有一种只在循环语句或switch语句中使用的流程控制语句,表示该语句的关键字是________________。
11.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中,请填空。
#include
main()
{
inti,t=1,s=0;
for(i=1;i<=101;________________)
{
s=s+i*t;
t=_______________;
}
}
12.在C++语言中,逻辑假用________________表示。
13.执行“cout<14.算术表达式-215.假定一个一维数组的定义为“char*a[8];”,则该数组所含元素的个数为,所占存储空间的字节数为。
16.若要访问指针变量p所指向的数据,应使用表达式______________。
17.表达式:
26%3=______________,32/5=_______________。
18.C++源程序文件的扩展名是______,头文件的扩展名是______。
19.在C++中,声明布尔类型变量所用的关键字是______________,定义虚函数所用的关键字是________。
二、选择题
21.由C++目标文件连接而成的可执行文件的默认扩展名为()。
A.cppB.exeC.objD.lik
22.在下列成对的表达式中,运算结果类型相同的一对是(