1、科目一C+含题目科目一:04737 C+程序设计【一】课程信息1-10 ACDBB DACAC11-20 BACAC AAACC21-27 CDDCC BB1、(A)年正式取名为C+ A 1983 B 1986 C 1978 D 19992、本章节题目如下:int类型占用(C)字节存储空间。 A 1 B 2 C 4 D 83、使用ifelse语句嵌套最多可以实现(D)分支 A 1 B 2 C 4 D 无数多4、(B)循环语句至少会被执行一次。 AwhileBdo_whileCfor D都不是5、本章节题目如下: for循环的判断条件是(B) A第一个表达式 B第二个表达式 C第三个表达式 D以
2、上都不对 6、本章节题目如下: 定义结构体使用的关键字是(D) Avirtual Bunion Cprivate Dstruct 7、下列说法错误的是(A)A函数可以嵌套定义B函数可以嵌套调用 C函数可以没有参数 D函数可以有多个参数8、要把一个函数定义为内联函数,应该使用关键字(C ) Avoid Bimportant Cinline Dline 9、重载函数的必须满足(A) A形参个数或类型不同 B返回值不同 C函数名不同 D形参名不同 10、类中(C)修饰的成员可以在类外访问。 Aprivate Bprotected Cpublic D以上都不对 11、构造函数(B)时候被自动调用。 A
3、对象销毁 B对象创建 C对象引用 D对象赋值 12、析构函数(A)时候被自动调用。 A对象销毁 B对象创建 C对象引用 D对象赋值 13UML语言是一种可视化的的面向对象(C)语言。 A编程 B编辑 C建模 D设计 14、函数内部声明静态生存期对象,要冠以关键字(A) Astatic Bvirtual Cclass Dpublic 15静态生存期与程序的(C)相同。 A编辑期 B编译期 C运行期 D连接期 16友元函数是在类声明中由关键字(A)修饰说明的非成员函数。 Afriend Bvirtual Cprivate Dpublic 17包含指令使用的关键字是(A) A#include B#d
4、efine C#if D#undef 18一维数组的下标从(A)开始。 A0 B1 C2 D319、定义二维数组int a34,一共定义了(C)个元素。 A3 B4 C12 D2420、假设有定义int *p,则p=p+1后,p中地址值会(C) B加2 C加4 D加821、存放字符串“china”需要占用(C)个字节内存空间。 A1 B5 C6 D822、下面哪一个不是类的继承方式(D)。 Apublic Bprotected Cprivate Dinline23、下列说法错误的是(D) A基类的构造函数不被继承 B声明构造函数时,只需要对本类中新增成员进行初始化 C派生类的构造函数需要给基类
5、的构造函数传递参数 D声明构造函数时,不但需要对本类中新增成员进行初始化,而且要为基类成员初始化24 定义虚基类需要使用关键字(C)。 Aprivate Bclass Cvirtua1 Dstatic25、函数重载实现了面向对象的(C)。 A抽象性 B封装性 C多态性 D继承26、B编译时27下列关于抽象类说法错误的是(B)。 A抽象类只能作为基类来使用 B可以声明抽象类的对象 C构造函数不能是虚函数 D析构函数可以是虚函数【二】阶段作业单元测试1、CCCCC DCBBB BBBAC AAADB2、DCCDC CCBAC BBCCD BAABB3、DDABD BDDAD BCBAB BDCCB
6、4、ACCAB ABABA DCACD CDCAD5、BBDAB DBCAD CAABD DCADD简答练习练习题一1 若使用标准输出流把整型变量a的值输出到屏幕上,实现此操作的C+语句是_。答:couta2 C+将数据从一个对象流向另一个对象的流动抽象为“流”,从流中获取数据的操作称为_。答:提取3 执行下列代码int b=100;couthex:ab;当用键盘输入1.25时,b=_。答:b=0.25 a=112对于类Point而言,其析构函数的定义原型为_。答:Point( )13对象成员构造函数的调用顺序取决于这些对象在类中说明的顺序,与它们在成员初始化列表中给出的顺序_。答:无关14类
7、的简单成员函数是指声明中不含_、volatile、static关键字的函数。答:const15与操作对象的数据类型相互独立的算法称为_。答:泛型算法16从一个或多个以前定义的类产生新类的过程称为_。答:派生17在vector类中向向量尾部插入一个对象的方法是_。答:push_back(const T&)18C+中用于动态创建对象,并返回该对象的指针的关键字是_。答:new19C+的流类库预定义的与标准输出设备相联接的流是_ _。答:cout20执行下列代码cout123.0; 程序输出结果是_。答: 12321下面有一处错误,请给出修改意见。#include class f private:f
8、loat x,y; public:f(float a,float b)x=a;y=b; float max()return(x ; main( ) f a(1.5,3.8); coutendl; 答:将 float max()return(x 改为 float max()return(xy) x:y;22下面有一处错误,请给出修改意见。#include class test private:int x; public:test(int a)x=a; void set(int a)x=a; void get()cout main() const test a(3);a.set(5);a.get(
9、); 答案:a.set(5); a是常对象,不能被更新 23 下面有一处错误,请给出修改意见。#include class point private:float x,y; public:f1(float a,float b)x=a;y=b; point()x=0;y=0; void getx()cout void gety()cout ;void print(point a)coutmain() point a;a.f1(3.0,5.0); print(a); 答:print(point a)couta.xendl; print( )不是成员函数不允许直接调用a.x或将private:flo
10、at x,y;改为 public:float x,y;或coura.xendl;改为 a.getx( );24 下面有一处错误,请给出修改意见。#include class f private:int x,y; public:fl(int a,int b)x=a;y=b; void print()cout ; main() f a; a.f1(1.5,1.8);a.print(); 答: a.f1(1.5,1.8); f1( )调用时实参与形参类型不一致25 下面有一处错误,请给出修改意见。#include main() int x=6; const int*p=x; cout*p 答: co
11、nst int *p=x; 变量给指针p赋值必须加上&;26 完成下面程序,使其输出l0,并在退出运行时正确释放分配给指针的存储空间。#include using namespace std;void main()int *a,*p;a=new int(10);p= _;cout*p_答: a;delete a;27 #include using namespace std;class baseprivate:int x;public:base(int a)x=a; int get()return x; void showbase() coutx=;class Derived:public b
12、aseprivate:int y;public:Derived(int a,int b):base(a)y=b; void showderived() coutx=get(),y=; void main() base b(3); Derived d(6,7); b.showbase(); d.showderived(); b=d; b.showbase(); b1.showbase(); _ base* pb=&b1; pb-showbase(); d.showderived(); b.showbase();输出结果如下:x=3x=6,y=7x=6x=6x=6x=6,y=7x=6答:Deriv
13、ed b1(6,7) 28下面程序的运行结果如下: B:display() C:display() 在下划线处填上缺少的部分。源程序如下: #includeusing namespace std;class Bpublic: _display( ) cout B:display( ) endl;class C:public Bpublic: void display()coutC:display()display();void main() B b,*pb; C c; pb=&b; fun(pb); pb=&c; fun(pb);答:virtual_ void_29下面程序的运行结果如下: T
14、his is line1 This is line2 This is line3 在下划线处填上缺少的部分。源程序如下:#include #include using namespace std;void main() fstream fin, fout; fout.open(my.txt,ios:out); if(!fout.is_open() return; for(int i=0;i3;i=i+1) foutThis is lineendl; fout.close(); fin.open(my.txt,ios:in); if(! fin.is_open() return; char st
15、r100; while(!fin.eof() fin.getline(str,100); cout fin.close();答: !Fin.cof()30 #include using namespace std;template T fun(T x) _y; y=x*x-T(5); return y; void main() float a=2; coutfun(a); 答: T31 给出下面程序的输出结果#include using namespace std;class Simpleint x,y;public:Simple()x=y=0;Simple(int i,int j)x=i;y
16、=j;void copy(Simple&s);void setxy(int i,int j)x=i;y=j;void print()coutx=x,y=yendl;void Simple:copy(Simple&s)x=s.x;y=s.y;void func(Simple s1,Simple&s2)s1.setxy(30,40);s2.setxy(70,80);void main()Simple obj1(1,2),obj2;obj2.copy(obj1);func(obj1,obj2);obj1.print();obj2.print();答: x=1,y=2 x=70,y=8032 给出下面
17、程序的输出结果#include using namespace std; void main() int num=300; int &ref=num; coutref; ref=ref-100; cout num; num=num-50; cout refendl; 答: 300 200 150练习题二1 设要把一个文件输出流对象myFile与文件“f:myText.txt相关联,所用的C+语句是:()。答: ofstream myFile(“f:myText.txt)2 C+中ostream类的直接基类是() 类。答: ios3 运算符 只能用( )运算符来重载,不能用友元运算符来重载。答:
18、 成员4 定义虚函数所用的关键字是()。答: virtual5 vector类中用于返回向量中第1个对象的方法是front( )。答: front()6 在C+中,利用向量类模板定义一个具有20个char的向量E,其元素均被置为字符t,实现此操作的语句是()答: vectorE(20,t)7 类的继承是指子类继承基类的()和成员函数。答: 数据成员8 不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为()。答: 多态性9 ()指令指示编译器将一个源文件嵌入到带该指令的源文件之中。答: #include10 设类A有成员函数void Fun(void);若要定义一个指向类成员函数的
19、指针变量pafn来指向Fun,该指针变量的声明语句是:()答: void(A:*pafn)(void);11 设在程序中使用如下语句申请了一个对象数组:Point * ptr = new Point2;则在需要释放ptr指向的动态数组对象时,所使用的语句是()答: deleteptr;12 在保护派生中,基类权限为Private的成员在派生类()中 。答: 不可访问13 类A有如下成员函数int A:fun(double x)return (int) x2;int A:fun(int x)return x*2;设a为类A的对象,在主函数中有int s=afun(6.0)+a.fun(2),则执
20、行该语句后,s的值为 () 。答: 714 对象传送的消息一般由3部分组成:接收对象名、调用操作名和()。答: 必要的参数15 将指向对象的指针作为函数参数,形参是对象指针,实参是对象的()。答: 地址值16 在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不含指定的子串,find函数的返回值是() 。答: -117 在C+中,声明布尔类型变量所用的关键字是() 。答: bool18 执行下列代码int a=29,b=100;cout 程序的输出结果是:()。答: 2910019 执行下列代码cout hex:程序的输出结果为 () 。答: Hex:ff20
21、C+语言中可以实现输出一个换行符并刷新流功能的操控符是()。答: endl21 #includevoid main( ) int x=5,y=6;const int * p=x;*p=y;cout*p 答: 错误 *p=y;修改意见:将const int *p=&x 中的const去掉22 #includeclass fprivate:int x,y;public:f1( )x=0;y=0;print( )coutyendl;;void main( )f a;a.f1(1,1);a.print( );答: 错误:a.f1(1,1) ,修改意见:增加一个f1的函数重载:void f1(int I
22、,int j)x=I; y=j;23 #include class f private:int x=0,y=0; public:void f1(int a,int b)x=a;y=b; void get( )coutyendl; ;void main( ) f a; a.f1(1,3); a.get ( ); 答: 错误:private:int x=0,y=0;修改意见:private:int x,y;24 #include class pointprivate:float x; public:void f(float a)x=a; void f( )x=0; friend float max
23、(point& a,point& b); ; float max(point& a,point& b)return(a.xb.x)? a.x:b.x;void main( ) point a,b; a.f(2.2);b.f(3.3); cout 答: 错误:couta.max(a,b); 修改意见:couty)?x:y;;void main( )f a;a.f1(1.5,3.8); coutendl;答: 错误:f a; 改为:f a;26 完成下面类中的成员函数的定义。 class point private: int m,n; public: point(int,int); point(point&); ; point:point(int a,int b) m=a;_=b; point:point(point&t) m=t.m; n=t.n; 答: n27 下面是一个输入半径,输出其面积和周长的C+程序,在下划线处填上正确的语句。 #include using namespace std; const double pi=3