第1页共10页—南昌大学考试试卷—教师填写栏课程编号:T61050004试卷编号:课程名称:C++程序设计开课学院:信息工程学院考试形式:闭卷适用班级:全校非计算机专业考试时间:120分钟试卷说明:1、本试卷共8页。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。题号一二三四五六七八九十总分累分人签名题分30203020100得分考生填写栏考生姓名:考生学号:所属学院:所属班级:所属专业:考试日期:考生须知1、请考生务必查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、严禁代考,违者双方均开除学籍;严禁舞弊,违者取消学位授予资格;严禁带手机等有储存或传递信息功能的电子设备等入场(包括开卷考试),违者按舞弊处理;不得自备草稿纸。考生承诺本人知道考试违纪、作弊的严重性,将严格遵守考场纪律,如若违反则愿意接受学校按有关规定处分!考生签名:第2页共10页(说明:请将第1-3大题的答案写到答题纸上,第4大题的答案写在原题位置。)一、单项选择题:(每小题2分,共30分)得分评阅人1、以下叙述中正确的是()。A.在对一个C++程序进行编译的过程中,可发现注释中的拼写错误B.在C++程序中,main函数必须位于程序的最前面C.C++本身没有输入输出语句D.C++程序的每一行只能写一条语句2、以下叙述中不正确的是()。A.在C++程序中,逗号运算符的优先级最低B.在定义变量时,必须给变量赋初值C.在C++程序中,count和Count是两个不同的变量D.表达式1/3+1/3+1/3的结果为03、用C++语言编写的代码程序()。A.可以执行B.经过编译解释才能执行C.经过编译可执行D.是一个源程序4、以下关于函数参数的叙述不正确的是()。A.实参只能是常数B.函数的形参命名可以任意,只要符合标识符规则C.形参的值与实参的值不一定时刻保持一致D.函数参数的值可以是内存单元地址5、设”inta=12;”,则执行完语句”a+=a-=a*a;”后,a的值是()。A.-132B.144C.-264D.2886、以下函数的功能是()。intfunction(char*x){char*p=x;while(*p++);return(p-x-1);}A.求字符串的长度B.将字符串x连接到字符串p后面C.将字符串x复制到字符串p中D.将字符串x反向存放7、已知教师记录的描述为:structteacher{intid;charname[20];struct{inty:intm:intd:}birth;}t;将变量t中的d成员赋值为12的语句为()。A.d=12B.birth.d=12C.t.d=12D.t.birth.d=12第3页共10页8、在以下选项中,与k=n++完全等价的表达式是()。A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+19、已定义inta,b;下列switch语句中格式正确的是()。A.switch(a)B.switch(a==b){caseb+1:a--;break;{default:a-b}caseb+2:a++;break;}C.switch(a/10+b)D.switch(a*a){case5:a-b;{case1,2:++a;default:a+b;}case3,4:++b;}10、以下正确的函数原型声明语句是()。A.doublefun(intx,inty)B.doublefun(intx;inty)C.doublefun(int,int);D.doublefun(intx,y);11、已知charc;char*constpc=“Howareyou!”,正确的是()。A.pc="Nanchang"B.*pc=‘A’C.*pc++=‘B’D.pc=&c12、在下面的二维数组定义中,正确的是()。A.inta[5][];B.inta[][5];C.inta[][3]={{1,3,5},{2}};D.inta[](10);13、以下有关类和对象的叙述,不正确的是()。A.任何一个对象都归属于一个具体的类B.类的数据成员不允许是另一个类的对象C.类与对象的关系和数据类型与变量的关系相似D.一个类可被实例化成多个对象14、复制构造函数的形参是()。A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名15、下列关于构造函数的叙述,错误的是()。A.构造函数可以设置默认参数B.构造函数在创建对象时由系统自动调用C.构造函数可以重载D.构造函数可以对静态数据成员进行初始化第4页共10页二、填空题:(每空1分,共20分)得分评阅人1、C++程序test.cpp中只有一个函数,则这个函数的名称是【1】。2、设有定义:intx,y;则执行y=(x=2,x++,x+3);语句后,y的值是【2】。3、设有定义:intn=2;则n++的值是【3】,n的值是【4】。4、表达式18/4*sqrt(9.0)/5的值的数据类型是【5】,其值是【6】。5、与m%n等价的C++表达式为【7】。6、写出定义结构体类型时所用的C++关键字【8】。7、已知以下枚举类型定义,枚举量Fortran的值是【9】。enumlanguage{Basic=3,Assembly,Ada=10,Cobol,Fortran};8、在c++中,除具有【10】、【11】语句的函数不能说明为内联函数外,其它函数都可以说明为内联函数。9、在定义类的对象时,C++程序将自动调用该对象的【12】_函数初始化对象;在撤销类的对象时,C++程序将自动调用该对象的【13】__函数。10、外部函数应声明为类的【14】才能访问这个类的private成员。11、在C++类中,利用【15】描述对象的特征,利用【16】描述对象的行为。12、语句段charc[20]=Nanchang;c[3]=’\0’;coutc;的结果是【17】。13、在用class定义一个类时,数据成员和成员函数的默认访问权限为【18】。14、下列fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组y中返回。二进制的最低位放在下标为0的元素中,请填空。(说明:将十进制数转化为二进制数的方法是“除2取余法”)voidfun(intx,inty[]){inta=0,b;do{b=【19】;y[a++]=b;x=【20】;}while(x);}第5页共10页三、程序阅读题:(每小题5分,共30分)得分评阅人请写出下列程序的运行结果。程序1:#includeiostream.hvoidmain(){for(inti=1,s=0;i=15;i++){if(i%2==0||i%3==0)continue;couti’’;s+=i;}cout”\ns=”sendl;}程序2:#includeiostream.hclassMyclass{intA;staticintB;public:Myclass(intk){inti;A=k;for(i=0;i5;i++)B+=k;}staticvoidDisplay(Myclassobj){coutA=obj.A,B=Bendl;}};intMyclass::B=10;voidmain(){MyclassobjA(2);Myclass::Display(objA);MyclassobjB(3);Myclass::Display(objB);}程序3:#includeiostreamusingnamespacestd;#defineM(x+y)#defineNx-yvoidmain(){ints,x=4,y=6;s=3*M+4*N;couts=sendl;}第6页共10页程序4:#includeiostreamusingnamespacestd;intcount=0;classPoint{intx,y;public:Point(){x=1;y=1;count++;}~Point(){count--;}friendvoiddisplay();};voiddisplay(){cout”Thereare”count”Points.”endl;}voidmain(){Pointa,b;display();{Pointb[5];display();}display();}程序5:#includeiostream.hvoidmain(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,6,9,12},{5,4,3,6}};inti,s=0;for(i=0;i4;i++)s+=aa[i][2];couts=s;}程序6:#includeiostreamusingnamespacestd;longfun(intn){longf;if(n0)coutinputerror!;elseif(n==0)f=1;elsef=n+(n-1)*fun(n-1);returnf;}voidmain(){coutfun(4)endl;coutfun(5)endl;}第7页共10页四、程序设计:(每小题10分,共20分)得分评阅人1、编写一个程序,完成以下要求:1)定义一个数组,用循环实现从键盘上输入10个正整数并放入数组;2)输出该数组中元素的最大值及数组元素的平均值。2、定义一个矩形类Rect,该类有两个数据成员:长(Length,float类型)、宽(Width,float类型),定义一个构造函数,用于初始化矩形对象,设置矩形的长和宽,另外定义一个成员函数用于计算矩形的面积,该函数原型为:doubleGetS()。要求在主程序中定义并初始化一个矩形对象,并输出该矩形的面积。第8页共10页答题卡一、单项选择题:(每小题2分,共30分)得分评阅人二、填空题:(每空1分,共20分)得分评阅人【1】【2】【3】【4】【5】【6】【7】【8】【9】【10】【11】【12】【13】【14】【15】【16】【17】【18】【19】【20】三、程序阅读题:(每小题5分,共30分)得分评阅人1、2、3、4、5、6、123456789101112131415第9页共10页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、15711131719S=732、A=2,B=20A=3,B=353、S=404、Thereare2Points.Thereare7Points.Thereare2Points.5、S=226、31129四、程序设计题(每小题10分,共20分)1、#includeiostream1C2B3D4A5C6A7D8A9C10C11B12C13B14C15D第10页共10页usingnamespacestd;//1分voidmain(){inti,max,a[10];//1分floatavg,s=0;//1分for(i=0;i10;i++)cina[i];//1分max=a[0];//1分for(i=0;i10;i++)//1分{s+=a[i];//1分if(a[i]max)max=a[i];//1分}avg=s/10;//分coutmax=maxendl;coutavg=avgendl;//1分}2、#includeiostream.h//1分classRect//1分{private:floatLength,Width;//1分public:Rect(floatL