11年期末CPP训练题(5)

合集下载

C++程序设计期末试卷2011-2012-2-A卷及答案

C++程序设计期末试卷2011-2012-2-A卷及答案

—南昌大学考试试卷—2011-2012-2学期《C++程序设计》期末考试参考答案(A卷)一、单项选择题(每小题2分,共30分)二、填空题(每空1分,共20分)【1】main 【2】 6 【3】 2 【4】 3【5】double 【6】 2.0 【7】m-(m/n)*n 【8】struct【9】12 【10】循环【11】switch 【12】构造【13】析构【14】友元函数15】数据成员【16】成员函数【17】Nan 【18】私有的(private)【19】x %2 【20】x/2三、程序阅读题(每小题4分,共24分)1、 1 5 7 11 13 17 19S=732、A=2, B=20A=3, B=353、S=404、There are 2 Points.There are 7 Points.There are 2 Points.5、S=226、31129四、程序设计题(每小题10分,共20分)1、#include<iostream>using namespace std; // 1分void main(){int i,max,a[10]; //1分float avg,s=0; //1分for(i=0;i<10;i++)cin>>a[i]; //1分max=a[0]; //1分for(i=0;i<10;i++) //1分{s+=a[i]; //1分if(a[i]>max)max=a[i]; //1分}avg=s/10; //分cout<<"max="<<max<<endl;cout<<"avg="<<avg<<endl; //1分}2、#include"iostream.h" // 1分class Rect // 1分{private:float Length,Width; // 1分public:Rect (float L,float W) // 1分{Length=L;Width=W;} // 1分double GetS(){return Length*Width;} // 2分};void main(){Rect obj(3.0,4.0); //2分cout<<"S="<<obj.GetS()<<endl; // 1分}。

(完整版)C++语言程序设计试题

(完整版)C++语言程序设计试题

内蒙古广播电视大学 2010-2011 学年度第二学期《C++语言程序设计》期末试题密封线内一、填空(每空 2 分,共 20 分)不 1.C++源程序文件扩展名为 。

要2.unsigned long 型数据占字节存储空间。

写3.执行语句 cout<<"d :\\data\\c++\\test.exe";后,输出结果是。

参 4.表达式 8|3 的结果是。

考 5.全局变量和 若在定义时未进行初始化,则自动初始化为 0。

内 6.将 s 初始化为值是"Hello!"的指针常量,初始化语句是。

容7.类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问属性 。

8. 定义输出文件流 f ,并以追加数据方式打开相应文件"a :aaa.dat",定义 f 的语句是。

9. 设文件 f.cpp 中的一个函数要访问在另一个文件中定义的 int 型变量 x ,则在f.cpp 中 x 应定义为。

10. 函数模板的说明格式是:template函数定义。

二、单项选择题(每空 2 分,共 20 分)1. 类型修饰符 unsigned 修饰()类型是错误的。

A charB intC long intD float2. 下列变量名中,()是合法的。

A _varB bye-byeC intD 123_cc3.设 int a=3,* p=&a ;,则*p 的值是( )。

A 变量 a 的地址值B 无意义C 变量 p 的地址值D 34. 设 int m=0;,下列表示引用的方法中,()是正确的。

A int &x=m ;B int &y=10;C int &z ;D float &t=&m5. 循环 for(int i=0,x=0;!x&&i<=5;i++);的循环体执行次数是()。

11年期末CPP训练题(4)

11年期末CPP训练题(4)
+= 55.5; ⑤double& b = fn2(&a)++; cout << b <<endl; } 改正的语句:
① ② ③ ④ ⑤
二、类、继承及多态性 3.下面的程序有 5 个错误,已用下划线标示。将你认为正确的语句写在程序 后面: #include <iostream.h> class Student { int id; //学号 int *score; //成绩数组指针 const ①int M=2; //代表当前学生科目数的常量,缺省值为2 public: Student(int id,int *score,int m=2); virtual ~Student(); void PrintStudent(); }; Student::Student(int id,int *score,int m) ② // 为 M 赋初值 { this->id=id; this->score=new int[M]; for(int i=0;i<M;i++)
① ② ③ ④ ⑤
第 6 页 共 6 页
cin >> ⑤pB[j].salary; // 输入数组成员 for(int k=0; k<N; k++)
第 1 页 共 6 页
PrintSalary(pA[i]); } 改正的语句:
① ② ③ ④ ⑤
2.下面的程序有 5 个错误,已用下划线标示。将你认为正确的语句写在程序 后面: #include <iostream.h> double* fn1(const double* pd) { static double ad=32; ①ad += pd; cout <<"fn value is: " <<*pd <<endl; ②return ad; } double& fn2(③const double& rd) { double ad=32; rd += ad; cout <<"fn value is: " << rd <<endl; ④return &rd; } void main() { double a=345.6; const double* pa=fn1(&a); cout <<*pa <<endl;

全国2011年10月高等教育自学考试C++程序设计试题

全国2011年10月高等教育自学考试C++程序设计试题

全国2011年10月高等教育自学考试C++程序设计试题课程代码:04737一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的-请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.C++中注释“/*”的有效范围是()A.从“/*”开始到行尾B.从“/*”开始后不终止C.从“/*”开始到“//”为止D.从“/*”开始到“*/”为止2.如想使用std命名空间,正确的程序语句是()A.using std;B.namespace std,C.using namespace;D.using namespace std;3.下列选项中不是C++关键字的是()A.bool B.int C.float D.var4.用于标识长整型常量的前缀或后缀是()A.无前后缀B.后缀L或l C.前缀零D.前缀0x5.对于new类型名[size]描述正确的是()A.申请可以存储size个字节的空间B.申请可以存储1个该数据类型的空间C.申请可以存储size个该数据类型对象的空间D.申请可以存储1个字节的空间6.使用下列哪个流格式控制符可以设置转换基数为十六进制()A.dec B.oct C.hex D.endl7.构造函数用于()A.定义对象B.初始化对象C.清除对象D.普通计算8.设函数void swap(int,int)将交换两形参数值,如有两整型变量int a=10;int b=15,则执行swap(a,b);之后,a,b值分别为()A.15,10 B.15,15 C.10,15 D.10,109.设函数void subone (int)将形参值减1,如有整形变量int b=10;则执行subone(b)后,b的值为()A.9 B.10 C.11 D.未知10.C++中函数返回值类型不可以是()A.引用B.指针C.结构D.数组11.声明函数int Func(int a=0,int b=3,int c=4)相当于声明了几个函数形式()A.1 B.2 C.3 D.412.C++中专门定义一个仅在模板中使用的参数类型的关键字是()A.const B.inline C.short D.typename13.对于类中的成员,使用private修饰,表明该成员的访问权限是()A.公有的B.私有的C.保护的D.不可见的14.使用new创建的对象,对其生命周期描述正确的是()A.由系统决定B.由用户控制C.全局生命周期D.永久存在15.析构函数被调用的时间点是()A.对象被创建时B.对象被销毁时C.不会被调用D.主函数被调用时16.对象的构造函数调用顺序取决于()A.对象成员在初始化列表中给出的顺序B.对象成员在类中声明的顺序C.对象成员与在初始化列表中顺序和类中声明顺序均有关D.随机顺序17.下列对静态成员函数描述正确的是()A.静态成员函数中可使用1个this指针B.静态成员函数中不能使用this指针C.静态成员函数中可使用多个this指针D.静态成员函数中只可使用1个that指针18.友元的声明可出现在()A.类的私有部分B.类的公有部分C.类的保护部分D.类的任何部分19.在下列派生中,子类和父类间是isa关系的是()A.private B.protected C.public D.publish20.面向对象不仅进行功能抽象,还要进行()A.动态抽象B.消息抽象C.数据抽象D.算法抽象二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。

11年期末CPP训练题(2)

11年期末CPP训练题(2)

11年C++期末训练题第二部分:填代码题一、变量、语句及函数1.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。

例如,输入的两个字符串分别为“12345”和“12344”,则输出为1,请填空。

#include<iostream.h>void main(){char s1[100],s2[100];cin>>s1>>s2;for(int i=0;① && ;i++)// 判断s1中第i个字符不为空,且两字符串中第i个字符相同i++;int diff=② ;// 计算两字符串中第i个不同字符的ASCII码之差cout<<diff<<endl;}2.下列程序通过把类Distance定义为类Point的友元来实现计算两点之间距离的功能。

请完成该程序。

#include<iostream.h>#include<math.h>class Point{public:③ ;// 将class Distance说明为友元类Point(④ )// 写出构造函数的参数{mX = x; mY = y;}void Print(){cout<<"X="<<mX<<endl;cout<<"Y="<<mY<<endl;}private:double mX, mY;};#define SQR(x) ((x)*(x))class Distance{public:double Value(Point &p, Point &q){double result= ⑤ ;// 计算两点之间距离return result;}};void main(){Point p(3.1,5.7), q(2.6,4.8);Distance d;cout << "Distance=" << d.Value(p,q) << endl; }3.以下程序的功能是计算∑==nk k s 0!,请填空。

C++程序设计真题2011年10月

C++程序设计真题2011年10月

C++程序设计真题2011年10月(总分:100.00,做题时间:90分钟)一、单项选择题(总题数:20,分数:20.00)1.C++中注释“/*”的有效范围是( )A.从“/*”开始到行尾 B.从“/*”开始后不终止C.从“/*”开始到“//”为止 D.从“/*”开始到“*/”为止(分数:1.00)A.B.C.D. √解析:[解析] C++有两种注释方式:一种是沿用C语言的从“/*”开始,到“*/”结束的注释方式;另一种是更灵活的注释方式“//”,注释的有效范围从“//”至本行结束。

2.如想使用std命名空间,正确的程序语句是( )A.using std; B.namespace std;C.using namespace; D.using namespace std;(分数:1.00)A.B.C.D. √解析:3.下列选项中不是C++关键字的是( )A.bool B.intC.float D.var(分数:1.00)A.B.C.D. √解析:4.用于标识长整型常量的前缀或后缀是( )A.无前后缀 B.后缀L或lC.前缀零 D.前缀0x(分数:1.00)A.B. √C.D.解析:[解析] 后缀L或l用于标识长整型常量,前缀零用于标识八进制常量,前缀0x用于标识十六进制常量。

5.对于new类型名[size]描述正确的是( )A.申请可以存储size个字节的空间B.申请可以存储1个该数据类型的空间C.申请可以存储size个该数据类型对象的空间D.申请可以存储1个字节的空间(分数:1.00)A.B.C. √D.解析:6.使用下列哪个流格式控制符可以设置转换基数为十六进制( )A.dec B.octC.hex D.endl(分数:1.00)A.B.C. √D.解析:[解析] dec:设置转换基数为十进制;oct:设置转换基数为八进制;hex:设置转换基数为十六进制;endl:输出一个换行符并刷新流。

7.构造函数用于( )A.定义对象 B.初始化对象C.清除对象 D.普通计算(分数:1.00)A.B. √C.D.解析:8.设函数void swap(int,int)将交换两形参数值,如有两整型变量int a=10;int b=15;则执行swap(a,b);之后,a,b值分别为( )A.15,10 B.15,15C.10,15 D.10,10(分数:1.00)A.B.C. √D.解析:[解析] 函数void swap(int,int)使用对象作为函数参数,即将实参对象的值传递给形参对象,这种传递是单向的。

2011年沈阳工业大学C++期末考试题

2011年沈阳工业大学C++期末考试题
*(sp+3)+=2;
cout<<sp[3]<<endl;
结果:
2.
int y=4;
do{
cout<<'*' ;y--;}
while(y+2);
结果:பைடு நூலகம்
3.
int func(int *a,int n)
{
int sx=1;
for(int i=0;i<n;i++)
sx+=*a++;
return sx;
}
voidmain()
{int a[]={2,5,6,9,4,9,4,8,1,2,3,4};
cout<<(func(&a[4],3)+func(a,4))<<endl;
}
结果:
4.
class A
{public:
A()
{cout<<"A的构造函数"<<endl;}
};
classB
{A a;
public:
B(){cout<<"B的构造函数"<<endl;}
1.类Derived有哪些数据成员?
2.类Derived中哪些数据成员可以在类外被访问?
3.Base类和Derived类之间是什么关系?
班级
学号
姓名
得分
四、阅读程序,写出其运行结果。结果写在本题后(前5题2分,第6题4分,第7题6分,共20分)。
1.
inta[10]={9,8,7,6,5,4,3,2,1},*sp=a;

cpp期末复习题

cpp期末复习题

C++练习题一一、选择题1.C++源程序文件扩展名为( )。

A..h B..cpp C..1ib D..obj2.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是( )。

A.cin B.cout C.cerr D.clog3.对于类中没有设置访问属性的数据成员,其默认为( )。

A.public B.protected C.private D.static4.下列关于类和对象的叙述中,错误的是( )。

A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系5.类的构造函数是在定义该类的一个( )时被自动调用执行的。

A. 成员函数B. 数据成员C. 对象D. 友元函数6.派生类的对象可以访问以下哪种情况继承的基类成员( )。

A.私有继承的私有成员B.公有继承的私有成员C.私有继承的保护成员D.公有继承的公有成员7.int Func(int,int);不可与下列哪个函数构成重载( )。

A.int Func(int,int,int);B.double Func(int,int);C.double Func(double,double);D.double Func(int,double);8.假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( )。

A.int AA::a() B.int AA:a()C.AA::a() D.AA::int a()9.设函数void swap(int,int)将交换两形参的值,如两整型变量int a=10;int b=15;则执行swap(a,b)后,a、b值分别为( )。

A.10,10 B.10,15C.15,10 D.15,1510.当一个类A或函数f()被声明为另一个类B的友元后,类A或函数f()能够直接访问类B的( )。

A.只能是公有成员B.只能是保护成员C.只能是除私有成员之外的任何成员D.任何权限的成员二、填空题1.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用_________头文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11年C++期末训练题
第五部分:编程题
1.设计一个程序满足以下要求:
1)矩形类(Rectangle),有长(length)和宽(width),有计算其面积的函数Area(),并设其为虚函数。

2)以Rectangle类为基类派生一个长方体类(Cuboid),增加高(height)。

有与基类相同的覆盖函数Area(),计算该长方体的表面
积。

3)另外,以Rectangle类为基类派生一个正方体类(Cube),其中有变量side可选择以长(length)为边(1)或以宽(width)为边(2)。

有与基类相同的覆盖函数Area(),计算该正方体的表面积。

4)在主函数main()中,建立N(=5)个元素的Rectangle的指针数组rectArray[N]。

5)用适当的循环语句输入N个图形,由命令行选择三种图形中的一种输入。

输入有关参数,并创建该对象,并将其存放到数组rectArray
中。

6)计算该数组中所有图形的面积之和areaSum。

2.某高校校园内实行车辆进出管理,对职工(staff)车辆和外来(visit)
车辆实行不同的管理方法,并最后输出校园内车辆存放及收费情况。

要求编一个程序实现这种管理。

具体程序要求如下:
1)创建基类CarAccess,有3个数据成员:车号carno为8个字符的字符串变量;汽车数量carCount表示现存的车辆,为整数;fee表示
该车辆的收费情况,为浮点数。

carno和fee应为受保护的。

2)CarAccess构造时carCount++,析构时carCount--。

有虚函数Print(),负责输出carno。

3)CarAccess派生出两个类,一个为内部车辆记录StaffCarAccess,另一个为VisitCarAccess记录外部车辆。

4)StaffCarAccess中有变量carCount记录内部车辆在校园内的数目。

同样,在VisitCarAccess中也有carCount记录外部车辆在校园内的数
目。

5)StaffCarAccess中有函数Print()负责打印车号及每月缴费情况(monthlyRate);同样地,VisitCarAccess中也有Print()负责打印车
号及每次缴费情况(timesRate)。

6)main()函数中,假定出入次数为ACCESS_TIMES=100。

要求记录出
第 1 页共 2 页
入过程,并统计车辆情况。

具体要求如下:
①申请指针数组 carArray[ACCESS_TIMES]记录并初始化;
②处理出入情况:输入车辆出入选择(1—in, 2—out, 0—exit)。

对于车辆进入,则进一步询问是否内部车辆,分别创建
StaffCarAccess或VisitCarAccess对象;如果是车辆退出则
删除对象。

③显示校园内所有车辆数,以及内部车辆和外部车辆数目。

④调用Print()函数显示所有车辆的属性,车号carno、包月费
或每次缴费(getFee())。

⑤最后删除数组中对象。

第 2 页共 2 页。

相关文档
最新文档