第五章 程序设计基础
Python程序设计基础教程

Python程序设计基础教程第一章:Python简介和安装1.1 Python的历史和发展Python是Guido van Rossum在1980年代末和1990年代初设计的一种编程语言。
文章介绍了Python的起源、发展和目前的应用领域。
1.2 Python的优势和特点本节详细介绍了Python作为一种高级编程语言的优势和特点,例如简洁明了的语法、强大的标准库和广泛的社区支持。
1.3 Python的安装步骤提供了详细的Python安装指南,包括不同操作系统下的安装方法、环境配置和验证安装是否成功。
第二章:Python基本语法2.1 变量和数据类型介绍了Python中常见的数据类型,包括数字、字符串、列表、元组和字典,以及如何定义和使用变量。
2.2 条件和循环详细介绍了Python中的条件语句(if-else语句)和循环语句(for循环和while循环),以及如何使用它们来控制程序的执行流程。
2.3 函数和模块介绍了如何定义和调用函数,以及如何使用模块来组织和管理Python代码。
第三章:Python高级特性3.1 列表生成式详细介绍了Python中列表生成式的语法和用法,以及如何利用列表生成式简化代码和实现复杂的数据处理。
3.2 迭代器和生成器解释了Python中迭代器和生成器的概念,并展示了如何定义和使用它们来实现高效的数据处理和遍历。
3.3 装饰器介绍了Python中装饰器的概念和用法,以及如何使用装饰器来增强已有函数的功能。
第四章:Python文件操作和异常处理4.1 文件读写介绍了Python中文件读写的基本操作,包括打开文件、读取内容、写入内容和关闭文件。
4.2 异常处理详细讲解了Python中的异常处理机制,包括如何捕捉和处理异常以及如何自定义异常类。
第五章:Python面向对象编程5.1 类和对象解释了Python中类和对象的概念,包括如何定义类、创建对象和调用对象的方法。
5.2 继承和多态介绍了Python中的继承和多态特性,以及如何使用它们来实现代码的重用和灵活性。
C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
Python语言程序设计基础(第2版)第五章答案

第5章函数和代码复用5.1 函数的基本使用[5.1]: A[5.2]: D[5.3]: 错误。
[5.4]: 合法,因为Python语言是解释执行,即只要在真正调用函数之前定义函数,都可以进行合法调用。
5.2 函数的参数传递[5.5]: 在函数定义时,直接为可选参数指定默认值。
可选参数必须定义在非可选参数后面,可选参数可以有多个。
[5.6]: 在函数定义时,可变参数通过在参数前增加星号(*)实现。
可变数量参数只能在参数列表最后,即它只能有一个。
[5.7]: 返回值是元组类型。
[5.8]: 位置传递:支持可变数量参数,但容易忘记实参的含义;名称传递:不易忘记实参的含义,但不支持可变数量参数。
[5.9]: 如果函数里没有创建同名变量,则可以直接使用,不需global声明。
5.3 模块3:datetime库的使用[5.10]:print( "现在是{0:%Y}年{0:%m}月{0:%d}日{0:%I}:{0:%M}".format(datetime.now()))[5.11]: 答案不限。
举一个例子,输出美式日期格式:print("{0:%I}:{0:%M} {0:%b} {0:%d} {0:%Y}".format(datetime.now()))[5.12]: datetime对象可以直接做加减运算,所以可以用这样的方式给程序计时:1 2 Start = datetime.now() ... # 要计时的代码4 5 6 End = datetime.now() Cost = End – Start Print(Cost)5.4 实例7:七段数码管绘制[5.13]: 相当于C语言中的三目运算符。
[5.14]: 隐藏画笔的turtle形状。
[5.15]: 对应相应的年月日文字输出。
5.5 代码复用和模块化设计[5.16]: 错误,因为”使用函数“是“模块化设计“的必要条件。
《高等职业教育专科信息技术课程标准(2021版)》、基础模块中包含几个主题

《高等职业教育专科信息技术课程标准(2021版)》、基础模块中包含几个主题高等职业教育专科信息技术课程标准(2021版)是教育部发布的一项重要文件,旨在规范高等职业教育信息技术专科课程的设置和教学内容,提高学生的信息技术素养和实际应用能力。
在基础模块中,包含了几个主题,分别是计算机基础、操作系统基础、网络基础、数据库基础和程序设计基础。
本文将围绕这几个主题展开深入研究,探讨它们在信息技术课程中的重要性和应用价值。
第一章计算机基础计算机是现代社会不可或缺的工具,掌握计算机基础知识对于学生来说至关重要。
本章将介绍计算机的组成结构、工作原理以及常用的计算机软件和硬件设备。
同时还会讨论计算机操作系统、网络通信原理以及数据安全与保护等方面内容。
第二章操作系统基础操作系统是计算机系统中最核心的软件之一,它负责管理和控制计算机资源,并提供给用户一个友好且高效的工作环境。
本章将深入研究操作系统的基本概念、功能和分类,介绍常见的操作系统如Windows 和Linux,以及操作系统的安装、配置和维护等技术要点。
第三章网络基础网络技术是信息时代的核心技术之一,它已经深入到人们生活和工作的方方面面。
本章将介绍计算机网络的基本概念、组成结构以及常见网络协议和网络设备。
同时还会讨论局域网、广域网、互联网等不同类型的网络,以及网络安全与管理等重要内容。
第四章数据库基础数据库是信息系统中用于存储和管理数据的重要工具,它对于组织和管理大量数据具有重要意义。
本章将介绍数据库的基本概念、数据模型以及常见数据库管理系统如MySQL和Oracle。
同时还会讨论数据库设计与规范化、SQL语言以及数据库安全与备份等关键内容。
第五章程序设计基础程序设计是信息技术领域中最核心也是最具挑战性的技能之一,它涉及到算法思维、编程语言以及软件开发过程等多个方面。
本章将介绍程序设计思想与方法、常用编程语言如C++和Java,以及软件开发过程中的需求分析、设计、编码和测试等关键环节。
第五章_汇编语言程序设计基础

§5-1 汇编语言的基本概念
汇编 语言 源程 序 汇编 程序 A ss em bl er 机器 语言 目标 程序
汇编语言指令与机器指令之间有一一对应的关系,所以汇 编语言与具体的机器密切相关,是一种面向机器的语言。 不同机器(CPU)的汇编语言不同。 为方便编程,实际的汇编程序常还提供一些除机器指令以 外的命令,被称为伪指令。伪指令(Pseudo Instruction) 仅在汇编过程中指导汇编程序如何生成目的代码,自己本 身并没有对应的机器代码。 汇编语言的指令(语句)包含两类:硬指令或真指令(指 令语句)和伪指令(指示性语句) 。
12
§5-2 汇编语言的基本语言成分
6. 综合运算符(改变属性运算符):由已存在的存储器操作数 (变量/标号)生成一个段地址和位移量相同、类型不同的新 的存储器操作数(变量/标号)。 (1) 改变变量/标号的类型: 格式: 新类型 PTR 变量/标号 功能:把PTR左边的属性赋给右边的变量/标号 [例] 设变量XVAR是字节属性,现把它的两个字节内容送 到AX中起去。 MOV AX , WORD PTR XVAR (2) 定义当前存储单元的类型: 格式: THIS 类型 功能:可用于建立新类型的存储器变量,但不分配新的存 储空间,它的段地址和位移量是汇编时的当前值。 [例] WBUFFER EQU THIS WORD BUFFER DB 100 DUP(?)
17
§5-3 汇编语言源程序的结构
(3) 段的类别属性:通常使用的类别名是‘CODE’、 ‘DATA’、‘STACK’,分别指明是代码段、数据段、 堆栈段;但也允许用户自定义类别名。类别名必须用单引 号括起来。 连接程序在组织段时,将所有同类别的段集中在一起, 进行相邻分配。 2. 段寄存器说明伪指令(ASSUME): 格式: ASSUME 段寄存器:段名 [,段寄存器:段名] 功能:告诉汇编程序,段名所指的段由那一个段寄存器寻 址,即建立段与段寄存器的关系。 说明:段寄存器的实际值(CS除外)还要由数据传送令在 执行程序时赋值。
最新c语言第五章选择结构程序设计(习题册答案)

最新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”的表达式x7、条件“22&&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)&&016、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。
成考计算机应用基础题库及答案

成考计算机应用基础题库及答案成考计算机应用基础题库及答案第一章:计算机硬件基础1.1 计算机的基本组成部分1.1.1 中央处理器(CPU)1.1.2 内存1.1.3 存储设备1.1.4 输入设备1.1.5 输出设备1.2 计算机的工作原理1.2.1 运算过程1.2.2 存储过程1.2.3 控制过程第二章:操作系统基础2.1 操作系统的定义和作用2.2 常见的操作系统类型及其特点2.3 操作系统的功能和特性2.3.1 进程管理2.3.2 存储管理2.3.3 文件管理2.3.4 设备管理2.3.5 用户界面第三章:计算机网络基础3.1 计算机网络的概念和分类3.1.1 局域网3.1.2 广域网3.2 网络通信的基本原理3.2.1 数据传输方式3.2.2 TCP/IP协议族3.2.3 网络地质3.2.4 网络拓扑结构第四章:数据库基础4.1 数据库的定义和作用4.2 关系型数据库的基本概念4.2.1 数据表4.2.2 数据库管理系统4.2.3 SQL语言4.3 数据库的设计和规范化4.3.1 数据库设计的步骤4.3.2 数据库的规范化原则第五章:程序设计基础5.1 编程语言的分类及特点5.2 程序设计的基本流程5.2.1 问题分析5.2.2 算法设计5.2.3 编码实现5.2.4 调试和测试5.3 常见的编程模块和函数5.3.1 输入输出模块5.3.2 控制流程模块5.3.3 数据处理模块第六章:计算机安全基础6.1 计算机安全的概念和重要性6.2 常见的计算机安全威胁6.2.1 和蠕虫6.2.2 黑客攻击6.2.3 数据泄露6.2.4 拒绝服务攻击6.3 计算机安全的防护措施6.3.1 防火墙6.3.2 权限管理6.3.3 加密技术附件:- 附件1、中央处理器结构图- 附件2、操作系统示意图- 附件3、TCP/IP协议族规范- 附件4、SQL语言参考手册法律名词及注释:1.《计算机软件保护条例》:中华人民共和国国家版权局制定的法律法规,用于保护计算机软件的版权和相关权益。
python程序设计基础课后习题答案(第五章)

第五章答案5.2:实现i s o d d()函数,参数为整数,如果参数为奇数,返回t r u e,否则返回f a l s e。
def isodd(s):x=eval(s)if(x%2==0):return Falseelse:return Truex=input("请输入一个整数:")print(isodd(x))请输入一个整数:5True5.3:实现i s n u m()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回t r u e,否则返回f a l s e。
def isnum(s):try:x=eval(s)if((type(x)==int)|(type(x)==float)|(type(x)==complex)):return Trueelse:return Falseexcept NameError:return Falsex=input("请输入一个字符串:")print(isnum(x))请输入一个字符串:5True题5.4:实现m u l t i()函数,参数个数不限,返回所有参数的乘积。
def multi(x):xlist=x.split(",")xlist = [int(xlist[i]) for i in range(len(xlist))] #for循环,把每个字符转成int值num=1for i in xlist:num=num*iprint(num)s=input("请输入数字,并用,号隔开:")multi(s)请输入数字,并用,号隔开:5,420题5.5:实现i s p r i m e()函数,参数为整数,要有异常处理,如果整数是质数返回t u r e,否则返回f a l s e。
try:def isprime(s):i=2m=0for i in range(2,s-1):if(s%i==0):i+=1m+=1else:i+=1if(m>0):return Falseelse:return Trueexcept NameError:print("请输入一个整数!")s=eval(input("请输入任意一个整数:")) print(isprime(s))请输入任意一个整数:9False。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课时安排:
1课时
5.4命令文件的建立与运行
2、条件函数 IIF()
格式:IIF(条件,表达式1,表达式2) 功能:测试条件,若条件为真,则函数值为表达式的值,否则为表达2的值。 例:X=8 Y=IIF(X>9,STR(X,2),”0”+STR(X,1)) ?Y
学生练习:
上机指导P88实例1、实例2
5.3 知识目标: 运算符和表达式 1、掌握运算符的类型和运算符的优先级 2、掌握表达式的正确书写。 3、能够正确计算表达式的值。 课时安排: 2课时 教学过程:
5.2.5 测试函数
1、测试数据类型函数 TYPE()
格式:type(“表达式”)
功能:检测<表达式>值的数据类型,其中用U表示未定义。
<表达式>必须用定界符引起来,可以是变量名。
例:DT=“11/30/2007” DD=CTOD(DT)
?TYPE(“DT”),TYPE(“DD”),TYPE(“30”),TYPE(“DA”)
• 是指一个不变的数值或字符串,又称为常数。 • 有字符型、数值型、逻辑型、日期型、日期 时间型、货币型6种数据类型。
5.1.1 常量
常量的表示
• 字符型常量 使用定界符单引号(„ „)、双引号(“ “)或方括号([ ])引起来。 例:’ShangHai‟、“12.576”、[玉米]、”培养‘四有人 才’” • 数值型常量 例:-23.56、765.32、-32、456 • 逻辑型常量 用.T.、.t.、.Y.、.y.表示逻辑真,用.F.、.f.、.N.、.n.表示逻辑 假 • 日期型常量 用{}引起来,2009年3月18日表示为{^2009/03/18} 用{}或{/}表示空的日期常量。 • 日期时间型常量 用{^2009/03/18 10:52am} • 货币型常量 数字前必须加上货币符号“$”,如$52
例: ?10>5 and 10>8, 10>5 and 8>10 X=5 ?x>1 or x<x-3 , not 3>2
上机内容:
上机目的:
上机实训课
上机指导P88~P89的实例子、实例题、实例3。
1、掌握常量的类型及表示方法 2、掌握内存变量的定义、赋值和显示 3、正确使用常用标准函数 4、正确书ore “王楠” to xm Store 96 to y Store date() to rq Store 0 to x,y,z “=“与“store”的区别: “=”一次只能给一个变量赋值,store一次可 以给多个变量赋值。 显示变量的值可以使用?变量列表
• 数组是指存储在一个变量中由单个变量名引用的有序数据集 合。 • 数组中的每一个元素都可以通过一个数值下标来引用。 • 数组的定义: Dimension 数组名(下标) 数组名的定义同存内存变量。 例:Dimension a(5),b(2,3) 数组a是一个一维数组,包括a(1)、a(2)、a(3)、a(4)、a(5)五 个数组元素。 数组B包括b(1,1)、b(1,2)、b(1,3) b(2,1)、b(2,2)、b(2,3)六个数组元素 数组元素的下标从1开始。 二维数组可以当作一维数组来处理,如dimension b(2,3) B(2,2)=B(5) 数组定义后,所有的数组元素的类型都为逻辑型,值为.F.
变量是指存储在计算机内存中,其值可以变化,直到 结束工作期或释放该变量。 变量名以字母或汉字开头,后面可以跟字母、汉字或 数字。正确的变量名如:X、Y、学号、XM、A12 不正确的变量名如:12A、12。 变量分为内存变量和字段变量,数组是一种特殊的内 存变量。
5.1.2 变量
1、内存变量
字符表达式
用字符运算符将字符型数据连接起来的式子,就是字符表达 式。 完全连接运算符(+):将两个字符串按顺序进行连接。 不完全连接运算符(-):将第一个字符串的尾部空格移到第二 个字符串之后,再连接起来。 包含运算符($):<字符串1>$<字符串2>,串1如果包含在串2中, 则结果为.T.,否则为.F.。 例: A1=“计算机” ?“微型”+a1+” 世界” ?“微型 ”-a1+“世界” ?“人民”$”中华人民共和国” ?“中国”$”中华人民共和国”
用算术运算符将数值型数据连接起来的式子就是算 术表达式。 算术运算符的优先级: ()->**(^)->%->*、/->+、-
算术表达式举例
?5*3**2+36-12/3-1 ?(5*3)**2+(36-12)/(3-1) 日期型数据的运算规则:
日期型数据-整型数据:减去整数后的一个新日 期 日期型数据+整型数据:加上整数后的一个新日 期 日期型数据-日期型数据:两个日期间相差的天 数 ?date(),date()+10
例:DT=“11/30/2007”
?CTOD(DT) 4、日期转换为字符串函数 DTOC()
格式:DTOC(日期)
功能:将日期转换为相应的字符型日期。 例:?Date(),Dtoc(date())
5、大小写字母转换函数upper()、lower()
格式:UPPER(字符串) LOWER(字符串) 功能:UPPER()将字符串中的小字母转换为大写字母 LOWER()将字符串中的大写字母转换为小写字母
程序设计基础
5.1 数据存储
教学目的: • 了解Visual FoxPro 6.0中的数据类型。 • 掌握常量的类型及其表示方法。 • 掌握内存变量的定义、赋值和显示。 • 正确使用常用标准函数。 • 正确书写表达式。
教学重点难点
1、VF6中的数据类型(13种) 2、常量的表示与操作 3、变量的表示与操作
知识目标:
5.2 常用函数
1、了解函数的分类 2、掌握常用函数的格式、使用方法
技能目标:
能够正确的输入函数并显示函数的值
课时安排:
2课时 教学过程:
• 函数是用程序来实现的一种数据运算或转换。每一个 函数都有特定的运算或转换功能,大部分函数需要一 个或多个自变量(又称参数),自变量通常放在函数 名后边的圆括号里,自变量之间用逗号间隔,每个函 数都有一个返回值,称为函数值。 • VF中的标准函数分为数值函数、字符串操作函数、日 期时间函数、转换函数、测试函数。 5.2.1 数值运算函数 1、取整函数INT( ) 格式:INT(数值表达式) 功能:求数值表达式值的整数部分。 例:?INT(7.6),INT(-7.6),INT(-10.4)
5、最大值函数max()、最小值函数min()
例:max(10,-7),min(0,-7)
5.2.2字符串操作函数
1、截取子字符串函数substr( ) 格式:substr(字符串表达式,m,n) 功能:从字符串表达式中的起始位置截取子字符串,长度为所截取的子字符串的长 度,省略n从起始位置截取到字符串的结束。 例:?substr(“ABCDEF”,3,2),substr(“ABCDEF”,3),substr(“海洋生物”,5,10) 2、左截取函数left(字符串表达式,m) 3、字符串长度函数len() 格式:len(字符串) 功能:计算字符串中包含的字符数,一个汉字算两个字符。 ?len(“Visual foxpro 6.0”),len(“灵石一职中计算机专业”) 右截取函数right(字符串表达式,m)
• 内存变量是独立于数据库而存在的变量。包括变量 名、变量类型和变量的值。变量类型由变量值的类 型决定。 • 内存变量由字母、数字和下划线组成,最长可达 254个字符(127个汉字)。 • 内存变量有字符型、数值型、日期型、日期时间型、 逻辑型和货币型6种。 内存变量的赋值可以使用=和store。 例:xm=“王楠” y=96 rq=date() x=.t.
例:left(“中华人民共和国”,8),right(“中华人民共和国”,6)
5.2.3 日期与时间函数
1、当前日期函数date()
功能:以月/日/年的格式给出当前系统的日期。 ?date()
2、年份函数 year()
格式:year(日期型变量) 功能:给出日期中的年份值。 ?year(date()) 5.2.4 转换函数 1、数值转换为字符串函数 str() 格式:str(数值表达式,长度,小数位) 功能:将数值表达式的值转换为指定长度和小数位的字符串。 例:?str(96.785,7,2),str(-35.27,3,1),str(110.5,2,2),str(110.5,7,2)
关系表达式
• 用关系运算符将表达式连接起来的式子。 关系表达式的结果为逻辑真或逻辑假。
• 关系运算符用于相同类型数据比较。比 较的数据类型有字符型、数值型或日期 型。 • 字符型数据的比较按字符的ASCII码值 比较。 • 汉字按机内码来进行比较(拼音字典 序)。
举例
?15>2+1,“15”>“2+1”,“ABCD”<>”abcd” ?date()>date()+2 ?”AB”=“A”,”A”=“AB”,”AB”==“A”,”A”==“AB” ?”AB”==“AB”
逻辑表达式
• 用逻辑运算符将关系表达式连接起来的 式子,就是逻辑表达式。 • 运算结果为逻辑真和逻辑假。 逻辑运算符的优先级:NOT->AND->OR NOT:取反运算符。 AND:与运算符,两边的关系表达式的结 果都为真,结果为真,否则为假。 OR:或运算符,两边的关系表达式有一个 结果为真,结果就为真,否则为假。
2、四舍五入函数ROUND() 格式:ROUND(数值表达式,有效位数) 功能:如果有效位数N为正数或零,则对小数点后第N+1位进行四舍五入; 如果N 为负数,则对小数点前第N位进行四舍五入。 ?round(3.14159,4), round(96.78,0),round(1234.56,-1) 3、平方根函数SQRT() 格式:SQRT(数值表达式) 功能:分别计算25和16+9的平方根 ?SQRT(25),SQRT(16+9) 4、取模函数mod() 格式:mod(数值表达式1,数值表达式2) ? Mod(10,4),mod(10,-4),mod(-10,4),mod(-10,-4) 被除数与除数同号:mod()的值为:被除数-商*除数 被除数与除数异号:mod()的值为:被除数-(商-1)*除数