版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2015-春文正面向对象与C+程序设计复习概要一、选择题1、可用作C+语言用户标识符的一组标识符是( B )。A) void define +WORDB) a3_b3 _123 YNC) for -abc CaseD) 2a DO sizeof 2、可用作C+语言用户标识符的一组标识符是( C )。A) void define +WORD B) const vector coutC) a3_b3 _123 DEFINED) bool 2a pI 3、下面不合法的C+用户标识符为( C )。A) _12 B) abc_12 C) bool D) a12 4、存储以下数据,占用存储字节最多的是(
2、D )。A) 0 (int类型,4字节) B) 0 C) “0”(字符串,2字节) D) 0.0 (double类型,8字节)5、若有以下类型标识符定义:int x=2; char w=a; float y=23.45f; double z=45.6712;则表达式w*x+(int)y-(int)z的结果类型是( D )A) char B) float C) double D) int 6、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。A) 空格或逗号 B) 逗号或回车 C) 逗号或分号 D) 空格或回车注解:C+数据输入的三种默认分隔符:空格,回车,Ta
3、b键7、 下列关于C+标识符的命名不合法的是( C)A) Pad B) name_1 C) A#bc D) _a12注解:标识符命名规则:只允许字母、下划线、数字,且首字母只能为字母和下划线8、若有以下类型标识符定义int x=2; char w=a; float y=23.45f; double z=45.6712;则表达式w*x+y-z的结果类型是(D )(A) float B) char C) int D) double 9、 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。A) 12 B)144 C) 156 D) 288注解:等价于: a=a+a*a;
4、 10、若有以下类型标识符定义:int x=5; double y=2.0;则表达式(y+=1, x-=y+1)的结果是( A )A) 1 B) 5 C) 4 D) 1.0注解:(1) y=3.0,x-=y+1 x=x-(y+1)=1; (2)逗号表达式,其值是最后一个表达式的值。11、若有int x=1; 则下面语句的循环次数是( D )while(x=1)x-;A) 1 B) 10 C) 0 D) 无穷循环注解:因为x=1永远是真的,区分x=1和x=1的不同12、假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( D )。 A) 1.0
5、/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c注解:1/(a*b*c)是整型数相除,1/a/b/(float)c的开始部分是整型数相除 13、设”int a=15,b=26;”,则”couty)z=x; x=y; y=z; A) 10 B) 20 C) 30 D) 015、循环语句whlie(int i=0 )i-;的循环次数是( A )A) 0 B) 1 C) 5 D) 无限注解:int i=0和int i=0的区别?前者是将i赋值为0,所以永远为假的。16、设x是一个bool型的逻辑量,y的值为10,则表达式 x & y的值为( C )
6、。 A) 1 B) 0 C) 与x值相同 D) 与x值相反 17、x0 & x=10的相反表达式为( A )。A) x10 B) x10C) x=0 | x0 & x10 18、x0 | y=5的相反表达式为( B )。A) x=0 | y!=5 B) x0 | y!=5 D) x0 & y=519、一个函数无返回值时,应选择的说明符是( C )(A) static B) extern C) void D) 无说明符注解:如果函数没有声明返回值类型,则默认为int20、设x和y均为bool量,则x & y为真的条件是( A )。 A) 它们均为真 B) 其中一个为真 C) 它们均为假 D) 其
7、中一个为假 21、设x和y均为bool量,则x | y为假的条件是( C )。 A) 它们均为真 B) 其中一个为真 C) 它们均为假 D) 其中一个为假注解:掌握好逻辑与和逻辑或的优化方法!Eg: int m=10,n=2,b=4; b=(m-10)&n+; /=b=0 ; n=2;b=(m-10)|n+; b=1; n=3 22、字符串”a+b=12n”的长度为( B )。A) 6 B) 7 C) 8 D) 9注解:(1)转义字符的概念;(2)字符串的长度与字符串在内存中占有的字节数相差1 23、假定下列x和y均为int型变量,则不正确的赋值为( D )。A) x+=y+ B) x+=y+
8、 C) x=+y D) +x=+y注解:x+=y+; = x = x+y; y+; / ok x+ = y+; = x=y; x+; y+; /ok x=+y; = +y; x=y; / ok +x = +y; = +x; +y; 将y赋值给表达式+x;表达式不可以作为左值/ error 24、下列的符号常量定义中,错误的定义是( A )。 A) const M=10; B) const int M=20; C) const char ch; D) const bool mark=true;注解:常量的定义格式:const 类型 变量名=值;常量必须在定义时进行初始化,因为在程序中,常量的值是
9、不可修改的。25、在语句coutdata中,cout是个( C )A) 类 B) C+操作符 C) 对象 D) 函数注解:cout是标注输出流对象,cin是标注输入流对象26、以下关于C+中函数重载描述错误的是:( B )A) 当两个同名全局函数的参数个数不同时,则两个函数是重载函数B) 当两个同名全局函数的返回值类型不同时,则两个函数是重载函数C) 当两个同名全局函数的参数类型不同时,则两个函数是重载函数D) 当两个同名全局函数的参数顺序不同时,则两个函数是重载函数注解:函数必须是在同一名字空间内,或者说同一作用域内。也就是说全局函数与成员函数不够成函数重载。 函数重载的三个条件:参数类型不
10、同、或者参数个数不同、或者参数的顺序不同27、对重载函数形参的描述中,错误的是( D )A) 参数的个数可能不同 B) 参数的类型可能不同C) 参数的顺序可能不同 D) 参数的个数、类型、顺序都相同,只是函数的返回值类型不同28、以下能正确定义数组并正确赋初值的语句是( )A) int N=5,bNN; / 数组的长度必须是常量,因为N是变量,所以bNN错误B) int a2=1,3,4,5;/初始值超过了数组的长度,且初始值是按二维数组给出,errorC) int c2=1,2,3,4; /在给出二维数组的初始值情况下,二维数组定义只可以省略第一维的大小。errorD) int d32=1,
11、2,3,4;/ok,前面两行给出了初始值,最后一行的初始值为029、以下关于C+中标准输入输出流描述正确的是:( D )A)使用标准输入输出流时必须包含stdio.h头文件B)使用标准输入输出流时不需要包含任何头文件C)使用标准输入输出流时必须包含std名空间下的iomanip头文件D)使用标准输入输出流时必须包含std名空间下的iostream头文件注解:stdio.h头文件是C语言中标准输入输出库函数头文件。 std名字空间下的iomanip头文件是流状态格式控制的头文件 std名字空间下的iostream头文件是标准输入输出头文件。30、在下面的一维数组定义中,哪一个有语法错误( C )
12、 A) int a=1,2,3; /数组长度为3 B) int a10=0; /全零的包含10个元素的数组 C) int a; D) int a5; /包含5个元素的数组 31、在下面的字符数组定义中,哪一个有语法错误。( D )。 A) char a20=”abcdefg”; B) char a=”x+y=55.”;C) char a15; D) char a10=5;注解:以下几种方式: char *pstr = “ABC”; / ok char str = “ABC”; / ok char str110 = “ABC”; / ok pstr = str; / ok; pstr = “CD
13、E”; / ok str = “CDE”; /error,数组名是一个常量地址,不运行修改 strcpy(pstr,”DEF”); /error; 因为pstr指向了常量字符串”CDE” strcpy(str,”DEF”); /ok pstr=str1; strcpy(pstr,”DEF”); /ok,因为pstr已经指向了字符数组str1,所以可以进行拷贝32、下列给字符数组进行的初始化中,不正确的是( D )A) char s1=abcd; /B) char s23=x,y,0; C) char s3=a,x,y,0; D) char s46=xyz,mnp; /一维字符数组不可以用两个字
14、符串进行初始化,error注解: s2和s3也够成字符串。 char s510 = x,y,0,z,r,0;请问s5字符串的长度是多少? 233、在下面的二维数组定义中,正确的是( C )。 A) int a5; B) int a5; C) int a3=1,3,5,2; D) int a(10);注解:二维数组定义时,如果给出了初始值,则可以省略第一维的大小,但不可以省略其它维的大小声明。34、关于引用与指针描述错误的是( C )A) 引用是对象的别名,在定义时必须初始化,并且在程序中不许修改引用使其引起其他对象。B) 指针是地址,在使用之前应该初始化,在程序中也可以使其指向其他对象。C)
15、引用和指针是等价的,都有自己的存储空间D) 引用和指针作为函数参数时,实现的传地址形式。 35、假定一个二维数组的定义语句为“int a34=3,4,2,8,6;”,则元素a12的值为( C )。A. 2 B. 4 C. 6 D. 836、以下关于C+中标准输入输出流描述正确的是:( C )A) 使用标准输入输出流时不需要包含任何头文件B) 使用标准输入输出流时必须包含stdio.h头文件C) 使用标准输入输出流时必须包含std名空间下的iostream头文件D) 使用标准输入输出流时必须包含std名空间下的iomanip头文件37、下列关于文件输入输出流的叙述中,正确的是:( D )A)使用
16、流输出符可以实现将数据输出到二进制文件中B)用文件输入或输出流打开文件时,默认的文件打开形式为二进制形式C) 将数据输出到二进制文件中时,可以控制数据在文件中的输出格式D) 使用流输出符可以实现将数据输出到文本文件中注解:(1)文件输入输出流打开文件时,默认的打开形式是文本文件形式 (2)流输出符只能用于输出数据到文本文件;流输入符只能用于从文本文件输入数据 (3)文本文件中的数据是按照ASCII字符编码存放,可以进行格式控制;二进制文件的数据是按照数据的二进制形式存放,不可以进行格式控制。 (4)C+中,二进制文件的读写分别使用函数read()和write()函数,此二函数都是输入输出流的成
17、员函数。格式: ifstream in(“data.txt”,ios:binary|ios:in); int arry10; in.read(char*)arry, sizeof(int)*10); /从二进制文件中读取10个整型数 ofstream out(“data.txt”, ios:binary|ios:out); out.write(char*)arry,sizeof(int)*10); /写10个整型数据到二进制文件中。38. 以下说法中正确的是( B )。 A. C+程序总是从第一个定义的函数开始执行 B. C+程序总是从main函数开始执行 C. C+函数必须有返回值,否则不能
18、使用函数D. C+程序中有调用关系的所有函数必须放在同一个程序文件中注解:任何C+程序和C语言程序都是从main函数开始运行,也在main函数中结束运行;C+函数可以没有返回值,此时返回值类型为void;C+程序中,函数可以调用程序中任何文件中的函数,前提是函数为非静态函数,并且已经进行了扩展声明。39、以下关于C+中string的描述错误的是:( A ) A)要获取string str对象的字符个数必须通过语句strlen(str)完成.B)string对象之间可以直接赋值C)string对象可以使用+运算符完成两个对象字符串的连接D)string对象在名字空间std的头文件中声明注解:st
19、ring类对象保存的字符个数由string类的成员函数length()返回。 strlen(char*)的参数是一个C字符串,不能是string类对象。 40. 以下叙述中不正确的是( C )。 A. 在一个函数中,可以有多条return语句 B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量41、以下关于C+中string的描述或代码片段中正确的是:( D ) A)string对象在进行比较时必须使用strcmp函数B)string s1; s12 = a是将s1对象的第2号元素赋值为字母aC)string对象不允许进行直接赋值操作
20、D)string s1=”abc”,s2=”xyz”; s2+=s1;注解:关于string类:(1)string类对象保存的字符个数由string类的成员函数length()返回。(2)string类对象可以之间进行关系运算,不可以使用strcmp来进行比较。(3)string类对象只有在初始化之后,才可以进行下标操作,例如: string str; str0 = a; / error,因为此时str还没有分配空间存放字符 string str; str=”abc”; str0 =c; /ok, 因为赋值运算会使得str分配空间存放字符串。 string str(“abc”); str1 =
21、 f; / ok,此时str为:afc (4)string类对象进行下标操作时,特别需要注意下标的越界问题。下标的范围只能在0,length()-1之内。 (5)string类对象可以进行+运算,实现两个对象的拼接42、标准输出流控制显示格式的操作中,以下不属于状态机制的为:( D )A) showpos B) hexC) left D) setw43、cin输入流在完成多个数据的键盘输入操作时,不可以被作为数据输入分隔符的是:( C )A) 1个或多个空格 B) 1个或多个回车符C) 1个或多个逗号 D) 1个或多个水平垂直制表符(TAB)44、下列关于文件输入输出流的叙述中,正确的是:(
22、C )A) 在创建文件输入或输出流的过程中,默认的文件打开形式为二进制形式B) 如果需要将一个int型数据输出到二进制文件流中去,可以使用流输出符来完成相应操作C) 如果需要将一个int型数据输出到文本文件流中去,可以使用s); /这里是一个无穷循环couts;如从键盘上输入:Hello, how are you?则正确的显示结果为:( D )A)Hello, how are you?B)you?C) Hello,D)显示结果不确定51、以下关于C+中string的描述或代码片段中正确的是:( A ) A)string s1=”abc”,s2=”xyz”; s2+=s1;B)string对象在
23、创建时必须提供初始值 / 可以不提供初始值C)string对象不允许进行直接赋值操作 / 可以直接进行赋值操作,因为string重载了赋值运算符D)string对象在进行比较时必须使用strcmp函数 / 可以直接进行比较运算,因为string重载了关系运算符52、下面能正确定义字符串的是:( C )A) char str3 = “abc”; B) char str=a,b,cC) char str=a,b,0 D) char str2= a,b,0解析:A) 数组越界B) 没有字符串结束标记C) 构造一个包含2个字符的字符串,字符数组的长度是3个字节D) 数组越界53、关于引用与指针描述正确
24、的是( )A) 引用是对象的别名,在定义时必须初始化,并且在程序中不许修改引用使其引起其他对象。B) 指针是地址,在定义时必须初始化,在程序中也不可以使其指向其他对象。C) 引用和指针是等价的,都有自己的存储空间D) 引用作为函数参数时,实现的是传值形式,指针作为函数参数时,实现的传地址形式。解析:1) 引用是对象的别名,没有自己的存储空间,在定义必须指定其引用目标,在程序运行中,不可以改变其引用对象,使其引用其他对象。2) 对引用的改变,实际就是对引用对象的值的改变。3) 指针是地址,有其自己的存储空间,指针是一种变量,可以改变其值,使其指向其他对象。4) 特例:指针常量:int * con
25、st p=&a; 定义了一个指针常量p,在定义时必须初始化其指向,在程序运行过程中不允许改变其指向,但可以改变其指向对象的值。5) 常量指针:const int *p; or int const* p; 表示p指向一个常量,但并不是说p所指向的对象是真正的常量。Eg: int a;const int* p = &a; / oka = 5; / ok*p = 5; / error,因为通过p所看到的对象是常量,不允许作为左值进行赋值。const int b=4; / 常量在定义必须初始化。const int *p1 = &b; / okint *p2 = &b; / error; 因为p2所看到
26、的对象是一个普通变量,违背了b本身是常量的原则。 注意:不允许使用普通指针指向常量对象。6) 引用和指针作为函数参数时,都实现的是传地址形式。54、对重载函数形参的描述中,正确的是( C )A) 全局函数与类的成员函数可以构成重载函数B) 两个函数的参数类型不同就构成重载函数C) 两个同名全局函数的参数顺序不同构成重载函数D) 只有类的成员函数之间可以构成重载函数解析:1) 函数重载是对于相同作用域的函数而言2) 函数重载的条件:参数类型不同,or 参数顺序不同 or 参数个数不同。3) 全局函数与类的成员函数不属于同一作用域,所以不可能构造重载函数55、关于友元函数的描述中,错误的是:( )
27、A) 友元函数不是成员函数B) 友元函数只能访问类中私有成员C) 友元函数破坏隐藏性,尽量少用D) 友元函数说明在类体内,使用关键字friend解析:1) 友元函数不是类的成员函数,友元的声明只是说明了函数与类的关系。2) 友元函数具有访问类的所有成员的权限,也就是可以访问类的私有成员。3) 友元函数是以破坏类的封装性来获得数据访问的方便性,所以应该尽量少用。4) 友元的声明使用关键词:friend5) 友元类和友元函数一样,也只是声明了两个类之间的关系,并不表示一个类是另外一个类的成员。Eg: class A; class B friend class A; / 表示A是B的友元;功能:A的
28、所有成员函数都可以直接访问B的所有成员(属性成员和成员函数)6) 友元不具有传递性:A是B的友元,B是C的友元,但A不是C的友元。7) A是B的友元,B也可以是A 的友元。56、以下代码片段错误的是:( )A)char *s; s=”OK”;B)char s20=”OK”;C)string s; s=”OK”;D)char *s; strcpy(s,”OK”);解析:A) ok; B) ok; C) ok; D) error; 因为s没有初始化。指针在使用之前必须被初始化57、函数声明语句正确的是:( B )A) int f(int a,b);B)int f(int,int);C)int f(
29、int; int);D)int f(5); 解析:A) 第二个形参没有类型 B) ok; C) 两个形成之间只能用逗号分隔,不能用其它符号 D) 形参不允许使用字面常量58、以下正确的向量定义形式为:( A )A)vector a; B)vector a10;C)vector a(10); D)vector a10;解析:A) ok;B) 不允许定义向量数组,因为向量的大小是不确定,而数组的大小必须是确定的,所以不运行定义向量数组C) 没有指定向量的类型D) 也是没有指定向量的类型,同时也不应该定义向量数组59、下面关于new和delete运算的叙述中,错误的说法是:( C )A)new操作符
30、可以用于分配一个对象,例如:int *p=new int;B)new操作符可以用于分配一个对象数组,例如: int *p=new int10;C)函数中,由new运算符分配的内存空间,当函数执行结束时系统会自动收回D)对于程序中,静态数组占用的存储空间不能使用delete释放解析: 1)C+中new是用于动态内存分配的一个操作符,其分配的内存必须使用delete进行释放。 2)new操作符可以分配一个对象,也可以分配一个对象数组,但其方法的方法不同。Eg: 分配一个对象:int *p=new int; 释放一个对象: delete p;分配一个对象数组:int *p1 = new int10;
31、 释放一个对象数组:delete p1; 3) 向量也可以达到动态内存分配的功能,并且不需要程序设计人员对内存进行管理。60、有以下变量定义语句:int a, b; const int c=3;const int *ap = &a;则以下语句中错误的为:( C )A)ap=&b;B)a=3; C)*ap=3; D)ap=&c;61、如果有以下向量定义语句:vector a(10,2), b(10,3);下列关于关系运算表达式a = = b操作描述正确的是:( C )A)两个向量不允许进行是否相等的关系运算B)两个向量在进行是否相等运算时,仅仅是比较向量的实际元素个数,因此上述表示式运算结果为t
32、rueC)两个向量在进行是否相等运算时,是比较向量数据类型、实际元素个数以及各元素值是否相等(同),因此上述表示式运算结果为falseD)两个向量在进行是否相等运算时,是比较向量的名字是否相同,因此上述表示式运算结果为false62、关于常成员的描述中,错误的是( B )A)常成员包含常数据成员和常成员函数两种B)常数据成员必须是公有的C)常数据成员要使用构造函数成员初始化列表进行初始化D)常对象只能调用它的常成员函数,不能调用其它的成员函数解析:1)常成员可以是常数据成员,也可以是常成员函数 2)常数据成员特点:在对象的使用中不允许修改的成员,必须使用冒号法进行初始化,也就是成员初始化列表进
33、行初始化。 3)常成员函数特点:函数中不允许修改所绑定对象的属性值,在函数中不允许调用非常成员函数。 4)常数据成员和常成员函数可以声明为任意访问权限的成员。63、假设a,b是全局变量,下面设置函数参数默认值的函数原型中,正确的是:( B )A)int fun(int x=8,int y=a+b);B)int fun(int x=5,int y=10);C)int fun(int x=5,int y);D)int fun(int x,int y=a+b);解析:1) 函数参数的默认值必须是从右向左给出 2) 带默认参数值的函数调用时,实参是从左向右与形参进行匹配 3) 参数默认值必须是常量,可
34、以是字面常量、常量对象、常量表达式等64、C+中函数返回值的类型是由( B )决定的。 A. return语句中表达式的类型 B.该函数定义时的类型C.调用函数时的调用语句 D.系统根据结果解析: Eg: int fun()double a=1.10; return a; / 函数的返回值类型与a没有关系,仍然是int类型。65、有以下代码,string s;getline(cin, s); couts;cin的输入是以空格、回车换行、TAB键为结束标记。 3)上题中如果getline(cin,s)换成cinS;则输出结果是:how. 66、以下关于C+中string的描述正确的是:( C )
35、 A)要获取string str对象的字符个数必须通过语句strlen(str)完成./str.length()获取字符个数B)string对象创建后其存放的字符个数是固定不变的。C)string对象可以使用+运算符完成两个对象字符串的连接D)string对象在进行比较时必须使用strcmp函数67、下面函数只能访问静态数据成员的函数是( C )A) 析构函数 B) 普通成员函数 C) 静态成员函数 D) 构造函数解析: 1)类的所有函数都可以访问静态数据成员。 2)类的静态成员函数只能访问静态数据成员,因为静态成员函数不需要绑定对象来运行,是通过类来运行,所以静态成员函数的运行时,不可能去访
36、问对象的属性成员。也就静态成员函数不允许访问非静态数据成员。68、函数声明语句正确的是:( B )A) int f(int a,b); B)int f(int,int); C)int f(int; int); D)int f(5);69、已有定义“int a=5,&ra=a;”则下叙述中,错误的说法是:( C )A)ra是变量a的引用; B)ra的值为5;C)ra是a的地址值; D)执行“ra=10;”后变量a的值也变为10;70、对重载函数形参的描述中,错误的是( D )A) 两个函数的参数个数可能不同B) 两个函数的参数类型可能不同C) 两个函数的参数顺序可能不同D) 两个函数的参数个数、
37、类型、顺序都必须不同71、下列对引用描述错误的是( C )A) 对引用的赋值就是对其引用对象的赋值B) 引用作为函数参数时是传地址形式C) 在程序运行过程中,可以改变引用使其引用不同对象。D) 程序中不为引用分配存储空间,引用是其引用对象的别名72下面关于new和delete运算的叙述中,错误的说法是:( C )A)由new分配的内存空间是连续的;B)如果当前内存无足够的空间可分配,则new运算符返回NULLC)由new运算符分配的内存空间,当函数执行结束时系统会自动收回D)对于程序中的静态数组占用的存储空间不能使用delete来释放; 解析:静态数组:int a10; 73、假设a,b是全局
38、变量,下面设置函数参数默认值的函数原型中,错误的是:( C,D )A)int fun(int x,int y=10);B)int fun(int x=5,int y=10);C)int fun(int x=5,int y);D)int fun(int x,int y=a+b);74、关于静态成员的描述中,错误的是( C )A)静态成员是类的所有对象共有的成员B)静态成员可以是公有成员C)静态成员只能通过类名来引用D)静态成员可以通过类名来引用,也可以通过对象来引用75、通常的拷贝构造函数的参数是( C )A) 某个对象名 B) 某个对象的成员名C) 某个对象的引用 D) 某个对象的指针解析:1
39、)拷贝构造函数的参数传递必须使用传地址形式,否则会形成无穷函数调用。 2)拷贝构造函数是用一个对象来初始化另外一个对象,其参数必须是对象的引用。76、关于运算符重载的描述正确的是:( D)A) 运算符重载函数必须是成员函数 B) 运算符重载函数必须是友元函数 C) 运算符重载函数必须是普通函数 D) 运算符重载函数可以是成员函数、友元函数和普通函数 解析:1)有四个运算符只能重载为成员函数:赋值运算符:=; 下标运算符:; 调用运算符: (); 指向运算符: - 2)输入输出运算符只能重载为友元函数 3)其他运算符可以重载为成员函数、友元函数和普通函数。77、下面关于友元的描述正确的是( D
40、)A) 类的友元函数不可以访问类的私有成员B) 类的友元函数只可以访问类的公有成员C) 类的友元函数不可以访问类的保护成员D) 类的友元函数可以访问类的私有成员、保护成员和公有成员78、下面函数只能访问静态数据成员的函数是( A )A) 静态成员函数 B) 普通成员函数 C) 虚函数 D) 构造函数79、 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( A )。 A. 内联函数 B.重载函数 C.递归函数 D. 成员函数 80. 函数原型语句正确的是( B )。 A) int Function(void a); B) void Function (int); C) int
41、 Function(a); D) void int(double a); /函数名使用了关键词81、关于输出运算符重载函数的描述正确的是( B )A) 只能重载为成员函数B) 只能重载为友元函数C) 只能重载为普通函数D) 其中一个参数只能是类对象82、关于构造函数描述正确的是( C )A) 构造函数不可以重载B) 构造函数可以在程序中显示调用C) 构造函数名必须是类名D) 构造函数可以有返回值解析:1)构造函数名必须是类名 2)构造函数不可以显示调用 3)构造函数不可以有返回值 4)构造函数可以重载83、关于构造函数描述错误的是( B )A) 构造函数可以重载B) 构造函数可以在程序中显示调
42、用C) 构造函数名必须是类名D) 构造函数不可以有返回值84、关于类的访问权限描述错误的是( D )A) private域成员只可以被类成员访问B) protected域成员只可以被类及其派生类成员访问C) public域成员可以外部函数或其他类成员方法D) 如果不说明类成员的访问权限,默认为public访问权限/默认为private权限85、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是(D )A) 数组的长度B) 数组第一个元素的值C) 数组所有元素的值D) 数组第一个元素的地址解析: 数组名表示的是数组的首地址,而且是一个常量地址,所以数组名作为实参传递的是数组的首地址,而数
43、组首地址就是数组第一个元素的地址。86、能够释放对象所占资源的是 ( A)A)析构函数 B)数据成员 C)构造函数 D)静态成员函数87、函数调用func(exp1,exp2),(exp3,exp4,exp5)中所含实参的个数为( B )个。 A)1 B)2 C)4 D)588、 以下正确的说法是( B )。 A) 用户调用标准库函数前,必须重新定义 B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C) 系统不允许用户重新定义标准库函数 D) 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中89、函数调用不可以( D )。 A) 出现在一个表达式中 B) 出现在执行语句中C) 作为一个函数的实参 D) 作为一个函数的形参解析:函数调用能够返回一个实际对象,所以不能作为函数的形成。90、假定AB为一个类,则( B )为该类的拷贝构造函数的原型说明。A) AB(AB x); B) AB(AB& x); C) void AB(AB& x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色能源项目投资基金成立合同
- 大白工程合同争议的调解技巧3篇
- 夹胶玻璃购买协议3篇
- 公司多个股东合作协议3篇
- 液压课程设计怎么定题目
- 劳务分包合同中架子工的安全保障3篇
- 婚内债务协议范文3篇
- 有关视频的课课程设计
- 公司和个人借款协议样式3篇
- 出租房改造合同模板3篇
- 河北省健康体检主检医师题库2024年12月
- 浙江省2023年1月学业考试物理物理试题(解析版)
- 2024-2025学年五年级科学上册第二单元《地球表面的变化》测试卷(教科版)
- 国家开放大学《管理信息系统》大作业参考答案
- 二十届三中全会精神应知应会知识测试30题(附答案)
- 一例下肢静脉血栓疑难病例护理讨论
- 2024年秋新苏教版三年级上册科学全册复习资料
- 养殖场采购协议书
- 2023-2024部编版小学六年级《道德与法治》上册全册教案
- 2024年山东省高中会考数学题学业水平考试(有答案)
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
评论
0/150
提交评论