




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 累加累乘基本知识:S=S+X 累加 0X=X+1 计数 0T=T*X 累乘 求Xn 1T=T*I 累乘 求N! 1 应用:级数求和1输入x、n后输出下列算式的值。(次数控制)程序1#include void main( )float s, t, x,t1=1.0,t2=1.0; int i, n;scanf(%f%d, &x, &n);s=0, t=-1;for(i=1; i=n; i+) t1=t1*x;t2=t2*i;t=-t; s=s+t*t1/t2;printf (“%f”,s);程序2#include float f1(float x , int n) float y=1.0; int k; for(k=0;kn;k+)y=y*x; return y;long f2(int n) long m=1; int k; for(k=1;k=n;k+)m=m*k; return m;void main( )float s, t, x; int i, n;scanf(%f%d, &x, &n);s=0, t=-1;for(i=1; i=n; i+) t=-t; s=s+t*f1(x,i)/f2(i);printf (“%f”,s);二、 整除性基本知识: x%y=0(int)(x/y)=x/yfmod(x,y)=0应用:1.素数(质数)#include #includevoid main() int m,i,n=0; do scanf(“%d”,&m);n=sqrt(m); for(i=2;in)printf(“ %d”,m); while(m!=0);/*输入0结束*/素数2#include #includeint prime(int m) int k,p; p=sqrt(m); for(k=2;kp) return 1; else return 0;void main() int m,i,n=0; do scanf(“%d”,&m); if(prime(m)printf(“ %d是素数.”,m);else printf(“%d不是素数.”,m);2.水仙花数:若某数等于各位数字的立方和,则称该数为水仙花数for(i=100;i0) k=n%10; t=t+k*k*k; n=n/10;if(m=t) printf(“%d是水仙花数.”,m);水仙花数#include int f(int m) int k,n,t; n=m; t=0;while(n0) k=n%10; t=t+k*k*k; n=n/10;if(m=t) return 1;else return 0;void main() int m; do scanf(“%d”,&m); if(f(m) printf(“%d是水仙花数.”,m);else printf(“%d不是水仙花数.”,m);while(m!=0);3.完数:某数等于其诸因子之和则该数为完数,如6=1+2+3,28=1+2+4+7+14 则6、28就是完数。#include #include void main() int n,i,s; for(n=6;n=1000;n+) s=0; for(i=1;in;i+) if(n%i=0) s+=i; if(n=s) fprintf(p,%6d,n); 4.数位截取:输入一个长整型数,求各位数字的平方和#include void main()int digit; long in,s; scanf(“%ld”,in);if(in0) digit=in%10;s=s+digit*digitin=in/10; printf(“sum=%ldn”,s);5.最大公约数、最小公倍数#include void main() int m,n,k,t,p; scanf(%d%d,&m,&n); if(mn) k=m; p=n; else k=n;p=m; while(t=(k%p)!=0) k=p; p=t; printf(gong yue shu= %dn,p); printf(gong bei shu= %dn,m*n/p);6.亲密数对:说明:若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1对亲密数,284、220也是1对亲密数。#include void main() int a,b,c,i;for(a=6;a=5000;a+) b=c=0;for(i=1;ia;i+)if(a%i=0) b=b+i;for(i=1;ib;i+)if(b%i=0) c=c+i;if(a=c & a!=b)printf(%6d,%6dn,a,b); 三、 最大最小1. 从输入的若干个正数中选出最小数#include void main() float x,min;scanf(%f,&x);min=x;while(x=0)if(xmin)min=x;scanf(%f,&x);printf(the minium number is %f,min);2编制函数,其功能是在float类型1维数组中查找最大值、最小值,并将它们返回到调用程序。#include void max_min(int x , int n, int *max, int *min)int i;*max=x0; *min=x0;for(i=1;in; i+) if(*maxxi) *max=xi; if(xi*min) *min=xi; void main( ) int x10,i,min,max;for(i=0;i10;i+) scanf(%d,x+i);max_min(x,10,&max,&min);printf(MAX=%d MIN=%dn,max,min); 四、 双重循环1. 求(n由输入决定)#include void main( )int i,j,n;long int t=1,sum=0;scanf(%d,&n);for(i=1;i=n;i+) t=1;for(j=1;j=i;j+)t=t*j;sum=sum+t;printf(n!=%ld,sum); 2.输入一个36的二维整型数组数据,输出其中最大值及其所在行列下标。#include void main( )int a36,i,j,m,n,max;for(i=0;i3;i+)for(j=0;j6;j+)scanf(%d,&aij);max=a00;for(i=0;i3;i+)for(j=0;jmax)max=aij;m=i;n=j;printf(the max num is %d, row %d line %d n,max,m,n); 3. 鞍点问题:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小#define N 10#define M 10void main() int i,j,k,m,n,flag1,flag2,aNM,max,maxi,maxj;scanf(%d,&n);scanf(%d,&m);for(i=0;in;i+)for(j=0;jm;j+)scanf(%d,&anm);for(i=0;in;i+)for(j=0;jm;j+)printf(%d,anm);printf(n);flag2=0;for(i=0;in;i+) max=ai0;for(j=0;jmax)max=aij; maxj=j; for(k=0,flag1=1;kakmaxj) flag1=0;if(flag1) printf(n第%d行,第%d列的%d是鞍点,i,maxj,max);flag2=1;if(!flag2) printf(n 矩阵中无鞍点);五、 三种排序1.选择排序:函数sort使用选择法将一维整型数组中各元素按值从大到小排序。#include #define N 10 void sort(int a,int n) int i,j,k,temp; for(i=0; in-1; i+) k=i; for(j=i+1; jn; j+) if(akaj) k=j; temp=ak; ak=ai;ai=temp; void main()int aN,i;for(i=0;iN;i+)scanf(%d,&ai);sort(a,N);for(i=0;iN;i+)printf(%d ,ai);2 冒泡法#include void main( ) int a10 , i , j ,t ; printf(Input 10 numbers:n) ; for(i=0 ;i10 ; i+) /* 输入排序数 */ scanf(%d,&ai) ; printf(n); for(j=0 ; j9 ; j+ ) /* 控制比较趟数 */ for(i=0 ; iai+1) t=ai; ai=ai+1 ; ai+1=t ; printf( The sorted number : n) ;for(i=0 ;i10 ;i+) /* 输出已排序的数 */printf(%d , ai) ; 3插入排序:将x插入到已从小到大排序好的数组a中,插入x后数组中的元素仍然有序#include#define N 5 void main() int aN,i,x,j; scanf(%d,&a0); for(i=1;i=0;j-) if(ajx) aj+1=aj; else break; aj+1=x; for(i=0;iN;i+) printf(%d ,ai); 六、 二种查找1. 顺序查找设a是一个整型数组,n和x都是整数,数组a中各元素的值互异。请编写函数 find(a,n,x),在数组a的前n个元素中查找x, 如果找到,返回x在数组a中的位置;如果没有找到,返回0。#include #define N 5int find(int *a, int n, int x) int k=0,y=0; for(k=0; kn; k+) if (ak=x) y=k+1; return y; void main() int n,x,aN,i; for(i=0;iN;i+) scanf(%d,&ai);printf(please input x and nn);scanf(%d%d,&x,&n); while(x!=0) if(i=find(a,n,x)!=0)printf(%d is the %dth number,x,i); else printf(not found); scanf(%d,%d,&x,&n); 2. 二分法查找(要求查找的数据要有序)#include #define N 10int f(int x, int a, int n) int low,high, mid; low=0; high=n-1;int y=-1; while(lowamid) low=mid+1; else if(xamid) high=mid-1; else y=mid;break; return y;void main() int i,x,n,aN; for(i=0;iN;i+) scanf(%d,&ai); printf(please input x and n); scanf(%d%d,&x,&n);printf(%dn, f(x, a, n); 七三种遍历1 数组遍历1)字符串与整数转换 说明】函数atoi的功能是将字符串转换成整数,如“atoi(-123)”将返回-123。#includeint atoil(char s) int k=0,sign,digit; sign=1; digit=0; while(sk9) if(sk= -) sign=-1; k+; while(sk=0&sk= 9) digit=digit*10+sk-0; k+; return sign*digit; void main()char s80;int d;scanf(%s,s);d=atoil(s);printf(%d,d);2)数组逆置(1)for(i=0;i=n/2;i+) t=ai;ai=an-i-1;an-i-1=t;(2)for(i=0,j=n-1;ij;i+,j-) t=ai;ai=aj;aj=t;如何用指针表示?3)strcpy,strcmp,strlen,strcat这四个函数用数组,指针实现#includevoid strcpy1(char*to,char *from)while(*to=*from)!=0)to+;from+;void main()char to20,from10;scanf(%s%s,from,to);strcpy1(to,from);printf(%sn,to);4)进制转换函数 xtoi 的功能是将放在字符串中的十六进制数(可以出现09、af)转换成十进制整数。例如:调用 xtoi(1f) 将返回31。#includeint xtoi1(char s) int k=0, d=0;while(sk = 0 & sk = a & sk = 0 & sk = a & sk = f)d=d*16+sk-87;k+; return d;void main()char s80;int d;scanf(%s,s);d=xtoi1(s); printf(%d,d);2.链表遍历 链表的建立、插入、删除和输出3.文件遍历(1)下列程序将当前目录下的文本文件a.txt复制到b.txt,要求将a.txt中每1个非英文字符后的第1个小写英文字母改为大写字母写到文件b.txt中,其它字符复制时不变。 #include #include #include void main() FILE *f1,*f2 ; int flag=1; char ch; if(f1=fopen(a.txt,r)=NULL) printf(不能打开文件a.txtn); exit(0); if(f2=fopen(b.txt,w)=NULL) printf(不能打开文件b.txtn); exit(0); while(!feof(f1) ch=fgetc(f1);if(flag=1 & ch=a & ch=z) fputc(ch-32,f2); else fputc(ch,f2); if(!isalpha(ch) flag=1; else flag=0; fclose(f1); fclose(f2);八. 函数调用1,值传递,地址传递 #include int x,y,z; void p(int *x,int y) +*x; y-; z=*x+y;2 printf(%d,%d,%d-,*x,y,z); void main() x=2; y=3; z=4; p(&x,y); printf(%d,%d,%d-,x,y,z); p(&y,x); printf(%d,%d,%dn,x,y,z); 2.静态局部变量(1)函数f定义如下,执行语句“sum=f(5)+f(3);”后,sum的值应为 (35) 。int f(int m)static int i=0; int s=0;for(; i=m; i+) s+=i; return s;A、21B、16C、15D、8(2) 写出下列程序的输出结果: # include int f(int x) static y=1; x+=y; y+; return x; void main() int k; k=f(3); printf(%d %dn,k,f(k); 3.递归调用(1) 函数f定义如下,执行语句“m=f(5);”后,m的值应为 B 。int f(int k) if(k=0|k=1) return 1;else return f(k-1)+f(k-2);A、3B、8C、5D、13九其他算法1.数学类问题(上机题)1. 程序设计题:考生目录下有Design.c程序,请完成以下功能:数组元素xi、yi表示平面 上某点坐标,统计10个点中同处在圆(x-1)*(x-1)+(y+0.5)*(y+0.5)=25与 (x-0.5)*(x- 0.5)+y*y=36内的点数k,并将变量k的值以格式%d写到考生目录下 新建文件design.dat。 #include #include void main()FILE *p; int i,k=0; float x=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65; float y=-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33; / 此处起要求考生自己编制程序 p=fopen(design.dat, w); for(i=0;i10;i+) if(sqrt(xi-1)*(xi-1)+(yi+0.5)*(yi+0.5)5)& sqrt(xi-0.5)*(xi-0.5)+(yi*yi)6)k+;fprintf(p,%d,k);fclose(p);2. 程序设计题:考生目录下有Design.c程序,请完成以下功能:数组元素xi、yi表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式%f写到考生目录下新建文 件 design.dat。#include #include #define len(x1,y1,x2,y2) sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)void main() FILE *p; int i,j; float c,minc;float x=1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65; float y=-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33; minc=len(x0,y0,x1,y1); / 此处起要求考生自己编制程序 p=fopen(design.dat, w); for(i=0;i9;i+) for(j=i+1;j10;j+) if(c=len(xi,yi,xj,yj)=60分的学生的姓名及其各门课的成绩。#include#define SIZE 30struct studentchar name10;int math, english, computer;void main()struct student sSIZE;int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第3课 语音合成教学设计-2025-2026学年小学信息技术(信息科技)五年级下册粤科版
- 林草种子工招聘考核试卷及答案
- 智能化水产养殖系统创新创业项目商业计划书
- 按摩放松社区活动创新创业项目商业计划书
- 海藻制醇工效率提升考核试卷及答案
- 水果碳足迹追踪创新创业项目商业计划书
- 公务员培训课件
- 智慧农业数据分析平台创新创业项目商业计划书
- 宠物食品保鲜技术创新创业项目商业计划书
- 油菜籽碳足迹管理创新创业项目商业计划书
- 人工智能导论-课件-第2章知识图谱
- 华中8型数控系统设备连接与参数配置
- 07FD02防空地下室电气设备安装图集
- 防突管理制度汇编
- 江苏省教育科学规划课题开题报告
- 闽教版(2020修订版)信息技术-四年级上册教学计划
- DB32-T 3434-2018人民防空核生化监测中心工程设计规范-(高清现行)
- 精选商务礼仪情景模拟情景
- 矿山机械公司生产制造质量管理方案(参考)
- 男生青春期健康教育(我)
- 建设银行员工劳动合同
评论
0/150
提交评论