广东海洋大学2005年第二学期c++试卷_第1页
广东海洋大学2005年第二学期c++试卷_第2页
广东海洋大学2005年第二学期c++试卷_第3页
广东海洋大学2005年第二学期c++试卷_第4页
广东海洋大学2005年第二学期c++试卷_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东海洋大学2005年第二学期《C++程序设计》课考试题(A卷)一、选择题(每题2分,共36分)TOC\o"1-5"\h\z1、由C++目标文件连接而成的可执行文件的缺省扩展名为。AcppBexeCobjDlik2、在下面的函数声明中,存在着语法错误的是。AvoidBC(inta,int);BvoidBD(int,int);CvoidBE(int,int=5);DintBF(intx;inty);3、假定AB为一个类,则该类的拷贝构造函数的声明语句为。AB&(constABx);B.AB(constABx);C.AB(constAB&x);D.AB(constAB*x);4、对于结构中定义的成员,其隐含访问权限为。ApublicBprotectedCprivateDstatic5、在下列表示引用的方法中,是正确的。已知:intm=10;int&x=m;B.int&y二10;C.int&z;D.float&t二&m;6、对于C/C++语言的函数,下列叙述中正确的是。函数的定义不能嵌套,但函数调用可以嵌套函数的定义可以嵌套,但函数调用不能嵌套函数的定义和调用都不能嵌套函数的定义和调用都可以嵌套7、在一个被调用函数中,关于return语句使用的描述,是错误的。被调用函数中可以不用return语句被调用函数中可以使用多个return语句被调用函数中,如果有返回值,就一定要有return语句被调用函数中,一个return语句可以返回多个值给调用函数8、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用A.内联函数B.重载函数C.递归调用D.嵌套调用9、下列的各类函数中,不是类的成员函数。A.构造函数B.析构函数C.友元函数D.拷贝构造函数10、不是构造函数的特征A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置缺省参数D.构造函数必须指定类型说明11、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,是正确的。A.voidprint()const;B.constvoidprint();C.voidconstprint();D.voidprint(const);12、关于new运算符的下列描述中,是错的。它可以用来动态创建对象和对象数组使用它创建的对象和对象数组可以使用运算符delete删除使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值13、下列for循环的次数为。for(i=0,x=0;!x&&i〈=5;i++)A.5B.6C.1D.无限14、对于"int*pa[5];"的描述中,是正确的。pa是一个指向数组的指针,所指向的数组是5个int型元素pa是一个指向某数组中第5个元素的指针,该元素是int型变量pa[5]表示某个元素的第5个元素的值pa是一个具有5个元素的指针数组,每个元素是一个int型指针

TOC\o"1-5"\h\z15、有以下程序段:inta[10]={l,2,3,4,5,6,7,&9,10},*p=&a[3],b;b=p[6];则b中值是。A、10B、6C、8D、916、设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是。printf("%d,%d,%d\n",++x,++y,x--);A、10,4,11B、11,4,11C、10,4,10D、9,4,1017、下面的程序,输出结果为。#include〈stdio.h〉voidfun(char*p){chart;f(*p!='\0'){t二*p++;fun(p);辻(t!='\0')printf("%c",t);}}voidmain(){char*a;a="1234";fun(a);}A、运行出错B、1324C、4231D、432118、下面的程序,输出结果为。#include〈stdio.h〉voidmain(){int*p,i;inta[]={2,6,8,7,9};p=a;i=2;printf("%d\t%d\t%d\t%d\t%d\n",*(a+i),a[p-a],*p++,*++p,*(&a[i]));}A、86668B、82288C、82688D、86868二、填空(后3题每空2分,其余每空1分,共20分)TOC\o"1-5"\h\z1、已知'A'('Z'的ASCII码为65(90,当执行“intx='D'+5;"语句后x的值为。2、表达式float(25)/4和int(14.6)%5的值分别为和。3、关系表达式x+y>5的相反表达式为。4、举出C++中两种用户自定义的数据类型:、5、执行“typedefintABC[10];”语句把ABC定义为具有10个整型元素的,那么语句“ABCa;”等价的语句是:。6、当一个类对象离开它的作用域时,系统将自动调用该类的。7、在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的特性。8、使用const语句定义一个标识符常量时,则必须对它同时进行。9、设变量均为int型,则表达式(b=51,i=b++)的值是。

10、全局变量和若不显示初始化,则自动初始化为0。11、若需要把一个函数“voidFO;”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:12、假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为。13、假定AB为一个类,则执行“ABa[10];”语句时,系统自动调用该类构造函数的次数为。14、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为三、读程题(每小题5分,共20分)1、#include〈iostream.h〉voidmain(){ints=0;for(inti=1;i〈=5;i++)s+=i*i;cout〈〈"s二"〈〈s〈〈endl;}该程序的运行结果是:2、#include〈iostream.h〉#include〈stdlib.h〉doubleSD(inta,intb,charop){doublex;switch(op){case'+':x=double(a)+b;break;case'-':x=double(a)-b;break;case'*':x=double(a)*b;break;case'/':if(b)x=double(a)/b;elseexit(1);break;default:exit(1);}returnx;}voidmain(){intx=20,y=8;cout〈〈SD(x,y,'-')〈〈"";

cout〈〈SD(x,y,'*')〈〈"";cout〈〈SD(x+y,y,'/')〈〈endl;}该程序的运行结果是:3、#include〈iostream.h〉#include〈string.h〉structWorker{charname[15];//姓名intage;//年龄floatpay;//工资};voidmain(){Workerx;char*t="WeiRong";intd=45;floatf=1235;strcpy(,t);x.age=d;x.pay=f;cout〈〈〈〈""〈〈x.age〈〈""〈〈x.pay〈〈endl;}该程序的运行结果是:4、#include〈iomanip.h〉voidLG(int*&a,int&m){a=newint[m];int*p=a;for(inti=0;i〈m;i++)*p++=i*i;}voidmain(){int*b,n=5;LG(b,n);for(inti=0;i〈n;i++)cout〈〈b[n-iT]〈〈"";cout〈〈endl;delete[]b;}该程序的运行结果是:四、读程填空,将答案直接写在题中的横线上。(共9分)1、斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。(3分)#include〈iostream.h〉#include〈iomanip.h〉voidmain(){

intf,fl,f2,i;cout〈〈"斐波那契数列的前20个数为:\n";f1=0;f2=1;cout〈〈setw(8)〈〈fl〈〈setw(8)〈〈f2;for(i=3;i〈=20;i++){TOC\o"1-5"\h\zf=;cout〈〈setw(8)<<f;if()cout〈〈endl;fl=f2;f2二;}cout〈〈endl;}2、已知一个类的定义如下:(6分)#include〈iostream.h〉classAA{inta[10];intn;public:voidSetA(intaa[],intnn)//用数组aa初始化数据成员a,用nn初始化数据成员n{}intMaxA();//从数组a中前n个元素中查找最大值voidSortA();//对数组a中前n个元素进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素,最后输出一个换行{……}};intAA::MaxA()voidAA::SortA(){}voidmain(){inta[10]={23,78,46,55,62,76,90,25,38,42};__;x.SetA(a,8);int;;x.PrintA();cout〈〈m〈〈endl;}该程序运行结果为:232546556276789090五、编程题。(15分)按照下列要求编写程序:写一个函数voidstrsort(char*s),调用该函数能将给定的字符串按由小到大排序。(其中:该函数参数s:为指向所要排序的字符串的首地址。该函数名为:strsort该函数返回类型为:void)(5分)通过调用上面排序函数编程实现:将从键盘任意输入的两字符串先按由小到大排序输出,再和并,并将和并后的字符串也按由小到大排序输出。(10分广东海洋大学2005年第二学期《C++程序设计》课程考试(A)答案及评分标准一、选择题(每题2分,共36分)评分标准:选对者得2分,否则不得分。1-5:BCCAA6-10:ADACD11-15:ADBDA16T8:CDA二、填空(后3题每空2分,其余每空1分,共20分)评分标准:每题与参考答案相同者得分,否则不得分。1、732、6.2543、x〈=54、类结构5、数组inta[10];6、析构函数7、封装性8、初始化9、5110、静态变量

11、friendvoidF();12、4613、1014、Worker*r=newWorker[n];三、读程题(每小题5分,共20分)评分标准:每题与参考答案的数据和显示格式完全相同者得分,否则酌情给分。1、s=552、121603.53、WeiRong4512354、169410四、读程填空。(共9分)评分标准:每题与参考答案完全相同者得分,否则酌情给分。1、(1)f1+f2(2)i%5==0(3)f1+f22、(1)AAx;(2)m=x.MaxA();(3)x.SortA();五、编程题。(任选15分的题)请根据编写情况酌情给分。1、voidstrsort(char*p){intij,n;chart,*w;w=p;for(n=0;*w!二'\0';n++)//求串长nw++;for(i=0;i〈n-1;i++)〃对串由小到大排序for(j二i+1;j〈n;j++)if(p[i]〉p[j]){t=p[i];p[i]二p[j];p[j]=t;}}2、#include〈iostream.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论