您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++语言程序设计基础考试卷
考试试卷2007--2008学年2学期时间100分钟C++语言程序设计基础课程64学时3学分考试形式:闭卷专业年级:总分100分,占总评成绩56%注:此页不作答题纸,请将答案写在答题纸上一、单选题(本题24分,每小题1分)1.在面向对象的程序设计C++中,当用cin、cout输入、输出时程序头部要()A、#includestdio.hB、#includeiostream.hC、#includestdlib.hD、#includestring.h2.类的概念是()A、对象的抽象。B、同一类记录的集合。C、同一类数据的集合。D、所有对象的集合。3.C++源程序文件的扩展名为()A、.CPPB、.CC、.DLLD、.EXE4.有二维字符数组chars[4][6]={“zhang”,”gao”,”tang”,”wang”},执行程序cout*s[2],屏幕上显示________。A、gaoB、tangC、gD、t5.编译程序的功能是()A、将汇编语言程序转换为目标程序B、将汇编语言程序转换为高级语言程序C、将高级语言程序转换为目标程序D、将高级语言程序转换为汇编语言程序6.下面的函数声明中,哪一个是”voidBC(inta,intb);”的重载函数?()A、intBC(inta,intb)B、voidBC(inta,charb)C、floatBC(inta,intb,intc=0)D、voidBC(inta,intb=0)7.设a和b为整型变量,执行语句b=(a=2+3,a*4),a+5;后a和b的值为_______。A、5,10B、20,25C、5,25D、5,208.如果a=1,b=2,c=3,d=4,则条件表达式“ab?a:cd?c:d”的值为()A、3B、2C、1D、49.在inta[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是()A、3B、2C、6D、410.已知charc;char*constpc="asdf",()是正确的。A、pc="dfgh"B、*pc=‘b’C、*pc++=‘y’D、pc=&c11.inti=10;执行下列语句后,i的值是_______。switch(i){case9:i+=1;case10:i+=1;case11:i+=1;case12:i+=1;}A、10B、11C、12D、1312.对于int*pa[5]的描述,()是正确的。A、pa是一个指向数组的指针,所指向的数组是5个int型元素B、pa是一个指向某数组中的第5个元素的指针,该元素是int型变量C、pa[5]表示某个数组的第5个元素的值D、pa是一个具有5个元素的指针数组,每个元素是一个int型指针13.设有类型说明:enumcolor{red,yellow=3,white,black};则执行语句coutwhite’\n’;后输出的结果是________。A、4B、3C、2D、114.执行下列语句后的输出结果是()。inthot=100;int&rad=hot;hot+=100;coutradendl;A、0B、100C、200D、30015.下列对结构及其变量定义错误的是:()A、structMyStruct{B、structMyStruct{intnum;intnum;charch;charch;};}my;MyStructmy;C、struct{D、struct{intnum;intnum;charch;charch;}};my;structmy;16.执行以下程序:#includeiostream.hvoidmain(void){charc=0;coutc’\n’;}输出的结果是________。A、‘\0’B、语法错C、0D、一个空行17.下列关于指针运算的描述错误的是:()A、在一定条件下,两个指针可以相加B、在一定条件下,两个指针可以进行关系运算C、在一定条件下,指针可以为空D、在一定条件下,两个指针可以相互赋值18.在C++语言中,对函数参数默认值描述正确的是:()A、函数参数的默认值只能设定一个B、一个函数的参数若有多个,则参数默认值的设定可以不连续C、函数参数必须设定默认值D、在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值19.关于函数的所有缺省参数的叙述_____正确:A、只能出现在参数表的最左边B、只能出现在参数表的最右边C、必须用非缺省的参数隔开D、都不对20.不能作为函数重载判断依据的是:()A、参数个数B、参数类型C、函数名字D、返回类型21.以下程序的输出结果是:()#includeiostream.hvoidprt(int*x,int*y,int*z){cout++*x,++*y,*z++endl;}inta=10,c=20,b=40;voidmain(){prt(&a,&b,&c);prt(&a,&b,&c);}A、11,42,31B、11,41,20C、11,21,40D、11,41,2112,21,4112,42,2011,21,4112,42,2222.以下程序的输出结果是:()#includeiostream.hvoidfunc(char**m){++m;cout*mendl;}voidmain(){staticchar*a[]={morning,afternoon,evening};char**p;p=a;func(p);}A、字符o的起始地址B、字符a的起始地址C、字符oD、afernoon23.以下程序的输出结果是:()#includeiostream.hintfun(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}voidmain(){coutfun(abc)endl;}A、0B、1C、2D、324.在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用________合适。A、内嵌函数B、重载函数C、递归调用D、嵌套调用二、填空题(本题22分,每空2分)1.在C语言中,编程的单位是____;在C++语言中,编程的单位是______。2.对类中的成员函数和属性的访问是通过Public、Private和___protected__这3个关键字来控制的。3.一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为___私有__权限,而把成员函数(方法)定义为Public权限。4.在类定义中,数据和成员函数默认权限是__私有_______。5.类中的构造函数是一个特殊的成员函数,它由类的对象new调用,它的作用是_____初始化_。6.在定义类的对象时,C++程序将自动调用该对象的___构造函数___函数初始化对象自身。7.在撤销类的对象时,C++程序将自动调用该对象的___析构函数___函数。8.非成员函数应声明为类的__友元函数______才能访问这个类的private成员。9.在下面程序的横线处填上适当的语句,使该程序执行结果为10。#includeiostream.hclassMyClass{public:___________________//为x置值intGetNum(){returnx;};//取x值private:intx;};voidmain(){MyClassmy(10);coutmy.GetNum()endl;}三、阅读程序,严格按输出顺序与格式写出程序运行结果(本题30分,每小题6分)1.下列程序的输出结果是____(1)_____。#defineMUL(x,y)x*y#includeiostream.hvoidmain(void){intx=4,y=6;coutMUL(x+1,y-3)'\n';}2.下面函数的功能是________(2)________。sss(char*s,char*t){while((*s)&&(*t)&&(*t++==*s++));return;}3.[程序]#includeiostream.hintc=-1;voidf(int*a,intb){staticintc=2;(*a)++;c--;cout*a'\t'b'\t'cendl;}voidmain(void){inti;for(i=0;i=1;i++)f(&i,c);coutc=cendl;}程序执行后输出的第一行是_____(4)_____;输出的最后一行是____(5)_____。4.[程序]下面程序的输出结果是_____(6)_____。#includeiostream.hintfuna(inta,intb){return(a+b);}intfunb(inta,intb){return(a-b);}intsub(int(*f)(int,int),intx,inty){return((*f)(x,y));}voidmain(void){intx,(*p)(int,int);p=funb;x=sub(funa,8,3);x+=sub(p,9,3);coutx=x'\n';}5.[程序]下面程序的输出结果是_____(7)_____。#includeiostream.hintaa[3][3]={{2},{4},{6}};voidmain(void){inti,*p=&aa[0][0];for(i=0;i2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;}cout*pendl;}四、程序填空(注意每个空栏只能填写1条简单语句或表达式。本题30分3分)1.下面函数的功能是从数组arr(有n个元素)中找出最小元素,并返回其引用。int&findmin(intarr[],intn){intpos=0;for(inti=1;i=n-1;++i)if(_______(1)_______)pos=i;return_____(2)_____;}2.本程序中的函数find是判断数组a中的整数是升序、降序还是无序的,如果是升序返回1,降序返回2,无序返回3。函数find中的形参n为数组a中有效整数的数量,a中从a[0]到a[n-1]包含待判断的整数。intfind(inta[],intn){ints,i;if(a[0]a[1])s=1;elses=2;if(s==1){i=1;while(in-1){if(______(3)_____){s=3;break;}______(4)_____;}}if(s==2)for(i=1;_____(5)____;i++)if(a[i]a[i+1]){_______(6)_____;break;}returns;}3.将一条链表上相邻的两个结点合并为一个结点,即将第一个结点与第二个结点合并,将第三个结点与第四个结点合并,…..。如链表上结点个数为奇数,则最后一个结点不合并,直接作为合并后链表上的最后一个结点。链表结点的数据结构为:structnode{intdata;structnode*next;};以下merge()函数的输入参数h指向要合并的链表的链首。voidmerge(node*h){node*p1,*p2;if(__________(7)_________)returnh;p1=h;p2=h-next;while(p2){p1-data+=p2-data;p1-next=p2-next;deletep2;p1=_______(8)______;if(_______(9)_______)p2=______(10)_______;elsep2=null;}return;答案一、单选题(本题24分,每小题1分)1、A,2、A,3、A,4、D,5、C,6、B,7、C,8、A,9、C,10、B,11、D,12、D,13、A,14、C,15、D,16、D,17、A,18、D,18
本文标题:C++语言程序设计基础考试卷
链接地址:https://www.777doc.com/doc-2904376 .html