c++课后题答案_第1页
c++课后题答案_第2页
c++课后题答案_第3页
c++课后题答案_第4页
c++课后题答案_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章C语言概述练习题111判断题1C语言和C语言都是面向对象的程序设计语言。2面向对象方法具有封装性、继承性和多态性。3C语言是C语言的一个子集。C语言继承了C语言。4C语言程序与C语言程序一样都是函数串。5C语言支持封装性和继承性,不支持多态性。6C语言比C语言对数据类型要求更加严格了。7C语言对C语言进行了一次改进,使得编程更加方便了。8C源程序在编译时可能出现错误信息,而在连接时不会出现错误信息。9编译C源程序时,出现了警告错(WARNING)也可以生成可执行文件。10C语言程序的实现也要经过编辑、编译连接和运行3个步骤。12单选题1下列关于面向对象概念的描述中,错误的是(C)。A面向对象方法比面向过程方法更加先进B面向对象方法中使用了一些面向过程方法中没有的概念C面向对象方法替代了结构化程序设计方法D面向对象程序设计方法要使用面向对象的程序设计语言2下列各种高级语言中,不是面向对象的程序设计语言是(D)。ACBJAVACVBDC3下列关于类的描述中,错误的是(A)。A类就是C语言中的结构类型B类是创建对象的模板C类是抽象数据类型的实现D类是具有共同行为的若干对象的统一描述体4下列关于对象的描述中,错误的是(C)。A对象是类的一个实例B对象是属性和行为的封装体C对象就是C语言中的结构变量D对象是现实世界中客观存在的某种实体5下列关于C程序中使用提取符和插入符的输入/输出语句的描述中,错误的是(C)。A提取符是对右移运算符()重载得到的B插入符是对左移运算符(VOIDMAININTI,JCOUTIJCOUTINTMAXINT,INTVOIDMAININTA,B,CA5B8CMAXA,BCOUTYXY答MAX5,883文件E143CPP内容如下INCLUDEVOIDF1,F2VOIDMAINCOUTVOIDF1COUTVOIDF2COUTVOIDMAINCOUTVOIDMAINCINAINTBAACOUTVOIDMAININTA3CINAINTBAACOUTVOIDMAININTI,JI5INTKIJCOUTVOIDMAININTI,JJ10I5INTKIJCOUTD10下列运算符中,优先级最低的是(B)。ABC|D下列数组元素值为2的数组元素是(B)。AA0BA1CA2DA3723已知INTAB31,5,6,3,0,2数组元素AB11的值为(A)。A0B1C2D324已知CHARS“ABCD“;输出显示字符C的表达式是(C)。ASBS2CS2DS325已知CHARSS6“WHILE“,“FOR“,“ELSE“,“BREAK“;输出显示“REAK“字符串的表达式是(B)。AS3BSS31CS3DSS3123填空题1C语言中,基本数据类型包含有整型、浮点型、字符型、空值型和布尔型。2变量的存储类可分为自动类、寄存器类、外邹类和静态存储类。3浮点型常量可分为单精度、双精度和长双精度浮点型常量。4结合性从右至左的运算符有单目运算符、双目运算符和赋值运算符。5条件表达式是由三目运算符组成的,该表达式的类型是由冒号左边和右边两个操作数中类型高的操作数类型决定的。6已知DOUBLEDD312,24,36,48,52,64这里DD是一个二维数组的数组名,该数组共有9个元素,每个元素的类型是DOUBLE。数组元素DD00的值是12,DD11的值是52,数组元素DD22的值是0。7已知CHARSS6“WHILE“,“BREAK“,“FOR“,“ELSE“字符数组SS是二维数组,它的第1维大小应该是4。使用COUT和VOIDMAININTA,BCOUTBAINTDABCOUTVOIDMAINCONSTINTA8CONSTCHARCHK8CONSTDOUBLED85COUTINTA9VOIDMAININTB5COUTVOIDMAININTA3CHARBMCOUT9VOIDMAINCOUT2VOIDMAININTA5COUT,4,44,8,87INCLUDEVOIDMAININTA3,B5COUTBAB2VOIDMAININTI,J,KIJK510ICOUTVOIDMAININTI5,J8COUTINTA8VOIDMAININTB6DOUBLED15DABCOUTVOIDMAIN11INTM39,8,7,6,5,4,3,2,1,S0FORINTI0IVOIDMAINCHARS“BHY543KPM345“FORINTI0SI0IIFSIAINTI0,JFORJIIBJJICOUTVOIDMAININTA31,2,3,4,5,6,7,8,9INTS10,S20FORINTI0IVOIDMAINCHARS“FORINTI0I0IFORINTJ0JVOIDMAININTA3,B5INTD1ABAB13INTD2AA2ABBBCOUTVOIDMAININTX5INTF3XXX2XX5X2COUTVOIDMAINDOUBLEA,BCOUTABCOUTVOIDMAINDOUBLEC,FCOUTCF90/50C320COUTVOIDMAINDOUBLEA,B,C,D,ECOUTABCDEDOUBLEFABCDECOUTVOIDMAINCHARA“12345“COUT/格式二/注释信息是用来对程序进行提示和说明的。2使用CONST定义符号常量比使用DEFINE定义符号常量有何优点答使用CONST定义符号常量时要指出数据类型,而用DEFINE定义符号常量时不需提出类型,因此前者比后者对类型要求更严格,这样会更安全。3内部静态存储类变量有何特点答内部静态存储类变贯的特点是作用域较小,但寿命很长,这种变量作用域与寿命不一致,因此会出现不可见但又存在的情况。4在使用插入符(CBC这是一个条件表达式还是赋值表达式答表达式类型由优先级低的运算符组成的表达式来确定。15这是一个赋值表达式,因为赋值运算符优先级低于三目运算符。6数组元素个数是由什么决定的答数组元素个数是由维数及其大小来决定的。一维数组元素个数是该维的大小,二维数组的元素个数是两维大小之积等。7数组元素下标有何规定答C语言中,数组元素下标从0开始。8初始值表中数据项的类型和个数有何规定答初始值表中数据项的类型应与该变是类型相同,个数应小于或等于被初始化的数组元素的个数。9字符数组和字符串有什么关系答字符数组中可存放字符串,而字符数组不都是存放字符串的。如果字符数组中有字符串结束符,则说明该字符数存放的是字符串。10一个数组中的元素类型是否一定相同何时定义的数组元素具有默认值答数组中元素类型必须相同。存储类为外部和静态的数组其元素具有默认值。第3章语句和预处理练习题331判断题1表达式和表达式语句是不同的。2空语句是一种没有用处的语句。3复合语句就是分程序。4条件语句中IF子句和ELSE子句都是必须有并且仅有一个。5条件语句中ELSEIF子句可以没有,也可以有多个。6开关语句可实现多路分支。7开关语句的中必须有一个BREAK语句,否则该开关语句便无法退出。8任何循环语句都是至少执行一次循环体。9退出FOR循环语句必须是FOR后面括号内的中间一个表达式的值为0。10DOWHILE循环语句至少要执行一次循环体。11循环语句的循环体中可以出现IF语句,IF语句的IF体内不能出现循环语句。12GOTO语句中所使用的语句标号是一种标识符,它的作用域是文件级的。13BREAK语句和CONTINUE语句都可以出现在循环体中,但是它们的作用是不同的。14文件包含命令所能包含的文件类型是不受限制的。32单选题1下列关于语句的描述中,错误的是(A)。AC程序中的函数是由若干条语句组成的B每条语句都要实现某种操作C条件语句是用来实现分支操作的D循环语句是用来在一定条件下重复执行某段程序的2下列关于条件语句的描述中,错误的是(C)。AIF语句中最多只能有一个ELSE子句16BIF语句的IF体内可以出现开关语句CIF语句中ELSEIF子句和ELSE子句的顺序是没有限制的DIF语句中ELSE子句是与它最近的IF子句配对的3下列关于开关语句的描述中,错误的是(B)。A开关语句中,CASE子句的个数是不受限制的B开关语句中,CASE子句的语句序列中一定要有BREAK语句C开关语句中,DEFAULT子句可以省略D开关语句中,右花括号具有退出开关语句的功能4下列关于循环语句的描述中,错误的是(A)。AWHILE循环语句中给定的表达式不能为非0的常量,否则便是死循环BFOR循环语句的循环体内可以出现WHILE循环语句、DOWHILE循环语句和FOR循环语句C循环语句的循环体可以是空语句D循环语句的循环体内可以出现BREAK语句,也可以出现CONTINUE语句5已知INTI3;下列DOWHILE循环语句的循环次数是(D)。DOCOUTVOIDMAININTSUM_SUM0_FORINTI1_IVOIDMAININTA8,B5IFABELSEIFBIFAAELSEAELSEBCOUTVOIDMAININTA10WHILEAIFA5BREAKIFA20COUTVOIDMAININTB10DOBCOUTVOIDMAININTW5DOSWITCHW2CASE1WBREAKCASE0WBREAKWCOUT0答3115INCLUDEVOIDMAININTA4,B5,I0,J019SWITCHACASE4SWITCHBCASE4IBREAKCASE5JBREAKDEFAULTIJCASE5IJBREAKDEFAULTIJCOUTVOIDMAININTB10FORINTI9I0ISWITCHICASE1CASE4CASE7BBREAKCASE2CASE5CASE8BREAKCASE3CASE6CASE9B2COUTVOIDMAININTA6FORINTI1IDEFINEMAXX,YXYXYVOIDMAINTYPEDEFINTININA3,B4,CCMAXA,B2COUTVOIDMAININTS0FORINTI1IVOIDMAININTM,N,TM15N25IFMVOIDMAININTADOUBLEI2,J1,SUM0,TFORA1AINCLUDEVOIDMAINDOUBLEX1,S0FORINTI1FABSX1E8IX102I3/2I1SX22S4COUTVOIDMAININTS0,S10FORINTI1I中都应该有BREAK语句答通常CASE子句后面的中都有BREAK语句,根据需要也可以没有BREAK语句。4循环语句的循环体中出现的CONTINUE语句的作用是什么答结束本次循环,转到循环头判断是否继续循环。5文件包含命令的功能吗该命令一定要放在程序首部吗答该预处理命令是将指定的包含文件内容放在该命令出现的地方。通常放在程序开头,便于后边语句的使用。第4章指针和引用练习题441判断题1指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。232指针的类型是它所指向的变量或对象的类型。3定义指针时不可以赋初值。4指针可以赋值,给指针赋值时一定要类型相同,级别一致。5指针可以加上或减去一个INT型数,也可以加上一个指针。6两个指针在任何情况下相减都是有意义的。7数组元素可以用下标表示,也可以用指针表示。8指向数组元素的指针只可指向数组的首元素。9指向一维数组的指针是一个二级指针。10指针数组的元素可以是不同类型的指针。11字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值。12引用是一种变量,它也有值和地址值。13引用是某个变量的别名,引用是被绑定在被引用的变量上。14创建引用时要用一个同类型的变量进行初始化。15指针是变量,它可以有引用,而引用不能有引用。42单选题1下列关于定义一个指向DOUBLE型变量的指针,正确的是(B)。AINTA5;DOUBLEPDA;BDOUBLED25,PD下列数组元素值的表示中,错误的是(D)。AB1BB12CB11DB29已知INTA1,B2,P2;下列表达式中正确的是(C)。24APINTPINTM5,NFORINTI2I0INPIVOIDMAINCHARP1,P2P1“ABCQRV“P2“ABCPQO“WHILEP1INTNP11P21COUTINTA10,9,6,5,4,2,1VOIDMAININTN7,I7,X7WHILEXAIAI1AIIAI1XFORI0IINTA31,2,3,4,5,6,7,8,9INTPA0,A1,A2INTPPPVOIDMAININTS3AFORINTI1IINTA1,2,3,4,5,6,7,8,9VOIDMAININTPAACOUTVOIDMAINCHARSTR4“345“,“789“,M2INTS0FORINTI0IVOIDMAINDOUBLED132,D252DOUBLECOUTVOIDMAININTPINT27INTA90PCOUTINCLUDEVOIDSWAPCHARP1,CHARP2VOIDMAINCHARS110“WHILE“,S210“ELSE“,S310“DEFAULT“,S410“CONTINUE“IFSTRCMPS1,S2SWAPS1,S2IFSTRCMPS3,S4SWAPS3,S4IFSTRCMPS1,S3SWAPS1,S3COUTINCLUDEVOIDINVERSECHARVOIDMAINCHARS50COUTSINVERSESCOUTVOIDMAININTN323,8,5,9,2,4INTLIMN00FORINTI0IINCLUDECHARSTR5“ABC“,“DEF“,“GHI“,“JKL“,“PQO“CHARMODIFYINT,CHARVOIDMAININTNCHARS10COUTNCOUTS29COUTVOIDMAININTN,NUM100COUTNINTPNUMFORINTI0IINTFUNINTNINTP1,S032FORINTI1IVOIDFUNVOIDMAINFORINTI0IINTFACINTVOIDMAININTS0FORINTI1IINTFUNCHAR,CHARVOIDMAINCHARP1,P2P1“ABCFGY“P2“ABCDHU“INTNFUNP1,P2COUTVOIDFUNINT,INT,INTVOIDMAININTA,B,CFUN5,6,FUN7,A,FUNA,B,COUTINTADDINT,INT5VOIDMAININTA8COUTVOIDSWAPINTVOIDMAININTA8,B5COUTVOIDPRINTINT,PRINTCHAR,PRINTCHARVOIDMAIN35INTA800PRINTAPRINTAPRINT“BREAK“VOIDPRINTINTICOUTDOUBLES,SUMDOUBLEB,INTN,AVERAGEINTNVOIDMAINDOUBLEA8COUTAISSUMA,8DOUBLEAVEAVERAGE8COUTINTMAXDOUBLEB,INTN,MINDOUBLEB,INTNVOIDMAININTA8COUTAICOUTMAXMAXBIRETURNMAXINTMINDOUBLEB,INTNINTMINB0FORINTI0IINTSUM_DAYINT,INT,LEAPINTVOIDMAININTYEAR,MONTH,DAYCOUTYEARMONTHDAYINTDAYSSUM_DAYMONTH,DAYIFLEAPYEARCOUTVOIDCONVERTINTVOIDMAININTNUMCOUTNUMCOUTINTPRIMEINTVOIDMAININTNCOUTNINTI,JCOUTCLASSAPUBLICAA1A20COUTCLASSBPUBLICBCOUTCLASSDATEPUBLICDATEINTY,INTM,INTDYEARYMONTHMDAYDFRIENDVOIDPRINTDATEPRIVATEINTYEAR,MONTH,DAYVOIDPRINTDATEC2JVOIDSUMCA,CBC1AC1BC1C2AC2BC2VOIDPRINTCOUTCLASSSPUBLICSPC0SSFORINTI0I0COUTCLASSRECTANGLEPUBLICRECTANGLEINTA,INTBWIDTHALENGTHBINTAREARETURNWIDTHLENGTHINTPERIMENTRETURN2WIDTHLENGTHVOIDCHANGESIZEINTA,INTBWIDTHALENGTHBVOIDPRINTPRIVATEINTWIDTH,LENGTHVOIDRECTANGLEPRINTCOUTCLASSASMDPUBLICASMDDOUBLEA,DOUBLEBXAYBVOIDADDITIONCOUTINCLUDECLASSSTUDENTPUBLICSTUDENTCHARS,INTGRSTRCPYNAME,SGRADEGRTOTALIZEGRSTATICVOIDPRINTPRIVATECHARNAME10INTGRADESTATICINTTOTALIZEINTSTUDENTTOTALIZE0VOIDSTUDENTPRINTCOUTP5CAP5DAP53VOIDSETA是类A中一个成员函数的说明,其中ABCONSTAPACACONSTPADCONSTPAA5下列关于子对象的描述中,错误的是(D)。A子对象不可以是自身类的对象B子对象是另一个类的对象C子对象的初始化要包含在构造函数中D一个类中只能有一个子对象6执行下列说明语句,其调用构造函数的次数为(A)。AA5,P2;其中,A是一个类名A5B6C7D107下列关于运算符NEW的描述中,错误的是(D)。A它可以创建对象或变量B它可以创建对象数组或一般类型数组C用它创建对象或对象数组时要调用相应的构造函数D用它创建的对象可以不用DELETE运算符释放8下列关于运算符DELETE的描述中,错误的是(B)。A使用该运算符可以释放用NEW运算符创建的对象或对象数组B使用该运算符可以释放所有对象C使用DELETE运算符时会自动调用析构函数D用它释放对象数组时,它作用的指针名前要加下标运算符9定义不同存储类对象时,必须要加的存储类说明符是(C)。AAUTOBEXTERNCSTATIEDREGISTER10下列关于THIS的描述中,错误的是(D)。ATHIS是一个由系统自动生成的指针BTHIS指针是指向对象的CTHIS指针在用对象引用成员函数时系统创建的DTHIS指针只能隐含使用,不能显式使用73填空题已知CLASSAPUBLICAINTIAIVOIDPRINTCONTCLASSAPUBLICAINTIAIAA0COUTPRINT答DEFAULTCONSTRUCTORCALLED0DEFAULTCONSTRUCTORCALLED0DEFAULTCONSTRUCTORCALLED0DEFAULTCONSTRUCTORCALLED0DESTRUCTORCALLED2DESTRUCTORCALLED3DESTRUCTORCALLED4DESTRUCTORCALLED5211345DESTRUCTORCALLED5DESTRUCTORCALLED4DESTRUCTORCALLED3DESTRUCTORCALLED22INCLUDECLASSBPUBLICBINTIBIBB0COUTPRINTFORI0ICLASSCPUBLICCINTICICC0COUTCLASSDPUBLICDD1D20COUTCLASSEPUBLICEINTI,INTJE1IE2JCOUTE1E2EE2COUTCLASSFPUBLICCLASSGPUBLICGGINTIGIINTGETVALUERETURNGVOIDPRINTFPPRIVATEINTGMYGFRIENDCLASSGFINTI,INTJMYGIFJPRIVATEINTFVOIDFGPRINTFP15COUTFINCLUDECLASSSTACKPUBLICSTACKINTISTACKDELETESTAVOIDPUSHINTIINTPOPVOIDISUPLLIFTOSLENGTHCOUTINCLUDECLASSSTUDENTPUBLICSTUDENTCHARS,INTGRSTRCPYNAME,SGRADEGRFRIENDVOIDFUNPRIVATECHARNAME10INTGRADESTUDENTSS5STUDENT“马力“,85,STUDENT“王欣“,96,STUDENT“李明“,82,STUDENT“赵亮“,78,STUDENT“张京“,80VOIDFUNINTK0FORINTI0ISS0GRADEKICOUTCLASSAPUBLICACOUTCLASSAPUBLICAINTI,INTJA1IA2JVOIDMOVEINTX,INTYA1XA2YVOIDPRINTCOUTCLASSAPUBLICVOIDINITAINTI,INTJA1IA2JVOIDMOVEINTX,INTYA1XA2YINTGETA1RETURNA1INTGETA2RETURNA2PRIVATEINTA1,A2CLASSBPUBLICAPUBLICVOIDINITBINTI,INTJ,INTK,INTLINITAI,JB1KB2LVOIDMOVEINTX,INTYB1XB2YINTGETB1RETURNB1INTGETB2RETURNB2PRIVATEINTB1,B2CLASSCPUBLICBPUBLICVOIDFUNMOVE10,1522VOIDMAINCCCINITB11,12,13,14CFUNCOUTCLASSAPUBLICAINTIAICOUTCLASSAPUBLICAINTICOUTINCLUDECLASSPERSONPUBLICPERSONCHARSNAMENEWCHARSTRLENS1STRCPYNAME,SVOIDPRINTCOUTINCLUDECLASSLINEPUBLICLINEINTILENGTHIVOIDSHOWFORINTI0IC使用构造函数调用虚函数D使用成员函数调用虚函数10下列关于动态联编的描述中,错误的是(C)。A动态联编是函数联编的一种方式,它是在运行时来选择联编函数的B动态联编又可称为动态多态性,它是C语言中多态性的一种重要形式C函数重载和运算符重载都属于动态联编D动态联编只是用来选择虚函数的93填空题1C语言多态性主要表现在动态联编、函数重载和运算符重载。2运算符重载函数的两种主要方式是成员函数和友元函数。3静态联编支持的多态性称为静态多态性,它是在编译时进行的;动态联编支持的多态性称为动态多态性,它是在运行时进行的。4虚函数是一种非静态成员函数。说明方法是在函数名前加关键字VIRTUAL。虚函数具有继承性,在基类中被说明的虚函数,具有相同说明的函数在派生类中自然是虚函数。6含有纯虚函数的类称为抽象类。它不能定义对象,但可以定义对象指针和对象引用。94分析下列程序的输出结果1INCLUDECLASSMATRIXPUBLICMATRIXINTR,INTCROWRCOLCELEMNEWDOUBLEROWCOLDOUBLEMATRIXDELETEELEMVOIDPRINTINTICOUTCLASSAPUBLICVIRTUALVOIDFUNCOUTFUNVOIDMAINAPANEWAFFUNPABPBNEWBFFUNPB答AFUNCALLEDBFUNCALLED3INCLUDECLASSAPUBLICAVERAVIRTUALVOIDPRINTCOUTPRINTVOIDMAINAAB1B114B2B288B3B365PRINT_INFOPRINT_INFOPRINT_INFOPRINT_INFO答THEAVERSIONATHEB1INFO14VERSIONBTHEB2INFO88VERSIONATHEB3INFO65VERSIONC4INCLUDECLASSBPUBLICVIRTUALVOIDFUN1COUTFUN1PBFUN2PBFUN3PBFUN4答DFUN1DFUN2BFUN3BFUN45INCLUDECLASSAPUBLICACOUTF2DELETEPA答INACONSINAF1INBCONSINCCONSINCF1INCDESINBDESINADES336INCLUDECLASSAPUBLICVIRTUALVOIDPRINT0CLASSBPUBLICAPUBLICVOIDPRINTCOUTPRINTVOIDMAINAPABBCCPAFUNPAPAFUNPA答INBPRINTINCPRINT95编程题1编程求圆、圆内接正方形和圈外切正方形的面积和周长。要求使用抽象类。答编程如下INCLUDECONSTDOUBLEPI31415CLASSSHAPEPUBLICSHAPEDOUBLEIRIVIRTUALVOIDAREA0VIRTUALVOIDPERIMETER0PROTECTEDDOUBLERCLASSCIRCLEPUBLICSHAPEPUBLICCIRCLEDOUBLEISHAPEIVOIDAREA34COUTAREAPSPERIMETERPSNEWIN_SQUARE8PSAREAPSPERIMETERPSNEWEX_SQUARE8PSAREAPSPERIMETERDELETEPS2在类的多层次继承结构中,类之间哪些函数是按作用域规则处理的哪些函数是按多态性规则处理的试编程说明之。答一般成员函数是按作用域规则处理的,虚函数是按多态性规则中的动态联编处理的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论