C程序设计基础复习题AWord下载.docx
《C程序设计基础复习题AWord下载.docx》由会员分享,可在线阅读,更多相关《C程序设计基础复习题AWord下载.docx(21页珍藏版)》请在冰豆网上搜索。
endl;
″Theareais:
s<
}
4.若有定义语句:
inta=3,b=2;
,则表达式a<
b?
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<
classT>
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<
b;
的输出应为()。
A.4B.5C.6D.7
10.程序段
inti,a;
for(i=0;
=10;
a=i;
i;
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];
9;
p[i]=i;
3;
a[1][i];
}
2.
#include<
usingnamespacestd;
#include<
stdio.h>
intf1(intx)
{
staticintz=3,y=0;
y++;
z++;
return(x+y+z);
voidmain()
inta=1,k;
for(k=0;
k<
k++)cout<
f1(A.<
endl;
3.
longsub(intnum)
inti;
longsubsum=1;
for(i=1;
=num;
subsum*=i;
return(subsum);
longsum=0;
=5;
sum+=sub(i);
i<
"
"
<
sum<
endl;
4.
classPerson
public:
Person()
ConstructPerson"
~Person()
DestructPerson"
};
classStudent:
publicPerson
Student()
ConstructStudent"
~Student()
DestructStudent"
classTeacher:
Teacher()
ConstructTeacher"
~Teacher()
DestructTeacher"
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中,请填空。
main()
inti,t=1,s=0;
=101;
________________)
s=s+i*t;
t=_______________;
12.在C++语言中,逻辑假用________________表示。
13.执行“cout<
char('
A'
+4)<
”语句后得到的输出结果为。
14.算术表达式-2<
x<
5对应的C++表达式为。
15.假定一个一维数组的定义为“char*a[8];
”,则该数组所含元素的个数为,所占存储空间的字节数为。
16.若要访问指针变量p所指向的数据,应使用表达式______________。
17.表达式:
26%3=______________,32/5=_______________。
18.C++源程序文件的扩展名是______,头文件的扩展名是______。
19.在C++中,声明布尔类型变量所用的关键字是______________,定义虚函数所用的关键字是________。
21.由C++目标文件连接而成的可执行文件的默认扩展名为()。
22.在下列成对的表达式中,运算结果类型相同的一对是(