您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++程序设计试卷10
长沙理工大学考试试卷………………………………………………………………………………………………………………试卷编号10拟题教研室(或教师)签名教研室主任签名………………………………………………………………………………………………………………课程名称(含档次)C++程序设计课程代号0806005专业计算机科学与技术层次(本、专)本考试方式(开、闭卷)闭第1页共6页一、填空题(每空1分,共15分)。1.已知'A'~'Z'的ASCII码为65~90,当执行charch=14*5+2;coutchendl;语句序列后,得到的输出结果为_________.2.float和double类型的长度分别为____个字节和______个字节。3.表达式x=x+1表示成增量表达式为___________.4.关系表达式x+y5的相反表达式为_____________.5.假定一个二维数组的定义为inta[3][5];,则该数组所含元素的个数为____,所占存储空间的字节数为__________.6.设x和y均为int型变量,且x=1,y=2,int*p;p=&x;*p=x+y;则x的值为____________。7.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为_______.8.假定a是一个二维数组,则a[i][j]的指针访问方式为__________.9.假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为__________10.当一个类对象离开它的作用域时,系统将自动调用该类的______________.11.当创建一个类的对象时,系统自动调用该类的________________。12.C++中,基类的指针可以指向派生类对象,反过来,指向派生类对象的指针不能指向基类对象。13.在C++中,如果类的成员中含有一个指针成员,那么当一个函数返回一个类的对象时,该类必须定义一个________构造函数。二、单项选择题(每小题2分,共20分)1.以下叙述正确的是__________A)do-while语句构成的循环不能用其它语句构成的循环来代替。B)do-while语句构成的循环只能用break语句退出。C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。D)用do-while语句构成的循环,在while后的表达式为零时结束循环。2.下列程序执行后的输出结果是__________A)GB)HC)ID)J#includeiostream.hmain(){intx='f';cout'A'+(x-'a'+1)endl;return0;}3、设有数组定义:chararray[]=China;则数组array所占的空间为。__________A)4个字节B)5个字节C)6个字节D)7个字节4.下列程序执行后的输出结果是__________C++程序设计语言试卷第2页共6页A)6B)8C)10D)12#includeiostream.h#defineMA(x)x*(x-1)main(){inta=1,b=2;coutMA(1+a+b);}5.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是__________A)1B)2C)2.0D)2.56.有如下程序段__________int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为A)12B)11C)10D)编译出错7.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是__________A)*p+9B)*(p+8)C)*p+=9D)p+88.有如下定义structperson{charname[9];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19“Mary”,18,“Adam16,};根据上述定义,能输出字母M的语句是__________A)coutclass[3].mane;B)coutclass[3].name[1];C)coutclass[2].name[1];D)coutclass[2].name[0];9.编译时多态性通过使用__________获得A、继承B、虚函数C、重载函数D、析构函数10.以下不属于类的存取权限的是__________A、publicB、staticC、protectedD、private三、阅读程序填空(共15分)1、求完数,即一个数等于它的因子之和(6=1+2+3)。#includeiostream.h#includemath.hvoidmain(){intm,s,i;for(m=2;m1000l;m++){C++程序设计语言试卷第3页共6页s=0;for(i=1;im;i++)if((m%i)==0)s=____(1)____;if(____(2)____){coutmisa完数endl;coutitsfactorsare:;for(i=1;im;i++)if(____(3)_____)//输出m的因子couti;coutendl;}}}2、将一个整数转换成一个数字字符串。#includeiostream.h#includestring.hmain(){voiddigittochar(intdigit,charstr[128]);charbuff[128]={'\0'};intdigit;cout输入一个整数digit:;cindigit;digittochar(digit,buff);coutbuffendl;return0;}voiddigittochar(intdigit,charstr[128]){//将数值转换成字符串(4843--3484)voidreverse(charbuff[128]);//将字符串作逆序处理staticinti=0;if(digit0)//负整数的处理{____(4)____;digit*=-1;}if(digit10)//转换成字符{____(5)_____;}else{C++程序设计语言试卷第4页共6页str[i++]=digit%10+'0';____(6)_____;//递归调用语句}reverse(str);}voidreverse(charbuff[128]){chartemp;intn=strlen(buff);for(inti=0;in/2;i++)//将逆序字符串转换成正序字符串{if(buff[0]=='-')//字符串中有负号的处理{temp=buff[i+1];____(7)_____;buff[n-i-1]=temp;}else//字符串中无负号的处理{temp=buff[i];____(8)_____;buff[n-1-i]=temp;}}}四、阅读程序,写出输出结果(每小题5分,共20分)。1.#includeiostream.h#includestdlib.hdoubleSD(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;defalut:exit(1);}returnx;}C++程序设计语言试卷第5页共6页voidmain(){intx=20,y=8;coutSD(x,y,'-')'';coutSD(x,y,'*')'';coutSD(x+y,y,'/')endl;}2.#includeiostream.h#includestring.hvoidmain(){char*a[5]={student,worker,cadre,soldier,peasant};char*p1,*p2;p1=p2=a[0];for(inti=1;i5;i++){if(strcmp(a[i],p1)0)p1=a[i];if(strcmp(a[i],p2)0)p2=a[i];}coutp1''p2endl;}3.#includeiostream.hvoidWF(intx,inty){x=x+y;y=x+y;coutsubs:x,y=x,yendl;}voidmain(){intx=8,y=15;coutmain:x,y=x,yendl;WF(x,y);x=2*x;coutmain:x,y=x,yendl;WF(x,y);coutmain:x,y=x,yendl;}4.#includeiostream.h#includeiomanip.hvoidmain(){inta[10]={2,4,6,8,10,12,14,16,18,20};for(inti=0;i10;i++){coutsetw(5)*(a+i);if((i+1)%4==0)coutendl;C++程序设计语言试卷第6页共6页}}五.编程(每小题10分,共30分)1.把整型数组a的每个元素按逆序放入数组b中。2.设有两个指向字符串的指针S1,S2,编写一个函数char*strcpy(char*S1,char*S2)将S2所指向对象的内容拷贝到S1所指向的对象。3.编写一个函数voidInsert(inta[],intn),按升序排列数组a中的n个元素.
本文标题:C++程序设计试卷10
链接地址:https://www.777doc.com/doc-4595042 .html