c++样卷.docx
- 文档编号:6986835
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:14
- 大小:20.54KB
c++样卷.docx
《c++样卷.docx》由会员分享,可在线阅读,更多相关《c++样卷.docx(14页珍藏版)》请在冰豆网上搜索。
c++样卷
B1.C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()
A.面向过程B.面向对象C.安全性D.复用性
D2.当访问引用参数时,()
A.函数创建一个变量以存储参数的值
B.函数无法访问传递引用参数的值,而是自动引用的
C.调用程序创建一个临时变量以容纳参数的值
D.函数访问调用程序中参数的原始值
C3.以下选项中没有this指针的函数是()
A.内联成员函数B.构造函数C.静态成员函数D.析构函数
B4.设有函数voidswap(int&x,inty){intt;t=x;x=y;y=t;}设有说明:
intx=20,inty=10则执行语句swap(x,y)后测x,y的值分别是()
A.2020B.1010C.1020D.2010
D5.以下说明正确的是()
A.intn;int&x=&nB.int&x=22
C.int*p=&44D.intm,int*p=&m;int*q=p
D6.若通过类的成员函数和友元函数所实现的运算符重载的功能是一样的,下列说法正确的是()
A.两种函数的参数相同,函数体实现过程不同
B.编译器对这两种函数编译时所作的解释相同
C.这两种函数都带有this指针
D.友元函数比成员函数多一个参数
D7.以下有关构造函数的叙述中不正确的是()
A.构造函数可以有一个或多个参数B.可以重载构造函数
C.构造函数可以定义为虚函数D.必须显式地自定义构造函数
D8.以下说法中错误的是()
A.派生类可以继承多个基类B.可以有多个派生类继承同一基类
C.派生类可以有多个虚基类D.抽象类必须是虚基类
D9.以下说法正确的是()
A.类的数据成员可以定义时对其进行初始化
B.公有数据成员不能使用初使化数据列表进行初使化
C.私有数据成员不能通过构造函数初始化
D.通过对象的拷贝初始化函数可实现对对象数据成员的初使化
C10.以下关于C++的说法不正确的是()
A.C++语言是一种编译性的语言
B.C++是一种面向对象的程序设计语言
C.C++是C语言的一个子集
D.用C++设计的程序扩充性强
B11.若定义类CA:
classCA{
public:
CA(intx=0);
…
};
执行语句“CAa(4),b[3],*p[2];”,则自动调用该类的构造函数的次数为()
A.6B.4C.3D.1
A12.对于基类中的private成员,其在公有派生类中的访问权限为()
A.不可访问B.privateC.protectedD.public
C13.假定AB为一个类的类名,则该类的拷贝构造函数的函数原型是()
A.AB&(ABx)B.AB(ABx)C.AB(AB&x)D.AB(AB*x)
D14.点(.)运算符(或成员访问运算符),从左至右的顺序连接以下两个实体()
A.类的对象和类B.类和它的成员
C.类的成员和类的对象D.类的对象和类的成员
D15.若一个C++源程序包含头文件iostream.h,则标识符cin是()
A.C++预定义的关键字B.类名C.函数名D.对象名
B1.下面描述中,表达错误的是()
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承是基类中的private成员在派生类中仍是private的
C.公有继承时基类中的protected成员在派生类中仍是protected的
D.私有继承时基类中的public成员在派生类中是private的
2.同上面的7D
A3..设有变量说明“intx=500;”,下列说明引用变量y的方法中正确的是()
A.int&y=x;B.int&y=500;C.int&y=&x;D.inty&x;
D4.设x为整数,C++中能正确地表达数学式0≤x<5的是()
A.0<=x<15B.x=0||x=1||x=2||x=3||x=4
C.x>=0||x<5D.!
(x<0||x>=5)
5.
6.以下四组函数原型说明中,满足C++函数重载规则的是(BC)
A.floatf(floatx);voidf(floaty);
B.floatf(floatx);voidf2(floatx,floaty);
C.floatf(floatx);voidf(floaty);
D.floatf(floaty);floatf(floaty);
7.以下有关类的叙述不正确的是(AORC)
A.若该类未定义无参构造函数,则编译器自动生成一个无参数的缺省构造函数
B.若该类未定义析构函数,则编译器自动生成为个析函数
C.若该类未定义拷贝的构造函数,则编译器自动生成一个拷贝构造函数
D.任一类均有构造函数和析构函数
D8.设有以下说明语句:
chars1[20]=”hello”,s2[20]=”china”;constchar*ptr=s1;
以下语句中不符合C++语法规则的语句是()
A.strcpy(s2,ptr);B.ptr=s2;C.ptr=ptr+4;D.*ptr=*s2;
D10.设有类定义:
classM{
public:
int*v;
M(){}
M(inti){v=newint(i);}
};
下列表示中,定义该类的对象m,对其成员v进行正确操作的是()
A.Mm;m.v=10;B.Mm;m.v=10;C.Mm;m.v=10;D.Mm(10);
11
C12.函数参数是()
A.函数请求调用的程序接收值的变量
B.函数用来阻止接收调用程序的值的方式
C.调用程序发送给函数的值
D.函数返回给调用程序的一种值
A13.下列是引用和指针的区别是()
A.引用是一个别名,指针则是存放地址的变量
B.引用是一个别名,指针也是一个变量的别名
C.引用可以为NULL值,指针也可以为NULL值
D.引用和指针没有什么重大区别
D14.exit()库函数退出()
A.它所在的函数B.它所在的循环C.它所在的块D.它所在的程序
D15.如果一种语言能够产生新的数据类型,那么我们就称为()
A.是错误的B.是可封装的C.是可继承的D.是可扩展的
二、填空题
1.下面程序的输出结果为____1____,_1_______。
intmain(){
intx[6]={1,3,5,7,9,11},*k,**s;
k=x;s=&k;
cout<<*(k++)<<”,”<<**s< return0;} 2.设有语句: inti=1,s=1;for(;s+i<6,i=5;i++)s+=i; 以上for循环语句的循环次数为无数次_ 3.采用构造函数可以初始化类的__所有________数据成员;而使用初始化列表只能初始化对象的___公有_______数据成员。 4若定义了一个类,该类只能用做基类,而不能定义该类的对象,这种类称为抽象类. 5.对一个类的成员的默认访问方式是__private________。 6.结构体类型和类类型访问其成员时均可使用____点(或.)___和_箭头(或->)操作符。 7.函数内部定义的变量被称为局部变量 8.引用有三种用途,它们是_作为函数参数,作为返回值,作为独立引用, 9.C++中常用new运算符动态的申请内存空间。 10.初使化一个类的数据成员的专用成员函数是_构造函数_________。 1.C++是一种既面向过程又面向对象的程序设计语言。 2.在C++中,将多态性分为静态多态性和动态多态性两种。 函数重载属于___静态__多态性,虚函数属于___动态___多态性。 3..在用class定义一个类时,数据成员和成员函数的默认访问权限是___private______。 4.当一个类只能作为派生类的基类,不能用来说明这种类的对象时,这种类称为__抽象类。 5.如果类A继承了类B,那么类A被称为____导出___类,而类B又被称为__基类___类。 6..一个对象的成员函数拥有一个指向该对象的指针,我们称它为__this____指针。 7.函数重载是指函数名相同,但函数__参数个数循环__不同或函数__参数类型__不同。 8.C++程序中,通过构造函数完成对象的创建及初始化工作。 9..任一个类至少包含两个构造函数,一个是缺省构造函数或用户显式定义的构造函数,另一个是_拷贝构造函数_________。 三、阅读程序题 1.设有循环语句, For(inta=10,b=0,c=0;b+=c;a--){ cout< b+=c+1; } 在这个循环语句中,循环体最多执行__0___次,最少执行____0__次。 2.#include voidmain() { intx=1,y=1; while(x<15)y++,x+=++y; cout< cout< } 程序的输出第一行是__16______,第二行是___7____。 3.#include intf(intn) { if(n)returnf(n-1)+n; elsereturn1; } voidmain() { intm=5; cout< cout< } 程序的输出第一行是__16______,第二行是___22_____。 1.下面程序的功能是: 从键盘上读入若干个字符,按字典顺序降序排列后输出。 #include voidsort(char*p,intn) { intt,i,j; for(i=0;i for(________;j if(________){t=p[i];p[i]=p[j];p[j]=t;} } voidinput(char*p,intn) { cout<<”请输入”< ”< for(inti=0;i } voidoutput(char*p,intn) { for(inti=0;i } voidmain() { chara[100];intn; cout<<”请输入要排序的字符的个数: (100以内)”< cin>>n; input(a,n); sort(a,n); output(a,n); } 答案: (1)j=i+1 (2)p[i] 5...#include ClassA{ intx,y,z; public: A(inta,intb,intc){x=a;y=b;z=c;} voidrotate(){intt=x ;x=y ;y=z ;z=t ;} voiddisplay(){cout< }; ClassB: publicA{ intx,y,z; public: B(inta,intb,intc): A(7,8,9){x=a;y=b;z=c;} voidrotate(){A: : rotate();} voiddisplay(){cout< }; voidmain() { Aaa(1,2,3); Bbb(4,5,6); aa.rotate(); bb.rotate(); aa.display(); bb.display(); } 程序的输出第一行是2,3,1__,第二行是__4,5,6________。 2..设链表上结点的数据结构定义如下: structPNODE{ intx; PNODE*next; } 设已经建立了一条有序链表(按结点x值升序排列),h为链首指针。 函数DellNode的功能为删除链表上值为value的一个结点。 PNODE*DelNode(PNODE*&h,intvalue) { PNODE*p1,*p2; if(h==0)return0; if(________) { p1=h; h=h->next; deletep1; } else{ p2=p1=h; while((p2->x! =value)&&(p2->next! =0)){ p1=p2; ________; } if(________){ ________; deletep2; } } returnh; } 答案: (1)h->x==value (2)p2=p2->next(3)p2->x==value(4)p1->next=p2->next 3..以下程序对反映学生情况的数组a进行排序,按其数组元素的成员id(学号)从小到大排序。 #include classElem{ intscore; intid; public: Elem(ints=0,inti=0) {score=s; id=i; } intKey() {returnid;} intGetScore() {returnscore;} }; voidSelect(Elema[],intn) {for(inti=0;i intmin=a[i].Key(); intp=i,j; Elemtemp; for(j=i+1;j if(a[j].Key() min=________; ________; } if(p! =i){ ________; a[i]=a[p];a[p]=temp; } } } voidmain(void) { ints[]={56,78,65,90,88,76,72,80}; intid[]={8,1,2,6,7,4,3,5}; Elema[8]; for(inti=0;i<8;i++) a[i]=________; Select(a,8); for(intj=0;j<8;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+
![提示](https://static.bdocx.com/images/bang_tan.gif)