




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一正一负1-2+3-4+5-6+7 1数:等差数列 d=1 i 2符号:*-1 fh*=-1 + - + - + - + - -1 -1 -1 -1 -1 -1 -1 3累和例如: 1+(-2)+3+(-4)+5+(-6)+7#include stdio.hmain()int i,fh=1,s=0;for(i=1;i=7;i+)s+=i*fh; fh*=-1; printf(%d,s);斐波那契数列1 1 2 3 5 8 13 21f0f1f21+1=2 f2=f0+f1;1+2=3 f0=f1; 2+3=5 f1=f2;3+5=85+8=138+13=21例如:求斐波那契数列中,大于1000最小斐波那契数 #include stdio.hmain()int f0=1,f1=1,f2;f2=f0+f1;while(f2=1000)f0=f1; f1=f2;f2=f0+f1;printf(%d,f2);求斐波那契数列中,小于1000最大斐波那契数 #include stdio.hmain()int f0=1,f1=1,f2;f2=f0+f1;while(f2=1000)f0=f1; f1=f2;f2=f0+f1;printf(%d,f1);迭代法数学函数:#include math.h stdio.h printf scanf余弦函数 格式: double cos(double x) 使用: cos(x)平方根格式: double sqrt(double x)使用: sqrt(x)绝对值 格式:double fabs(double x) |x|使用:fabs(x)例如:x0=0.0x1=cos(x0)x0=x1x1=cos(x0)x0=x1x1=cos(x0)x0=x1x1=cos(x0)|x0-x1|=1e-6)x0=x1;x1=cos(x0);printf(x1=%d,x1);素数1break语句 break:提前终止本层循环 for(i=1;i=100 if(i5) break;i=1100 i=2100 i=3100 i=4100 i=5100 i=65 break for(j=1;j3;j+) for(i=1;i3)break;j=13 i=1100 i=2100 i=3100 i=43 break j=23 i=1100 i=2100 i=3100 i=43 breakj=31 1和本身整除11 1 1110 1 2 5 10x:2x-1 不能整除=素数 整除=非素数6:25 2 3 4 5 x:#include stdio.hmain() int i,x=6; for(i=2;i=x if(x%i=0) break; 整除 break if(i=x) printf(yes); else printf(no); x=6 i=26 break no x=5 i=25 i=35 i=45 i=55第二种:假设法(理解) x: 素数 1 非素数 0#include stdio.hmain() int i,y=1,x=6; for(i=2;y&ix;i+) if(x%i=0) y=0; if(y) printf(yes); else printf(no);第三种:对称假设法(理解)x: 2x-1 2x/2 2sqrt(x)#include stdio.hmain()int i,y=1,x=6; for(i=2;y&isqrt(x);i+) if(x%i=0) y=0; if(y) printf(yes); else printf(no);六、字符型数据1.字符型常量字符 1单引号 A B c z 2在内存中,字符以ASCII码值进行存放的 A:65 B:66 C:67 Z:65+25 a:97 b:98 c:99 z:97+25 0:48 1:49 2:50 9:48+9 3 空格字符(32) 字符参与运算、比较 字符运算、比较:ASCII a-b -1 a Z a b2.字符的输入和输出 %c:一个一个字符操作 char ch1,ch2,ch3; scanf(%c%c%c,&ch1,&ch2,&ch3); printf(%c,ch);输入和输出(字符)(一个一个) getchar():输入 putchar(字符变量):输出3.字符函数 #include ctype.h char ch; 测字母(大写、小写) isalpha(字符型变量) isalpha(ch)ch=A&ch=a&ch=z测大写字母 isupper(字符型变量) isupper(ch) ch=A&ch=Z测小写字母 islower(字符型变量) islower(ch) ch=a&ch=z测数字字符 isdigit(字符型变量) isdigit(ch) ch=0&ch=9测空格、tab、回车键 isspace(字符型变量) isspace(ch) ch= |ch=t|ch=n以上五个函数是测试函数,当代表“是”,函数返回值为1;当代表“否”,函数返回值为0.将大写字母转化为小写字母 tolower(字符型变量) tolower(ch) ch+=32将小写字母转化为大写字母 toupper(字符型变量) toupper(ch) ch-=32例如: if(isupper(ch) ch=tolower(ch); else if(islower(ch) ch=toupper(ch); if(ch=A&ch=a&ch带函数返回值 fabs cos isalpha islower isdigit2无函数返回值 printf scanf2.用户函数第一个程序#include stdio.hmain() int a=2,b=3,s; s=a+b; printf(%d,s);第二个程序: int add(int a,int b) /被调用函数 int s; s=a+b; return s;main() int a=2,b=3,s; s=add(a,b);/调用函数 printf(%d,s);第三个程序:#include stdio.hvoid fun(int x,int y);main() int a=2,b=3; fun(a,b); /调用函数(实参) printf(a=%d,b=%d,a,b);void fun(int x,int y)/被调用函数(形参) int t; t=x; x=y; y=t;任何程序都是从main函数开始执行.调用函数 格式: 函数名(实参1,实参2,实参3,)被调用函数 1格式:函数返回值的类型 函数名(类型名 形参1,类型名 形参2,类型名 形参3) 定义语句; 执行语句; 2函数返回值的类型省略不写,默认的是intreturn:函数返回值1格式: return 表达式; return(表达式);2作用 (1)如果在被调用函数中遇到return,立刻返回调用函数。 (2)return返回的值给了函数.3return有且只能返回一个值4在考试题目中“此结果通过函数返回”=被调用函数的函数体的末端用到return.5return表达式的类型要与函数返回值的类型保持一致执行过程1实参和形参保持个数相同,类型一致(一一对应)2数据传递:将实参数据传递给形参3在被调用函数中,所定义的变量(包括形参),系统所自动开辟的空间都是临时的,当执行完被调用函数时,所有变量立刻释放。因此,多个函数之间变量可以重名,互不干扰。4如果在被调用函数中,没有return,那么被调用函数执行到函数体的为至,返回到调用函数 。5按值传递数据:形参变化时,实参不变化.6void:无类型,说明函数不需要返回值,被调用函数中不用使用return带 表达式.7函数说明(1)格式: 被调用函数 ; 八、指针 1.什么是指针? 存放该地址的单元,这样的单元的称为指针。2.指针作用:加快访问单元的速度.3.定义指针 格式:类型名 *指针变量名 int a; (存放数值) int *a;(存放单元地址)4.获得地址(给指针赋值)&:求地址符 int a,*p; p=&a;(p中存放了a的地址 p指向a单元)间接获取地址 int a,*p,*q; p=&a; q=&a; q=p;5.指针的操作*的使用 双目运算:乘号 5*6 单目运算:定义语句:说明作用,说明其后变量是指针变量. int *p; int a,*q=&a; int a,*q; q=&a;执行语句:间接访问运算符(对*其后指针变量所指的单元进行的操作)*p=*p+1: a=a+1 右*p:*其后指针变量p所指的单元中的值取出来 左*p:*其后指针变量p所指的单元指针的移动 前提:指针指向一串连续的存储单元.指针加减一个整数,实现指针的移动。(整数:单元的个数)p=p+2:p+: p=p+1 p- p=p-2 p *p &p区别 int a=6,*p=&a; p:存放了所指单元的地址 *p:右边*p:p所指单元的值取出来 左边*p:p所指单元 &p:指针变量的地址(指针变量p的地址)6.指针在函数中的使用 实参是地址形式,对应的形参是同类型的指针变量 #include stdio.hvoid fun(int *,int *);main() int x=5,y=2; fun(&x,&y); printf(%d,%d,x,y);void fun(int *a,int *b) int t; t=*a; *a=*b; *b=t;按地址传递数据:形参变化时,实参也变化结果通过形参返回#include stdio.hvoid fun(int ,int ,int *);main() int a=2,b=3,sum; fun(a,b,&sum); printf(%d,sum);void fun(int a,int b,int *s) *s=a-b;/*通过形参返回结果*/作业:(1)找出100以内(含100)满足i,i+4,i+10都是素数的整数的个数和这些i的和值。(2)从1000-3000之间求四位数为素数的和值和个数。(3)从1000-3000之间满足条件的四位数的和值以及不满足条件的和值。 条件:把千位和十位数字重新组成一个新的十位数ab,以及把个位和百位组成另一个新的十位数cd。 如果新组成的两个十位数ab 5*2 2.位运算 左移 格式: 变量名位数 int a=6; a=a2; 右移 格式: 变量名位数 int a=6; a=a2; 位运算的优先级低于算术运算的优先级 int a=6; a=a+(a2)3.全局变量#include stdio.hint s=0;main() int s=100; printf(%d,s);定义: 全局变量:在函数体外部定义的变量 局部变量:在函数体内部定义的变量全局变量作用范围: 从定义的位置开始直到程序的结束当全局变量和局部变量同名时,在函数体内使用局部变量,全局变量被屏蔽。#include stdio.hint s=0;void fun1() s+;void fun2()s=s+100;main() int s=100; fun1(); fun2(); printf(%d,s);在考试中,当变量定义为全局变量,就不要定义为局部变量。十、数组(大量数据数据不连续)1.数组的特点相同的数据类型相同的名字不同的下标(下标从0开始)在内存中,系统会为数组开辟一串连续存储空间2.一维数组1定义数组 格式:类型名 数组名常量表达式 类型名:int float double char 数组名:遵循用户标识符 常量表达式:元素的个数 在内存中,系统会为一维数组自动开辟一串连续存储空间 int a6; 不同的下标(下标从0开始)(下标和个数之间相差1) 个数:N 下标:N-1 数组名:代表是数组的首地址。(数组中第一个元素的地址) 代表是地址常量(不可以给数组名进行赋值) a=&a02数组赋值 int a6=5,7,1,2,4,9; int a6=5,9,8;(用0补齐)3表示数组的元素元素:数组名下标表达式带下标的指针变量 元素:指针变量名下标表达式4一维数组在函数中的使用 实参是数组名,对应形参是同类型的指针变量。 int aN; 调用函数: fun(a); 被调用函数: void fun(int *a) void fun(int a) void fun(int aN) 注:对于后面两种与数组的定义形似,在系统处理的过程中,后两种处理成第一种形式(*a)5算法(宗旨:通过下标寻找规律,使用循环进行实现)求和第一种:通过函数返回和值 0 1 2 3 4 5 6 7 8 5 8 9 10 20 4 5 30 6 #include stdio.hint add(int p);main()int a10=5,1,2,8,9,4,3,25,12,14,s; s=add(a);printf(%d,s);int add(int p)int i,sum=0;for(i=0;i10;i+)sum=sum+pi;return sum;第二种:通过形参返回和值#include stdio.hvoid add(int p,int *sum);main()int a10=5,1,2,8,9,4,3,25,12,14,s; add(a,&s);printf(%d,s);void add(int p,int *sum)int i,he=0;for(i=0;i10;i+)he=he+pi; *sum=he;第三种:通过全局变量获取和值#include stdio.hint a10=5,1,2,8,9,4,3,25,12,14,s=0;void add();main() add();printf(%d,s);void add()int i;for(i=0;i10;i+)s=s+ai; 最值(最大) 通过最值全局变量返回 5 9 2 3 1 4max=5 max=9#include stdio.h#define N 5int aN=4,6,9,1,0,max;void fun();main() fun();printf(%d,max);void fun() int i; max=a0; for(i=0;imax) max=ai; 求个数从数组a中挑选出奇数放入数组b中,奇数的个数通过函数返回。a: 0 1 2 3 4 5 5 9 8 6 1 4#include stdio.h#define N 5int aN=4,6,9,1,0,bN;int fun();main() int i,m; m=fun(); for(i=0;im;i+)printf(%d,bi);int fun() int i,j=0; for(i=0;ij+表达式代表数组b的下标2变量j的值代表数组b中数据的个数。排序(升序小到大 降序 大到小) i j i:0N-2 j: i+1N-1 0 1 2 3 4 5 8 9 2 4 2 8 9 5 4 2 4 9 8 5 2 4 5 9 8 2 4 5 8 9#include stdio.h#define N 8int aN=8,52,13,41,75,65,12,3;void sort();main()int i; sort(); for(i=0;iN;i+)printf(%d,ai);void sort() int i,j,t; for(i=0;iN;i+) for(j=i+1;jN;j+) if(aiaj) t=ai; ai=aj; aj=t; 逆序 i j 0 1 2 3 4 5 N/2 5 9 2 3 1 4 4 1 3 2 9 5 i j i=0 i+ ij 0 5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年营养师职业资格考试专项训练:营养师职业素养与沟通能力
- 民法典普法知识培训课件
- 2025年Python项目管理专项训练试卷 技能提升
- 现代农业基础知识培训课件
- 试题山西省怀仁市重点中学2026届化学高一第一学期期中质量跟踪监视试题含解析
- 四川省会理县第一中学2026届化学高三上期末预测试题含解析
- 王利明民法总论课件
- 天津市蓟州等部分区2026届化学高一第一学期期末达标测试试题含解析
- 2025年校园食堂设备维护与食品安全管理服务合同范本
- 2025年智能化车位租赁与增值服务综合管理协议
- GB/T 3690-2017织物芯输送带全厚度拉伸强度、拉断伸长率和参考力伸长率试验方法
- GB/T 18743-2002流体输送用热塑性塑料管材简支梁冲击试验方法
- 影视动画风格研究课件
- 国际结算-苏宗祥主编
- 八年级地理上册【省份轮廓图】汇总考试题
- 变更风险识别、评估记录表参考模板范本
- 五年级语文阅读理解十篇(含答案)
- DB45T2053-2019 重质碳酸钙单位产品能源消耗限额
- 焊研威达埋弧焊机小车A系列说明书
- 有机热载体锅炉安装工程施工方案完整
- 常规保养双人作业流程新模板汇总
评论
0/150
提交评论