程序设计基础

程序设计基础
程序设计基础

第二章程序设计基础

2.1 程序设计设计方法和风格

如何形成良好的程序设计风格

1、源程序文档化;

2、数据说明的方法;

3、语句的结构;

4、输入和输出。

注释分序言性注释和功能性注释,语句结构清晰第一、效率第二。2.2 结构化程序设计

结构化程序设计方法的四条原则是:1. 自顶向下;2. 逐步求精;3.模块化;4.限制使用goto语句。

结构化程序的基本结构和特点:

(1)顺序结构:一种简单的程序设计,最基本、最常用的结构;(2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;(3)重复结构:又称循环结构,可根据给定条件,判断是否需要重复执行某一相同程序段。

2.3 面向对象的程序设计

面向对象的程序设计:以60年代末挪威奥斯陆大学和挪威计算机中心研制的SIMULA语言为标志。

面向对象方法的优点:

(1)与人类习惯的思维方法一致;

(2)稳定性好;

(3)可重用性好;

(4)易于开发大型软件产品;

(5)可维护性好。

对象是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。

面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。

属性即对象所包含的信息,操作描述了对象执行的功能,操作也称为方法或服务。

对象的基本特点:

(1)标识惟一性;

(2)分类性;

(3)多态性;

(4)封装性;

(5)模块独立性好。

类是指具有共同属性、共同方法的对象的集合。所以类是对象的抽象,对象是对应类的一个实例。

消息是一个实例与另一个实例之间传递的信息。

消息的组成包括(1)接收消息的对象的名称;(2)消息标识符,也称消息名;(3)零个或多个参数。

继承是指能够直接获得已有的性质和特征,而不必重复定义他们。

继承分单继承和多重继承。单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类。

多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。

第2章程序设计基础

2.1 程序设计方法与风格

就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象的程序设计阶段。

一般来讲。程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。程序是由人来编写的,为了测试和维护程序,往往还要新闻记者和跟踪程序,因此程序设计的风格总体而言应该强调得意和清晰,程序必须是可以理解的。

要形成良好的程序设计风格,主要应注重和考虑下述一些因素。

1、源程序文档化

2、源程序文档化应考虑如下几点:

(1)符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解。

(2)程序注释:下克的注释能够帮助读者理解程序。

(3)礼堂组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进待技巧使程序层次清晰。

2、数据说明的方法

在编写程序时,需要注意数据说明的风格,以便使程序中的数据说明更易于理解和维护。一般应注意如下几点:

(1)数据说明的次序规范化鉴于程序理解、新闻记者和维护的需要,使数据说明次序固定,可以使数据的发生容易查找,也有利于测试、排错和维护。

(2)说明语句中变量安排有序化。当一个说明语句说明多个变量时,变量按照字母顺序为好。

(3)使用注释来说明复杂数据的结构。

3、语句的结构

程序应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。一般应注意如下:

(1)在一行内只写一条语句;

(2)程序编写应优先考虑清晰性;

(3)除非对效率有特殊要求,程序编写要做清晰第一,效率第二;

(4)首先要保证程序正确,然后才要求提高速度;

(5)避免使用临时变量而使程序的可读性下降;

(6)避免不必要的转移;

(7)尽可能使用库函数;

(8)避免采用复杂的条件语句;

(9)尽量减少使用“否定”条件的条件语句;

(10)数据结构要有利于程序的简化;

(11)要模块化,使模块功能尽可能单一化;

(12)利用住处隐蔽,确保每一个模块的独立性;

(13)从数据出发去构造程序;

(14)不要修补不好的程序,要重新编写;

4、输入和输出

无论是批处理的输入和输出方式,还是交互式的输入和输出方式,在设计和编程时都应该考虑如下原则:

(1)对所有的输入数据都要检验数据的合法性;

(2)检查输入项的各种重要组合的合理性;

(3)输入格式要简单,以使得输入的步骤和操作尽可能简单;(4)输入数据时,应允许使用自由格式;

(5)应允许缺省值;

(6)输入一批数据时,最好使用输入结束标志;

(7)在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中的输入结束时,应在屏幕上给出状态信息。

(8)当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输入出加注释,并设计输出报表格式。2.2结构化程序设计

一、结构化程序设计的原则

结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。

1、自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。

2、逐步求精:对复杂问题,应设计一些子目标作过渡,逐步细化。

3、模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。

4、限制使用goto语句

使用goto语句经实验证实:(1)滥用GOTO语句确实有害,应昼避免;

(2)完全避免使用GOTO语句也并非是个明智的方法,有些地方使用GOTO语句,会使程序流程更清楚、效率更高;

(3)争论的焦点不应该放在是否取消GOTO语句,而应该放在用什么样的程序结构上。

其中最关键的是,肯定以提高程序清晰性为目标的结构化方法。

二、结构化程序的基本结构与特点

1、顺序结构:顺序结构是简单的程序设计,它是最基本、最常用的结构,所谓顺序执行,就是按照程序语句行的自然顺序,一条语句一条语句地执行程序程序。

2、选择结构:选择结构又称为分支结构,它包括简单选择和多分支选择结构,这种结构可以根据设定的条件,判断应该选择哪一条分支来执行相应的语句序列。

3、重复结构:重复结构又称为循环结构,它根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段,利用重复结构可简化大量的程序行。分为两类:一是先判断后执行,一是先执行后判断。

优点:一是程序易于理解、使用和维护。二是编程工作的效率,降低软件开发成本。

三、结构化程序设计原则和方法的应用

要注意把握如下要素:

1、使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑。

2、选用的控制结构只准许有一个入口和一个出口;

3、程序语句组成容易识别的块,每块只有一个入口和一个出口;

4、复杂结构应该嵌套的基本控制结构进行组合嵌套来实现;

5、语言中所没有的控制结构,应该采用前后一致的方法来模拟;

6、严格控制GOTO语句的使用。其意思是指:

(1)用一个非结构化的程序设计语言去实现一个结构化的构造;(2)若不使用GOTO语句会使功能模糊;

(3)在某种可以改善而不损害程序可读性的情况下。

2.3面向对象的程序设计

一、关于面向对象方法

面向对象方法的本质,就是主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物,强调最终建立的系统能够映射问题域,也就是说,系统中的对象以及对象之间的关系能够如实地反映问题域中固有事物及其关系。

优点:1、与人类习惯的思维方法一致

面向对象方法和技术以对象为核心。对象是由数据和容许的操作组成的封装体,与客观实体有直接的关系。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。

面向对象的设计方法与传统的面向过程的方法有本质不同,这种方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分过程中都用应用领域的要领去思考。

2、稳定性好

3、可重用性好

软件重用是指在不同的软件开发过程中重复作用相同或相似软件元素的过程。重用是提高软件生产率的最主要的方法。

4、易于开发大型软件产品

5、可维护性好

(1)用面向对象的方法开发的软件稳定性比较好

(2)用面向对象的方法开发的软件比较容易修改;

(3)用面向对象的方法开发的软件比较容易理解。

(4)易于测试和调试。

二、面向对象方法的基本概念

1、对象(object)

对象是面向对象方法中最基本的概念。对象可以用来表示客观世界中的任何实体,也就是说,应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界的意义的东西。总之,对象是对问题域中某个实体的抽象,设立某个对象就反映软件系统保存有关它的信息并具有与它进行交互的能力。

面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。

对象可以做的操作表示它的动态行为,在面向对象分析和面向对象设计中,通常把对象的操作也称为方法或服务。

属性即对象所包含的信息,它在设计对象时确定,一般只能通过挂靠对象的操作来改变。

操作描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。操作的过程对外是封闭的,即用户只能看到这一操作实施后的结果。这相当于事先已经设计好的各种过程,只需要调用就可以了,用户不必去关心这一过程是如何编写的。事实上,这个过程已经封装在对象

中,用户也看不到。对的这一特性即是对象的封装性。

对象有如下一些基本特点:

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

(2)分类性。指可以将具有相同属性的操作的对象抽象成类。

(3)多太性。指同一个操作可以是不同对象的行为。

(4)封装性。从外面看只能看到对象的外部特性,即只需知道数据的取值范围和可以对该数据施加的操作,根本无需知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的。从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。

(5)模块独立性好。对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。

2、类(Class)和实例(Instance)

将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。

要注意的是,当使用“对象”这个术语时,既可以指一个具体的对象,也可以泛指一般的对象,但是,当使用“实例”这个术语时,必然是指一个具体的对象。

例如:Integer是一个整数类,它描述了所有整数的性质。因此任何整数都是整数类的对象,而一个具体的整数“123”是类Integer的实例。

由类的定义可知,类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。

3、消息(Message)

面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息”。消息是一个实例与另一个实例之间传递信息,它请示对象执行某一处理或回答某一要求的信息,它统一了数据流的控制流。消息的使用类似于函数调用,消息中指定了某一个实例,一个操作名和一个参数表(可空)。接收消息的实例执行消息中指定的操作,并将形式参数数与参数表中相应的值结合起来。消息传递过程中,由发送消息的对象(发送对象)的触发操作产生输出结果,作为消息传送至接受消息的对象(接受对象),引发接受消息的对象一系列的操作。所传送的消息实质上是接受对象所具有的操作/方法名称,有时还包括相应参数。

消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎样完成这些处理。消息完全由接受者解释,接受者独立决定采用什么方式完成所需的处理,发送者对接受者不起任何控制作用。一个对象能够接受不同形式、不同内容的多个消息;相同形式的消息可以送往不同的对象,不同的对象对于形式相同的消息可以有不同的解释,能够做出不同的反映。一个对象可以同时往多个对象传递信息,两个对象也可以同时向某个对象传递消息。

例如,一个汽车对象具有“行驶”这项操作,那么要让汽车以时速50公里行驶的话,需传递给汽车对象“行驶”及“时速50公里”的消息。

通常,一个消息由下述三部分组成:

(1)接收消息的对象的名称;

(2)消息标识符(也称为消息名);

(3)零个或多个参数。

4、继承(Inheritance)

继承是面向对象的方法的一个主要特征。继承是使用己有的类定义作为基础建立新类的定义技术。已有的类可当作基类来引用,则新类相应地可当作派生类来引用。

广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。

面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组成一个层次结构的系统:一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是继承性,一个类直接继承其父类的描述(数据和操作)或特性,子类自动地共享基类中定义的数据和方法。

继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A。因此一个类实际上继承了它上层的全部基类的特性,也就是说,属于某类的对象除了具有该类所定义的特性外,还具有该类上层全部基类定义的特性。

继承分为单继承与多重继承。单继承是指,一个类只允许有一个父类,即类等级为树形结构。多重继承是指,一个类允许有多个父类。多重继承的类可以组合多个父类的性质构成所需要的性质。因此,功能更强,使用更方便;便是,使用多重继承时要注意避免二义性。继承性的优点是,相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息,提高软件的可重用性,便于软件个性维护。此外,继承性便利用户在开发新的应用系统时不必完全从零开始,可以继承原有的相似系统的功能或者从类库中选取需要的类,再派生出新的类以实现所需要的功能。

5、多太性(Polymorphism)

对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行动,该现象称为多态性。在面向对象的软件技术中,多态性是指类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。

多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且显著地提高了软件的可重用性和可扩充性。当扩充系统功能增加新的实体类型时,只需派生出与新实体类相应的新的子类,完全无需修改原有的程序代码,甚至不需要重新编译原有的程序。利用多态性,用户能够发送一般形式的消息,而将所有的实现细节都留给接受消息的对象。

计算机科学导论第4章 程序设计基础(答案)

第4章程序设计基础 习题 一、选择题 1. A 2.D 3.C 4. A 5. B 6.D 7.A 8.B 9.C 10. B 11. D 12. A 13.B 14.D 15.C 二、简答题 1.结构化程序设计的思想是什么? 答:结构化程序设计的基本思想就是采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构。 2.结构化程序设计的原则是什么? 答:结构化程序设计的原则是: (1) 使用顺序、选择、循环3种基本控制结构表示程序逻辑。 (2)程序语句组织成容易识别的语句模块,每个模块都是单入口、单出口。 (3)严格控制GOTO语句的使用。 3.结构化程序设计语言采用自顶向下的方法进行程序设计的特点是什么? 答:利用结构化程序设计语言采用自顶向下的方法进行程序设计的特点是: (1) 问题分解成子问题的结构必须与3种基本程序结构之一相对应。 (2) 问题的划分决定了程序的结构。一方面,子问题的划分决定了这一层次的程序是3种基本结构中的哪一种结构;另一方面,一个问题该如何划分成子问题是灵活的,并不是只有一种分解方法。分解的好坏就决定了设计的质量,也决定了程序的不同结构。 (3) 问题的边界应该清晰明确。只有这样才能精确地解决这些子问题,否则就会模棱两可,无从下手。 4.简述面向对象和结构化程序设计的区别。 答:面向对象是从本质上区别于传统的结构化方法的一种新方法、新思路。它吸收了结构化程序设计的全部优点,同时又考虑到现实世界与计算机之间的关系,认为现实世界是由一系列彼此相关并且能够相互通信的实体组成,这些实体就是面向对象方法中的对象,每个对象都有自己的自然属性和行为特征,而一类相似对象的共性的抽象描述,就是面向对象方法中的核心——类。 5. 从互联网上面搜索选择结构的使用方式。 答案略。 6.简述模块化方法的原理。

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

《Java语言程序设计:基础篇》课后复习题答案-第二章

Chapter2Elementary Programming 1.Valid identifiers:applet,Applet,$4,apps,x,y, radius Invalid identifiers:a++,--a,4#R,#44,class,public, int Keywords: class,public,int 2.double miles=100; final double KILOMETERS_PER_MILE= 1.609; double kilometers=KILOMETERS_PER_MILE*miles; System.out.println(kilometers); The value of kilometers is160.9. 3.There are three benefits of using constants:(1) you don’t have to repeatedly type the same value;(2) the value can be changed in a single location,if necessary;(3)the program is easy to read. final int SIZE=20; 4. a=46/9;=>a=5 a=46%9+4*4-2;=>a=1+16–2=15 a=45+43%5*(23*3%2);=>a=45+3*(1)=48 a%=3/a+3;=>a%=3+3;a%=6=>a=a%6=1; d=4+d*d+4;=>4+ 1.0+4=9.0 d+= 1.5*3+(++a);=>d+= 4.5+2;d+= 6.5;=>d=7.5 d-= 1.5*3+a++;=>d-= 4.5+1;=>d=1– 5.5=-4.5 5. 2 2 -4 -4 1 6.(2+100)%7= 4.So it is Thursday.

第10章 程序设计基础_习题参考答案

第10章习题参考答案 一、选择题 1.编写程序时,不需要了解计算机内部结构的语言是( C )。 A.机器语言B.汇编语言 C.高级语言D.指令系统 2.能够把由高级语言编写的源程序翻译成目标程序的系统软件叫( D )。 A.解释程序B.汇编程序 C.操作系统D.编译程序 3.结构化程序设计主要强调的是( B )。 A.程序的规模B.程序的可读性 C.程序的执行效率D.程序的可移植性 4.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( D )。 A.调用语句B.命令C.口令D.消息 5.下列程序段的时间复杂度是( A )。 t=i; i=j; j=t; A.O(1) B.O(3) C.O(n) D.O(3n) 6.一位同学用C语言编写了一个程序,编译和连接都通过了,但就是得不到正确结果,那么下列说法正确的是( C )。 A.程序正确,机器有问题B.程序有语法错误 C.程序有逻辑错误D.编译程序有错误 二、填空题 1.程序设计的基本步骤是(分析问题,确定数学模型)、(设计算法,画出流程图)、(选择编程工具,按算法编写程序)、(调试程序,分析输出结果)。 2.用高级语言编写的程序称为(源程序),把翻译后的机器语言程序叫做(目标程序)。 3.结构化程序设计的3种基本逻辑结构为顺序、选择和(循环)。 4.面向对象程序设计以(对象)作为程序的主体。 5.在面向对象方法中,信息隐蔽是通过对象的(封装)性来实现的。 6.在最坏情况下,冒泡排序的比较次数为(n(n-1)/2)。 三、问答题 1.什么是程序?什么是程序设计? 程序是计算机指令的集合,这些指令描述了计算机的一系列操作步骤。 使用计算机解决实际问题,通常是先要对问题进行分析并建立数学模型(对数值计算问题)或提出对数据处理的需求(对非数值计算问题),然后进行算法设计,并用某一种程序设计语言编写程序,最后调试程序,使之运行后能产生预期的结果。这个过程称为程序设计。 2.什么是算法?它有何特征?如何描述算法? 计算机解决问题的方法和步骤,就是计算机解题的算法。 算法具有5个特性:有穷性、确定性、有效性、一般要有数据输入、要有结果输出。 描述算法有多种不同的工具:自然语言、流程图、结构化流程图和伪代码等。 3.简述冒泡排序、折半查询的基本思想。 冒泡法排序法是每趟将相邻的两个数两两进行比较,若满足排序次序,则进行下一次比较,若不满足排序次序,则交换这两个数,直到最后。总的比较次数为n-1次,此时最后的

《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十一章练习题答案

《Java语言程序设计(基础篇)》(第10版梁勇著) 第十一章练习题答案 11.1 public class Exercise11_01 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter three sides: "); double side1 = input.nextDouble(); double side2 = input.nextDouble(); double side3 = input.nextDouble(); Triangle triangle = new Triangle(side1, side2, side3); System.out.print("Enter the color: "); String color = input.nextLine(); triangle.setColor(color); System.out.print("Enter a boolean value for filled: "); boolean filled = input.nextBoolean(); triangle.setFilled(filled); System.out.println("The area is " + triangle.getArea()); System.out.println("The perimeter is " + triangle.getPerimeter()); System.out.println(triangle); } } class Triangle extends GeometricObject { private double side1 = 1.0, side2 = 1.0, side3 = 1.0; /** Constructor */ public Triangle() { } /** Constructor */ public Triangle(double side1, double side2, double side3) { this.side1 = side1; this.side2 = side2; this.side3 = side3; }

C++程序设计基础课后答案 第五章

5.1 阅读下列程序,写出执行结果 1.#include < iostream.h > struct data { int n ; float score ; } ; void main() { data a[3] = { 1001,87,1002,72,1003,90 } , *p = a ; cout << (p++)->n << endl ; cout << (p++)->n << endl ; cout << p->n++ << endl ; cout << (*p).n++ << endl ; } 2.#include < iostream.h > struct employee { char name[ 20 ] ; char sex ; } ; void fun( employee *p ) { if( (*p).sex == 'm' ) cout << (*p).name << endl ; }

void main() { employee emp[5] = { "Liming", 'm', "Wangxiaoping", 'f', "Luwei", 'm' } ; int i ; for( i=0; i<3; i++ ) fun( emp+i ) ; } 3. #include < iostream.h > struct node { char * s ; node * q ; } ; void main() { node a[ ] = { { "Mary", a+1 }, { "Jack", a+2 }, { "Jim", a } } ; node *p = a ; cout << p->s << endl ; cout << p->q->s << endl ; cout << p->q->q->s << endl ; cout << p->q->q->q->s << endl ; } 4.#include < iostream.h > class A

程序设计基础知识点)

第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。

它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,

智慧树知到《Python程序设计基础》章节测试答案

智慧树知到《Python程序设计基础》章节测试答案绪论 1、学好Python程序设计要注意的几个问题是 A:多看多练 B:多想多整理 C:多交流多请教 D:只看视频,不思考、不练习 答案: 多看多练,多想多整理,多交流多请教 2、本门课程将主要介绍哪些内容 A:运算符 B:内置函数 C:常用数据类型 D:文件操作 答案: 运算符,内置函数,常用数据类型,文件操作 第一章 1、下面特点属于Python语言的有哪些? A:开源 B:免费 C:跨平台 D:解释执行 答案: 开源,免费,跨平台,解释执行 2、Python支持函数式编程。 A:对 B:错 答案: 对

3、对于Python程序,对代码缩进的要求非常严格。 A:对 B:错 答案: 对 4、一般建议,每行Python代码的长度不要超过屏幕宽度,如果确实太长的话,应使用续行符。 A:对 B:错 答案: 对 5、一般来说,程序中的重要代码应加上适当的注释。 A:对 B:错 答案: 对 6、下面导入标准库对象的语句,正确的有? A:from math import sin B:from random import random C:from math import D:import 答案: from math import sin,from random import random,from math import * 第二章 1、Python无法表示9999这样大的整数。 A:对 B:错 答案: 错 2、集合中的元素都是唯一的,不会有重复。 A:对

B:错 答案: 对 3、Python中变量的类型是动态的,随时可以变化。 A:对 B:错 答案: 对 4、可以使用break作为变量名。 A:对 B:错 答案: 错 5、Python支持复数以及相关的运算。 A:对 B:错 答案: 对 6、Python中没有++和–这两个运算符。 A:对 B:错 答案: 对 第三章 1、已知x = [1, 2, 3],执行语句(4)之后,x的值是什么?A:[1, 2, 3, 4] B:[4] C:[1, 2, 3] D:4 答案:

C程序设计(第四版)_谭浩强_第五章_课后习题答案

循环结构程序设计 P115 5.1 用while计算1至100的合. #include int main() { int i=1,sum=0; while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定. { sum=sum+i; i++; } printf("The sum is %d .\n",sum); return 0; } #include int main() { int i=1,sum=0; do// do-while可以做的事,用while都可以做到. { //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行. sum=sum+i; i++; }while(i<=100); printf("The sum is %d .\n",sum); return 0; } P118 5.3 比较do-while与while的差别. #include

{ int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0. while(i<=10) { sum=sum+i; i++; } printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11. do { sum=sum+i; i++; }while(i<=10); //此重点在于理解二者的差别. printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,b=0,a,c; for(i=0;i<=1000;i++) { printf("Please input amount :"); //循环体内套有输出语句以及跳出语句. scanf("%d",&a); b=b+a; if(b>=100)

C语言程序设计基础知识 习题一及参考答案

第一章:程序设计基础知识 一、单项选择题 1、以下( )是面向过程的程序设计语言。 A)机器语言B)汇编语言C)高级语言D)第四代语言 2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。 A)设计数据结构和算法B)建立数学模型 C)编写程序D)调试和运行程序 3、以下常用算法中适合计算等差级数的算法是( )。 A)枚举法B)递推法C)分治法D)排序法 4、以下不属于算法基本特征的是( )。 A)有穷性B)有效性C)可靠性D)有一个或多各输出 5、以下描述中不正确的是( )。 A)程序就是软件,但软件不紧紧是程序。 B)程序是指令的集合,计算机语言是编写程序的工具。 C)计算机语言都是形式化的语言,它有一个语法规则和定义。 D)计算机语言只能编写程序而不能表示算法。 6、下面描述中,正确的是( ) A)结构化程序设计方法是面向过程程序设计的主流。 B)算法就是计算方法。 C)一个正确的程序就是指程序书写正确。 D)计算机语言就是编写程序的工具而不是表示算法的工具。 7、下面描述中,不正确的是( )。 A)递归法的关键是必须有一个递归终止的条件。

B)递归算法要求语言具有反复自我调用子程序的能力。 C)对于同一个问题,递推算法比递归算法的执行时间要长。 D)递推算法总可以转换为一个递归算法。 8、N-S图与传统流程图比较,主要优点是( )。 A)杜绝了程序的无条件转移。 B)具有顺序、选择和循环三种基本结构。 C)简单、只管。 D)有利于编写程序。 A)B)C)D) 二、填空题 1、在流程图符号中,判断框中应该填写的的是________。(判断条件) 2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程) 3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句) 4、可以被连续执行的一条条指令的集合称为计算机的________。(程序) 5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象) 6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(数据结构算法) 7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性) 8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构) 9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法) 10、程序设计风格主要影响程序的________。(可读性) 11、用模块组装起来的程序被成为________结构化程序。(模块化) 12、采用自上而下,逐步求精的设计方法便于____________。(结构化和模块化) 三、应用题

《VC++程序设计基础》习题1

《Visual C++ 程序设计基础》练习题第一部分面向过程程序设计

第一章 VC++语言的基础知识和简单的语句 1.C++语言程序由〖C〗组成。 A)子程序 B)过程 C)函数 D)主程序和子程序 2.以下各标识符中,合法的用户标识符组为〖D〗。 A)PAd,P#d,b-b,abc,_0123,ssiped B)cin,a10,CPP,float,del_word,signed C)void,max,hiy,,list,*jer D)a,temp,_isw,INT,keep,wind 3.在VC++中,char类型数据占〖A〗个字节,int类型数据占〖C〗个字节,short 类型数据占〖B〗个字节,long类型数据占〖C〗个字节,float类型数据占〖C〗个字节,double类型数据占〖D〗个字节。 A)1 B)2 C)4 D)8 4.以下语句〖B〗。 int a=-2L; cout << a << endl; A)赋值不合法 B)输出值为-2 C)输出为不确定值 D)输出值为2 5.在VC++中,以下语句的输出为〖D〗。 short int k=-1; cout << k << ',' << (unsigned short)k <代表回车换行,_代表空格)。 cin >> a >> b; A)1020 B)10_20 C)10,20 D)20_10 8.以下语句的输出为〖D〗。 int k=017,g=111; cout << ++k << ',' << hex << g++ <

《JavaScript 程序设计基础教程(第2版)》习题答案

《JavaScript 程序设计基础教程(第2版)》习题 答案 第一章Web 技术概述 一、单选题 1)D 2)D 3)D 4)A 5)C 6)D 7)C 8)C 9)D 10)D 11)A 12)D 13)D 14)D 15)A 二、综合题 (略) 第二章HTML/XHTML 制作 一、判断题 1)对2)错3)对4)错5)对 6)错7)错8)错9)错10)对 11)对12)对13)错14)错15)对 16)错17)对18)错19)错20)对 21)错22)错 二、单选题 1)D 2)C 3)C 4)B 5)A 6)B 7)B 8)B 9)C 10)C 11)B 12)C 13)C 14)C 15)C 16)C 17)A 三、综合题 1)ex020301.htm 2)ex020302.htm 3)ex020303.htm 4)ex020304.htm 5)ex020305.htm 6)ex020306.htm 7)ex020307.htm 8)ex020308.htm

9)ex020309.htm 10)ex020310.htm 11)略 第三章CSS 技术 一、判断题 1)错2)对3)错4)对5)错 6)错7)对8)错9)对10)错 11)对12)错13)错14)错15)错 16)错17)错18)对19)对20)错 21)错 二、单选题 1)B 2)B 3)A 4)C 5)B 6)C 7)A 8)B 9)D 10)B 11)D 12)B 13)A 14)B 15)D 16)A 17)B 18)C 19)B 20)D 21)B 22)A 23)D 24)A 三、综合题 1)ex030301.htm 2)ex030302.htm 3)ex030303.htm 4)ex030304.htm 5)ex030305.htm 6)ex030306.htm 7)ex030307.htm 8)ex030308.htm 9)ex030309.htm 10)ex030310.htm 11)ex030311.htm 12)ex030312.htm 13)ex030313.htm 14)ex030314.htm 15)ex030315.htm 16)略 第四章JavaScript 编程基础 一、判断题 1)错JavaScript 是Microsoft公司设计的脚本语言。 2)对JavaScript 既文档中可用于Web客户端应用,也可以用于Web服务器端应用。3)对在HTML文档中通过使用