




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二部分C程序设计习题注解本部分包括书中所有习题解答及其详细注解,通过注解可以进一步掌握所学的知识。除了书后习题,每章还添加了大量的补充习题。在补充习题中,有些已经超过本书的要求,通过阅读解答,读者可以进一步开阔视野,对C有一个更为全面的认识。C基础知识是软件企业招聘的必考科目,考试的内容主要侧重对C核心机制的理解。除了考核C以外,许多企业会选考JAVA基础知识和数据库方面的知识。在补充习题中,选择了部分企业考核的内容,尤其是第15章的内容,基本都是企业考核的内容,即使不是原题也是比较原理一致的习题。从2005年开始,C开始独立作为国家计算机等级考试二级的一门科目,本部分的习题参考了最新的考试大纲以及部分真题。补充习题不要求全部掌握,可以根据课程的要求,部分阅读。也可以由教学的安排部分重点掌握。第1章C编程体系概述课后习题注解一、选择题1、最初的计算机编程语言是_。A机器语言B汇编语言C高级语言D低级语言【解答】答案A,最早的计算机是二进制语言,也就是及其语言。2、下列各种高级语言中,_是面向对象编程语言。ABASICBC语言CC语言DPASCAL语言【解答】答案C,C语言是面向对象编程语言,其他都是面向过程编程语言。3、结构化程序设计的基本结构不包含_。A顺序B选择C跳转D循环【解答】答案C,基本结构包括顺序,选择和循环。跳转不属于基本结构。4、_不是面向对象程序设计的主要特征。A封装B继承C多态D结构【解答】答案D,结构在面向过程程序设计中就存在,ABC是面向对象的3个主要特征。5、关于C与C语言的关系的描述中,_是错误的。AC语言是C的一个子集。BC语言与C是兼容的CC对C语言进行了一些改进DC和C语言都是面向对象的【解答】答案D,选项D中的C语言不是面向对象的。二、填空题1、目前,有两种重要的程序设计方法,分别是_和_。【解答】答案结构化程序设计面向对象程序设计2、C程序一般可以分成4个部分,它们分别是_、_、_和_。【解答】答案预处理指令全局说明程序的主函数用户自定义函数3、目前流行两大语法体系_和_。【解答】答案BASIC语系C语系4、C提供了四种不同的程序设计思维模式_,_,_,_。【解答】答案基于过程程序设计(PROCEDURALBASED)基于对象程序设计(OBJECTBASED)面向对象程序设计(OBJECTORIENTED)基于泛型的程序设计(GENERICPARADIGM)5、学习编程需要经历三大步_;_;_。【解答】答案一、读程序二、写程序三、积累功能代码段6、C有两种注释符号,一种是_,另一种是_。【解答】答案/,/三、简答题和程序设计题1、简述C语言和C包含的内容有何不同。【解答】答案C语言是一种简单的语言。它真正提供的只有宏、指针、结构、数组和函数。不管什么问题,C语言都靠宏、指针、结构、数组和函数来解决。C不是这样。宏、指针、结构、数组和函数当然还存在,此外还有私有和保护型成员、函数重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、模板、异常、命名空间,等等。用C比用C具有更宽广的空间,因为设计时有更多的选择可以考虑。2、简述C语言的优势。【解答】答案C之父BJARNESTROUSTRUP博士对C语言的定义是一种经过改进的更为优化的C,支持面向对象的程序设计,支持泛型程序设计。总的来说,C语言具有4个方面的优点。(1)降低程序开发和维护的成本。(2)比用C语言编写的程序更加有效率。(3)C允许程序员更自由地使用各种库。(4)C的异常处理机制能够保证在运行期间检查到错误,并转至相应的处理程序,减少了代码的长度和复杂度。3、编写程序,并利用VC60编译成可执行文件,读取命令行参数。【解答】答案参考书PROJ1_03CPP的内容。案例名称读取命令行参数INCLUDEINTMAININTARGC,CHARARGVINTIFORI1IMAINCOUTMAININTS1,S2,S3,SUMCOUTS1S2S3SUMS1S2S3COUTVOIDMAINVOIDINTMININTX,INTYINTA,B,MCOUTABMMINA,BCOUTBDABEABFAB语句序列后,变量C,D,E,F的结果分别是_,_,_,_。【解答】答案11006、执行下列语句后,Z的值是_INTX4,Y25,Z2ZY/XZ【解答】答案7三、简答题和程序设计题1、什么是常量什么是变量【解答】答案程序执行过程中,值不能被改变的量称为常量。程序执行过程中,值可以改变的量称为变量2、下列常量的表示在C中是否合法若合法,指出常量的数据类型;若非法,指出原因。【解答】答案1230321567125E24(指数部分有“”)32LT“COMPUTER“X“X“85(85不是八进数)3字符常量与字符串常量有什么区别【解答】答案C中字符常量为用单引号括起来的单个字符,而字符串常量为用双引号括起来的多个字符,且字符串最后加入结束标志0。4、求出下列算术表达式的值(1)XA3INTXY2/4设X25,Y47,A7【解答】答案按优先级先计算强制类型转换(INT)25477再按左结合性计算A372/47372/4172/472/41/40最后计算X025025(2)FLOATAB/2INTXINTY设A2,B3,X35,Y25【解答】答案按优先级先计算强制类型转换(FLOAT)AB/250/225INTXINTYINT35INT25321,最后计算FLOATAB/2INTXINTY251155、设计一个程序,从键盘输入一个小写字母,将它转换成大写字母。解INCLUDEMAINCHARC,CCOUTCCC0X20COUTMAINFLOATC,FCOUTFCF325/9COUTINCLUDEMAININTA,B,C,N,MCOUTNAN/100BNA100/10CNA10010MC100B10ACOUTVOIDMAININTM,N,LCM,GCD,RCOUTMNLCMMNWHILEMN0RMNMNNRGCDNLCMLCM/GCDCOUTVOIDMAINCHARCINTF,I,K1,K2,K3,K4COUTCIFC0X41S3COUTINCLUDEVOIDMAINCHARP1,P2,S50“XYZ“P1“ABCD“P2“ABCD“STRCPYS2,STRCATP12,P21COUTVOIDMAININTA30,25,20,15,10,5,PAPCOUTVOIDMAININTX10,COUTVOIDMAINCHARPLOVE“ILOVECHINA“DOCOUTDEFINEN10VOIDMAINVOIDFLOATMATHN,SUM,AVEINTI,COUNTCOUTMATHIFORI0IINCLUDEDEFINEN20VOIDMAINVOIDLONGI,AN1A1A20A32A45FORI5IINCLUDEDEFINEN10VOIDMAINVOIDFLOATMATHNINTI,J,TEMPCOUTMATHIFORI1IINCLUDEDEFINEN10VOIDMAINVOIDFLOATMATHN1INTI,J,TEMPCOUTMATHIFORI1IINCLUDEDEFINEN10VOIDMAINVOIDFLOATANINTI,B,JCOUTAICOUTBI0WHILEAIIJAJAJ1AIBFORI0IDEFINEN10VOIDMAINVOIDFLOATANINTI,B,N,MCOUTAICOUTBI0NN/2MNWHILEM1IFBANBREAKELSEIFBANNNM/2ELSENNM/2MM/2IFBANCOUTINCLUDEDEFINEN5VOIDMAINVOIDFLOATANN,MAX,MIN,SUMINTI,J,R1,R2,C1,C2COUTAIJMAXMINA00SUM0FORI0IMAXMAXAIJR1IC1JELSEIFAIJINCLUDEDEFINEN11VOIDMAINVOIDINTCNN,M,N,K,M1,N1,N_MFORN0NINCLUDEDEFINEN11VOIDMAINVOIDINTCNN,M,N,K,M1,N1,NM1FORN1NINCLUDEDEFINEN30VOIDMAINVOIDCHARSTR1N,STR2N,STR2NCOUTSTR1COUTSTR2STRCPYSTR,STR1STRCATSTR,STR2COUTDEFINEN30VOIDMAINVOIDCHARSTR1N,STR2N,STR2NINTI,JCOUTSTR1COUTSTR2I0WHILESTR1I0STRISTR1IIJ0WHILESTR2J0STRISTR2JIJSTRI0COUT()函数调用的方式通常有三种,即函数调用语句、函数表达式、函数参数。3、在函数的调用过程中,实参传送给形参有哪两种方式这两种传送方式有什么区别【解答】答案在函数的调用过程中,实参传送给形参有“值传递”和“传地址”两种方式。所谓的“值传递“,调用函数时,系统给形参分配存储单元,并将实参的值传递给对应的形参;在函数执行时,都是形参参与运算;函数返回时,形参值的改变不影响实参,实参保持原来的值。所谓的“传地址”,当函数的形参为数组时,其实参只能是相同类型的数组。调用函数时,系统将实参数组的起始地址传递给形参数组,两个数组占用相同的内存空间单元。这时,在执行函数时,形参数组中各元素值的变化会使实参数组元素的值同时发生变化。4、什么情况下必须使用函数的原型说明在函数的原型说明的形参表中,形参名是否是必须的为什么【解答】答案在C程序中,当函数调用在前、函数定义在后时,则应在主调函数中,在调用前增加对被调函数的原型说明。在函数原型说明中,可只写形参的数据类型,而省略形参名。这是因为函数原型说明的目的是告诉编译程序,该函数返回值的类型、参数的个数和各参数的类型,以便其后调用该函数时,编译程序对该函数的调用作参数的类型、个数及函数的返回值是否有效的检查。仅给出每一个参数的类型,实际上也已说明了参数的个数。5、什么是递归递归方法解决问题时,必须分析清楚哪三个问题【解答】答案函数的递归调用指的是在一个函数定义的函数体中又出现直接或间接地调用该函数本身。利用递归方法解决问题时,必须注意三点递归的公式、递归的结束条件、递归的限制条件。6、什么是作用域在C中,作用域分成哪5类在前4类作用域中,变量有效作用区域是什么【解答】答案作用域是变量在程序中可引用的区域。在C中,作用域共分成五种块作用域、文件作用域、函数原型作用域、函数作用域和类作用域。所谓块就是用花括号括起来的一部分程序。在块内说明的变量具有块作用域,其作用域从变量的说明处到块的结束处。在函数外定义的变量或用EXTERN说明的变量具有文件作用域。具有文件作用域的变量缺省的作用域是从定义变量的位置开始到该源程序文件结束,即符合变量先说明、后使用的原则。在函数原型的参数表中说明的变量所具有的作用域称为函数原型作用域,它从其说明处开始,到函数原型说明的结束处结束。函数作用域是指在函数内定义的标识符在其定义的函数内均有效,即不论在函数内的任一地方定义,均可以引用这种标识符。7、什么是局部变量与全局变量局部变量与全局变量的作用域是什么什么是静态变量与动态变量静态变量与动态变量分别存放在什么存储区静态变量与动态变量各自生存期是什么【解答】答案局部变量指的是在一个函数内部定义的变量或在一个块内定义的变量。全局变量指的是在函数外定义的变量。全局变量具有文件作用域。当具有块作用域的局部变量与具有文件作用域的全局变量同名时,局部变量优先。在块作用域内可通过作用域运算符“”来引用与局部变量同名的全局变量。动态变量指的是在程序的执行过程中,为其分配存储空间的变量。静态变量指的是在程序开始执行时系统就为变量分配存储空间,直到程序执行结束时,才收回为变量分配的存储空间。动态变量存储在内存中的动态存储区;静态变量存储在内存中的静态存储区。静态变量的生存期为整个程序的执行期间。动态变量的生存期仅在变量的作用域内。8、变量的存储类型有哪四种按存储类型,变量可分为哪五种叙述每类存储变量的存储特性。【解答】答案在C中,变量的存储类型分为四种自动类型(AUTO)、静态类型STATIC、寄存器类型REGISTER、外部类型EXTERN。按存储类型,变量可分为自动变量、寄存器变量、局部静态变量、全局静态变量、外部变量五种。每类存储变量的存储特性总结在表41中表41变量存储类型表变量类型全局、局部变量作用域静、动态变量存储区自动变量局部变量块作用域动态变量动态存储区寄存器变量局部变量块作用域动态变量CPU寄存器局部静态变量局部变量块作用域静态变量静态存储区全局静态变量全局变量文件作用域静态变量静态存储区外部变量全局变量文件作用域静态变量静态存储区9、如何定义内联函数使用内联函数的实质与目的是什么【解答】答案在类型前加关键字INLINE定义的函数称为所谓内联函数,定义格式为INLINE()函数体内联函数的实质就是在编译时把函数的函数体直接插入到调用处。其目的是降低系统的开销,提高程序的执行效率。10、什么是函数的重载调用重载函数时,通过什么来区分不同的重载函数【解答】答案函数的重载是指用重名函数完成不同功能的函数运算。定义的重载函数的形参必须不同,即或者参数个数不同或者数据类型不同。只有这样,编译器才有可能根据不同的参数去调用不同的重载函数。11、指出下列程序各函数中的全局变量与局部变量,静态变量与动态变量,各变量的存储类型、作用域与生存期,并写出下列程序的运行结果【解答】答案INCLUDEEXTERNINTX/说明X为外部变量,作用域从这里到程序结束,生存期在整个文件中VOIDCHANGEVOIDREGISTERINTY0,Z3/动态局部变量,生存期从这里开始到CHANGE函数结束COUTVOIDMAINVOIDINTI/动态局部变量,变量的生存期从这里开始到MAIN函数结束VOIDADD1VOID,ADD2VOIDFORI0IVOIDMAINVOIDFLOATF,CFLOATCHANGEFLOATX/函数原型说明COUTFCCHANGEFCOUTVOIDMAINTRYCHARPSTRING“ABCDEF“THROWPSTRINGCATCHINTKCOUTDOUBLEDIVDOUBLE,DOUBLEVOIDMAINTRYTHROW00COUTVECIA,IA6VECTORREVERSE_ITERATORR_ITERFORR_ITERVECRBEGINR_ITERVECRENDR_ITERCOUTVECIA,IA6_SORTVECBEGIN,VECENDCOUTITERATORITER1VECBEGIN3、为了使用四个算法ADJACENT_DIFFERENCE、ACCUMULATE、INNER_PRODUCT和PARTIAL_SUM,必须包含“_”【解答】答案INCLUDE4、两种ITERATOR,一种是ISTREAM_ITERATOR,另一种是OSTREAM_ITERATOR,为了使用这两种ITERATOR,必须使用头文件“_”【解答】答案INCLUDE三、简答题与程序设计题1、简述泛型算法的必要性。【解答】答案在进行程序设计的时候,一些常用的算法经常用到。比如取最大值(MAX)、取最小值(MIN)、查扎(FIND)和排序(SORT),在调用这些算法的时候,希望算法并不局限于某一种数据类型,比如不管是VECTOR、LIST还是内置的数组类型都可以使用。为了实现这些需要,需要引入“泛型算法”,所谓“泛型”是它们的操作是建立多种容器上的,所谓“算法”是因为实现的是公共操作,比如MIN、MAX和SORT等等。使用“泛型算法”可以大大提高代码的开发效率。2、编写程序实现输入6个数字,赋值给数组,然后将数组的内容正序输出。分别用泛型算法和不用泛型算法实现。【解答】思路参数书上程序602和603实现3、使用泛型算法实现输入6个数字,如果有重复的则去掉,然后按照正序输出。【解答】思路参考6_06CPP使用反向ITERATOR第7章类的基本概念课后习题注解一、选择题1、以下不属于类存取权限是_。APUBLICBSTATICCPROTECTEDDPRIVATE【解答】答案B,ACD均为类访问修饰符,B是普通的修饰符。2、类的析构函数是_时调用的。A类创建B创建对象C引用对象D释放对象【解答】答案D,析构函数功能是释放对象,收回资源。3、有关构造函数的说法,不正确的是_。A对象是类的一个实例B任何一个对象只能属于一个具体的类C一个类只能有一个对象D类与对象的关系和数据类型与变量的关系相似【解答】答案C,一个类可以创建多个对象。4、通常拷贝构造函数的参数是_。A某个对象名B某个对象的成员名C某个对象的引用名D某个对象的指针名【解答】答案C,构造函数的参数是类本身的引用。5、假定A是一个类,那么执行语句“AA,B3,P”调用了_次构造函数。A2B3C4D5【解答】答案A,其中P并没有调用构造函数,只有使用NEW以后,才创建对象。二、填空题1、假定DD是一个类,则执行“DDA10,B2”语句时,系统自动调用该类构造函数的次数为_【解答】答案11次2、对于任意一个类,析构函数的个数最多为_个。【解答】答案13、一个类的_函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。【解答】答案析构函数4、C程序的内存格局通常分为四个区(1)_,该区用来存放全局变量、静态数据、常量。(2)_,该区用来存放类成员函数、其他函数代码。(3)_该区用来存放局部变量、函数参数、返回数据和返回地址。(4)_。该区是自由存储区。【解答】答案全局数据区DATAAREA代码区CODEAREA栈区STACKAREA堆区HEAPAREA三、简答题与程序设计题1、简述3种访问修饰符对类成员的访问限制。【解答】答案C语言通过访问限定符PUBLIC、PRIVATE和PROTECTED将类成员分成三类公有成员、私有成员和保护成员。公有成员(PUBLIC修饰)可以被该类的成员函数访问,也可以在程序的任意地方被任意访问。私有成员(PRIVATE修饰)只能被该类的成员函数或者该类的友元函数访问。友元是为了增加程序的灵活性而引入的概念,允许程序中的某些函数访问类中的私有成员。保护成员(PROTECTED)对于派生类来说,就像是公有成员,可以被访问,对于程序的其他部分来说,就像是私有成员,不允许被访问。2、定义一个学生类,输入学生的姓名、语文成绩、数学成绩和英语成绩,计算并输出每位学生的各门功课的成绩、总成绩和平均成绩。【解答】思路设计一个类,类的数据成员包括姓名、语文成绩、数学成绩和英语成绩。类的成员函数包括算总成绩、算平均成绩和输出各门功能的成绩。3、简述拷贝构造函数的必要性。【解答】答案当用一个对象值初始化一个新对象的时候,或者利用一个对象构造另一个对象的时候,要涉及到对象的拷贝,比如执行语句“PERSONP1P2”或者“PERSONP1P2”。这个时候P1和P2指向堆的同一内存空间,当P1调用析构函数释放堆空间以后,这个时候P2指向的地址变空了,如果P2再调用析构函数释放内存空间,将会出错。如图71所示。图71使用对象赋值补充习题注解一、选择题1、在C中可以把具有相同内部存储结构和相同操作的对看成属于同一类。在指定一个类后,往往把属于这个类的对象称为类的_A实例B实物C特征D对象【解答】答案A,使用类创建出来的数据类型,称之为类的实例。2、有关类的说法不正确的是_A类是一个用户自定义的数据类型B只有类中的成员函数才能存取类中的私有数据C在类中,如果不作特别说明,所有的数据均为私有类型D在类中,如果不作特别说明,所有的成员函数均为公有类型【解答】答案D,如果不特别说明,所有成员均为私有类型。4、有关类和对象的说法下列不正确的有_A对象是类的一个实例B任何一个对象只能属于一个具体的类C一个类只能有一个对象D类与对象和关系和数据类型和变量的关系相似【解答】答案C,一个类可以创建多个对象。5、有关构造函数的说法不正确的是_A构造函数名字和类的名字一样B构造函数在说明类变量时自动执行C构造函数无任何函数类型D构造函数有且只有一个【解答】答案D,构造函数可以重载,可以有多个。6、有关析构函数的说法不正确的是_A析构函数有且只有一个B析构函数无任何函数类型C析构函数和构造函数一样可以有形参D析构函数的作用是在对象被撤消时收回先前分配的内存空间【解答】答案C,析构函数没有形参。7、在类的定义体外定义成员函数时,需要在函数名前加上_A类标记B类域标记C类对象D域运算符【解答】答案B,需要加上类域运算符“”。8、在类的定义形式中,数据成员、成员函数和_组成了类。A成员的访问控制信息B公有信息C私有信息D保护信息【解答】答案A,类的成员控制信息,也就是访问修饰符。9、_功能是对对象进行初始化A析构函数B数据成员C构造函数D静态成员函数【解答】答案C,构造函数的功能是初始化。第8章静态成员与友元课后习题注解一、选择题1、关于静态数据成员,下面说法错误的是_。A使用静态数据成员,实际上是为了消除全局变量。B可以使用“对象名静态成员”或者“类名静态成员”来访问静态数据成员。C静态数据成员只能在静态成员函数中引用。D所有对象的静态数据成员占用同一内存单元。【解答】答案C,静态成员函数只能引用静态数据成员,但是静态数据成员可以在任意地方使用。2、下面的函数中,静态成员函数不能访问的是_A静态数据成员B静态成员函数C类以外的函数和数据D非静态数据成员【解答】答案D,静态成员函数不能访问非静态数据成员。3、在类的定义中,引入友元的原因是_A提高效率B深化使用类的封装性C提高程序的可读性D提高程序的可读性【解答】答案A,友元的目的之一是提高编写效率。4、友元类的声明方法是_AFRIENDCLASSBYOUYUANCLASSCCLASSFRIENDDFRIENDSCLASS【解答】答案A,只有A是合法的友元定义方式。二、填空题1、数据定义为全局变量,破坏了数据的_;较好的解决办法是将所要共享的数据定义为类的_。【解答】答案封装性静态成员2、静态数据成员和静态成员函数可由_函数访问【解答】答案任意访问权限许可的3、_和_统称为友元【解答】答案友元函数友元类4、友元的正确使用能提高程序_,但破坏了类的封装性和数据的隐蔽性【解答】答案的运行效率三、简答题和程序设计题1、简述静态数据成员和普通数据成员的区别和联系。静态成员函数与普通成员函数的区别和联系。【解答】答案静态数据成员不从属于任何一个具体对象,所以必须对它初始化,且对它的初始化不能在构造函数中进行,类中用关键字STATIC修饰的数据成员叫做静态数据成员。静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员,因为非静态数据成员只有对象存在时才有意义。但静态数据成员和静态成员函数可由任意访问权限许可的函数访问。2、简述C语言引入友元的原因。【解答】答案有时候,普通函数需要直接访问一个类的保护或私有数据成员。普通函数需要直接访问类的保护或者私有数据成员的原因主要是为提高效率。在类里声明一个普通函数,加上关键字FRIEND,就成了该类的友元,可以访问该类的一切成员。3、改写程序PROJ8_04CPP,不用友元实现程序功能。【解答】答案需要将友元部分分别放到类中。4、改写程序PROJ8_05CPP,使用友元函数实现该程序的功能。【解答】答案将公用的部分拿到一个类中,然后定义成另一个类的友元。补充习题注解一、选择题1、_只能访问静态成员变量,静态成员函数和类以外的函数和数据不能访问类中的非静态成员变量A静态函数B虚函数C构造函数D析构函数【解答】答案A,静态成员函数只能访问静态成员变量。2、局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形是,可以用_提供对全局变量的访问。A域运算符B类运算符C重载D引用【解答】答案A,使用域运算符可以限制访问类内部的成员。3、在下列关键字中,用以说明类中公有成员的是_APUBLICBPRIVATECPROTECTEDDFRIEND【解答】答案A,PUBLIC修饰的成员是公有的。4、下列的各类函数中,_不是类的成员函数A构造函数B析构函数C友元函数D拷贝初始化构造函数【解答】答案C,其中ABD均是成员函数,C不是。5、_不是构造函数的特征A构造函数的函数名与类名相同B构造函数可以重载C构造函数可以设置默认参数D构造函数必须指定类型说明【解答】答案D,构造函数没有类型说明。6、_是析构函数的特征A一个类中只能定义一个析构函数B析构函数名与类名不同C析构函数的定义只能在类体内D析构函数可以有一个或多个参数【解答】答案A,析构函数只能有1个。7、通常拷贝初始化构造函数的参数是_A某个对象名B某个对象的成员名C某个对象的引用名D某个对象的指针名【解答】答案C,拷贝构造函数的参数是当前类的引用。8、关于成员函数特征的下述中,_是错误的。A成员函数一定是内联函数B成员函数可以重载C成员函数可以设置参数的默认值D成员函数可以是静态的【解答】答案A,成员不一定是内联函数。9、下述静态数据成员的特征中,_是错误的。A说明静态数据成员时前边要加修饰符STATICB静态数据成员要在类体外进行初始化C引用静态数据成员时,要在静态数据成员名前加和作用域运算符D静态数据成员不是所有对象所共用的【解答】答案D,静态数据成员是所有对象共有的。10、从语言角度来说,类是一种数据类型,而_是具有这种类型的变量A实例B实物C特征D对象【解答】答案B,实例是类创建的,变量是数据类型创建的。11、若QUEUE是类,AQUEUE是它的一个对象,P1是类对象AQUEUE的一个指针,那么类对象AQUEUE的指针P1可以通过_来访问类的成员。ABCD【解答】答案D,使用P1访问类的成员。二、填空题1、类中的数据和成员函数默认类型为_【解答】答案私有2、结构中的数据和成员函数默认类型为_【解答】答案公有3、在类内部定义的_数据不能被不属于该类的函数来存取,定义为_的数据,函数则可以在类外部进行存取【解答】答案PRIVATEPUBLIC4、_是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象和其他内部管理操作【解答】答案构造函数5、一个类有_个析构函数【解答】答案16、静态数据成员在定义或说明时前面要加上关键字_【解答】答案STATIC7、_成员函数的实现中不能直接引用类中说明的非静态成员【解答】答案静态8、定义在类内部的函数为类默认状态_,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。【解答】答案内联函数第9章运算符重载课后习题注解一、选择题1、下列运算符中,不能重载的是_。ABCXBCINXDCOUTSTR当输入为OBJECTWINDOWSPROGRAMMING所得的结果是STR_AOBJECTWINDOWSPROGRAMMINGBOBJECTCOBJECTWINDOWSDOBJECTWINDOWSPROGRAMMING【解答】答案B,当出现空格后,一次输入将停止。5、进行文件操作时包含_文件。AIOSTREAMHBFSTREAMHCSTDIOHDSTDLIBH【解答】答案B,FSTREAMH用来处理文件。6、使用如SETW的操作对数据进行格式输出时,包含_文件。AIOSTREAMHBFSTREAMHCIOMANIPHDSTDLIBH【解答】答案C,格式化函数包括在头文件IOMANIPH中。7、关于READ函数的下列描述中,_是对的。A该函数是用来从键盘输入中获取字符串B该函数所获取的字符多少是不受限制的C该函数只能用于文本文件的操作中D该函数只能按规定读取所指定的字符数【解答】答案D,READ函数只能按照规定读取。8、在IOS中提供控制格式的标志中,_是转换为十六进制形式的标志位。AHEXBOCTCDECDLEFT【解答】答案A,其中B是八进制的标志位,C是十进制的标志位。9、控制格式I/O的操作中,_是设置域宽的。AWSBOCTCSETFILLDSETW【解答】答案D,使用SETW设置域宽。10、下列函数中,_是对文件进行写操作的。AGETBREADCSEEKGDPUT【解答】答案D,只有PUT是进行写操作的。第13章模板课后习题注解一、选择题1、模板参数表中参数使用的符号分隔是_。A,BC/D以上都不是【解答】答案A,模板使用逗号分隔参数列表。2、类模板规定了如何创建一个_。A对象B类C实例D变量【解答】答案B,类模板经过编译以后可以根据不同的数据类型产生不同的类。3、类模板的模板参数_。A只可以作为数据成员的类型。B只可以作为成员函数的返回类型C只可以作为成员函数参数类型D以上都可以【解答】答案D。4、以上对模板的声明,正确的是_。ATEMPLATEBTEMPLATECLASSDREAM下列类对象定义中,正确的是_。ADREAMABDREAMACDREAMADDREAMA【解答】答案C,在定义类的时候,将TYPE换成数据类型就可以了,因此C正确。二、填空题1、填写下面的空格,将程序代码补充完整。TEMPLATE_MINTX,TYCOUTYYX2、C模板分为_和_。【解答】答案类模板(CLASSTEMPLATE)函数模板(FUNCTIONTEMPLATE)3、本质上复合数据类型中的VECTOR和_都是系统定义好的模板类。比如定义VECTOR的时候,使用的语法是“_”。【解答】答案LIST(其他复合类型也可以)VECTORIVEC12,30三、简答题和程序设计题1、简述在C语言中,使用模板的优点。【解答】答案所谓模板,就是将某段程序中的数据类型参数化,使得它能够处理某个范围内的数据类型,而不必为每种可能的类型都建立一个实例,从而避免了重复劳动,增强了程序的灵活性和有效性。2、编写一个函数模板,它返回两个值中的最小值。【解答】答案参考程序PROJ13_01CPP。3、编写一个函数模板,求出输入数组的最大值、最小值和平均值。【解答】答案参考程序PROJ13_01CPP。4、编写一个类模板,实现返回两个值中的最大值。【解答】答案参考程序PROJ13_04CPP5、编写一个类模板,求出输入数组的最大值、最小值和平均值。【解答】答案参考程序PROJ13_04CPP第14章C编码助手课后习题注解一、选择题1、VISUALASSIST60的功能是_。A提高程序执行效率B提高编码效率C提高程序执行速度D提高编译速度【解答】答案B,VA只是一个辅助编辑工具,因此只能提高编写代码的效率。2、默认情况下,使用哪个快捷键,实现代码自动对齐_。AALTCTRLDELBALTF8CCTRLF8DALTF6【解答】答案B,使用VA最常使用的就是自动对齐,快捷键是ALTF8。3、关于VISU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行行政考试题库及答案
- 银行消防试题及答案
- 河南旅游专业试题及答案
- 医学转专业试题及答案
- 销售专业试题及答案英语
- 印刷专业试题及答案
- 湖北省孝感市2025-2026学年高二上学期9月起点考试地理(B)试卷(含答案)
- 翼载荷和推重比的确定课件
- 河北省廊坊市2024-2025学年八年级上学期11月月考物理试卷(含答案)
- 坡道太高用什么施工方案
- 人教版九年级数学下册第二十六章反比例函数-作业设计
- 边坡削坡施工方案
- 浙江省通用安装工程预算定额第八册
- 乡村振兴战略实施与美丽乡村建设课件
- 中频电疗法理疗(共60张PPT)精选
- 医学信息检索与利用智慧树知到答案章节测试2023年杭州医学院
- 黑底搭配大气企业宣传商业计划书商务通用PPT模板
- GB/T 17608-2006煤炭产品品种和等级划分
- 沪教五年级数学上册第一单元测试卷
- 地下停车库设计统一规定
- 建筑装饰设计收费管理规定
评论
0/150
提交评论