长沙理工大学考试试卷………………………………………………………………………………………………………………试卷编号1拟题教研室(或教师)签名教研室主任签名………………………………………………………………………………………………………………课程名称(含档次)C++程序设计课程代号0806005专业计算机科学与技术层次(本、专)本考试方式(开、闭卷)闭第1页共6页一、填空题(15分)1、使用传统的结构化程序设计方法设计程序的步骤是自上而下、逐步细化、模块化设计2、(2分)“封装”指的是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员3、可以让新类继承已定义的类的数据和方法,这个新类称为子类,原来的类称为基类。新类可以从一个类中派生,这叫派生类,也可以从多个类中派生,称为多重派生_4、指针类型变量用于存储数据的地址,在内存中它占有4存储单元5、类有三种继承方式,分别是:private、public、protected6、用C++表达式表达:5x2+8xy/8-xy5*x*x+8*x*y/8-x*y二、选择题(20分)1、关于函数的返回值说法正确的是:(A)A)由return语句返回时,只带回一值,其类型在函数定义时确定B)其类型由调用表达式决定C)函数可以没有返回值,这时在函数定义,函数的类型说明就没必要了D)函数调用就要有返回值,否则调用就没意义了2、下列合法的标识符是:(D)A)abde+B)#KSJFC)67KDJD)DK3-3、关于结构化程序设计方法说法错误的是(C)A)在数据处理过程中,采用的是自顶向下、分而治之的方法B)将整个程序按功能划分为几个可独立编程的子过程模块C)以“对象”或“数据”为中心D)数据和处理数据的过程代码是分离的、相互独立的实体4、运算符重载是对已有的运算符赋予多重含义,因此(C)A)可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义B)可以改变一个已有运算符的优先级和操作数个数C)只能重载C++中已经有的运算符,不能定义新运算符D)C++中已经有的所有运算符都可以重载5、关于C++程序说法不正确的是:(D)A)C++程序由函数构成,但只有一个main()函数B)C++程序中main()函数可以在程序的任何位置C)C++程序由main()函数开始执行,由main()结束执行D)main()都是没有参数的6、已知a=4,b=6,c=8,d=9,则“(a++,ba++&&cd)?++d:ab”的值为:(D)C++程序设计试卷第2页共6页A)9B)6C)8D)07、下面有关重载函数的说法中正确的是(D)A)重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;C)重载函数必须有不同的形参列表D)重载函数名可以不同;8、C++语言的跳转语句中,对于break和continue说法正确的是(B)A)break语句只应用于循环体中B)continue语句只应用于循环体中C)break是无条件跳转语句,continue不是D)break和continue的跳转范围不够明确,容易产生问题9、long[int]的字节数是(A)A)4B)1C)0D)810、下列非法的字符常量是(B)A)‘#’B)‘\’C)a’D)‘A’三、阅读程序填空题(15分)1、下面程序是输出100内能被3整除且个位数是6的所有整数,请将程序补充完整#includeiostream.hvoidmain(){inti,j;for(i=0;__i10__;i++){j=i*10+6;if(_____j%3!=0_____)continue;else______coutjend1;}}2、程序输出结果为counstructingobject:x=1请将程序补充完整#includeiostream.hclassSample{intx;public:Sample(inta){___x=a;_____________coutconstructingobject:x=xendl;}};voidfunc(intn){________staticSampleobj(n);_____}voidmain(){C++程序设计试卷第3页共6页func(1);func(10);}3、程序输出结果为:A=2,B=7A=5,B=7请把程序补充完整#includeiostream.hclassSample{intA;staticintB;public:Sample(inta){A=a,B+=a;}staticvoidfunc(Samples);};voidSample::func(Samples){_____coutA=A,B=Bendl;_________________________________}intSample::B=0;voidmain(){Samples1(2),s2(5);______Sample::func(s1);__________________________________Sample::func(s2);}四、阅读程序写出程序运行结果(20分)1、写出以下程序运行结果://program1_1.cpp#includeiostream.hvoidmain(){coutLet'slearntowriteaC++Program.;cin.get();}运行结果是______Let'slearntowriteaC++Program.__________________________________2、写出以下程序运行结果:#includeiostream.hvoidmain(){inti,n;n=0;for(i=1;i=5;i++)n=n+i;coutn=nendl;}C++程序设计试卷第4页共6页运行结果为_____n=15_______________3、写出以下程序运行结果:#includeiostream.hclassSample{intn;public:Sample(inti){n=i;}friendintadd(Sample&s1,Sample&s2);};intadd(Sample&s1,Sample&s2){returns1.n+s2.n;}voidmain(){Samples1(10),s2(20);coutadd(s1,s2)endl;}运行结果为_________30___________4、分析以下程序的执行结果#includeiostream.hclassSample{intx,y;public:Sample(){x=y=0;}Sample(inta,intb){x=a;y=b;}~Sample(){if(x==y)coutx=yendl;elsecoutx!=yendl;}voiddisp(){coutx=x,y=yendl;}};voidmain(){Samples1(2,3);s1.disp();}程序运行结果______x=2,y=3C++程序设计试卷第5页共6页x!=y__________________________________五、程序题(30分)1、编写一个程序,该程序的输入有三个整数,找出其中最大的两个整数并输出这两个整数的和2、设计程序给职工加工资,若其工资大于3500,则加300元,若在3000~3500之间,则加600元,若3000元以下,则加800元3、用C++语言的类编写一个程序,该程序从键盘读入两个整数,判断这两个整数是否相等,并输出整数的值,要求先输出整数的值。(1)#includeiostreamusingnamespacestd;intmax(inta,intb){if(ab)a=b;returna;}voidmain(){inta,b,c;cout请输入三个整数:endl;cinabc;if(max(a,b)c){coutmax(a,b)cendl;coutmax(a,b)+cendl;}elseif(max(a,c)b){coutmax(a,c)bendl;coutmax(a,c)+bendl;}elsecoutmax(b,c)aendl;coutmax(b,c)+aendl;}(2).#includeiostreamusingnamespacestd;intadd(intmoney){inta;if(money3500)a=300;elseif(money=3000&&money=5000)C++程序设计试卷第6页共6页a=600;elsea=800;returna;}intmain(){intmoney;intx;cinmoney;x=add(money);cout应加薪x元endl;}(3).#includeiostreamusingnamespacestd;classnum{public:num(intx,inty){a=x;b=y;coutabendl;}~num(){if(ab)coutmax=aendl;elsecoutmax=bendl;}private:inta;intb;};voidmain(){inta,b;cinab;numnum1(a,b);}