




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Lab 3Repetition Structure从500开始,求被3、5、7除余数均为2的前50个数。 void main() int i,j; j=500,i=1; for(;j=500&i=50;j+) if(j%3=2&j%5=2&j%7=2) printf(%d,j); i+; printf( ); 打印形状为正方形和直角三角形的乘法九九表。void main() int i,j,a; for(i=1;i=9;i+) for(j=1;j=9;j+) a=j*i; printf(%d*%d=%-3d,a); printf( ); printf(n); #includevoid main() int i,j,k,a; for(i=1;i=9;i+) for(j=1;j=i;j+) a=j*i; printf(%d*%d=-3%d,j,i,a); printf( ); for(k=1;k=9-i;k+) printf( ); printf(n); 由键盘输入一个正整数,判断它是否为素数(只能被1和自身整除的数)。void main() int num,n; printf(enter a number); scanf(%d,&num); for(n=2;n=a;i+) sum=sum+1/n; n=n*i; printf(sum=%f,sum);#include void main()int i=1;float x,e=1,t=1;printf(enter x:n);scanf(%f,&x);while(1/t=x) e=e+1/t; i+; t=t*i;printf(e=%f,e);百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两个小马驮1担。问有大、中、小马各多少匹?#include void main() int i,j; for(i=0;i=34;i+) for(j=0;j(100-i*3)/2+1;j+) if(100-i-j)%2=0 & 3*i+2*j+(100-i-j)/2=100) printf(%d %d %dn,i,j,100-i-j); _编写程序输出以下的图形:1 2345678910void main() int i,j,k,a=1; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(k=1;k=i;k+) printf(%d,a); printf( ); a+; printf(n); Lab 4Function ( Part )求 m!/(n!*(m-n)!) 的值。要求:求某个数的阶层必须用自定义的函数实现。#includeint fl(int x,int y,int z);void main() int m,n,k; printf(enter m and n:n); scanf(%d %d,&m,&n); k=fl(m,n,m-n ); printf(%d,k);int fl(int x,int y,int z) int a=1,b=1,c=1,i,j; for(i=1;i=x;i+) a=a*i; for(i=1;i=y;i+) b=b*i; for(i=1;i=z;i+) c=c*i; j=a/(b*c); return(j);用二分法求下面方程2x3-4x2+3x-6=0的根,要求误差小于10-5。#include#includefloat root(float x1,float x2);float f(float x);void main() float x1,x2,f1,f2,x; do printf(enter x1 and x2:n); scanf(%f,%f,&x1,&x2); f1=f(x1); f2=f(x2); while(f1*f20); x=root(x1,x2); printf(x=%fn,x);float f(float x) float y; y=2*x*x*x-4*x*x+3*x-6; return(y);float root(float x1,float x2) float x0,f0,f1,f2; do x0=(x1+x2)/2; f0=f(x0); if(f0*f(x1)=1e-5); return(x0);随机产生50个200至500之间的整数,输出所有的整数,判断每个整数是否为素数;若是素数,则在输出整数时,用*标记。要求每行输出10个数。要求:判断一个整数是否为素数,必须用自定义的函数实现。#include#include#includevoid prime(int x);void main() int m,i; srand(time(NULL); for(i=1;i=50;i+) m=200+(rand()%301); prime(m); if(i%10=0) printf(n); void prime(int x) int j; for(j=2;j=x-1;j+) if(x%j=0) break; if(j=x) printf(*%d*,x); else printf( %d ,x);通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct. You have tried three times! Test over!”程序结束。#include int add_judgement(int,int,int );void main() int i=1,x,y,z,flag=0; printf(Plese chutin); scanf(%d+%d,&x,&y); printf(please input z:n); while(i=3) scanf(%d,&z); flag=add_judgement(x,y,z); if(flag=1) printf(Rightn); break; else if(i3) printf(Not correct.You have tried three times!Test over!);int add_judgement(int a,int b,int c) int flag; if(c=a+b)flag=1; elseflag=0; return flag;_输入两个正整数,求其最大公约数和最小公倍数。要求:求最小公约数必须用自定义的函数实现。此题答案略Lab 5Function ( Part )编程计算Xn(要求:用递归函数)。#includelong fac(int x,int y);void main() int x,n; long y; printf(enter x and n:n); scanf(%d %d,&x,&n); y=fac(x,n); printf(%ldn,y);long fac(int x,int y) long a; if(y=1) a=x; else a=fac(x,y-1)*x; return(a);编程计算Ackermann函数Ack(m,n)(要求:用递归函数)。 对于m0, n 0, Ack(m,n)定义如下: Ack(0,n)=n+1 Ack(m,0)= Ack(m-1,1) Ack(m,n)= Ack(m-1), Ack(m,n-1)#includeint Ack(int m,int n);void main() int m,n,a; printf(enter m and n:n); scanf(%d,%d,&m,&n); a=Ack(m,n); printf(Ack=%d,a);int Ack(int m,int n) int b; if(m=0&n0) b=n+1; else if(m0&n=0) b=Ack(m-1,1); else if(m0&n0) b=Ack(m-1),Ack(m,n-1); return(b);Lab6 Array ( Part )产生10005000之间的100个随机整数,找出其中的素数,用冒泡法对找出的素数进行排序。请将产生的随机数、找出的素数和排序后的素数分别输出。#include#include#include#define SIZE 100int prime(int x);void sorting(int a,int n);void main( ) int aSIZE,bSIZE,i,j=0; srand(time(NULL); printf(nthe rand numbers is:n); for(i=0;iSIZE;i+) ai=1000+(rand()%4001); if(i%10=0) printf(n); printf(%5d,ai); printf(nthe prime array:n); for(i=0;iSIZE;i+) if(prime(ai)=1) bj=ai; if(j%10=0) printf(n); printf(%5d,bj); j+; printf(nthe new array:n); sorting(b,j); for(i=0;ij;i+) if(i%10=0) printf(n); printf(%5d,bi); int prime(int x) for(i=2;i=x-1;i+) if(x%i=0) break; if(i=x) return 1;void sorting(int a,int n) int i,j,t; for(j=0;jn;j+) for(i=0;iai+1) t=ai; ai=ai+1; ai+1=t; 有一个按非递增排列好的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。#include#define SIZE 11void insertdata(int aSIZE);void main( ) int arraySIZE,i; printf(ninput 10 numbers:n); for(i=0;iSIZE-1;i+) scanf(%d,&arrayi); printf(n input a number:n ); insertdata(array); printf(n new array is:n); for(i=0;iSIZE;i+) printf(%4d,arrayi);void insertdata(int aSIZE) int num,i,j; scanf(%d,&num); if(numa9) a10=num; else for(i=0;i10;i+) if(ai=i;j-) aj+1=aj; ai=num; break; 计算以下整数的标准差和平均值。-6, -12, 8, 13, 11, 6, 7, 2, -6, -9, -10, 11, 10, 9, 2 其中,标准差的计算公式为:#include#include#define SIZE 15void average(int arraySIZE);void main( ) int arraySIZE,i; printf(ninput 15 numbers:n); for(i=0;iSIZE;i+) scanf(%d,&arrayi); printf(n the average and SD :n); average(array);void average(int arraySIZE) float aver_i,SD,sum,i,a=0; for(i=0;iSIZE;i+) sum=sum+arrayi; aver_i=sum/SIZE; printf(%fn,aver_i); for(i=0;iSIZE;i+) a=a+pow(arrayi-aver_i,2); SD=sqrt(a)/SIZE; printf(%fn,SD);某班级有100个学生,现选举班长,有5个候选人,请统计每个候选人的票数,并用冒泡排序法对票数进行排序。#include#include#include#define SIZE 100void sorting(int a);void main( ) int aSIZE,b5=0,i,j; srand(time(NULL); printf(nthe 100 votes are:n); for(i=0;iSIZE;i+) ai=1+rand()%5; printf(%4d,ai); if(i+1)%10=0) printf(n); for(i=0;i100;i+) bai-1+; printf(nthe five peoples tickt:n); sorting(b); for(j=0;j5;j+) printf(%4d,bj);void sorting(int a) int i,j,t; for(i=0;i4;i+) for(j=0;jai+1) t=ai; ai=ai+1; ai+1=t; 任意输入10个数,求这个10个数中最大的间隔值(即是最大值与最小值的差)。要求:若需要排序,必须用选择法排序。#include#define SIZE 10void sorting(int array);void main( ) int aSIZE,max,i; printf(ninput 10 numbers:n); for(i=0;iSIZE;i+) scanf(%d,&ai); printf(nthe ten numbers sorting:n); sorting(a); for(i=0;iSIZE;i+) printf(%4d,ai); max=aSIZE-1-a0; printf(nthe max distance:n); printf(%d,max); void sorting(int array) int i,j,k,t; for(i=0;iSIZE-1;i+) k=i; for(j=i+1;jSIZE;j+) if(arrayjarrayk) k=j; t=arrayk; arrayk=arrayi; arrayi=t; 约瑟夫问题。M个人围成一圈,从第一个人开始依次从1至N循环报数,每当报数为N时此人出圈,直到圈中只剩下一个人为止。请按退出次序输出出圈人原来的编号以及留在圈中的最后一个人原来的编号。#include#define SIZE 50void leaving (int num);int nmax;void main( ) int numSIZE,i; printf(nplease input number:n); scanf(%d,&nmax); for(i=0;inmax;i+) numi=i+1; leaving(num); void leaving(int num) int N,i=0,k=0,m=0; printf(ninput N:n); scanf(%d,&N); while(mnmax-1) if(numi!=0) k+; if(k=N) printf(nthe number of leaving personel:n); printf(%d,i+1); numi=0; k=0; m+; i+; if(i=nmax) i=0; i=0; while(numi=0) i+; printf(nthe last of%d personis %d,nmax,numi); Lab 7Array ( Part )假设有一个数组,存放着10个数,现输入一个数,用顺序查找法找出该数是数组中第几个元素。如果该数不在数组中,则打印“无此数”。#include#define SIZE 10void element(int a);void main() int aSIZE,i; printf(ninput ten numbers:n); for(i=0;iSIZE;i+) scanf(%d,&ai); element(a);void element(int a) int i,col,num,flag=0; printf(ninput a number:n); scanf(%d,&num); for(i=0;iSIZE;i+) if(ai=num) col=i+1; flag=1; printf(In array,the number is %d element,col); break; if(flag=0) printf(nthe number is not in the arrayn);_用递推法打印杨辉三角形(提示:利用二维数组)。#include#define SIZE 10void array(int a);void main( ) int i,j,aSIZESIZE; for(i=0;iSIZE;i+) ai0=aii=1; for(i=2;iSIZE;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; printf(nthe yanghui strangle:n); array(a);void array(int aSIZE) int i,j; for(i=0;iSIZE;i+) for(j=0;ji+1;j+) printf(%-5d,aij); printf(n); 找出二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。#include #define M 5#define N 4int fun(int aN,int m,int n);void main() int i,j,aMN; printf(nPlease input numbers:n); for(i=0;iM;i+) for(j=0;jN;j+) scanf(%d,&aij); fun(a,M,N);int fun(int aN,int m,int n) int i,j,k,max,flag=0,colun; for(i=0;im;i+) max=ai0; colun=0; for(j=0;jmax) max=aij; colun=j; flag=1; for(k=0;kakcolun) flag=0;continue; if(flag=1) printf(The point a%d%d=%dn,i,colun,max); break; if(flag=0) printf(It is not in the array!n);编程找出一个二维数组中值最大和值最小的元素,并告知所在行号和列号。#include #define A 3#define B 4void max(int aB);void min(int aB);void main() int aAB=1,5,6,9,4,8,10,13,20,24,18,17; max(a); min(a);void max(int aB) int i,j,max; max=a00; for(i=0;i3;i+) for(j=0;jmax) max=aij; printf(max=%d,row=%d,colun=%dn,max,i,j);void min(int aB) int i,j,min; min=a00; for(i=0;i3;i+) for(j=0;j4;j+) if(aijmin) min=aij; printf(min=%d,row=%d,colun=%dn,min,i,j);_输入一个3行4列的矩阵和4行5列的矩阵,计算这两个矩阵相乘的结果。#include void fun(int a34,int b45,int c35);void main() int i,j,k,a34,b45,c35=0; printf(nPlease input the a array numbers:n); for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,&aij); printf(Please input the b array numbers:n); for(i=0;i4;i+) for(j=0;j5;j+) scanf(%d,&bij); fun(a,b,c); printf(The c array numbers:n); for(i=0;i3;i+) for(j=0;j5;j+) printf(%d%c,cij,j=4?n:);void fun(int a34,int b45,int c35) int i,j,k; for(i=0;i3;i+) for(j=0;j5;j+) for(k=0;k4;k+) cij+=aik*bkj; _Lab 8Pointers输入10个整数,将其中最大 的数与第一个数对换,把最小的数与最后一个数对换。要求:输入、处理和输出分别用一个函数实现。 输入三个整数,要求由大到小输出。#includevoid main() void input(int *); void max_min_value(int *); void output(int *); int number10; input(number); max_min_value(number); output(number);void input(int number) int i; printf(nPlease input 10 numbers:n); for(i=0;i10;i+) scanf(%d,&numberi);void max_min_value(int number) int *max,*min,*p,temp; max=min=number; for(p=number+1;p*max) max=p; else if(*p*min) min=p; temp=number0; number0=*max; *max=temp; temp=number9; number9=*min; *min=temp; void output(int number) int *p; printf(Now,the new 10 numbers:n); for(p=number;pnumber+10;p+) printf(%d ,*p); printf(n);设计一个函数,对10个字符串由小到大顺序排序。要求:对字符串赋初值、排序和输出都用一个函数来实现。#include#includevoid main()void input(char *name); void sort(char *name,int n); void print(char *name,int n); char *name10; char a1020; int i; for(i=0;i10;i+) namei=ai; input(name); sort(name,10); print(name,10);void input(char *name) int i; printf(nPlease input ten strings:n); for(i=0;i10;i+)scanf(%s,namei);void sort(char *name,int n) char *temp; int i,j,k; for(i=0;in-1;i+) k=i;for(j=i+1;j0) k=j; if(k!=i) temp=namei; namei=namek; namek=temp; void print(char *name,int n) int i; printf(nNow,the new order strings:n); for(i=0;in;i+) printf(%sn,namei);编写程序,验证哥德巴赫猜想。哥德巴赫提出:一个不小于6的偶数必定能表示为两个素数之和。例如:6=3+38=5+3 10=7+3 要求将6500之间的偶数表示为两个素数之和。即该程序将打印出一个偶数分解成两个素数和的全部组合。#include#includeint prime(int n);void Goldbach(int even,int *a,int *b);void main() int i; int m,n; for(i=6;i=500;i+,i+) Goldbach(i,&m,&n); printf(%d=%d+%dn,i,m,n);if(i%40=0) puts(pressenterto continue);getchar(); int prime(int n) int i; for(i=2;i=sqrt(n);i+) if(n%i=0) return 0; return 1;void Goldbach(int even,int *a,int *b) int m,n; for(m=2;m=even/2;m+) n=even-m; if(prime(m)&prime(n) *a=m; *b=n; 输入10个整数,再输入一个待查找的整数,采用二分查找法在前10个整数中搜索,若存在输出“found”,否则输出“not exist”。要求:二分查找时搜索的工作变量要用指针来实现。#include#define SIZE 10void input(int *a);void sort(int *a);int binary_search(int *a,int x);void main() int numSIZE,x,i; int *p=num; printf(input x:n); scanf(%d,&x); input(p); sort(p); printf(nthe new sorting of the array:n); for(i=0;iSIZE;i+) printf(%4d,*p+); if(binary_search(num,x)=1) printf(Found the number); else printf(Not exist in the array);void input(int *a) int *p=a,i; printf(ninput ten numbers:n); for(i=0;iSIZE;i+) scanf(%d,p+);void sort(int *a) int i,*p,t; for(i=0;iSIZE-1;i+) for(p=a;p=*(p+1) t=*p; *p=*(p+1); *(p+1)=t; int binary_search(int *a,int x) int *low=a,*high=a+SIZE-1; int *mid=low+(high-low)/2,flag=0; while(lowx) high=mid-1; else low=mid+1; mid=low+(high-low)/2; return(flag);假设有一个数组int AnSize,假设其中隐藏着若干0,其余非0整数,写一个函数int Fun(int* A, int nSize),使把0移至后面,非0整数移至数组前面并保持原来的顺序,返回值为原数据中第一个元素为0的下标。#include #define N 10int Fun(int *A,int nSize);void main() int i; int AN=0,13,6,4,8,0,0,2,1,1; Fun(A,N); printf(nThe new order:n); for(i=0;iN;i+) printf(%d ,Ai); printf(n);int Fun(int *A,int nSize) int i,j; int count = 0; int end=nSize; for(i=0;inSize;i+) if(Ai=0) count+; for(i=0;inSize;i+) if(Ai=0) while(Aend-1=0) end-; if(end=nSize-count) break; Ai = Aend-1; Aend-1 = 0; return end;Lab 9Strings, Preprocessor有n个国家名,要求按字母先后顺序排列,并按升序输出。(要求:尽量使用标准字符串函数)#include #include char sort (char (*p)20,int n);void main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024成都工业职工大学辅导员招聘笔试真题
- 锻造车间安全员考试试卷及答案
- 2025年非接触式温度计项目发展计划
- 2025年PE电缆专用料项目发展计划
- 2025年江苏省常州市中考地理试题(原卷版)
- 2025年智能压力发生器项目合作计划书
- 2025年假肢、人工器官及植(介)入器械项目合作计划书
- 2025年精密箱体系统项目合作计划书
- 聊城市2025年农产品成本调查分析报告
- 湘艺版九年级上册音乐 第二单元 梁山伯与祝英台教案
- 2024年4月自考02613单片机与接口技术试题
- (2024年)诊疗规范培训课件
- 《大学法语简明教程》课件
- 2024年广东汕头市投资控股集团有限公司招聘笔试参考题库含答案解析
- 急性肺栓塞课件
- 高校中外合作办学人才培养机制
- 《肢体残疾评定》课件
- 停车场数据分析与管理
- 全等三角形经典辅助线做法汇总
- 客运列车保洁作业服务方案
- 2023年广东省广州市白云区委政法委招聘1人笔试参考题库(共500题)答案详解版
评论
0/150
提交评论