面向对象、结构化,程序设计,原来如此简单!:选择题白话串讲(6)

公共基础

二级Office必考的考点

专业性很强

如果没有好的复习资料

是相当枯燥、晦涩、难懂的

你还为公共基础难懂

苦大愁深吗?

你还为不知如何拿下选择题

焦头烂额吗?

今天开始,小编带着大家

远离枯燥、远离专业术语

白话学懂公共基础!

程林高手武功秘籍--公共基础知识

2. 编程Style--程序设计基础

没有资质的包工队用盖平房的模式去建设几十层的摩天大楼,是很难如期完工的。编写一个程序,甚至制作一个软件与盖楼的道理一样,都要遵循一定的规范,正所谓"没有规矩不成方圆"。比如,我们要做个类似QQ的聊天软件,就需要好好地规划一下,在编程之前做到心中有数,有的放矢。否则随着开发的进行,出现的问题会越来越多,甚至整个项目崩溃。

在编写程序时,要遵守良好的程序设计风格,这是掌握编程语言语法规则之外的另一方面的问题。这方面问题讨论的是:如何编写程序能够增强程序的可读性、稳定性,如何使程序便于维护和今后的修改,如何减少编程工作量,提高工作效率等等。

2.1 程序设计方法和风格

程序设计决不是上来就上机编写代码,然后就完事大吉了;在编写代码之前和之后还有许多工作要做。完整的程序设计应包括下面的步骤:(1)确定数据结构;(2)确定算法;(3)编写代码;(4)上机调试程序,消除错误,使运行结果正确;(5)整理并撰写文档资料。

"清晰第一、效率第二"是当今主导的程序设计风格,即首先应保证程序的清晰易读,其次再考虑提高程序的执行速度、节省系统资源。说得更明确一点:为了保证程序清晰易读,即使牺牲其执行速度和浪费系统资源也在所不惜。

良好的编程习惯和风格有很多,例如:符号命名应见名知意;应写必要的注释;一行只写一条语句;利用空格、空行、缩进等使程序层次清晰、可读性强;变量定义时变量名按字母顺序排序;尽可能使用库函数;避免大量使用临时变量;避免使用复杂的条件嵌套语句;尽量减少使用"否定"条件的条件语句;尽量避免使用无条件转向语句(goto语句);尽量做到模块功能单一化;输入数据越少越好,操作越简单越好;在输入数据时,要给出明确的提示信息,并检验输入的数据是否合法;应适当输出程序运行的状态信息;应设计输出报表格式。

【随讲随练16-31】下列叙述中,不符合良好程序设计风格要求的是( )。

A.程序的效率第一,清晰第二

B.程序的可读性好

C.程序中有必要的注释

D.输入数据前要有提示信息

【答案】A

2.2 组装零件--结构化程序设计

对于一个实际问题,如何设计程序呢?就程序设计方法的发展而言,主要经历了两个阶段:结构化程序设计和面向对象的程序设计。

结构化程序设计要求首先考虑全局总体目标,然后再考虑细节;把总目标分解为小目标,再进一步分解为更小、更具体的目标;这里把每个小目标称为一个模块。比如生产一架飞机,就要首先了解飞机是由哪些零件组成的,然后将这些零件分别包给不同的厂商来加工,最后再将这些零件组装成一架飞机。这被称为"自顶向下、逐步求精、模块化"的原则。另外结构化程序设计还有一个原则,就是应限制使用goto语句,不得在程序中滥用goto语句。程序结构应由顺序结构、选择结构(分支结构)和循环结构三种基本结构组成;复杂的程序也仅能由这三种基本结构衔接、嵌套实现,而不得滥用goto语句。

【随讲随练16-32】结构化程序设计的基本原则不包括( )。

A.多态性

B.自顶向下

C.模块化

D.逐步求精

【答案】A

【随讲随练16-33】结构化程序所要求的基本结构不包括( )。

A.顺序结构

B.GOTO跳转

C.选择(分支)结构

D.重复(循环)结构

【答案】B

2.3 面向事物直接编程--面向对象程序设计

2.3.1 对象

面向对象,不是面向男/女朋友,"对象"在这里是"事物"的意思。现实世界中的任何一个事物都可以被看成是一个对象,如一辆汽车、一栋房屋、一只狗熊、一片树叶、一部手机、一杯咖啡、一个学生、一支军队、一篇论文、一台电脑、电脑游戏中的一个人物等都是对象,如图所示。

上面这些都是对象

我们的多彩世界就是由这样一个个对象所组成的,我们是从一个个对象的角度来看待我们的世界的。由此,面向对象的程序设计(ObjectOrientedProgramming,OOP)方法应运而生,这一概念的首次提出是以60年代末挪威计算机中心研制出了SIMULA语言为标志的。相对于结构化程序设计,面向对象程序设计更接近于人类的思维习惯,是现代程序设计方法的主流。

什么是面向对象的程序设计呢?面向对象,顾名思义,是以"对象"为核心的。在面向对象程序设计中,不再将解决问题的方法分解为一步步的过程,而是分解为一个个的事物。如图16-19,在程序中将任何一个对象都看做由两部分组成:(1)数据,也称属性,即对象所包含的信息,表示对象的状态;(2)方法,也称操作,即对象所能执行的功能、所能具有的行为。

例如,一个人是一个对象,他具有姓名、年龄、身高、肤色、胖瘦等属性;而会跑会跳,会玩会闹,会哭会笑这些都是他具有的方法。一部手机是一个对象,其品牌、型号、大小、颜色、价格,是它的属性;接打电话、收发短信、乃至拍照、录像、玩游戏都是它的方法。电脑游戏中的一个小兵也是一个对象,它的等级、生命值、攻击值、防御值、魅力值都是它的属性;而能在画面中移动、会进攻、被攻击后生命值会减少、生命值为0后会爆炸等都是方法。

2.3.2 类和实例

类,就是类型的类,"物以类聚,人以群分",我们将同类事物归为一类。例如,张三、李四、王五同属人类;你的手机、我的手机、商场柜台上卖的手机同属手机这一类;电脑游戏中不断出现的一个个"小兵"同属小兵这一类。

"类(class)"只是一个抽象的概念,它并不代表某一个具体的事物。例如"人类"是个抽象的概念,它不指任何一个具体的人;而张三、李四、王五才是具体的人。"手机"也是个抽象的概念,它既不能打电话,也不能接电话;只有具体落实到某一部看得见摸得着的、实实在在的手机,才能使用。尽管"类"不代表具体事物,但"类"代表了同种事物的共性信息,只要提及"手机"这个概念,我们头脑中都会想象出一部手机的样子,而绝不会出现一幅长着两条腿可以走路的"人"的形象。也可以将"类"看做一张设计图纸,它可用于制造具体的事物。例如"汽车"类是一张设计图纸,它是不能跑起来的;但按照"汽车"这个类的图纸制造出一辆辆具体的汽车我们就能坐上去"兜风"了。

一般来说,由"类"这张设计图制造出的一个个具体的事物才能称之为"对象"或"类的实例(instance)",而不应把一个"类"叫做对象。但在不引起混淆的情况下,有人也把"类"叫做对象,即"对象"这个术语既可指具体的事物,也可泛指类;而"实例"这个术语,必然指具体的事物。所以把一个个具体的事物称之为"类的实例"更确切一些。

【随讲随练16-34】下面属于整数类的实例是( )。

A.0x518

B.0.518

C."-518"

D.518E-2

【答案】A

【分析】整数是一类,它的实例必是一个整数。选项中涉及到一些在C语言中数据表示的语法。在整数前加"0x"表示十六进制整数,故A是整数;B是小数;C是双引号引起来的内容,是字符串文本;D是C语言中小数的科学技术法的表示形式,表示518.0×10的-2次方。

【随讲随练16-35】下面属于字符类的实例是( )。

A.'518'

B."5"

C.'nm'

D.'\n'

【答案】D

【分析】这里也涉及一些在C语言中数据表示的语法。双引号引起来的内容,是字符串文本,不是字符,故B错误;单引号引起来的一个字符才是字符,而单引号中是不能含有多个字符的,故A和C错误。\n是\开头的,是特殊情况。\n整体表示一个字符:换行符;因而D单引号中是一个字符。

2.3.3 面向对象方法的特点

为什么要采用面向对象的方法呢?面向对象方法有以下特点。

(1)标识惟一性:对象是可区分的,且由对象的内在本质来区分,而不通过描述区分。

(2)分类性:可以将具有相同或类似属性、方法的对象抽象成类(模板)。

(3)封装性

用手机发短信的时候,我们只要按下"发送"按钮就可以了,而不必关心手机内部电路是如何工作的。内部细节实际上全被包装在手机壳内部,这就是"封装"。在面向对象程序设计中的"对象"也具有"封装性",即不需用户关心的信息被隐藏在对象内部,使对象对外界仅提供一个简单的操作(例如仅有一个发送操作)。在程序设计中,这有利于代码的安全,让用户无法看到他不必看到的信息,也就避免了用户随意修改他不应该修改的程序代码。封装性使对象的内部细节与外界隔离,使模块具有较强的独立性。

(4)继承

继承,就是"子承父业"、"继承祖先优良传统"。在面向对象程序设计中,类与类之间也可以继承,它是指使用已有的类作为基础建立新的类,新类能够直接获得已有类的特性和功能,而不必重复实现它们。"青出于蓝胜于蓝",继承后子类还应具有比父类更多的特性和功能。

例如,"图形"类是"矩形"类的父类,"矩形"类继承自"图形"类。"图形"有大小、位置等属性,也有移动、旋转等操作;"矩形"也有这些属性和操作,对于这些属性和操作,"矩形"只要把它们从"图形"中拿来直接用就可以了而不必重新实现。但"矩形"还有它自己特有的属性如"顶点坐标"、"长"、"宽",以及特有的方法如"求周长"、"求面积";继承后,在"矩形"类中仅编程增加这些特有的内容就可以了,这使编程工作量大大减小,提高效率。

需要注意的是,类与类之间的继承应根据需要来做,并不是任何类都要继承。

(5)多态性

不同类型的对象间可以有同名的"方法",这些类一般要继承自同一父类。例如汽车、火车、飞机三类都继承自"交通工具"类,它们都有"驾驶"的方法。对这三类的对象都可以执行"驾驶",但三类交通工具的驾驶方式不同,实际的执行效果也不同。又如"矩形"类和"圆"类都继承自"图形"类,它们都有"绘制"的方法,对这两类的对象都可以执行"绘制",但具体绘制出的图形不同:对"矩形"类的对象执行"绘制"时绘出矩形,而同样的执行发生在"圆"类的对象时则绘出圆形。这被称为多态性。

(6)模块独立性好

【随讲随练16-36】下面对类-对象主要特征描述正确的是( )。

A.对象唯一性

B.对象无关性

C.类的单一性

D.类的依赖性

【答案】A

【随讲随练16-37】在面向对象方法中,实现信息隐蔽是依靠( )。

A.对象的继承

B.对象的多态

C.对象的封装

D.对象的分类

【答案】C

2.3.4 对象之间的烽火台--消息

在面向对象程序设计中,一个对象与另一个对象间的联系是靠传递消息。对象之间传递消息,实质是执行了对象中的一个方法(调用了对象中的一个函数)。

【随讲随练16-38】下面对对象概念描述正确的是( )。

A.对象间的通信靠消息传递

B.对象是名字和方法的封装体

C.任何对象必须有继承性

D.对象的多态性是指一个对象有多个操作

【答案】A

——以上内容选自《玩转Office轻松过二级》(第2版),部分内容取自《C语言其实很简单》(第11-12章)

想不怎么费力就学懂公共基础的童靴,推荐赶快去看一看这2本书吧,这目前应是唯一白话串讲公共基础的二级教材,也真的是最好的教材哦。

要看一本浅显易懂、适合快速学习的书。同意吗?

注意注意注意

千万不要用那种只有文字、没有图的复习材料或速背手册之类复习哦(除非你早有基础),那是很不负责的材料。公共基础必须要有图讲解,考试的考题里也有图。用只有文字的材料复习,考试必傻眼,别害了自己!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180227B1D1QS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券