福师09秋学期《C++程序设计》考试复习题.docx
- 文档编号:30082702
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:28
- 大小:26.84KB
福师09秋学期《C++程序设计》考试复习题.docx
《福师09秋学期《C++程序设计》考试复习题.docx》由会员分享,可在线阅读,更多相关《福师09秋学期《C++程序设计》考试复习题.docx(28页珍藏版)》请在冰豆网上搜索。
福师09秋学期《C++程序设计》考试复习题
福师09秋学期《C++程序设计》考试复习题一
一、选择填空:
,(本大题共16小题,每小题2分,共32分)
1.对类的构造函数和析构函数描述正确的是_______。
(涉及知识点:
构造和析构函数,可参考教材第9章9.1-9.6小节,P293-317)
A)构造函数不能重载,析构函数可以重载
B)构造函数可以重载,析构函数不能重载
C)构造函数可以重载,析构函数也可以重载
D)构造函数不能重载,析构函数也不能重载
2.类MyClass的定义如下:
(涉及知识点:
构造函数,类成员赋值,可参考教材9.1-9.3小节,P293-306)
classMyClass
{
public:
MyClass(){}
MyClass(inti){value=newint(i);}
int*value;
}
若要对value赋值,则下面语句正确的是:
A)MyClassmy;my.value=1000;
B)MyClassmy;*my.value=1000;
C)MyClassmy;my.*value=1000;
D)MyClassmy(l0);
3.假定MyClass为一个类,则执行MyClassa,b
(2),*p;语句时,自动调用该类构造函数_次。
(涉及知识点:
构造函数的调用,可参考教材9.1-9.3小节,P293-306)
A)2B)3C)4D)5
4.对于拷贝构造函数,正确的描述是________。
(涉及知识点:
拷贝构造函数,可参考教材9.5小节,P311-316)
A)在C++语言中,如不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
B)必须为每个类定义拷贝构造函数
C)如果要使用拷贝构造函数,则必须在类中先定义
D)当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数
5.下面对于友元函数描述正确的是_____。
(涉及知识点:
友元函数,可参考教材8.7小节,P281-288)
A)友元函数的实现必须在类的内部定义B)友元函数是类的成员函数
C)友元函数破坏了类的封装性和隐藏性D)友元函数不能访问类的私有成员
6.下面对静态数据成员的描述中,正确的是______。
(涉及知识点:
静态数据成员,可参考教材8.6小节,P277-280)
A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用
C)静态数据成员不能受private控制符的作用
D)静态数据成员可以直接用类名调用
7.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问
权限定义为_______。
()(涉及知识点:
访问控制和静态数据成员,可参考教材8.4、8.6小节,P269-280)
A)publicB)protectedC)privateD)static
8.下列虚基类的声明中,正确的是________。
(涉及知识点:
虚拟继承,可参考教材10.7小节,P350)
A)classvirtua1B:
publicAB)virtualclassB:
publicA
C)classB:
publicAvirtualD)c1assB:
virtualpublicA
9.下面关于类和对象的描述中,错误的是_________。
(涉及知识点:
类和对象,可参考教材第8和第9章)
A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量
B)类和对象之间的关系是抽象和具体的关系
C)对象是类的实例,一个对象必须属于一个已知的类
D)类是具有共同行为的若干对象的统一描述体
10.以下各选项组中,均是C++语言关键字的组是_________。
(涉及知识点:
C++关键字,可参考教材附录A.4,P535)
A)publicoperatorthis
B)shodstringstatic
C)itwhile>=
D)privatecoutprintf
11.设inta=10,b=11,c=12;,表达式(a+b)_________。
(涉及知识点:
算术运算,可参考教材3.1.5,P69)
A)2B)0C)-2D)1
12.下列描述正确的是_________。
(涉及知识点:
关系与逻辑操作,switch语句和if语句,可参考教材4.4和2.2,P114,P27)
A)表示m>n为true或mn&&m B)switch语句结构中必须有default语句
C)if语句结构中必须有else语句
D)如果至少有一个操作数为true,则包含“‖”运算符的表达式为true
13.下列语句中不是死循环的是_________。
(涉及知识点:
循环语句,可参考教材2.3小节,P34)
A)inti=10;
while
(1)
}
i--;
if(i==1)break;
}
B)for(inti=1:
i<10;i++)
{
i--;
}
C)inti=0;
do{
i++;
}while(i>=0)
D)inti=1;
for(;;)i=i+1;
14.下面关于break语句的描述中,不正确的是_________。
(涉及知识点:
break语句,可参考教材2.6小节,P51)
A)break可以用于循环体内
B)break语句可以在for循环语句中出现多次
C)break语句可以在switch语句中出现多次
D)break语句可用于if条件判断语句内
15.下面关于数组的描述错误的是_________。
(涉及知识点:
数组,可参考教材3.5小节,P83)
A)在C++语言中数组的名字就是指向该数组第一个元素的指针
B)长度为n的数组,下标的范围是0-n-1
C)数组的大小必须在编译时确定
D)数组只能通过值参数和引用参数两种方式传递给函数
16.结构化程序设计的3种结构是_________。
(涉及知识点:
结构化程序设计,可参考教材1.6.2小节,P16)
A)顺序结构、选择结构、转移结构
B)分支结构、等价结构、循环结构
C)多分支结构、赋值结构、等价结构
D)顺序结构、选择结构、循环结构
二、写出下列程序的运行结果(本大题共3小题,共14分)
1.(涉及知识点:
构造函数设置默认参数,可参考教材9.2小节,P298-230)
#include
classTdate{
public:
Tdate(intm=8,intd=20,inty=2009)
{
month=m;day=d;year=y;
cout< protected: intmonth; intday; intyear; }; voidmain() { Tdateaday; Tdatebday(7); Tdatecday(11,12); Tdatedday(8,2,2008); } 2.(涉及知识点: 重载模板函数,可参考教材第14.1、14.2小节,P461或课件20.4小节) #include #include template { returna>b? a: b; } char*max(char*a,char*b) { return(strcmp(a,b)? a: b); } voidmain() { cout<<"Max(\"summer\",\"autumn\")is" < } 3.(涉及知识点: 增量操作,可参考教材4.6小节,P122) #include main() { inta,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d: %d,%d,%d",b,c,d); return0; } 三、填空题,(本大题共3小题,共25分) 1.应在下列程序划线处填入的正确语句 #include classBase { public: voidfun(){cout<<"Base: : fun"< }; classDerived: publicBase { voidfun() { _____①________//显示调用基类的函数fun() cout<<"Derived: : fun"< } };(涉及知识点: 继承,可参考教材第10章,P327) 2.设有宏定义和变量说明: #defineT(x,y)x+y inta=T(3,4)*T(5); 则变量a的初值是(①)(涉及知识点: 宏定义,可参考教材7.7.4小节,P246) 3.对于下面定义的类MyClass,请在函数f()中添加对象成员把n的值修改为50。 classMyClass { public: MyClass(intx){n=x;} voidSetNum(intn1){n=n1;} private: intn; }; voidf() { MyClass*ptr=newMyClass(45); _____①________ }(涉及知识点: 指针,类,可参考教材3.7小节和第8章,P91,P252) 四、简单编程: (本大题共3小题,共29分) 1、编写一个程序求一元二次方程的解。 (涉及知识点: 条件语句,可参考教材2.2小节,P27) 讨论下述情形: (1)a=0,不是二次方程。 (2)b^2-4ac=0,有两个相等实根。 (3)b^2-4ac>0,有两个不等实根。 (4)b^2-4ac<0,有两个复根(表示成x+yi,x-yi)。 2.编程序求1/1! +1/2! +1/3! +...+1/100! (n! =1*2*3*…*(n-1)*n)(涉及知识点: 循环语句,可参考教材2.3小节,P34) 3、编程: 统计在所输入的N个实数中有多少个正数、多少个负数、多少个零。 (涉及知识点: 循环语句,可参考教材2.3小节,P34) 福师09秋学期《C++程序设计》考试复习题二 一、选择填空: ,(本大题共20小题,每小题2分,共40分) 1.下列有关函数重载的叙述中,错误的是________。 (涉及知识点: 函数重载,可参考教材5.7小节,P165) A)函数重载就是用相同的函数名定义多个函数 B)重载函数的参数列表必须不同 C)重载函数的返回值类型必须不同 D)重载函数的参数可以带有默认值 2.下列有关类成员的叙述中,正确的是________。 (涉及知识点: 类成员访问控制,可参考教材第8.4-8.7小节,P269) A)友元函数是类的成员函数 B)类成员的默认访问权限是私有的 C)类成员函数必须声明为公有的 D)类的静态数据成员不能是常成员 3.下列符号中能够作为C++标识符的是________。 (涉及知识点: 变量命名规则,可参考教材第2章,P25) A)constB)2aC)_shapeD)-count 4.已知枚举类型声明语句为: ________。 (涉及知识点: 枚举类型,可参考教材3.2.2小节,P71) enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10}; 则下列说法中错误的是 A)枚举常量YELLOW的值为1B)枚举常量RED的值为6 C)枚举常量BLACK的值为10D)枚举常量WHITE的值为1 5.执行下列语句段后,输出字符“*”的个数是________。 (涉及知识点: for语句,可参考教材2.3小节,P34) for(inti=50;i>1;I-=2)cout<<'*'; A)24B)25 C)26D)50 6.有如下定义: ________。 (涉及知识点: 数组与指针,可参考教材3.5和3.7小节,P83,P91) inta[5]={1,3,5,7,9},*p=a; 下列表达式中不能得到数值5的是 A)a[2]B)a[3] C)*(p+2)D)*p+4 7.已知函数f的原型是voidf(int*a,long&b);,变量v1、v2的定义是: ________。 intv1;longv2;(涉及知识点: 指针和引用参数,可参考教材5.2小节,P139) 下列调用语句中正确的是 A)f(v1,&v2);B)f(v1,v2); C)f(&v1,&v2);D)f(&v1,v2); 8.有如下类定义: ________。 (涉及知识点: 静态数据成员,可参考教材8.6小节,P277) classPoint{ private; staticinthow_many; }; ______how_many=0; 要初始化Point类的静态成员how_many,下划线处应填入的内容是 A)ingB)staticint C)intPoint: : D)staticintPoint: : 9.在下列关键字中,不能用来表示继承方式的是________。 (涉及知识点: 继承访问控制,可参考教材10.4小节,P337) A)privateB)static C)publicD)protected 10.已知Value是一个类,Value是Value类的一个对象。 下列以非成员函数形式重载的运算符函数原形中,正确的是________。 (涉及知识点: 运算符重载,可参考教材8.3小节,P261) A)Valueoperator+(Valuev,inti);B)Valueoperator+(Valuev=value,inti); C)Valueoperator+(Valuevinti=0);D)Valueoperator+(Valuev=value,inti=0); 11.有如下4个语句: ________。 (涉及知识点: 输入输出语句,可参考教材2.5小节,P45) ①cout<<'A'< ②cout< ③cout<<'A'< ④cout< 其中能显示A******B的是 A)①和③B)①和④ C)②和③D)②和④ 12.有如下类定义: ________。 (涉及知识点: 构造函数,可参考教材9.1-9.4小节,P293) classMyClass{ Intvalue; public; MyClass(intn): value(n){} intgerValue()const{returnvalue;} }; 则类MyClass的构造函数的个数是 A)1个B)2个 C)3个D)4个 13.有如下类和对象的定义: ________。 (涉及知识点: 静态成员函数的调用,可参考教材8.6.2,P280) classConstants{ public; staticdoublegetPI(){return3.1416;} }; Constantsconstants; 下列各组语句中,能输出3.1416的是 A)cout< : gerPI(); B)cout< C)cout< D)cout< : getPI(); 14.有如下类声明: ________。 (涉及知识点: 访问控制和继承访问控制,可参考教材8.4、10.4小节,P269、P337) classBase{ protected; intamount; public; Base(intn=0): amount(n){} intgetAmount()const{retumamount;} }; classDerived: publicBase{ protected; intvalue; public; Derived(intm,intn): value(m).Base(n){} IntgetData()const{returnvalue+amount;} }; 已知x是一个Derived对象,则下列表达式中正确的是 A)x.value+x.getAmount()B)x.getData()-x.gctAmount() C)x.getData()-x.amountD)x.value+x.amount 15.下列有关抽象类和纯虚函数的叙述中,错误的是________。 (涉及知识点: 抽象类和纯虚函数,可参考教材13.1-13.2,P424) A)拥有纯虚函数的类是抽象类,不能用来定义对象 B)抽象类的派生类若不实现纯虚函数,它也是抽象类 C)纯虚函数的声明以“=0;”结束 D)纯虚函数都不能有函数体 16.有如下程序: ________。 (涉及知识点: 运算符重载,可参考教材第8章,P252) #include Usingnamespacestd; ClassAmount{ intamount; public; Amount(intn=0): amount(n){} IntgetAmount()const{returnamount;} Amount&operator+=(Amounta){ amount+=a.amount; return; } }; intmain(){ Amountx(3),y(7); x+=y; cout< return0; } 已知程序的运行结果是10,则下划线处缺失的表达式是 A)*thisB)this C)&amountD)amount 17.下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“< (涉及知识点: 输入输出语句,可参考教材2.5小节,P45) A)cout< B)cout< C)cout< D)cout< 18.有如下程序: ________。 (涉及知识点: 虚函数和继承,可参考教材第10章,P327) #include usingnamespacestd; classGA{ public; virtualintf(){retuml;} }; classGB: publicGA{ public; virtualintf(){return2;} }; voidshow(GAg){cout< voiddisplay(GA&g){cout< intmain(){ GAa: show(a);display(a); GBb: show(b);display(b); retum0; } 运行时的输出结果是 A)1111B)1211 C)1112D)1212 19.下列有关类继承的叙述中,错误的是________。 (涉及知识点: 继承,可参考教材第10章,P327) A)继承可以实现软件复用 B)虚基类可以解决由多继承产生的二义性问题 C)派生类构造函数要负责调用基类的构造函数 D)派生类没有继承基类的私有成员 20.下列有关运算符重载的叙述中,正确的是________。 (涉及知识点: 运算符重载,可参考教材8.3小节,P262) A)运算符重载是多态性的一种表现 B)C++中可以通过运算符重载创造新的运算符 C)C++中所有运算符都可以作为非成员函数重载 D)重载运算符时可以改变基结合性 二、填空题(本大题共10小题,每小题2分,共20分) (1)break语句用在循环语句for、while、do-while和___________中。 (涉及知识点: break语句,可参考教材2.6小节,P51) (2)C++模板分为___和函数模板。 (涉及知识点: 模板,可参考教材第14章,P461) (3)含有纯虚函数的类称为_________________。 (涉及知识点: 抽象类,可参考教材第13章,P424) (4)C++语言中的每条基本语句以_________________作为结束符。 (涉及知识点: C++编程流程,可参考教材第1.4小节,P8) (5)继承的方式有公有继承、私有继承和__________三种。 (涉及知识点: 访问控制,可参考教材10.4小节,P337) (6)在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。 类是一种抽象的概念,属于该类的一个实例叫做“___________”。 (涉及知识点: 对象,可参考教材第9章,P292) (7)指针数组是由___________构成的数组。 (涉及知识点: 指针与数组,可参考教材3.5和3.7,P83,P91) (8)如果使用数组名称为函数参数,形实结合时,传递的是___________。 (涉及知识点: 数组与指针,可参考教材第3.7小节,P91) (9)在类的对象被创建的时候,___________函数会被自动调用。 (涉及知识点: 构造函数,可参考教材9.1-9.4小节,P293) (10)在类中,___________成员为类的所有对象所共享。 (涉及知识点: 静态成员,可参考教材8.6小节,P277) 三、写出程序运行结果,(本大题共5小题,共30分) 1.(涉及知识点: const用法,可参考教材3.7小节,P91) 有如下程序: #include usingnamespacestd; classVAC{ public; intf()const{return3;} intf(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计 福师 09 学期 C+ 程序设计 考试 复习题