自考04737C++程序设计押题及答案.docx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《自考04737C++程序设计押题及答案.docx》由用户(李老师yy)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 04737 C+ 程序设计 押题 答案
- 资源描述:
-
1、一、 单选1、 C+程序中的语句必须以( )结束。A: 冒号B: 分号C: 空格D: 句号正确答案:B解析:本题主要考查的知识点为C+语句。在C+中所有的语句都要以分号结束。P552、在C+程序中由new分配的动态内存空间必须通过( )运算符释放。A: deleteB: dropC: listD: renew正确答案:A解析:本题主要考查的知识点为动态内存分配及释放的方法。当动态分配的内存空间在程序中使用完毕之后,必须显式地将它们释放。在C+程序中由new分配的动态内存空间必须通过delete运算符释放。P503、下列关于内联函数的说法中,错误的是A: 使用内联函数减少了调用开销B: 使用内联
2、函数加快了程序执行速度C: 内联函数的结构越复杂越好D: 内联函数中的执行代码不能太多正确答案:C解析:本题主要考查的知识点为内联函数。使用内联函数减少了调用开销,加快了程序执行速度,但函数中的执行代码不能太多,结构也不能太复杂,否则会增加程序代码的大小。P454、( )的函数不适合声明为内联函数。A: 函数体结构简单B: 函数体语句较多C: 函数体内有if语句D: 函数体内有函数调用正确答案:B解析:本题主要考查的知识点为内联函数。函数体语句较多的函数不适合声明为内联函数。P455、在C+中,封装是借助( )达到的A: 结构B: 数组C: 类D: 函数正确答案:C解析:本题主要考查的知识点为
3、封装。封装就是把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。c+语言通过建立用户定义的类来支持数据封装和信息隐藏。P64-656、下列关于结构化程序设计方法的说法中,错误的是A: 结构化程序设计方法又称为面向过程的设计方法B: 结构化程序设计方法强调数据类型和程序结构C: 结构化程序设计语言的代表是C+语言和Pascal语言D: 结构化程序设计方法注重程序的易读性、可靠性及可维护性正确答案:C解析:本题主要考查的知识点为结构化程序设计方法。结构化程序设计方法又称为面向过程的设计方法,它强调数据类型和程序结构,注重程序的易读性、可靠性及可维护性。结构化程序设计语言的代表
4、是C语言和Pascal语言。P617、下列关于面向对象技术的说法中,错误的是A: 面向对象技术把问题看成对象的集合B: 对象具有两个特性:状态和行为C: 状态是指对象本身的信息D: 属性是对对象的操作正确答案:D解析:本题主要考查的知识点为面向对象技术。面向对象技术把问题看成对象的集合。对象具有两个特性:状态和行为。状态是指对象本身的信息,也称为属性。行为是对对象的操作。P638、一个完整的C+程序不包括A: 头文件B: 注释C: 若干个用户定义的类及局部函数D: 一个主函数正确答案:C解析:本题主要考查的知识点为程序结构。一个完整的C+程序由以下部分构成:(1)一个主函数,可以调用其他函数,
5、但它不能被其他函数调用。(2)若干个用户定义的类及全局函数。(3)全局说明,即在所有函数和类定义之外的变量说明及函数原型。(4)注释。(5)头文件。P719、设类M将其他类对象作为成员,则创建类M的对象时,应A: 同时执行类M和成员对象的构造函数B: 先执行类M的构造函数C: 先执行成员对象的构造函数D: 同时执行类M和成员对象的析构函数正确答案:C解析:本题主要考查的知识点为封闭类构造函数的初始化列表。类M是封闭类。执行封闭类的构造函数时,先执行成员对象的构造函数,然后再执行本类的构造函数。P12610、下列关于友元函数的说法中,正确的是A: 不能把友元函数放在类的公有部分B: 不能把友元函
6、数放在类的私有部分C: 不能把友元函数放在类的保护部分D: 不能把其他类的私有成员函数声明为友元函数正确答案:D解析:本题主要考查的知识点为友元函数。不能把其他类的私有成员函数声明为友元函数。友元函数不受类中的访问权限关键字的限制,可以把它放在类的公有、私有、保护部分,结果是一样的。P12911、 C+ +语言头文件的扩展名为A. . hB.cppC.cD. . exe12、下面可以做标识符首个字符的是A.aB.1C. &D. +13、下列表达式中不能出现在赋值运算“=”左侧的是A. f( a,b)B. a = bC. * p D. &a14、C +标准的输入/输出流库的头文件是A. cmat
7、hB. iostreamC.stringD. algorithm15、使用指针,用户给它分配地址后,不再使用时,释放空间需要使用的关键字是 A. newB.deleteC. externD.auto16、与一般的C +程序语句相区别的预处理语句不包含A.宏定义B.文件包含C.条件编译D.变量定义17、下列对C + +语句注释正确的是A. / * This is a C program/ *B./This is a C program C. “This is a C program”D./This ia a C program/18、用来取对象存储首地址的运算符是 A. *B.&C,D.#19、
8、关于已定义的类A,语句A * Pa 二new A(5),下列说法正确的是A.该语句会创建类A的一个对象,并将此对象的地址赋给指针paB.当指针变量pa超出其作用域时,pa和为对象分配的空间都将被自动释放C.该语句会创建类A的5个对象,且它们的地址是连续的D.类A中一定有一个显式定义的构造函数和一个显式定义的虚析构函数20、dec操控符的含义是A.设置转换基数为二进制B.设置转换基数为八进制C.设置转换基数为十进制D.设置转换基数为十六进制21、为了保持一个int类型变量内容的持久,最好定义它为A. registerB. autoC. externD. static22、使用string类建立对
9、象的不正确方式是A. string str( OK );B. string str =OK1;C. string str; D. string str =OK;【答案】D (2.5)【考点】sring类对象的初始化【解析】string类的对象不能用单引号括起来的单个字符常量初始化进行对象的建立。23、下列有关设置函数参数值的描述中,不正确的是A.设置了默认值的参数右边 不允许出现没有指定默认值的参数B.参数默认值的设置顺序从参数表的右端开始C.参数默认值可以设置在定义语句中,也可以设置在声明语句中D.参数默认值可以是数值不可以是表达式【答案】D (3.1)【考点】默认参数【解析】如果一个函数中
10、有多个参数,则默认参数应从右至左逐个定义,A、B正确;参数默认值可以设置 在声明语句中,如在函数原型中指定默认参数,C正确。24、使用char定义的字符串尾部的结束符是A. 0 B. endC. n D.丨r f【答案】A (2.5)【考点】char定义的字符串结束符 【解析】使用char定义的字符串尾部的结束符是0 。25、关于模板的定义,下列不正确的是A. template Q F( Q x) | return Q + x;(B. template Q F( Q x) ) return x + x;)C. template T F(T x) | return x * x; D. templ
11、ate T F(T x) j return x;)【答案】A (3.5)【考点】函数模板【解析】Q是数据类型,不是变量,所以不能作为返回值。26、关于下列数据类型,表达的数值范围最广的是A. unsigned int B.unsigned long C. double D.long 【答案】C (1.2)【考点】C+数据类型【解析】类型最高即数值范围最广。double: 1. 7E - 308 1. 7E + 308。unsingend int :0 4294967295。unsigned long:0 4294967295D long:-2147483648 2147483647。所以应选
12、C。27、设int a = 12;则执行完语句a+ =a* a;后,a的值为()A. 12 B.144 C. 156 D.288【答案】C (1.2)【考点】C+数学运算符的简单运算【解析】a + = a*a,即a = a + a* a,将a = 12代人上式,即可得156。28、对si ,s2,s3,s4字符数组初始化操作正确的是()A. char si = ” abed ;B.char s23 = xyz;C.char s3=厂 a,xVyl;D.char s42 3 = j xyz, mnp;【答案】A (2.5)【考点】字符数组的初始化【解析】A是用字符串常量初始化字符数组,B赋值个数
13、超过了数值长度,C 二维数组每行应放一个字符 串,D原因同B。29、设int & min( int &,int &)返回两参数中较小者,如有两整型变量int a =5,int b = 10;在执行min(a,b) 后,a,b的值分别为()A.4,10B.5,10C.4,9D.5,9【答案】A (3.1)【考点】引用作为函数参数【解析】执行1:1(3,13)-后,函数返回变量1后减1,即!1=4。b值未变,仍为10,所以答案选A。30、关于函数重载的描述正确的是A.函数的参数个数不能相同B.函数参数的数据类型不能相同C.函数的返回值可以相同D.函数的返回值不能相同【答案】D (3.4)【考点】C
14、+中函数重载【解析】函数重载的形参必须不同,或者个数不同或者类型不同(无论函数返回值类型如何)。31、在类中声明的成员可以使用以下哪个关键字进行修饰A.externB. auto C.registerDvoid32、下列关于构造函数的描述中,正确的是A.构造函数不可以设置默认的参数B.构造函数不可以是内联函数C.构造函数在定义类对象时自动执行D.构造函数不可以重载33、用于表明类其后的成员函数属于这个特定类的运算符是A.B. - C.:D. void34、在定义一个派生类时,若不使用保留字显式地规定采用何种继承方法,则默认为_ 方式。A.公有继承B.私有继承C.保护继承D.非私有35、类对象的
15、指针可以通 过 运算符访问对象的成员。A. B.- C.: D.void36、下列关于复制构造函数的说法中错误的是A.复制构造函数是一种特殊的构造函数,函数名与类名相同B.若自定义派生类的复制构造函数,那么也必须自定义基类的复制构造函数C.复制构造函数只能有一个参数D.复制构造函数不允许在函数体中使用return语句37、运算 符与析构函数一起工作来删除一个动态对象。()A. deleteB. cutC.clearD. cancel38、下列不属于实例连接方式的为()A.对一B.对多C.多对一D.多对多39、下列关于类的描述中,错误的是()A.类是一组对象的模板B.类是抽象数据的实现C.类是数
16、据和方法的封装体D.类是对象的实例【答案】D (4.1)【考点】类的定义【解析】类是一组对象的模板,所有对象是类的实例,所以D项是错误的。40、下面哪个关键字不属于修饰类特殊成员函数的关键字()A. constB. volatileC.staticD. public【答案】D (4.1)【考点】类的特殊成员函数【解析】函数的声明如果包含const、volatile、static关键字,则为类的特殊函数。41、下述静态成员的特性中,正确的是()A.静态成员函数可以利用this指针B.静态数据成员要在类体内进行初始化C.引用静态数据成员时,要在静态数据成员名前加 和作用域运算符D.静态数据成员不是
17、所有对象所共有的【答案】C (5.2)【考点】静态成员【解析】静态成员函数属于整个类,是类的所有对象共享的成员函数,它与一般成员函数不同,没有指向 调用该成员函数的对象的this指针,A项错误;静态数据成员的初始化应在类体外进行,B项错误;静态数 据成员是属于整个类的,因此可以不通过对象名,而直接使用类名和作用域运算符表明其所属的类即可, C项正确;静态数据成员被类的所有对象所共享,D项错误。42、下列关于静态成员函数与一般成员函数的不同点不正确的是()A.静态成员是类的成员,不是对象的成员B.静态成员的生成在建立对象之后C.静态成员函数不能被说明为虚函数D.静态成员函数不能直接访问非静态函数
18、【答案】B (5.2)【考点】静态成员函数与一般成员函数的不同点【解析】在没有建立对象之前,静态成员就已经存在,所以B是错误的。43、类的派生和继承是面向对象程序设计方法的重要特征之一,下面关于它的叙述正确的是( )A.派生类不能访问基类的保护成员 B.作为虚基类的类不能被实例化C.派生类应当向基类的构造函数传递参数 D.虚函数必须在派生类中重新实现【答案】C (6.1)【考点】继承和派生【解析】派生类可以访问基类的保护成员;抽象类不能被实例化,而作为虚基类的类能被实例化;虚函数 不必在派生类中重新实现。故A、B、D错误,C项说法正确。44、下面关于类模板的叙述正确的是()A.不可以通过一个类
展开阅读全文