还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第二章C语言概述ASCII:0→
048、9→
057、A→
65、Z→
90、a→
97、z→122;a→A x=a;x=x-32;两个float相遇,都转换为double逻辑表达式由算术表达式、关系表达式、逻辑运算符组成超过一个以上的语句称为复合语句第三章C语言的顺序结构第十章FoxPro数据库的基本操作
1.数据管理技术的发展人工管理、文件管理、数据库管理
2.数据库管理的特点数据库是结构化的、数据相对程序是__的、数据是可以共享的
3.数据库数据库是可以共享、相互有关、以一定的结构__起来的数据__“共享”、“相互有关”、“一定的结构”是关系到数据库本质的三个因素;“实现数据库共享”是数据库最本质的特点
4.数据结构化模型先后有层次模型、网状模型和关系模型等几种
5.关系模型的特点采用二维表格形式反映数据之间的关系,被认为是最有前途的一种数据模型
6.二维表格一般由两个部分组成一部分是表头(表格中的第一行),在关系数据库中称为“数据库结构”;另一部分是表格中填写的内容,在关系数据库中称为数据二维表格称为二维关系,处理这种关系的数据库称为“关系数据库”(数据库系统由操作系统、数据库管理系统、应用程序,在硬件支持下形成的)
7.FoxPro使用的主要文件类型数据库文件扩展名为.DBF,是数据库系统最基本的文件数据库明细文件扩展名为.FPT,用来存储数据库文件中的备注型字段和通用字段中的数据索引文件扩展名为.CDX或.IDX,是数据库的索引文件,其中IDX是与FoxBASE兼容的索引文件命令文件扩展名为.PRG或.FXP,前者是数据库程序文件;后者是编译后程序文件内存变量文件扩展名为.MEM,用来存放用户定义的内存变量文本文件扩展名为.___,用来保存数据库文件中的数据
8.数据库文件由数据库结构、数据两个部分组成数据库结构的一个字段,需要由字段名、字段类型、字段宽度和小数位数四个参数来定义一个汉字占两个字符
9.表达式一般由参加运算的数、字段名变量、内存变量、函数、数组元素和运算符组成一个表达式中的字段、函数、内存变量和数组元素必须是同一类型
10.字符串是指由单引号或双引号括起来的单个或多个字符例如FoxPro或FoxPro+abcd+de,其值为abcdde,保留左边字符串尾部的空格-abcd-de,其值为abcdde$用来判断左边的字符串是否包含在右端的字符串中例如AB$ABCD,其值为.t.关系运算符、=、、=、=、不等于真.t.或.T.;假.f.或.F.逻辑运算符.AND.与、.OR.或||、.NOT.非!
11.函数ABSX——计算X的绝对值的函数LEN字符串——计算字符串长度的函数字符变量——宏代换函数DTOC日期型——日期型转换为字符型函数FoxPro有关命令
1.APPEND[BLANK]增加一条[空]记录
2.USE[原数据库文件名][Alias别名]为数据库文件提供一个别名
3.STORE表达式0TO内存变量表xyz赋值语句,或者内存变量x=表达式
04.DIMENSION数组名数组元素的长度[数组名数组元素的长度]
5.LISTSTRUCTURE[TOPRINT]或DISPLAYSTRUCTURE[TOPRINT]显示数据库结构所有信息[打印]
6.LIST[范围][FIELDS字段名][FOR条件][WHILE条件][OFF][TOPRINT]LIST[范围]ALL显示全部记录;NEXTn只显示从当前记录开始的n个记录;Recordn只显示第n个记录;REST只显示从当前记录开始到最后一个记录;[OFF]指定OFF则显示记录时不显示记录号
7.DISPLAY[范围][FIELDS字段名][FOR条件][WHILE条件][OFF][TOPRINT]DISPLAY显示当前记录;DISPLAYALL显示全部记录;DISPLAY显示满屏后暂停……
8.GOTOTOP将记录指针定位在数据库文件的第一个记录GOTOBOTTOM将记录指针定位在数据库文件的最后一个记录GOTOn将记录指针定位在数据库的第n个记录GOTO可以简写为GOSKIP[+|-]n+将指针向下__n个记录;-将指针向上__n个记录RECNOn测定第n工作区中数据库文件的当前记录指针的位置例如RECNO测定当前工作区……
9.删除记录DELETE[范围][FOR条件]添加删除标记*;PACK真正删除加*的记录;RECALL[范围][FOR条件]清除删除标记*;ZAP无条件删除数据库文件中全部记录
10.全屏幕修改命令EDIT[范围][FIELDS字段名][FOR条件][WHILE条件]CHANGE[范围][FIELDS字段名][FOR条件]或BROWSE[FIELDS字段名][范围][FOR条件]
11.替换修改REPLA__[范围]字段名WITH表达式[FOR条件]如缺省[范围]则只对当前记录进行替换
12.修改数据库结构MODIFYSTRUCTURE
13.__COPYTO__后新文件名[范围][FIELDS字段名表][FOR条件]如没有[范围]则完全备份
14.__数据结构COPYSTRUCTURETO新文件名[范围][FIELDS字段名表]
15.排序SORTTO排序文件名ON字段名1[/A][/C][/D][字段名2…][/A]升序[/D]降序[范围][FIELDS字段名表][FOR条件][/C]按照大写字母的ASCII码大小决定顺序最基本命令SORTTO排序文件名1ON关键字段名
16.简单索引INDEXON关键表达式TO索引文件名[COMPACT][UNIQUE][ADDITIVE][COMPACT]以压缩格式建立索引文件,有此选项不再于FoxBASE兼容[UNIQUE]若加上,则当有多条相同关键表达式时,只显示第一条记录[ADDITIVE]打开新建立的索引文件时,不关闭先前打开的索引,新的为主索引不加,关闭先前索引
17.复合结构型索引文件INDEXON关键表达式TAG索引标记名[DES__NDING降序][UNIQUE]
18.··非结构··INDEXON关键表达式TAG索引标记名OF索引文件名[DES__NDING][UNIQUE]
19.打开索引文件
1.建立索引文件时,刚建立的索引文件,系统自动打开
2.USE数据库文件名INDEX索引文件表;SETORDERTO数字表达式1~7多个索引文件之间切换
3.先打开数据库文件USE…,再打开索引文件SETINDEXTO索引文件表
20.顺序查询LOCATE[范围][FOR条件][↵CONTINUE]
21.快速查找FIND字符串|数字;使用之前必须建立相应的索引文件,查询的值不能是表达式SEEK表达式;建立相应的索引,可以用表达式查询,如果表达式是字符串,则字符串必须用引号括起来
22.统计个数COUNT[范围][TO内存变量][FOR条件]
23.求和SUM[数值字段表达式][范围][TO内存变量][FOR条件];若缺省数值…则对所有数值型字段求和
24.平均值__ERAGE[数值字段表达式][范围][TO内存变量][FOR条件]
25.分类求和TOTALON关键字段名TO分类文件名[范围][FILED字段名表][FOR条件];要求事先对数据库按命令所指定的关键字段名,生成索引,并打开
26.选择当前工作区SELECT各自区号/别名不同工作区互访非工作区别名-字段名
27.关联操作SETRELATIONTO[关键字段|数值表达式INTO别名];要对关键字段建立索引
28.数据库连接JOINWITH别名TO文件名FOR条件[FIELDS字段名表];别名为被链接数据库文件所在的工作区的区号,文件名为连接以后新生成的数据库文件
29.数据库文件之间追加数据APPENDFROM文件名[FIELDS字段名表][FOR条件]如将A1中的记录全部向L1数据库文件中追加USEL1↵APPENDFROMA1↵LIST……
30.数据库更新UPDATEON关键字段名FROM别名REPLA__字段名WITH表达式[RANDOM]关键字段名为两个数据库文件必须有相同字段名别名是源数据库文件所在工作区的别名字段名为被更新的字段名,被更新的数据库文件所在的工作区作为当前工作区表达式为更新的内容[RANDOM]两个数据库文件应该按关键字段名进行索引,并在不同的工作区打开如果选择了[RANDOM],则源数据库文件可以不必进行索引第十一章FoxPro程序设计
1.程序文件编辑器MODIFYCOM__ND[文件名|或*]
2.运行程序文件DO文件名
3.内存变量交互输入命令AC__PT提示字符串TO内存变量;等待用户键入一个字符串不必加引号,并赋给内存变量INPUT提示字符串TO内存变量;输入一个字符串要加上双引号或一个数,并赋给内存变量WAIT[提示信息字符串][TO内存变量];常用于程序暂停后,提示“按任意键继续”
4.内存变量的输出输出或显示变量的值可用或来输出,例如K=K
5.文本输出如果用户希望在屏幕上显示一段文本,TEXT↵文本信息↵ENDTEXT
6.SET参数ON|offon|OFF;大写表示默认状态SETTALKON|off;打开系统对话功能SETPRINTon|OFF;关闭打印机SETCONSOLEON|off;打开|关闭屏幕SETSAFETYON|off;覆盖文件时有提示SETCOLORON|off;选择彩色|单色显示SETALTERNATEon|OFF;不记录输入输出信息
7.
8.SET参数TO参数SETCOLORTO[标准,增强,边缘];前景/背景,+高亮;*闪烁SETALTERNATETO文件名;建立一个保存输入输出操作信息的文本
9.宏代换字符串变量名;
1.代替一个字符串COM=LIST…,如再使用该命令只需写成COM即可
2.代替一个文件名如打开L.DBF,AC__PT请输入文件名TOWJ↵USEWJ↵此时只需输入L即可
10.FILE文件名;查找括号中的文件是否在磁盘上,在值为.t.;不在值为.f.
11.EOF;测试记录指针是否指向了文件的最后,是值为.t.;不是值为.f.
12.DTOC日期型变量
[1];将括号中的日期型变量转变为字符串变量如果选择1,把mm/dd/yy改为yyyymmdd
13.SUBSTR字符串mn;从字符串第m个开始,共取n个字符,作为子字符串如不选n,则取到最后一个
14.字符串长度测试LEN字符串;返回字符串的长度括号中的字符串要用双引号括起来
15.STR数值型数mn;将数值型数据转换为字符串,字符串长度为m,保留n位小数
16.键盘响应函数INKEY[数值表达式];等待用户按键,表达式值为等待时间s,如为0则一直等待
17.UPPERYn=;把内存变量Yn中的小写字母转换为大写字母程序选择结构格式1IF条件命令组ENDIF格式2IF条件命令组1ELSE命令组1ENDIF格式3IF条件IF条件命令组1ENDIFENDIFCASE语句DOCASECASE条件1命令组1CASE条件2命令组2……[OTHERWISE命令组]ENDCASEDOWHILE条件命令组1[LOOP]命令组2[EXIT]命令组3ENDDO执行到LOOP时循环执行命令组1执行到EXIT时,退出循环,并执行ENDDO后面的语句
18.FOR循环fori=1;in;i++i=1in循环增量i++格式FOR内存变量=表达式1TO表达式2[STEP表达式3]命令组循环体[LOOP]和[EXIT]的意义与在DOWHILE循环中的意义相同[EXIT][LOOP]ENDFOR内存变量是循环的控制变量,它的初值为表达式1的值,终值为表达式2的值,表达式3的值为循环一次循环变量增减的步长当步长为1时,[STEP表达式3]可以省略
19.SCAN[范围][FOR条件]↵[命令组]↵[LOOP]↵[EXIT]↵ENDSCAN在指定范围内,满足条件的记录依次重复执行循环体中的命令
20.建立子程序文件MODIFYCOM__ND子程序文件名在子程序最后加上RETURN[TO__STER](返回主控程序)或RETRY(再试、复算)前者的功能是过程运行完成以后,返回调用程序中调用语句的下一句如果有[TO__STER]选择项,则在嵌套调用时,直接返回最前面一个调用程序的下一句RETRY的功能是过程调用完成后,它返回调用程序中调用语句本身;这种形式一般用在扑获出错信息的ONERROR语句联用
21.子程序调用DO子程序名
22.过程文件pro__dure程序、过程、名称建立格式PRO__DURE过程名1……RETURNPRO__DURE过程名2……RETURN每次只能打开一个过程文件,需要打开另一个过程文件时,系统会自动关闭已经打开的文件过程文件打开SETPRO__DURETO过程文件名关闭CLOSEPRO__DURE或CLOSEALL口令程序K=0DOWHILE.T.CLEAR请回答口令SETCINSOLEOFFAC__PTTOPASSWORDSETCINSOLEONIFPASSWORD=LEIWAIT口令正确,按任意键继续EXITELSEIFK3K=K+1口令错误,请重新输入ELSE口令不对,你不能使用本程序WAIT按任意键退出RETURNENDIFENDIFENDDO新建数据库出错保护DOWHILE.T.AC__PT请输入新建的数据库文件名TOWJIFLENWJ0EXITENDIFENDDO打开数据库出错保护DOWHILE.T.AC__PT请输入需打开的数据库文件名TOWJIFFILEWJ=.DBFEXITELSEWAIT文件不存在,请重新输入ENDIFENDDO查询程序文件名CX.PRGAC__PT请输入查询的序号TOXHLOCATEFOR序号=XHDISPLAY删除程序文件名SC.PRGINPUT请输入删除的记录号TOHGOTOHDELETEDISPLAYAC__PT是否真的删除y/nTOSCIFUPPERSC=YPACKELSERECALLENDIFUSE在Q1:m的向量空间中,使Q1单元“紧接”在Qm单元之后,这样的队列称为循环队列入队rear←modrearm+1;出队front←modfrontm+1队满modrearm+1=front;队空front=rear链式栈入栈NEXTp←top;top←p;退栈p←top;top←NEXTtop链式队列入队NEXTrear←P;rear←p;NEXTp←0;退队P←front;front←NEXTfront线性链表插入算法
1.p→next=q→next;
2.q→next=p;线性链表删除算法
1.p=q→next;
2.q→next=p→next;
3.freep;循环链表插入算法
1.p→next=q→next;
2.q→next=p;循环链表删除算法
1.p=q→next;
2.q→next=p→next;在Q0:m-1的向量空间中建立一个循环队列,若队头指针为front,队尾指针为rear,当队列不满时,则将x入队rear=rear+1%m;Q[rear]=x;出队front=front+1%m;x=Q[front];假定用上界为m的向量s1:m存储栈,设栈顶指针top总是指向栈顶元素,要将x入栈top=top+1;s[top]=x;出栈x=s[top];top=top-1;栈空top=0;栈满top=m+1;第十二章数据结构初步程序设计=算法+数据结构+设计方法+设计工具数据是指描述客观事物的数字、字符及所有能够输入到计算机中并泵为计算机所接受的符号的__数据元素是数据__中的个体,是数据的基本单位它的具体含义视具体情况不同,可以是一个数值,也可以是一个字符,还可以是一个记录等某些数据的数据元素是由若干个数据项组成的,数据项是数据的最小单位数据对象是具有相同特性的数据元素的__,它是数据的一个子集数据结构是指互相有关联的数据元素的__,数据结构描述的是数据元素以及它们之间的关系它所反映的是数据元素之间的逻辑关系,因此成为数据的逻辑结构对于数据结构所包含的两个要素数据元素的__和数据元素之间的关系,可以用一个二元组来表示,即D=DR;B是一种数据结构;D是数据元素的__;R是D上的一个(二元)关系数据元素D上的一个关系R是序偶或叫序对的__,对于R中的任意一个序偶xyxy∈D,x称为序偶的第一元素,y称为序偶的第二元素,并且称x是y的关于R的前件或直接前驱,称y是x的关于R的后件或直接后继数据的逻辑结构分为两大类型,即线性结构和非线性结构关系:
1.有一个没有前件的数据元素——起始元素,有一个没有后件的数据元素——终止元素
2.除起始元素和终止元素外,每个数据元素且只有一个前件,有且只有一个后件,起始元素有一个后件,终止元素有一个前件线性结构中的数据元素之间具有唯一确定的顺序关系,即线性关系除了线性结构以外的数据结构,称为非线性结构线性结构(一头一尾);非线性(多头多尾)数据逻辑结构在计算机存储器中的映象称之为数据的物理结构,也叫存储结构数据的存储结构要解决两个问题
1.要为数据元素分配存储单元;
2.要表示出数据元素之间的逻辑关系存储方式有顺序结构方式和链式结构方式顺序存储方式是在内存中开辟一块连续的存储空间存放元素,并且使每个数据元素占有的存储空间大小相同,同时要使各数据元素在存储器中的相互位置关系能够唯一确定数据元素之间的逻辑关系链式存储方式是在存储每个数据元素时还要存储一个指示其后件的“指针”,通过这些指针的指示来表示出数据元素之间的逻辑关系链式中,数据元素以结点形式表现结点数据域存放元素值指针域算法是指解题方案的准确而完整的描述由操作和控制结构两个要素组成特征有穷性、确定性、具有起始点、具有终点、可执行性算法描述算法描述语言、流程图评价从算法的正确性、效率和易读性、易转换性,且主要对算法的时间效率和空间效率做分析算法的正确性是指在正确的数据输入条件下,在有限的时间内算法的执行能够得到正确的结果算法的时间效率是指算法(指程序)在计算机上执行时所需要的时间,由以下因素决定需要输入的数据总量;对源程序编译所需要的时间;计算机执行一条指令所需要的时间;程序中指令重复执行的次数(评价时间效率的依据)若算法的执行次数与问题规模n具有相同数量级,则用n来表示算法的时间效率,并写成On,称之为算法时间复杂度,其中O是order一词的第一个字母,表示该算法的复杂度是问题规模n数量级的,也称是线性阶的;算法的时间复杂度是与问题规模n的平方数量级的,即表示On2,称为平方阶的;立方阶On3;对数阶Olog,n…算法的空间效率是指一个算法执行时在计算机存储器上所占用的存储空间,由以下几个方面决定算法本身所需要的存储空间;输入输出数据所占用的存储空间;算法执行时所需要的临时存储单元——辅助存储空间假设线性表的每个数据元素需占用l个字节,第一个数据元素的存贮地址为ADRa1,则第i个数据元素存储地址为ADRa1=ADRa1+i-1*l顺序插入运算,平均需要__表中一半n/2个元素,顺序表插入运算的时间复杂度为On顺序删除表长为n的表中,删除一个元素平均需要__n-1/2个元素,即其时间复杂度也为On在Q1:m的向量空间中,使Q1单元“紧接”在Qm单元之后,这样的队列称为循环队列入队rear←modrearm+1;出队front←modfrontm+1队满modrearm+1=front;队空front=rear对分查找时间复杂度0log2n;空间复杂度是原地工作的算法直接插入排序时间复杂度0n2;空间复杂度01,属于原地工作的算法线性链表中每一个阶段应包括数据域和指针域两部分链表结点空间的开辟与释放
1.分配内存区的函数·__llocsize即__lloc结构体大小;功能在内存动态存储区中分配一个长度为size的连续存储空间,其返回值是一个指向该分配起始地址的指针,如果函数执行失败,则返回值0,成功返回一个字符型结构体大小=sizeofstruct结构体名·callocnsize;功能在内存动态存储区中分配几个长度为size的连续空间,函数返回分配域的起始地址,若分配失败返回值
02.释放内存区的函数·freep;该函数释放由指针P指向的内存区,P的类型决定了所释放的内存区的大小,当P是指向结构体类型的指针时,该命令即释放一个P所指向的结构体数据的存储空间已知三角形的三个边长abc计算__S#include__th.h__in{floatabcs;scanf“%f%f%f”abc;s=areaabc;printf“s=%f”s;}floatareaxyz/*自定义函数*/floatxyz;{floatps;p=x+y+z/2;s=sqrtp*p-x*p-y*p-z;returns;}+-*/%!~++类型*psizeof[]-·优先级从高→低一个班30人的考试分数,计算平均分并统计80分以上有多少人__in{intk=0k1=0n=30;floatxs=0__er;do{sacnf“%f”x;s=s+x;k=k+1;ifx80k1=k1+1;}whilek30;__er=s/30;printf“__er=%f”__er;printf“k1=%d\n”k1;}=+=-=*=/=%====^=|=→||→:==!===编写简单的收款程序,要求输入一种商品的单价x和数量n,输出收款次数k、收款数y和累计收款数s__in{floatxys=0;intnk=0;start:printf“Pleaseinputxn=”;scanf“%f%d”xn;k++;y=x*n;s=s+y;printf“PressanykeytocontinueorPress^cEXIT!”;getch;gotostart;}通过键盘输入一个英文字母,输出该字母的下一个字母;#includestdio.h__in{charc;c=getchar;putcharc+1;}一动点k从坐标原点O向A__,动点只能在x或y方向__一个步长,要求尽可能沿OA直线____in{intk=0n;floatfxayadx=0y=0;printf“pleaseinputxayad=”;n=xa+ya/d;whilek=n{f=xa*y-ya*x;printf“k=%3dx=%
62.fy=%
62.ff=%
6.2f\n”kxyf;iff=0x=x+d;elseiff=0y=y+d;k++;}printf“Theend!k=%3dn=%3d”kn;getch;}从键盘输入一个字母,如果是小写则改成大写#includestdio.h__in{charc;c=getche;ifc=’a’c=’z’c=c-32;putcharc;}矩形法计算定积分#include__th.h__in{intin;floatabhs=0f0x;printf“pleaseinputabn=\n”;scanf“%f%f%d”abn;h=b-a/n;x=a;f0=expx;fori=1;i=n;i++{s=s+f0*h;x=x+h;f0=expx;}printf“s=%
8.6f\n”s;getch;}计算级数__in{inti=1;floats=0t;do{t=
1.0/i*i;s=s+t;i++;}whilet=
0.0045;printf“i=%ds=%f\n”is;getch;}检查和修改原始数据逐个输入三个整数,然后重新编号显示这三个数据,提示用户是否修改y/n,用户回答字符‘y’或‘Y’,则请用户按编号回答要修改哪一个数据,然后修改#includestdio.h__in{intabck;charch;printf“pleaseinputabc=\n”;scanf“%d%d%d”abc;printf”
1.a=%d
2.b=%d
3.c=%d\n”abc;printf“Doyouwanttomodifyy/n\n”;ch=getche;ifch==’y’ch==’Y’;{printf“\npleaseselect123!”;start:scanf“%d”k;switchk{case1:printf“pleaseinputa=”;scanf“%d”a;break;case2:printf“pleaseinputb=”;scanf“%d”a;break;case3:printf“pleaseinputc=”;scanf“%d”a;break;}ifk0k4{printf“Pressanykeytocontinue……”;getch;gotostart;}printf“
1.a=%d
2.b=%d
3.c=%d\n”abc;}getch;}用二分法求解方程2x3-4x2+3x-6=0,在有根区间[-1010]内有根普通#include__th.h__in{floata=-10b=10ce=
0.001fafc;intk=0;do{c=a+b/2;k++;fa=2*a*a*a-4*a*a+3+a-6;fc=2*c*c*c-4*c*c+3*c-6;iffa*fc0b=c;elsea=c;printf“k=%3da=%
8.4fb=%
8.4f\n”kab;}whilefabsb-ae;printf“rootis%
8.4f\n”c;}用二分法求解方程x3-3x-1=0,在区间
[12]内有根函数#include__th.hfloatf;floatroot;__in{floata=1b=2rt;rt=rootab;printf“rt=%f\n”rt;}floatfxfloatx;{floatfx;fx=x*x*x-3*x-1;returnfx;}floatrootabfloatab;{floatc;do{c=a+b/
2.0;iffa*fc0a=c;elseb=c;}whilefabsb-a
0.0001;returnc;}用牛顿迭代计算代数方程fx=x3-3x-1=0的根#include__th.h__in{floatx0=
1.5x1e=
0.001ff1;intk=0n=50;whilefabsx1-x0ekn/*e为控制精度*/{x0=x1;f=x0*x0*x0-3*x0-1;f1=3*x0*x0-3;/*导数*/x1=x0-f/f1;k++;printf“f=%3dx1=%
8.4fx0=%
8.4f\n”kx1x0;}ifknprintf“rootis:%
8.4f\n”x1;elseprintf“knerror!\n”;}用二分法求解方程x3-3x-1=0,在区间[
11.5]内有根指针floatrtabfunfloatab*fun;{floatc;whilefabsb-a
0.0001;{c=a+b/
2.0;if*funa**func0a=c;elseb=c;}returnb=c;floatf1xfloatx;{floatf;f=x*x*x-x-1;returnf;}__in{floata=1b=
1.5root;root=rtabf1;printf“root=%f\n”root;}计算S=1-2+3-4+…-10__in{intIt=1s=0m;forI=1;I=10;I++{m=I*t;s=s+m;t=-t;}printf“%d\n”s;}计算QUOTE直到最后一项
0.001#include__th.h__in{inta;floatnts;t=1;s=0;n=
1.0;a=1;whilefabst
0.001{s=s+t;n=n+2;a=-a;t=a/n;}printfs=%f\ns;}用数组处理Firbonacci数列__in{inti;intf
[20]={11};fori=2;i20;i++f[i]=f[i-2]+f[i-1];fori=0;i20;i++{ifi%5==0printf“\n”;printf“%12d”f[i];}}用100元钱买100支笔,其中钢笔3元/支,圆珠笔2元/支,铅笔
0.5元/支,问钢笔、圆珠笔和铅笔可以各买多少支?__in{intijkmn;fori=1;i=33;i++/*i为钢笔*/forj=1;j=50-i;j++/*j为圆珠笔*/fork=1;k=100-i-j;k++;/*k为铅笔*/{m=i+j+k;n=i*3+j*2+k*
0.5;ifm==100n==100printf“i=%dj=%dk=%d\n”ijk;}}求n个数据中的最大值最小值__in{inta
[100]a__xaminin;printf“pleaseinputn=n=100”;scanf“%d”n;fori=0;in;i++scanf“%d”a[i];a__x=
[0];amin=a
[0];fori=1;in;i++{ifa__xa[i]a__x=a[i];ifamina[i]amin=a[i];}printf“a__x=%famin=%f\n”a__xamin;}计算自由落体距离地面的高度h=h0-v0t+gt2/2其中h0为初始高度,v0为初速度,t为时间,g为重力加速度,计算t=012345时落体距离地面的高度h=又计算落体落到地面时的时间t0=#include__th.h__in{floath0t0v0tabchdpqx1x2g=
9.8;printfPleaseinputh0v0=;scanf%f%fh0v0;{fort=0;t=5;t++{h=h0-v0*t+
1.0/
2.0*g*t*t;printft=%fsh=%fm\nth;}}{a=
0.5*g;b=v0;c=-h0;d=b*b-4*a*c;p=-b/2*a;q=sqrtd/2*a;x1=p+q;x2=p-q;}{ifx10t0=x1;elset0=x2;printft0=%f\nt0;}}在一维数组a中查找aa,顺序查找,如果查到了输出相关信息,没有就打印notfound,并提示是否继续__in{charc;inta[]={135791113151719};intiokaan=10;do{printf“\npleaseinputaa=”;scanf“%d”aa;ok=0;fori=0;in;i++{ifaa!=a[i]continue;{printf“oki=%daa=%d\n”ia[i];ok=1;break;}}ifok==0printf“notfound!i=%d\n”i;printf“Doyouwanttocontinuey/n”;c=getch;}whilec==’Y’||c=’y’;printf“goodbye!\n”;getch;}冒泡排序(小→大)__in{inta[]={918273645}ijaan=9k=1;whilek{k=0;fori=0;in-1;i++ifa[i]a[i+1]{aa=a[i];a[i]=a[i+1];a[i+1]=aa;k=1}fori=0;in;i++printf“%d”a[i];printf“\n”;}getch;}输入n个评为的评分,计算并输出参赛选手的最后得分,计算方法为去除一个最高分,去除一个最低分,其余的平均分为参赛选手的最后得分,从(小→大)输出参赛选手的最后得分__in{inta
[11];intijtn;floatsum=
0.0__;printf\nPleaseinputn=;scanf%dn;printfPleaseinputnnumbers:;fori=1;in+1;i++scanf%da[i];forj=1;j=n-1;j++fori=1;i=n-j;i++ifa[i]a[i+1]{t=a[i];a[i]=a[i+1];a[i+1]=t;}printfthesortednumbers:;fori=2;in;i++{printf%da[i];sum=sum+i;}__=sum/n-2;printf\nsum=%fsum;printf\n__=%f\n__;}
1.put字符数组名;在屏幕上输出字符串
2.gets字符数组名;等待用户从键盘输入字符串
3.strcat字符数组1,字符数组2;把字符数组2连接在字符数组1后面
4.strcpy字符数组,字符串;将字符串__到字符数组中去
5.strcmp字符串1,字符串2;1=2,函数值为012,函数值为正整数12,函数值为负整数
6.strlen字符数组测试字符串长度
7.strlwr字符串将字符串的大写字母改成小写字母
8.strupr字符串将字符串的小写字母改成大写字母计算23intpowerxnintxn{intip=1;fori=1;i=n;i++p=p*x;returnp;}__in{printf“%d”power23;}n!非递归调用longfactnintn;{intf=1i;fori=1;i=n;i++f=f*i;returnf;}C语言提供了一系列的通用函数放在函数库中,称为库函数有关这些库函数的定义和说明时放在相应的__件中,称为头文件
1.输入输出类stdio.h
2.数学类__th.h
3.字符类ctype.h
4.字符串string.h
5.动态存储分配类stdlib.h
6.时间类time.h
7.字符屏幕stdio.h
8.图形功能graphics.h
9.接口库函数dos.h描述一个函数所执行算法的过程称为函数定义使用一个函数的过程称为函数调用3!主函数__in{intn=3m;/*3!*/m=factn;printf“%d!=%d”nm;}n!递归调用longfactnintn;{intf;ifn=1f=1;elsef=n*factn-1;returnf;}
1.变量的指针变量存储单元的地址
2.指针变量指存放存储单元地址的变量,保存的是另一个变量的地址,而不是值
3.指向变量的指针如果一个指针变量存放了另一个变量的地址,那么这个指针就称为是指向该变量的指针编写计算n的阶乘的C函数,并在主函数中调用该函数来计算1/n!
0.0001s=1+1/2!+1/3!+…+1/n!floatfactintn{inti=0;floats=0t;n=1;do{i++;n=n*i;t=
1.0/n;s=s+t;}whilet=
0.0001;returns;}__in{floats;intn;s=factn;printfs=%f\ns;getch;}计算三个数xyz之和及平均值float__;/*定义全局变量*/floatsum;/*说明函数*/__in{floatabcd;scanf“%f%f%f”abc;d=sumabc;printf“__=%fsum=%f”__d;}floatsumxyzfloatxyz;{floats;s=x+y+z;__=s/
3.0;returns;}r--从文本文件读数据;w—向文件写数据,如果不存在,则新建;a—向文本文件末尾追加数据;rb—从二进制文件读数据;wb—向二进制文件写数据;ab—向二进制文件末尾追加数据;C的文件,C的文件分为两种类型
1.ASCII码文件,即文本文件;
2.二进制文件,存储容量比ASCII少,缺点是不能在屏幕上直接原样显示该字符C语言规定,通过文件指针FILE打开数据文件,在使用文件时必须有包含文件stdio.h文件指针变量定义格式如下FILE*文件指针变量名;如FILE*fp;打开文件的格式如下文件指针名=fopen文件名字符串,使用方式字符串;交换变量x,y数值intswapxy/*函数的返回值为整型*/int*x*y;{intz;/*z在函数体内是局部变量*/z=*x;*x=*y;*y=z;printf“x=%dy=%d”*x*y;}__in{inta=1b=2*p1*p2;p1=a;p2=b;swapp1p2;/*函数调用,以语句形式*/printf“a=%db=%d”ab;}动态分配函数__lloc调用格式类型*__lloc字节数;sizeof函数的函数值就是该变量类型所需要的字节数,例如sizeofint其函数值为2用__lloc通常提供出错保护int*p;size=sizeofint;p=int*__llocsize;ifp==NULL{printf“Outmemory!\n”exit0;}文件不存在,出错保护FILE*fp;fp=fopena.datr;{printfCannotopenthisfile!\n;exit0;}计算数组元素中的最大最小值,函数的形参有数组名x,数组长度n,指针变量__x和min;zdzxzn__xminintnx[]*__x*min;{int*p;forp=x;px+n;p++{if*p*__x*__x=*p;if*p*min*min=*p;}}__in{inta
[10]*pa__xamin*p1*p2;forp=a;pa+10;p++scanf“%d”p;zdzxa10p1p2;/*长度为10*/printf“a__x=%damin=%d”a__xamin;}从ASCII文件a.dat读数据#includestdio.h__in{FILE*fp;charch;fp=fopena.datr;{printfCannotopenthisfile!\n;exit0;}while!feoffp/*读完时feof函数值为1,停止循环*/ch=fgetcfp;/*从文件中读字符*/printf“theend!”;/*文件数据读完的信息*/fclosefp;}/*读完后关闭文件*/用FOR循环计算1+2+…NS=0INPUT请输入N=TONFORI=1TONS=S+II=IS=SENDFORRETURN循环队列#defineqms100structque{intfront=0real=0;charcq[qms+1];};charaacharx/*入循环队列*/{structque*q;intt;t=q-real+1%qms;ift==q-frontreturn0;q-real=t;q-cq[t]=x;return1;}chardd/*出循环队列*/{structque*q;chary;ifq-front==q-realreturn0;q-front=q-front+1%qms;y=q-cq[q-front];returny;}顺序栈运算#defineM100structstack{chars[M];inttop=0;}*st;charpushcharx/*入栈*/{ifst-top=M-1return0;st-top++;st-s[st-top]=x;return1;}charpop/*出栈*/{chary;ifst-top==0return0;y=st-s[st-top];st-top--;returny;}charread/*读栈顶*/{chary;ifst-top==0return0;y=st-s[st-op;]returny;}顺序队列运算#defineqms100structque{intfront=-1rear=-1;charcq[qms];};charaddqintx/*入队*/structque*p;{ifq-rear==qms-1return0;q-rear++;q-cq[q-rear]=x;return1;}chardel/*出队*/{structque*q;chary;ifq-front==q-realreturn0;q-front++;y=q-cq[q-front];returny;}1顺序插入#defineM100structlist{intv[M];intn;};voidInlistintxinti{intj;structlist*l;ifl-nM-1{ifi=l-n;{ifi1i=1;/*出头都当头*/forj=l-n;j=i;j--l-v[j+1]=l-[j];}elsei=l-n+1;/*出尾界*/l-v[i]=x;l-n++;}}2顺序删除#defineM100structlist{intv[M];intn;};voidDelistintxinti{intj;structlist*l;ifl-n0/*若n≤0,程序不运行*/ifi=1i=l-n{ifi!=l-n/*尾部*/forj=i;j=l-n-1;j++l-v[j]=l-[j+1];l-n--;}}。