C++模拟试卷

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C++程序设计模拟试卷1一.选择题(每题1分,共25分)1.下列变量名中,(B)是合法的。A.56AB._abcC.d-PtrD.while2.下列各种运算符中,(A)优先级最高。A.+B.&&C.==D.*=3.设变量m,n,a,b,c,d均为0,执行(m=a==b)&&(n=c==d)后,m,n的值是(D)。A.0,0B.0,1C.1,0D.1,14.字符串”\t\v\\\0which\n”的长度是(B)。A.4B.3C.9D.字符串有非法字符,输出值不确定5.设a=2,b=3,c=2;计算a+=b*=(++b-c++)中a、b、c的值(C)。A.8、6、2B.2、4、2C.10、8、3D.5、3、36.已知:inti=5,下列do-while循环语句的循环次数为(D)。do{couti--endl;i--;}while(i!=0);A.0B.1C.5D.无限7.下面关于循环语句的描述中,(B)是错误的。A.循环体内可以包含有循环语句B.循环体内必须同时出现break语句和continue语句C.循环体内可以出现选择语句D.循环体内可以是空语句8.下面程序段(B)。x=3;do{y=x--;if(!y){cout”x”;continue;}cout”#”;}while(x=1&&x=2);A.将输出##B.将输出###C.是死循环D.含有不合法的控制表达式9.在函数的定义格式中,下面各组成部分中,(D)是可以省略的。A.函数名B.函数体C.函数数据类型说明D.函数参数10.在函数的引用调用时,实参和形参应该是使用(C)。A.变量值和变量B.地址值和指针C.变量值和引用D.地址值和引用11.以下关于文件操作的叙述中,不正确的是(B)。A.打开文件的目的是使文件对象与磁盘文件建立联系B.文件读写过程中,程序将直接与磁盘文件进行数据交换C.关闭文件的目的之一是保证将输出的数据写入硬盘文件D.关闭文件的目的之一是释放内存中的文件对象12.若有语句inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则(B)不是对a数组元素的正确引用(其中0≤i10)。A.p[i]B.*(*(a+i))C.a[p-a]D.*(&a[i])13.以下程序的输出结果是(A)。#includeiostream.hvoidmain(){chars[]=abcdefbcde,*p=s;intv1=0,v2=0,v3=0,v4=0;for(p;*p;p++)switch(*p){case'a':v1++;break;case'b':v3++;break;case'e':v2++;break;default:v4++;}coutv1,v2,v3,v4endl;}A.1,2,2,5B.4,7,5,8C.1,5,3,10D.8,8,8,814.下列结构体定义,正确的是C。A.record{B.structrecord{intno;intno;charnum[16];charnum[16];floatscore;floatscore;};}C.structrecord{D.structrecord{intno;intnocharnum[16];charnum[16]floatscore;floatscore};}15.下列是构造函数的特点,(C)是错误的。A.构造函数是一种成员函数,它具有一般成员函数的特点B.构造函数的名称与其类名相同C.构造函数必须指明其类型D.一个类中可定义一个或多个构造函数16.关于友元函数的描述中,(a)是错的。A.友元函数是成员函数,它被说明在类体内B.友元函数可直接访问类中的私有成员C.友元函数破坏封装性,使用时尽量少用D.友元类中的所有成员函数都是友元函数17.下列对派生类的描述中,(c)是错误的。A.一个派生类可以作为另一个派生类的基类B.派生类至少应有一个基类C.基类中成员访问权限继承到派生类中都保持不变D.派生类的成员除了自已定义的成员外,还包含了它的基类成员18.C++类体系中,能被派生类继承的有(b)。A.构造函数B.虚函数C.友元函数D.析构函数19.关于下列虚函数的描述中,(c)是正确的。A.虚函数是一个static存储类的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数应具有不同的类型或个数20.以下有关静态数据成员函数的叙述不正确的是(b)。A.静态成员函数属于整个类B.对静态成员函数的引用不允许使用对象名C.在静态成员函数中不能直接引用类的非静态成员D.使用类名可以直接调用其静态成员函数21.下列有关运算符重载的描述中,(b)是正确的。A.运算符重载可改变其优先级B.运算符重载不改变其语法结构C.运算符重载可改变其结合性D.运算符重载可改变其操作数的个数22.对new运算符的下列描述中,(b)是错误的。A.它可以动态创建对象和对象数组B.用它创建对象数组时必须指定初始值C.用它创建对象时要调用构造函数D.用它创建的对象可以使用运算符delete来释放23.下列是为字符数组赋字符串的语句组,其中错误是(a)。A.chars[10];s=”program”;B.chars[]=”program”;C.chars[10]=”Hello!”;D.chars[10];strcpy(s,”hello!”);24.当调用函数时,实参是一个一维数组名a,则向函数传送的是(d)。A.数组的长度B.数组所有元素的值C.数组元素a[0]的值D.数组元素a[0]的地址25.下列有关类的说法不正确的是(c)。A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似二.填空题(每空1分,共23分)1.C++程序语言中程序从位置开始执行。2.设inta=7;floatx=2.5,y=8.2;表达式x+a%3*(int)(y-x)%2/4的值是3.3.”判断整数x和整数y是否都为奇数”的C++语言表达式是。4.将字符串s2连接到字符串s1后的函数调用是。5设x=2,y=3,z=4;则z+=x++&&y++&&++z表达式执行后,x、y、z的值分别是。6.若有函数调用语句fun(a+b,(y=9,x),37),则其实参的个数是。7.已知字母a的ASCII码为十进制数97,ch为字符变量,则ch=’a’+’8’-’5’的值为。8.设:inta[5]={10,20,30,40,50};int*p=&a[0];表达式++*p+*(a+3)的值是。9.若有宏定义:#defineT(x,y,z)x*y*z/4coutT(3+4,2*4,4+4)endl;上述程序段运行结果为。10.“判断整数a是否在闭区间[-10,10]之中”的C++语言表达式是。11.设有代码“staticinta[3][4]={{1,2},{0},{4,6,8,10}};”则a[1][2]值为。12.假定所有变量均已正确定义,下列程序段运行后x的值是。a=b=c=14;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;13.类的成员函数可以在定义,也可以在定义。14.如类中没有明确定义析构函数,清除对象的工作来完成,原因是。15.生成一个派生类对象时,先调用的构造函数,然后调用的构造函数。16.在继承关系中,称为多重继承,称为单继承。17.若在I/O流的输出中使用控制符setfill()设置填充字符,应包含的头文件是。18.在私有继承关系下,基类的公有成员和保护成员将成为派生类中的成员,它们只能由来访问。三.写出下列程序运行结果(每题4分,共24分)1.#includeiostream.hvoidmain(){intn=0,j=0,s=0;for(inti=8;i=20;i++){n++;i++;if(i%4==0)j++;elses++;}coutn=n'\n'i=i'\n's=s;}2.#includeiostream.hvoidfun(inti);voidmain(){intn;for(n=1;n5;n++)fun(n);}voidfun(inti){statics=0;s+=i;coutsendl;}3.#includeiostream.hvoidmain(){inti,a[]={1,2,3,4,5,6,7,8},*p=a;for(i=1;i5;i++)p[i]=a[i-1]+a[i+1];couta[3]endl;}4.classmystr{charstring[81];intlen;public:mystr(char*s){strcpy(string,s);}voidgetvalue(char*s,int&n){strcpy(s,string);n=len;}friendmystroperator+(mystra,mystrb){mystrc();strcpy(c.string,a.string);strcat(c.string,b.string);c.len=strlen(c.string);returnc;}};voidmain(){charst[81];intl;mystra(Hello),b(everybody!),c();c=a+b;c.getvalue(st,l);coutstendlLen=lendl;}5.#includeiostream.h#includeconio.hintcount=0;classPoint{intx,y;public:Point(){x=1;y=1;count++;}~Point(){count--;}friendvoiddisplay();};voiddisplay(){coutTherearecountpoints,endl;}voidmain(){Pointa;display();{Pointb[5];display();}display();}6.#includeiostream.hclassbase{public:virtualvoidshow(){coutclassbaseshow()iscalled.\n;}};classderived:publicbase{public:voidshow(){coutclassderivedshow()iscalled.\n;}};voiddisplay(base*obj){obj-show();}voidmain(){basedemo1;deriveddemo2;display(&demo1);display(&demo2);}四.程序填空(每空1.5分,共12分)1.有一个一维数组,存放10个数据,用一个函数求出最大值和最小值,并在主函数中输入与输出。#includeiostream.hvoidmax_min(inta[],int*max,int*min);voidmain(){inti;intarray[10];intm,n;coutinput10data:;for(i=0;i10;i++){cinarray[i];}coutmaxis:mendl;coutminis:nendl;}voidmax_min(inta[],int*max,int*min){*max=*min=a[0];inti;for(i=1;iN;i++){if(*maxa[i])if(*mina[i])}}2.下列程序将结构体变量tt中的内容写入D盘上的date.txt文件。#includefstream.h#includestdlib.hstructdate{intyear,month,day;};voidmain(){datett={2002,2,12}

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功