C++程序设计(第2版)-习题解答C++程序设计(第2版普通高等教育“十一五”国家级规划教材习题答案作者邓振杰C++程序设计习题解答.pdf
《C++程序设计(第2版)-习题解答C++程序设计(第2版普通高等教育“十一五”国家级规划教材习题答案作者邓振杰C++程序设计习题解答.pdf》由会员分享,可在线阅读,更多相关《C++程序设计(第2版)-习题解答C++程序设计(第2版普通高等教育“十一五”国家级规划教材习题答案作者邓振杰C++程序设计习题解答.pdf(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+程序设计习题解答第1章C+概述1.填空题(1)在面向对象程序设计中,对象是由、和 封装在一起构成的实体。(2)在面向对象程序设计中,类是具有 和 的对象的集合,它是对一类对象的抽象描述。(3)面 向 对 象 程 序 设 计 最 突 出 的 特 点 就 是、和.(4)C+语言包含头文件的格式有两种,即 和。(5)C+源 程 序 要 经 过、和 四个环节,才能布屏幕上显示结果。(6)每个C+程序都从 函数开始执行。(7)每个函数体都以 开始,以 结束。(8)C+程序中的每条语句以 结束。(9)C+程序的头文件和源程序的扩展名分别为 和,目标程序的扩展名为,可 执 行 程 序 的 扩 展 名 为
2、(1 0)在 C+程 序 中 使 用 基 本 输 入/输 出 语 句 需 包 含 的 头 文 件 是,应放在程序的(11)在 C+程序中注释语句有 和 两种格式。(12)C+程序的续行符为 o(1 3)如果从键盘输入语句给变量X,则输入函数的形式为:如果再将变量 X 的值显示在屏幕上,其输出函数的形式为 o(14)C+程序中的“endl”在输出语句中起 作用。参考答案:(1)对象名,一组属性数据,一组操作(2)相同属性数据,操作(3)封装性,继承性,多态性(4)#include文件名.扩展名,include文件名.扩展名(5)编辑,编译,连接,运行(6)主函数、(8)分号;(9).h,.cpp
3、,.obj,.exe(10)#include,开始部分(11)/*/,/(12)(13)cinX coutX(1 4)换行并清空流2.选择题(1)面向对象程序设计把数据和()封装在一起。A.数据隐藏 B.信息 C.数据抽象 D.对数据的操作(2)C+源程序的扩展名是()。A.c B.exe C.cpp D.pch(3)把高级语言程序转换为目标程序需使用()。A.编辑程序 B.编译程序 C.调试程序 D.运行程序(4)C+语言与C 语言相比最大的改进是()。A.安全性 B.复用性 C.面向对象 D.面向过程(5)以下叙述不正确的是()oA.C+程序的基本单位是函数B.-C+程序可由-个或多个函数
4、组成C.一个C+程序有且只有一个主函数D.C H 程序的注释只能出现在语句的后面参考答案:(1)D(2)C(3)B(4)C(5)D3.简答题(1)试比较面向对象程序设计、结构化程序设计和模块化程序设计。(2)解释以下概念:类 对 象 封 装 数 据 抽 象 继 承 多 态(3)简述C+语言有哪些特点。参考答案:(1)结构化程序设计强调从程序结构和风格上研究程序设计。结构化程序设计的程序代码是按顺序执行的,有一套完整的控制结构,函数之间的参数按一定规则传递,不提倡使用全局变量,程序设计的首要问题是“设计过程”。模块化程序设计将软件划分成若干个可单独命名和编址的部分,称之为“模 块 模 块 化程序
5、设计的设计思路是“自顶向下,逐步求精”,其程序结构是按功能划分成若干个基本模块,各模块之间的关系尽可能简单,在功能上相对独立。模块和模块之间隔离,不能访问模块内部信息,即这些信息对模块外部是不透明的,只能通过严格定义的接口对模块进行访问。模块化程序设计将数据结构和相应算法集中在一个模块中,提出了“数据结构+算法=程序设计”的程序设计思想。模块化能够有效地管理和维护软件研发,能够有效地分解和处理复杂问题。但它仍是 种面向过程的程序设计方法,程序员必须时刻考虑所要处理数据的格式,对不同格式的数据做相同处理或对相同数据格式做不同处理都要重新编程,代码可重用性不好。面向对象程序设计面对的是一个个对象,
6、用 种操作调用一组数据。把数据和有关操作封装成一个对象。各个对象的操作完成了,总的任务也就完成了。他适用于编写大型程序。结构化程序设计和模块化程序设计适用于比较小的程序,他要求细致的描写程序设计的每个细节。(2)类:在面向对象程序设计中,类是具有相同属性数据和操作数据的函数的封装,它是对一类对象的抽象描述。对象:在面向对象程序设计中,对象是由对象名、-组属性数据和一组操作封装在一起构成的实体。其中属性数据是对象固有特征的描述,操作是对这些属性数据施加的动态行为,是一系列的实现步骤,通常称之为方法。封装:封装是一种数据隐藏技术,在面向对象程序设计中可以把数据和与数据有关的操作集中在一起形成类,将
7、类的一部分属性和操作隐藏起来,不让用户访问,另一部分作为类的外部接口,用户可以访问。数据抽象:抽象的作用是表示同类事物的本质,C+中的数据类型就是对批具体的数的抽象。类是对象的抽象,对象是类的特例。继承:在面向对象程序设计中,继承是指新建的类从已有的类那里获得已有的属性和操作。多态:在面向对象程序设计中,多态性是指相同的函数名可以有多个不同的函数体,即一个函数名可以对应多个不同的实现部分。(3)面向对象程序设计最突出的特点就是封装性、继承性和多态性。封装性封装是一种数据隐藏技术,在面向对象程序设计中可以把数据和与数据有关的操作集中在一起形成类,将类的一部分属性和操作隐藏起来,不让用户访问,另一
8、部分作为类的外部接口,用户可以访问。类通过接口与外部发生联系,用户只能通过类的外部接口使用类提供的服务,而内部的具体实现细节则被隐藏起来,对外是不可见的。继承性在面向对象程序设计中,继承是指新建的类从己有的类那里获得一有的属性和操作。己有的类称为基类或父类,继承基类而产生的新建类称为基类的子类或派生类。由父类产生子类的过程称为类的派生。通过继承,程序可以在现有类的基础上声明新类,即新类是从原有类的基础上派生出来的,新类将共享原有类的属性,并且还可以添加新的属性。继承有效地实现了软件代码的重用,增强了系统的可扩充性。多态性在面向对象程序设计中,多态性是指相同的函数名可以有多个不同的函数体,即一个
9、函数名可以对应多个不同的实现部分。在调用同一函数时,由于环境的不同,可能引发不同的行为,导致不同的动作,这种功能称为多态。它使得类中具有相似功能的不同函数可以使用同一个函数名。多态既表达了人类的思维方式,又减少了程序中标识符的个数,方便了程序员编写程序。多态是面向对象程序设计的重要机制。4.编程题编写程序在屏幕上显示字符串“欢迎大家学习C+语言!”,并按照书中介绍练习C+语言的上机实现过程。参考答案:#includevoid main()coutw”欢迎大家学习C H 语言”wendl;第2章C+程序设计基础1.填空题(1)Visual C+中如果一个变量为int型,它所占的内存空间是 字节,
10、位。(2)short int型变量占用的内存空间是 字节,long int型变量占用的内存空间是 字节,char型变量占用的内存空间是 字节.,float型变量占用的内存空间是 字节,double型变量占用的内存空间是 字节。(3)bool类型数据的值为非0 时 会 自 动 转 换 成,如果等于0 会自动转换成(4)C+程序 中 的 关 系 运 算 符 满 足 条 件 时 返 回,不 满 足 条 件 时 返 回。(5)表达式x&y=z是 类型的表达式;表达式x+y|z是 类型的表达式。(6)表达式13&57的值是,表达式!(58)|26的值是。(7)表达式a+bb?max=a:max=b_ _
11、 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _y=x*-y_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(x-y)=(x-z)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _y=xA2 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _x*=y+l_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _(9)以下程序的功能是:从键盘输入一个字符,判断其是否是字
12、母,并输出相应信息,请填空。#includevoid main()(char c;cinc;if=a c=W cv=Z)cout接收的是一个字母Wendi;elsec outw”接收的不是一个字母 wendl;(1 0)以下程序的输出结果是 o#includevoid main()int i=0j=0;while(i15)(j+;i+=+j;co u t i M j en d l;(1 1)以下程序的功能是:在屏幕上同一行显示19 的平方的值,请填空。#includevoid main()unsigned int i;for_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _cout
13、 i*i;cout endl;(1 2)以下程序的功能是:求一组(10个)正数中的最大数,当输入为负数时提前结束程序,请填空。#includevoid main()const int N=10;int x,max=0;cout Please input data:Mendl;for(int i=l;iv=N;i+)(cinx;if()max=x;continue;)else if()coutnmax=iTiax endl;(1 3)以下程序的输出结果是#includevoid main()|int i=0;while(+i)if(i=10)break;if(i%3!=l)continue;co
14、utiendl;)(1 4)以下程序的输出结果是 o#includevoid main()(int x=5;do(switch(x%2)case 1 :x;break;case O:x-H-;break;)x;coutxendl;while(x0);参考答案:(1)4,32(2)2,4,1,4,8(3)true,false(4)1,0(5)逻辑,逻辑(6)1,1(7)+v=&(8)产xvb?max=a:max=b的含义:若 ab则将a 的值赋值给max,否则将b 的值赋值给max产x*-y的含义:现将负y 的值乘以x,再将结果值赋值给y(x-y)=(xz)的含义:比较x-y和 x-z是否相等尸
15、x八 2 的含义:将 x 和 2 按位异或的值赋值给yx*=y+l的含义:将 x 乘 以(y+1),再将结果值赋值给x(9)&,|,&(10)20 8(11)i=l;iv=9;i+,”(12)x0&maxx,x0,break;(13)147(14)31-12.选择题(1)下列四组标识符中不属于Visual C+关键字的是()。A.witch B.break C.main D.continuefloatcharcmcase(2)下列四组变量命名,不符合Visual C+变量命名规则的是()。A.ccaverB.6xcharC.wlyear78D.ye_ 78wo(3)假设有两个变量2=65432
16、和 5=2*2,在保证数据正确存储的前提下,以下变量类型定义错误的是()。A.int a;int b;C.unsigned short a;unsigned short b;(4)在 if语句中的表达式(A.只能是关系表达式C.只能是逻辑表达式(5)以下程序的输出结果为B.unsigned short a;signed int b;D.int a;signed int b;)oB.D.)o只能是关系表达式和逻辑表达式可以是任意表达式(A.tl=trueB.tl=8C.tl=falseD.tl=lt2=falset2=0t2=truet2=0t3=truet3=-lt3=falset3=l#in
17、cludevoid inain()bool tl=8;bool t2=0;bool t3=-l;couttl=tl endl;coutt 1 =t2endl;couttl=t3endl;(6)以下程序的输出结果为(A.a=13b=4c=3d=6B.a=13b=8c=4d=6C.a=13b=4c=4d=6D.a=13b=8c=3d=6#includevoid main()int x=8,y=5;int a,b,c,d;a=x+y;b=x/y2;c=xy+;d=x%y*2;c o u t n a=a H b=M b;c o u t M c=c H d=d e nd l;)参考答案:(1)A (2)
18、B (3)C (4)D (5)D (6)B3.简答题(1)字符常量和字符串常量有什么区别?(2)定义符号常量的方法有哪些?它们有什么区别?。(3)w h i l e 与 d o-w hil e 语句的主要区别是什么?参考答案:(1)在 C+语言中,字符串常量和字符常量是不同的。字符串常量是用一对双引号括起来的字符序列。例如,、“、”1 2 3”、“he l l o 等都是字符串常量。一般字符常量是用一对单引号括起来的一个字符,其值为A S C H 码值。例 如,弓、A,、$、5 等都是合法的字符常量。(2)C+语言提供了两种定义符号常量的方法:用 co n s t 语句定义符号常量这种方法是C
19、+语言中广泛采用的定义符号常量的方法,其一般格式为:co n s t 数据类型符号常量=表达式;用#d e f in e 语句定义符号常量这是C语言中定义符号常量的方法,其中#d e f in e 是预处理指令。其缺点是不能显示声明常量的类型。其一般格式为:#d e f in e 常量名常量值(3)w hil e 把循环条件判断放在循环体执行前,而 d o-w hil e 循环条件判断放在循环体执行后,不管循环条件是否成立,它都至少执行次循环体。4.编 程题(1)求 1 0 0 以内的自然数中奇数之和。(2)求 1 0 0 以内能被1 3整除的最大自然数。(3)有一个函数如下所示:x (x l
20、)y=x+5(l x 1 0)从键盘输入一个x,求出相应的y值。(4)输入3 个整型数,按由大到小的顺序输出显示。(5)根据从键盘输入的表示星期几的数字,输出它对应的英文名称。(6)从键盘输入一个整数,求其阶乘。(7)编写一个简易计算器程序,根据用户输入的运算符做两个数的加、减、乘或除运算。(8)编写程序在屏幕上打印如下图案。*参考答案:(1)#in cl u d e void main()int sum=0;fbr(int i=l;i=100;)(sum=sum+i;i=i+2;)coutvv”00 以内奇数之和为:nsum endl;)(2)#includevoid main()(int
21、max=0;int i=13;while(i=100)if(i%13=0&maxi)max=i;i=i+13;continue;)coutn100以内能被13整除的最大自然数为:nm axendl;)(3)#includevoid main()float x,y;cinx;if(x=l&x=10)y=x+5;else y=x-5;coutyendl;)(4)#includevoid main()|int inta,intb,intc;cinintaintbintc;if(intaintb)if(intbintc)coutintc in tb n inta;else coutintbH M;if
22、(intaintc)coutintc,inta;elsecoutintaM Mintc;else ifintaintc)coutintcH in ta H intb;else coutintaifl(intbintc)coutintcn intb;else coutintbH Mintc;)(5)#includevoid main()int data;coutnplease input the data(0-6):n;cindata;switch(data)(case 0:cout,Sundaynendl;break;case 1 :coutHMondayendl;break;case 2:c
23、outnTuesdaynendl;break;case 3:coutMWednsdaynendl;break;case 4:cout,Thursday,endl;break;case 5:coutHFridaynendl;break;case 6:coutMSatudayMendl;break;default:coutnerrornendl;(6)#includevoid main()(int n,t=l;coutMPIease input a integer:endl;cinn;if(n0)cout,Error!,*endl;return;else if(n=0|n=l)t=l;elsefo
24、r(int i=l;i=n;i+)t=t*i;coutHn!=tendl;(7)#includevoid main()float x,y;char ch;COUtVV”请输入两个操作数:;cin x y;COUtVV”请输入运算符+-*/:cinch;switch(ch)case:coutx+yend 1;break;case,J:coutx-yendl;break;case,*,:coutx*yendl;break;case 7f:coutx/yendl;break;defhult:coutvv”输入有误,退出!(8)#includevoid main()for(int i=0;i 5;i+
25、)fbr(int j=0;j2*i+1 ;j+)coutn*n n;coutendl;第 3 章 函 数1.填空题(1)在 C+中,个函数一般由两部分组成,分别是 和(2)在 C+中,若没有定义函数的返回类型,则系统默认为 型。(3)当一个函数没有返回值时,函 数 的 类 型 应 定 义 为。(4)在 C+中,函数的参数传递可有三种形式,即、和(5)在函数体外定义的变量是 变量;在函数体内定义的变量是变量。(6)在 C+的一个程序内可以定义多个同名的函数,称为。(7)在 一 个 函 数 的 定 义 或 声 明 前 加 上 关 键 字,该函数就声明为内联函数。(8)若在一个函数中又调用另一个函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 习题 解答 普通 高等教育 十一 国家级 规划 教材 答案 作者 邓振杰
链接地址:https://www.taowenge.com/p-90897961.html
限制150内