南昌大学C++复习资料.docx
- 文档编号:20151451
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:73
- 大小:44.67KB
南昌大学C++复习资料.docx
《南昌大学C++复习资料.docx》由会员分享,可在线阅读,更多相关《南昌大学C++复习资料.docx(73页珍藏版)》请在冰豆网上搜索。
南昌大学C++复习资料
C++复习资料
一、选择题
1、若X是一个bool型变量,则X&&5<3的值( B )
A、为true B、为false
C、与X的值相同 D、与X的值相反
2、设a=6,执行语句a+=4;得到a的值为( D )
A、6 B、12 C、18 D、10
3、字符串”student”占用( D )个字节的空间。
A、7 B、6 C、5 D、8
4、二维数组intb[][4]={{1,2},{1,2,3},{1,2,3,4}}的元素个数为( A )
A、12 B、3 C、4 D、7
5、下列哪个不是用于实现循环结构的语句( B )
A、while B、if C、dowhile D、for
6、下列表达式为真的是( B )
A、5<3 B、2*3>=6
C、(7==9)&&(4>0) D、(10!
=2+8)||(5<3)
7、设x=5,执行语句if(x<0)cout< A、5 B、x C、无输出 D、0 8、执行语句k=30;j=k++;后k和j的值分别为( C ) A、k=30,j=30 B、k=30,j=31 C、k=31,j=30 D、k=31,j=31 9、表达式7%3+5*9-10/2的结果为( D ) A、42 B、43 C、40 D、41 10、执行cout<<520< A、520endl”520” B、520endl520 C、520 D、520 “520” 520 11、下列数据属于字符型的是: ( C ) A、123 B、true C、’c’ D、10.5 12、该for循环语句: for(i=1;i<11;i++)sum+=i;中循环体的执行次数为 ( C ) A、8 B、9 C、10 D、11 13、对程序段: if(x>y) z=1; else z=3; 要得到z=3的结果,满足条件的一组数是( D ) A、x=﹣1,y=﹣2 B、x=1,y=0 C、x=2,y=1 D、x=2,y=3 14.下面是关于构造函数的说法,不正确的是(A)。 A.C++规定,每一个类必须有一个构造函数,没有构造函数就不能创建对象 B.如果没有提供一个类的构造函数(一个都未提供),则C++提供一个默认的构造函数,该默认构造函数是个无参构造函数,它仅仅负责创建对象 C.虽然一个类定义了一个构造函数(不一定是无参构造函数),C++仍然提供默认的构造函数 D.与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,否则,对象值是随机的 15.在下列说法中,不正确的是(B)。 A.静态成员函数不能利用this指针 B.只有非静态成员才可以使用this关键字,因为静态成员没有this指针 C.析构函数不接受任何参数,也不带有任何类型的返回值 D.虚机制在构造函数和析构函数中仍然可以很好地工作,以实现多态性 16.声明类test的拷贝构造函数的正确形式是(D)。 A.inttestB.voidtestC.test(void)D.test(test&) 17.一个const对象(B)。 A.能访问所有成员函数B.只能访问const成员函数 C.也能访问volatile成员函数D.能访问const和volatile成员函数 18.下面关于类的对象性质的描述,正确的是(D)。 A.对象之间不可以相互赋值B.不可以说明指向对象的指针 C.对象不能用作数组元素D.一个对象能用作另一个对象的成员 19、C++源程序文件的扩展名为( A) A、.CPP B、.C C、.DLL D、.EXE 20、下面的函数声明中,哪一个是”voidBC(inta,intb);”的重载函数? ( C) A、int BC(inta,intb) B、voidBC(inta,charb) C、floatBC(inta,intb,intc=0) D、voidBC(inta,intb=0) 21.如果a=1,b=2,c=3,d=4,则条件表达式“a>b? a: c c: d”的值为( D ) A.3 B.2 C.1 D.4 22.在inta[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是( C ) A.3 B。 2 C。 6 D。 4 23. 已知charc;char*constpc="asdf",( B)是正确的。 A.pc="dfgh" B.*pc=‘b’ C.*pc++=‘y’ D.pc=&c 24.执行下列语句后的输出结果是(C )。 inthot=100; int&rad=hot; hot+=100; cout< A.0; B。 100; C.200; D。 300; 25.下列对结构及其变量定义错误的是: ( D) A.structMyStruct{ B。 structMyStruct{ intnum; intnum; charch; charch; }; }my; MyStruct my; C. struct{ D。 struct{ intnum; intnum; charch; charch; } }; my; struct my; 26.下列关于指针运算的描述错误的是: (A) A.在一定条件下,两个指针可以相加 B.在一定条件下,两个指针可以进行关系运算 C.在一定条件下,指针可以为空 D.在一定条件下,两个指针可以相互赋值 27.在C++语言中,对函数参数默认值描述正确的是: ( D) A.函数参数的默认值只能设定一个 B.一个函数的参数若有多个,则参数默认值的设定可以不连续 C.函数参数必须设定默认值 D.在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值 28.不能作为函数重载判断依据的是: ( D) A.参数个数 B。 参数类型 C。 函数名字 D。 返回类型 29.以下程序的输出结果是: ( B) #include voidprt(int*x,int*y,int*z){ cout<<++*x<<","<<++*y<<","<<*z++< } inta=10,c=20,b=40; voidmain(){ prt(&a,&b,&c); prt(&a,&b,&c); } A.11,42,31 B。 11,41,20 C。 11,21,40 D。 11,41,21 12,21,41 12,42,20 11,21,41 12,42,22 30.以下程序的输出结果是: ( D) #include voidfunc(char**m){ ++m; cout<<*m< } voidmain(){ staticchar*a[]={"morning","afternoon","evening"}; char**p; p=a; func(p); } A.字符o的起始地址 B。 字符a的起始地址 C.字符o D。 afernoon 31.以下程序的输出结果是: ( D) #include int fun(char*s){ char*p=s; while(*p! ='\0') p++; return(p-s); } voidmain(){ cout< } A.0 B。 1 C。 2 D。 3 32.不正确的标识符是( B ) A. _a2 B. 2ai C. a2_i D. INt 33.在(C)情况下适宜采用inline定义内联函数。 A.函数体含有循环语句 B.函数体含有递归语句 C.函数代码少、频繁调用D.函数代码多、不常调用 34.通过(A)调用虚函数时,采用动态绑定(binding)。 A.对象指针 B.对象名 C.成员名限定 D.派生类名 35.假定一个类的构造函数为A(intaa,intbb){a=aa++;b=a*bb++;},则执行 Ax(4,5);语句后,x.a和x.b的值分别为(C)。 A.4和5 B.5和4 C.4和20 D.20和5 36.在C++中有以下4条语句: staticinthot=200;int&rad=hot; hot=hot+100;cout< (C)。 A.0 B.100 C.300 D.200 37.对do-whie语言错误的说法是(C) A.可构成多重循环结构 B.循环次数不可能为0 C.循环次数可能为0 D.先执行后判断 38.静态成员函数没有(B) A.返回值 B.this指针 C.指针参数 D.返回类型 39.在类中说明的成员可以使用关键字( A )进行修饰。 A.public B.extern C.cpu D. register 40.下列不是描述类的成员函数的是(C) A.构造函数B.析构函数 C.友元函数D.拷贝构造函数 41.若inta[3]={1,2,3},*p;则下列赋值语句中 正确的是( D ) A. p=&a; B. *p=a; C. *(a+1)=a; D. p=a+1 42.若p1、p2都是指向整型的指针,p1已经指向数量x, 要使p2也指向x,正确的是( A ) A. p2=p1; B. p2=**p1; C. p2=&p1; D. p2=*p1; 43.在类中说明的成员可以使用关键字(A)进行修饰。 A.private B.extern C.auto D.register 44.在inta=3,*p=&a;中,*p的值是(D)。 A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 45.假定AB为一个类,则执行ABx;语句时将自动调用该类的(B)。 A.有参构造函数B.无参构造函数 C.拷贝构造函数D.赋值构造函数 46.如果class类中的所有成员在定义时都没有使用关键字pubilc, private,protected,则所有成员缺省定义为: (C)。 A.public B.protected C.private D.static 47. 语句int(*p)();的含义是(A) A.p是一个指向函数的指针变量,该函数的返回值是一个整型数据 B.p是指针变量,指向一个整型数据 C.p是一个指向一维数据的指针变量 D.p是指针函数 48.在C++中实现封装是借助于(B) A.枚举 B.类 C.数组 D.函数 49.设inta=3,b=4,c=5;表达式(a+b)>c&&b==c的值是( C )。 A.2 B.-1 C.0 D.1 50.设intx[]={1,2,3,4,5,6},*p=x;则值为3的表达式是 ( B ) A.p+=2,*++p B.p+=2,*p++ C.p+=3,*p D.p+=2,++*p 51.关于类概念的描述中,( D)是错误的。 A.类是抽象数据类型的实现;B.类是具有共同行为的若干对象的统一描述体; C.类是创建对象的样板; D.类不是C++中的一种数据类型; 52.在32位机中,double型字宽为(D )字节。 A.2;B.4;C.6;D.8 53.在inta[][3]={{1,0},{3,2},{4,5,6},{0}};中a[2][2]的值是( C )。 A.0;B.5;C.6;D.2 54.对于double(*p)[10];的描述,(A)是正确的。 A.p是一个指向数组的指针,所指向的数组是10个double型元素; B.p是一个指向某个数组中第10个元素的指针,该元素是double型变量; C.p[5]表示某个数组的第10个元素的值; D.p是一个具有10个元素的指针数组,每个元素是一个double型指针; 55.下述关于开关语句的描述中,(A)是正确的。 A.开关语句中default子句可以没有,也可以有一个; B.开关语句中每个语句序列中必须有break语句; C.开关语句中default子句只能放在最后; D.开关语句中case子句后面的表达式可以是整形表达式。 56.下列( D )是引用调用; A.形参是指针,实参是地址值;B.形参和实参都是变量; C.形参是数组名,实参是数组名;D.形参是引用,实参是变量。 57.(A)是析构函数的特征。 A.一个类中只能定义一个析构函数;B.析构函数与类名不同; C.析构函数的定义只能在类体内;D.析构函数可以有各个或多个参数。 ; 58.关于new运算符的下列描述中,(D)是错的。 A.它可以用来动态创建对象和对象数组; B.使用它创建的对象或对象数组可以使用运算符delete删除; C.使用它创建对象时要调用构造函数; D.使用它创建对象数组时必须指定初始值。 59.已知fun(int)是类Test的公有成员函数,p是指向成员函数fun()的指针,采用(D )是正确的: A.p=fun;B.p=Test: : fun();C.p=fun();D.p=Test: : fun; 60.关于对象概念的描述中,(A)是错误的。 A.对象就是C语言中的结构变量; B.对象代表着正在创建的系统中的一个实体; C.对象是一个状态和操作(或方法)的封装体; D.对象之间的信息传递是通过消息进行的; 61.下列给字符数组进行初始化中,(A)是正确的。 A.chars1[]="12345abcd";B.chars2[3]="xyz"; C.chars3[][3]={'a','x','y'};D.chars4[2[3]={"xyz","mnp"}; 62.对于int*pa[5];的描述,(D)是正确的。 A.pa是一个指向数组的指针,所指向的数组是5个int型元素; B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量; C.pa[5]表示某个数组的第5个元素的值; D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针; 63.下述静态数据成员的特征中,(D)是错误的。 A.说明静态数据成员时前边要加修饰符static; B.静态数据成员要在类体外进行初始化; C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符; D.静态数据成员不是所有对象所共用的。 64、下列的各类函数中,(C)不是类的成员函数。 A.构造函数;B.析构函数;C.友元函数;D.拷贝构造函数; 二、填空题 1、一个基本语句的最后一个字符是( ; ). 2、与intx=100; while(x>0) {cout<<’P’;x--; } 等效的for语句是( for(x=100;x>0;x--) )。 3、执行for(inti=1;i<30;i++)cout<<”*”;将输出( 29 )个*号。 4、数学函数sqrt(49)的结果为( 7 ),pow(3,3)的结果为: ( 27 )。 5、C++程序主要有三种基本控制结构,分别是顺序结构、条件分支结构和 ( 循环结构 )。 6.在c++中,除具有循环、switch语句的函数不能说明为内联函数外,其它函数都可以说明为内联函数。 7.在c++中,封装可以由public、private和protect等关键字提供。 8.若example是已定义的类,在程序结束之前,共计存在2个对象。 #include”example” main() {exampleX(0); X=5;X.print(); X=example(10); X.print(); } 9.在c++中,如果在多条继承路径有一个公共的基类,如果想使这个公共的基类只产生一个拷贝,则可以将这个基类说明为虚基类。 使用关键字virtual说明。 10.静态成员为该类的所有对象共享,它们被存储于一个中。 15在C语言中,编程的单位是__函数___;在C++语言中,编程的单位是_对象____。 16类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的 __数据成员___,共同行为被描述为类中的___函数成员___。 17类的具体表现是通过定义_成员函数______来操作的。 18对类中的成员函数和属性的访问是通过__①public___、__②private____和__③protect___这3个关键字来控制的。 19一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为__private___权 限,而把成员函数(方法)定义为__public____权限。 20)在类定义中,数据和成员函数默认权限是___private______。 21类中构造函数有___一个或多__个,析构函数有____一__个。 22类中的构造函数是一个特殊的成员函数,它由类的对象___生成时__调用,它的作用 是___初始化___。 23在定义类的对象时,C++程序将自动调用该对象的_构造函数_函数初始化对象自身。 24在撤销类的对象时,C++程序将自动调用该对象的__析构____函数。 25___new__运算符对指定类型对象动态分配内存并返回____true或false___。 26____delete____运算符删除(25)题中的运算符所动态分配的内存空间。 27假定用户没有给一个名为MyClass的类定义构造函数,则系统为其定义的默认构造 函数形式为__MyClass(){};____。 28假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构 函数形式为_~MyClass(){};_____。 29在类中定义和实现的函数称为__内联函数______。 30非成员函数应声明为类的_友元函数(friend)_______才能访问这个类的private成员。 31若要把类FriendClass定义为类MyClass的友元类,则应在类MyClass的定义中加入 语句__friendFriendClass;______。 32若要把函数voidFriendFunction()定义为类MyClass的友元函数,则应在类MyClass 的定义中加入语句__friendFriendFunction();_____。 33下面的类中定义了一个关于星期的枚举类型,请完成下面的程序。 classMyClass { public: enumWeek{Sun,Mo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 C+ 复习资料