第1页共9页南昌大学2010~2011学年第一学期期末考试试卷试卷编号:(B)卷课程编号:课程名称:C++程序设计考试形式:闭卷适用班级:菲计算机专业姓名:学号:班级:学院:专业:考试日期:题号一二三四五六七八九十总分累分人签名题分30203020100得分考生注意事项:1、本试卷共7页,请查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、单项选择题(每小题2分,共30分)得分评阅人1、C++源程序从上机到得到结果的几个操作步骤依次是。A)编译、编辑、连接、运行B)编辑、编译、连接、运行C)编译、运行、编辑、连接D)编辑、运行、编辑、连接2、以下叙述正确的是。A)对一个C++程序编译过程中,可发现注释中的拼写错误;B)在C++程序中,main函数必须位于程序的最前面;C)C++语言本身并没有输入/输出语句;D)C++程序的每行只能写一条语句;3、下列表达式为真的是。A)53B)2*3=6C)(7==9)&&(40)D)(10!=2+8)||(53)4、在下面循环语句中循环体执行的次数为。inti;for(i=0;in;i++)if(in/2)break;A)n/2B)n-1C)n/2-1D)n/2+15、声明类test的拷贝构造函数的正确形式是。A)inttestB)voidtestC)test(void)D)test(test&)说明:请将1-3大题的答案写到答题卡上第2页共9页6、C++中函数返回值的类型是由决定的。A)该函数定义时的类型B)return语句中表达式的类型C)调用函数时的调用语句D)系统根据结果7、关于成员函数描述,错误的是。A)成员函数一定是内联函数B)成员函数可以重载C)成员函数可以设置参数的默认值D)成员函数可以是静态的8、如果没有显式定义构造函数,C++编译器就。A)出现编译错误B)没有构造函数C)必须显式定义D)隐式定义默认的构造函数9、在情况下适宜采用inline定义内联函数。A)函数体含有循环语句B)函数体含有递归语句C)函数代码少、频繁调用D)函数代码多、不常调用10、对于double(*p)[10];的描述,是正确的。A)p是一个指向数组的指针,所指向的数组是10个double型元素;B)p是一个指向某个数组中第10个元素的指针,该元素是double型变量;C)p[5]表示某个数组的第10个元素的值;D)p是一个具有10个元素的指针数组,每个元素是一个double型指针;11、下述关于开关语句(switch)的描述中,是正确的。A)开关语句中每个语句序列中必须有break语句;B)开关语句中default子句可以没有,也可以有一个;C)开关语句中default子句只能放在最后;D)开关语句中case子句后面的表达式可以是整形表达式。12、复制构造函数的形参是。A)某个对象名B)某个对象的成员名C)某个对象的引用D)某个对象的指针名13、假定变量m定义为“intm=7;”,则定义变量p的正确语句为。A)intp=&m;B)int*p=&mC)int&p=*m;D)int*p=m;14、假定变量b和pb定义为“intb[10],*pb=b;”,要将24赋值给b[1]元素中,不正确的语句是。A)*(pb+1)=24;B)*(b+1)=24;C)*++b=24;D)*++pb=24;15、设有以下定义枚举型,则元素green值是。enumcolor{red=2,yellow,blue,green};A)5B)4C)3D)以上答案均不正确第3页共9页二、填空题(每空2分,共20分)得分评阅人1、非成员函数应声明为类的______才能访问这个类的private成员。2、类中数据成员的默认访问权限是。3、构造函数的主要作用是。4、语句charc[20]=Goodmorning;c[4]=0;coutc;的执行结果是。5、已知变量x的值是2,则表达式x+=3,x++,x+2的值是。6、设px是指向一个类动态对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的。7、假定用户没有给一个名为AA的类定义构造函数,则系统为其定义的默认构造函数形式为__。8、若需要把一个函数“voidF();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句。9、以下程序实现从键盘输入两个整数a和b,输出其中大者的功能(不考虑相等的情况)#includeiostream.hvoidmain(){;cinab;if()cout“最大值为:”a;elsecout“最小值为:”b;}三、程序阅读(每小题6分,共30分)得分评阅人1、写出下面程序的运行结果。#includeiostream.h#defineM(x+y)#defineNx-yvoidmain(){ints,x,y;x=4;y=5;s=3*M+4*N;couts=sendl;}第4页共9页2、写出下面程序的运行结果。#includeiostream.hvoidmain(){inta,b,c;c=2,c+=8;a=5;b=8;a*=3;b/=3;c%=3;couta,b,cendl;}3、写出下面程序的运行结果。#includeiostream.hvoidmain(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,8,6}};inti,s=0;for(i=0;i4;i++)s+=aa[i][2];cout”s=”s;}4、写出下列程序的运行结果。#includeiostreamusingnamespacestd;classPoint{public:Point(){X=Y=0;coutDefaultConstructorcalled.endl;}Point(intxx,intyy){X=xx;Y=yy;coutConstructorcalled.endl;}~Point(){coutDestructorcalled.endl;}intGetX(){returnX;}intGetY(){returnY;}voidMove(intx,inty){X=x;Y=y;}private:intX,Y;};第5页共9页voidmain(){Point*Ptr=newPoint[2];Ptr[0].Move(5,10);Ptr[1].Move(15,20);coutPtr[1].GetX()'\t'Ptr[1].GetY()endl;delete[]Ptr;}5、写出下面程序的运行结果。#includeiostream.hclassA{public:intx;A(inti){x=i;}voidfun1(intj){x+=j;coutfun1:xendl;}voidfun2(intj){x+=j;coutfun2:xendl;}};voidmain(){AC1(3),C2(6);void(A::*pfun)(int)=A::fun1;(C1.*pfun)(5);pfun=A::fun2;(C2.*pfun)(10);}第6页共9页四、程序设计题(每小题10分,共20分)得分评阅人1、编写一个计算n!的函数,函数原型为:longfac(intn),并在主程序中调用该函数,计算1-6的阶乘之和(即S=1!+2!+3!+…+6!)。2、设计一个时钟类Timer,该类有数据成员Hour,Minute,Second,定义成员函数SetTime()设置时间,定义DispTime()显示时间。在主程序中定义一个时钟对象,设置并显示时间。第7页共9页答题卡一、单项选择题(每小题2分,共30分)得分评阅人二、填空题(每空2分,共20分)得分评阅人1、2、3、4、5、6、7、8、9、、三、程序阅读(每小题6分,共30分)得分评阅人1、2、3、4、5、123456789101112131415第8页共9页2010-2011-1学期《C++程序设计》期末考试参考答案(B卷)一、单项选择题(每小题2分,共30分)1B2C3B4D5D6A7A8D9C10A11B12C13B14C15A二、填空题(每空2分,共20分)1、友元函数2、私有的(private)3、初始化对象4、Good5、86、析构函数7、AA(){}8、friendvoidF();9、inta,b;、a=b三、程序阅读题(每小题6分,共30分)1、S=382、15,2,13、S=284、DefaultConstructorcalled.DefaultConstructorcalled.1520Constructorcalled.Constructorcalled.5、fun1:8fun2:16四、程序设计题(每小题10分,共20分)1、#includeiostream.hlongfac(intn){inti,s=1;for(i=1;i=n;i++)s*=i;returns;}voidmain(){inti,s=0;for(i=1;i=6;i++)s+=fac(i);couts=sendl;}2、第9页共9页#includeiostream.hclassTimer{private:intHour,Minute,Second;public:voidSetTime(inth,intm,ints){Hour=h;Minute=m;Second=s;}voidDispTime(){coutHour:Minute:Secondendl;}};voidmain(){TimerT1;T1.SetTime(10,20,30);T1.DispTime();}