(第7章)程序设计基础
《C语言程序设计基础与实训教程》第7章:数组

/webnew/
7.1.4 一维数组的应用举例
例7.5 将数组中的数按颠倒的顺序重新存放。要求,在操 作时只能借助一个临时存储单元而不能另外开辟数组。 分析:题目要求是按颠倒的顺序重新存放数据,而不是按 逆序输出。 可以使用两个变量i和j,i和j的初值分别为0和9,将a[i] 与a[j]对调,然后i++,j--,接着再将a[i]与a[j]对调。如些 重复操作,直到i>=j时,对调完成。 程序
分析:该数组元素的值是有规律的序列, ( 从 开始算起 开始算起) 分析 : 该数组元素的值是有规律的序列 , 第 i(i从0开始算起) 个 元素的值为: 元素的值为:10+2*i。 。 输出该数组时,由于该数组有30个元素,在一行中输出不太美观, 输出该数组时,由于该数组有 个元素,在一行中输出不太美观, 个元素 所以,这里我们选择每行输出6个元素。 所以,这里我们选择每行输出 个元素。 个元素
/webnew/
7.1.3 一维数组元素的引用
2.一维数组的输入与输出 一维数组的输入与输出 如何给数组元素赋值以及如何将数组元素的值输出是数 组最基本的操作。下面将讨论一维数组元素的输入与输出。 例7.1 定义一个五个元素的字符型数组,通过键盘给每 个元素赋值,并以相反的顺序的输出。 程序1 程序2 从上面的例子可以看出,一个数组中往往往包含较多的 数组元素,相同的赋值或输出操作将被重复多次进行,所以, 一维数组元素的输入与输出一般通过一重循环来实现。
/webnew/
7.1.3 一维数组元素的引用
注意: (1)数组元素的引用方式与数组说明符的形式非常相近,都是 “数组名[表达式]”形式,但两者的意义完全不同。 出现的位置不同。定义数组时,“数组名[表达式]”出现在 定义语句中,表示的是定义了一个名为“数组名”的数组,表达式的值 表示该数组中所包含元素的个数。作为数组元素的引用方式时,“数组 名[表达式]”出现在其它执行语句中,表示是数组中的下标为“表达式” 值的那个元素。 表达式的格式不同。定义数组时,“表达式”必须为常量表 达式。作为数组元素的引用方式时,表达式可以变量、常量或函数构成 的合法C表达式。 (2)在C语言中,起始下标规定为0,最大值应为:数组长度-1。 如果发生了下标越界的现象,可能破坏了其它存储单元的数据,甚至破 坏程序代码。 (3)下标必须是整型表达式,若为小数,则自动取整。如a[2.6] 系统自动默认为a[2]。
c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个 main函数。
c) 在C语言中,输出操作是有库函数 printf( )函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A 。
因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C 。
因为 main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。
因为一个C语言程序是由若干个函数组成的。
但至少包含一个main 函数,且main函数的位置不限。
三、编程题1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。
海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。
*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。
第七章 面向对象的程序设计

第七章面向对象的程序设计本章是面向对象的程序设计。
与第五章介绍的面向过程的结构化程序设计不同,主要介绍面向对象程序设计的基础知识,包括面向对象的基本概念以及Visual FoxPro支持的面向对象的编程技术,详尽介绍了对各类控件的选择与使用方法。
在对诸如表单等各类控件对象的设计、操作上,面向对象的编程技术有自己的独特之处,但在所有对象的各种事件和方法的程序代码设计中,仍然使用到结构化的程序设计方法。
本章的主要内容是面向对象程序设计的理论基础,其程序设计的基本目标是设计出能在可视化环境下运行的应用程序窗口界面—表单。
7.1 学习提要1.学习目标与要求通过本章学习,读者应达到以下要求:⑴了解对象、类等基本概念;⑵理解对象的属性、方法和事件;⑶熟练掌握表单的基本设计、操作和应用;⑷掌握常用控件的设计与使用。
⑸熟练掌握常用事件、方法的过程代码的设计方法。
⑹了解自定义类的创建和使用方法。
2.重点与难点:⑴本章重点:对象与类以及属性、方法和事件等基本概念;表单的设计与应用;常用控件属性、事件和方法的选择与运用。
⑵本章难点:本章的重点即为本章的难点3.主要知识点⑴面向对象的概念①对象、类②属性、方法、事件③Visual FoxPro 中的基类⑵表单的创建与基本操作①表单的创建使用“窗体设计器”或“表单向导”创建表单。
②表单的修改、运行使用“窗体设计器”编辑修改表单。
使用菜单或命令方式运行表单。
③表单的属性、事件和方法表单常用属性的设置,表单的常用事件、常用方法。
④设置表单的数据环境数据环境的概念,数据环境的设置。
⑶表单常用控件①表单常用控件的基本操作控件对象的选定,移动位置,改变大小,剪切、复制与粘贴,删除,布局设置。
②常用控件对象标签控件,命令按钮与命令按钮组控件,文本框与编辑框控件,选项组和复选框控件,列表框和组合框控件,容器与表格控件,页框控件,计时器与微调控件,图像控件等。
③控件对象的常用属性设置Caption属性,Name属性,Alignment属性,ButtonCount属性,BackColor属性,BorderColor属性,BorderStyle属性,Enabled属性,ForeColor属性,InputMask属性,PasswordChar属性,Picture属性,Height属性,Width属性,Left属性,Top属性,Value属性,Visible属性,FontName属性,FontSize属性,ControlSource属性。
C语言习题答案1-7章

程序设计基础(C语言版)习题第01章绪论一.选择题1.以下叙述中正确的是________。
A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整参考答案:D【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。
所以选项A)、B)、C)说法都不完整。
2.以下关于简单程序设计的步骤和顺序的说法中正确的是。
A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构参考答案:B【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。
②算法设计:给出解决问题的步骤,即算法。
③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。
④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。
⑤程序调试:对编写好的程序进行调试,修改程序中的错误。
⑥程序文档编写与程序维护。
综上所述,B)选项是符合上述描述的,其他选项不恰当。
3.以下叙述中正确的是________。
A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完参考答案:C【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。
故本题答案为C)。
4.以下叙述中正确的是。
A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中参考答案:C【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。
第7章VFP 6.0程序设计基础

条件
真 假
A
ENDIF 后面的语句
28
说明: a. 根据<条件>的逻辑值进行判断。如果<条 件>的逻辑值为.T.,就依次执行[命令序列],执行 完后就转去执行ENDIF之后的命令。如果<条件> 的逻辑值为.F.,则IF<条件>和ENDIF之间的所有 命令都不执行,而直接转到ENDIF之后的命令。 b. IF语句和ENDIF语句必须成对出现,且各占 一行。 c. 为了程序阅读方便,便于以后维护修改,建 议对于[命令序列]部分采取向右缩进书写的方式。
19
例7.6 建立程序EX7_4.prg,用一组@...GET命令, 对表“职工.DBF”中的某条记录进行编辑,记录号通 过键盘输入。 set talk off set century on clear use 职工 input "请输入记录号:" to n go n @3,15 say "职工编号:" get 职工号 @3,33 say "姓名:" get 姓名 @3,61 say "照片" get 照片 @5,15 say "性别:" get 性别
24
7.2 程序的基本结构
7.2.1 顺序结构 顺序结构是程序设计中最基 本的结构,该结构按照程序命令 出现的先后顺序,依次执行。其 它结构作为它的组成部分而存在 于程序之中。事实上,程序中的 命令如果不进行特殊说明,就自 动按其前后排列顺序执行。
A
B
25
例7.9 在xsqk.dbf中按学号查找 set talk off clear accept "sqk select * from xsqk where 学号=xh =xh use set talk on return
第7章 面向对象的程序设计基础 答案

第7章面向对象的程序设计基础答案一、单项选择题1.D2.A3.D4.D5.A6.A7.C8.D9.C 10.A 11.C 12.C 13.A 14.A 15. D 16.A 17.D 18. A 19.C 20.B 21.D 22.A23.C二、多项选择题1.B C2.A B D3.B C D4.A B C5.B C6.A B7.A B C D8.A B D9.A B D10.A B C D三、填空题1.事件方法2.封装性多态性3.容器类控件类容器类对象控件类对象4.类对象5.绝对引用相对引用6.This ThisForm ThisFormset Parent四、面向对象程序设计题1.(1)新建如图7-1所示的表单:图7-1 显示当前系统日期和时间表单(2)在相应的事件过程中,编写如下代码:a)a)在文本框Text1的Click事件中,写入如下代码:this.value=date()b)在文本框Text1的DblClick事件中,写入如下代码:this.value=time()C)在命令按钮Command1的Click事件中,写入如下代码:thisform.text1.value=""d)在命令按钮Command2的Click事件中,写入如下代码:thisform.release(3)运行表单,结果如图7-2所示:注:“删除”为command1按钮,“退出”为command2按钮。
2.(1)新建如图7-3所示的表单:(2)在相应的事件过程中,编写如下代码:a ) a ) 在表单Form1的ACTIV ATE 事件中,写入如下代码: thisform.text3.setfocus public n n=0b ) b ) 在文本框Text1的Click 事件中,写入如下代码:this.value=date()c ) c ) 在文本框Text2的Click 事件中,写入如下代码:this.value=time()d )在命令按钮Command1的Click 事件中,写入如下代码: ma=thisform.text3.valuek1=str(month(date()),2)+str(day(date()),2) k2=subs(time(),1,2) k=k1+k2 k=allt(k)if allt(ma)=kbel3.caption="欢迎使用本系统!" elsen=n+1 if n=3bel3.caption="您无权使用本系统!" thisform.text3.enabled=.f.mand1.enabled=.f.图7-2 显示当前系统的日期和时间的运行结果图7-3 密码输入表单elsebel3.caption="口令错,请重新输入口令!" thisform.text3.value="" thisform.text3.setfocus endif endife )在命令按钮Command2的Click 事件中,写入如下代码: thisform.release(3)运行结果如图7-4所示:注:“确定”为command1按钮,“关闭”为command2按钮。
java语言程序设计(基础篇) 第七章

7.2. 为对象定义类
例如一个圆对象(circle),有数据域圆半径( radius)(标识了圆的属性),圆的行为就是 其面积可以通过方法getArea计算而得。同类型 的对象使用一个公共的类来定义。类就是定义 对象的数据和方法的模板.。一个对象是类的实 例(instance)。你可以生成一个类的很多个实 例,产生一个实例也叫做实例化(instantiation
To distinguish between object reference variables and primitive data type variables (§7.4).
To use classes in the Java library (§7.5).
To declare private data fields with appropriate get and set methods to make class easy to maintain (§7.6-7.8).
第7章 对象和类
在前一部分(2到6章),我们学习了编程基础,学会 使用基本数据类型、控制语句、方法以及数组 ,这些都是所有的面向过程的语言都具有的特 征,但, Java,是个面向对象的语言,不但具有 面向过程语言的要素,也具有抽象、封装、继 承、多态等特征以实现强大的灵活性、模块化 、以及可重用性以开发软件,在这一部分,我 们将学习如何定义、扩展以及使用类与对象
).术语对象、实例通常可互用,类和对象的关
系类似于书版和从书版印刷出很多的书。 下面是个圆的例子。
4
对象
类名: Circle
数据域: radius is _______
方法: getArea
一个类模板
圆对象 1
数据域: radius is 10
C语言程序设计_课件_第七章(适于清华谭浩强版)

注意:
(1) return(表达式); 和return 表达式;都 是正确的。 (2) 带返回值的函数只能返回一个值。 (3) 在函数定义时,允许使用多个return语句, 但是应尽量在末尾使用一个return语句。 (4) return语句中的表达式与函数的返回值类 型不匹配时,以函数定义时的返回类型为准。
问题的提出 函数基础 函数的定义 函数说明 函数调用 参数传递 程序举例 递归调用 变量的存储类别
7.1 问题的提出
例6.20它可以解决的问题有: ①输入若干个学生的姓名、某课程的期中 和期末成绩,并计算每个学生的总评成绩; ②计算总评成绩的分数段情况; ③输出所有学生的姓名、期中、期末和总 评成绩; ④查询某个学生的总评成绩。
函数调用时需要传递数据。调用函数要将 实参的值传送给被调用函数的形参。 若函数定义首部是 double power(double x,int n) /*函数定义 */ 调 用 形 式 是 可 以 是 power(y,m) , 也 可 以 是 power(3.0,5)。 其中,x和n是形式参数,y和m是实际参数,3.0 和可以是一个变量 名,因为变量名也构成一个表达式,形式参数只 能是变量名。当实际参数是变量名时,它与形参 的名称既可以相同,也可以不同,只是要注意, 在函数定义内部应该使用形参的名称。 (2) 实际参数与形式参数的参数个数、数据类型 和顺序都应该一致,如果数据类型不一致,系统 将按照自动转换规则进行转换。
7.3 函数的定义
7.3.1 函数的定义形式 在C语言中函数定义的形式有两种。
第一种:
函数返回值的数据类型说明 函数名称(带有类型说明的参数表)
{
函数内部数据说明; 语句;
}
第二种:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
7.2.2 分支结构
CLEAR INPUT "请输入成绩:" TO CJ 请输入成绩: DO CASE CASE CJ<=0 .or. CJ>100 CJ<=0 or. CJ>100 ? "非法数据!" 非法数据!" CASE CJ<60 CJ<60 ? "不及格" 不及格" CASE CJ<70 CJ<70 ? "及格" 及格" CASE CJ<80 CJ<80 ? "中" CASE CJ<90 CJ<90 ? "良" CASE CJ<=100 CJ<=100 ? "优" ENDCASE
20
7.2.3 循环结构
3. SCAN语句(扫描循环) 扫描循环)
语句格式: 语句格式: SCAN [<范围>][FOR<条件>] [<范围 范围>][FOR<条件 条件>] 命令组 ENDSCAN 说明: 说明:此循环仅适用于表文件中 的循环, 的循环,SCAN循环能自动跳到 循环能自动跳到 下一个满足条件的记录. 下一个满足条件的记录.
7
7.2 程序的基本结构
在编写程序时, 在编写程序时,有的程序中命令是按顺序依次执 行的, 行的,但在更多程序中需要进行判断或者重复执 行某段程序.这就要有控制程序走向的命令. 行某段程序.这就要有控制程序走向的命令.程 序的走向不同,也就产生了不同的程序结构. 序的走向不同,也就产生了不同的程序结构. VFP系统的应用程序中 系统的应用程序中, 在VFP系统的应用程序中,常见的程序结构有如 下三种: 下三种: 1. 顺序结构 2. 分支结构 3. 循环结构
3
7.1.1 建立程序文件
1 , " 文 件 " 菜 单 " 新建 " → " 程序 " 单→ →"新建文件" "新建文件" 2,项目管理器"代码"选项卡中选择"程序 ,项目管理器"代码"选项卡中选择" 新建" ",再点 "新建"命令 3,在命令窗口中输入: ,在命令窗口中输入: MODIFY COMMAND <文件名> 文件名>
22
7.3 多模块程序
在许多程序中, 在许多程序中 , 有一些程序段经常被重复 执行, 如把这些公共的程序段与主程序分开, 执行 , 如把这些公共的程序段与主程序分开 , 定义成独立的程序, 即过程或函数, 这样, 定义成独立的程序 , 即过程或函数 , 这样 , 就 可以有利于降低程序的长度和复杂性, 可以有利于降低程序的长度和复杂性 , 也使程 序便于维护. 序便于维护 . 函数和过程的主要区别是函数通 常有返回值,而过程通常没有返回值. 常有返回值,而过程通常没有返回值.
11
7.2.2 分支结构
2. 分支语句
命令格式: 命令格式: DO CASE CASE 条件1 条件1 .F. 条件2 .F. .条件n .F. 条件1 条件1 条件2 …….条件n 命令组1 命令组1 .T. .T. .T. CASE 条件2 条件2 命令 命令 ……. 命令 OTHER . 命令组2 命令组2 组1 组2 组n 命令组 …… CASE 条件n 条件n 命令组n 命令组n [OTHERWISE ENDCASE语句的下一语句 ENDCASE语句的下一语句 命令组n+1] 命令组n+1] ENDCASE 12
14
7.2.3 循环结构
1. FOR 语句(计数循环) 语句(计数循环)
语句格式: 语句格式: FOR 变量=初值 TO 终值 [STEP 步长] 变量= 步长] 命令组 ENDFOR 其中初值,终值,步长都是数值表达式. 其中初值,终值,步长都是数值表达式. 具体执行步骤: 具体执行步骤: (1) 给变量赋初值; 给变量赋初值; (2) 判断变量的值是否小于等于终值; 判断变量的值是否小于等于终值; (3) 若不是,则循环结束; 若不是,则循环结束; (4) 若是,则执行语句序列; 若是,则执行语句序列; (5) 变量 变量 步长(若省略 变量=变量 步长(若省略STEP,则步长 ); 变量+步长 ,则步长=1); (6) 转(2). . 15
LOOP:当执行到这个语句时,会跳过LOOP后 :当执行到这个语句时,会跳过 后 面与ENDDO之间的语句,立即返回本循环的起 之间的语句, 面与 之间的语句 点. EXIT:当执行到这个语句时,会立即退出循环, :当执行到这个语句时,会立即退出循环, 去执行ENDDO语句下面一个语句. 语句下面一个语句. 去执行 语句下面一个语句 说明:这两个语句一般是有条件执行的, 说明:这两个语句一般是有条件执行的,当满足 某条件时才能执行到它们. 某条件时才能执行到它们.
17
7.2.3 循环结构
2. DO WHILE 语句(当循环) 语句(当循环)
语句格式: 语句格式: DO WHILE <条件> <条件 条件> <命令组> 命令组> [LOOP] [EXIT] ENDDO
ENDDO语句的下一语句 ENDDO语句的下一语句
18
不成立 条件? 条件? 成立 命令组
7.2.3 循环结构
记录指针下移一条 ENDSCAN后语句 ENDSCAN后语句
21
.F EOF()!=.T.? . .T. .F. 条件? 条件? .T. 命令组
打开表文件
7.2.3 循环结构
例5:用SCAN…ENDSCAN语句处理例4. SCAN…ENDSCAN语句处理例 语句处理例4 CLEAR USE student SCAN ?s_name+"毕业于 ?s_name+"毕业于"+sch_number 毕业于" ENDSCAN CLOSE DATABASE
6
7.1.4 执行程序
程序编辑结束后,必须保存后才能执行. 程序编辑结束后,必须保存后才能执行. 1,选择"程序"菜单中的"运行"命令,则出 ,选择"程序"菜单中的"运行"命令, 运行"对话框, 现 " 运行 " 对话框 , 选取一个要执行的程序代 码文件,单击"运行"按钮即可. 码文件,单击"运行"按钮即可. 2,在命令窗口中输入命令: ,在命令窗口中输入命令: DO <程序文件名> 程序文件名> 注意:如果程序没有进行编译,而且程序中存 注意: 如果程序没有进行编译, 在错误, 则在执行过程中VFP会指出程序错误 在错误 , 则在执行过程中 会指出程序错误 出现程序错误窗口.此时,可以单击" , 出现程序错误窗口 . 此时 , 可以单击 " 取消 按钮,终止程序执行. "按钮,终止程序执行.
3. WAIT命令(只接收一个字符) 只接收一个字符)
[<字符表达式 字符表达式>][TO<内存变量 内存变量>] 格式: 格式:WAIT [<字符表达式>][TO<内存变量>] [WINDOW] [TIMEOUT <数值表达式>] 数值表达式>]
9
7.2.2 分支结构
1. 条件语句
命令格式: 命令格式: IF <条件> <条件 条件> <命令组 1> [ ELSE <命令组 2> ] ENDIF 功能:如果条件成立, 功能:如果条件成立, 则执行命令组1, 则执行命令组 ,否则执 行命令组2. 行命令组 .
5
7.1.3 程序文件的保存
1,选择"文件"菜单中的"保存"命令或"另 ,选择"文件"菜单中的"保存"命令或" 存为" 命令, 出现" 另存为" 对话框, 存为 " 命令 , 出现 " 另存为 " 对话框 , 输入文 件名后,单击"保存"按钮即可. 件名后,单击"保存"按钮即可. 2,按Ctrl+W组合键,若事先没有指定程序文件 , Ctrl+W组合键 组合键, 也会出现" 另存为" 对话框, 名 , 也会出现 " 另存为 " 对话框 , 输入文件名 后,单击"保存"按钮即可. 单击"保存"按钮即可.
24
7.3.1 过程
编写程序计算: 例6: 编写程序计算:M=1!+2!+3!+...+10! SET TALK OFF CLEAR S =1 M=0 M=0 FOR N=1 TO 10 N=1 DO JC &&调用过程JC,求N! &&调用过程 求 调用过程JC, M=M+S ENDFOR ?"1!+2!+……+10!=",M ?"1!+2!+……+10!=",M SET TALK ON
成立 不成立 条件? 条件? 命令组2 命令组2
命令组1 命令组1
ENDIF语句的下一语句 ENDIF语句的下一语句
Байду номын сангаас
10
7.2.2 分支结构
例1:在"student"表中按姓名查找学生. student"表中按姓名查找学生 表中按姓名查找学生. CLEAR USE student ACCEPT "请输入学生姓名:" TO XM 请输入学生姓名: LOCATE FOR s_name=XM IF FOUND( ) DISPLAY ELSE ? "查无此人!" 查无此人!" ENDIF USE