[高等教育]c语言经典案例.doc_第1页
[高等教育]c语言经典案例.doc_第2页
[高等教育]c语言经典案例.doc_第3页
[高等教育]c语言经典案例.doc_第4页
[高等教育]c语言经典案例.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

VIP免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用筛选法求100之内的素数。#include void main() int num100,i,j; for (i=0;i100;i+) numi=1; for (i=2;i=10;i+) for (j=2;i*j=100;j+) numi*j-1=0; printf(0至100内素数有:n); for (i=j=0;i100;i+) if (numi=1) printf(%-4d,i+1);if (+j%4=0) printf(n);2、用选择法对10个整数排序。#include void main() int num10,n,i,j,t,k; printf(请输入十个整数:); for (n=0;n10;n+) scanf(%d,&numn); for (i=0;i9;i+) k=i; for (j=i+1;j10;j+) if (numknumj) k=j; if (k!=i) t=numi;numi=numk;numk=t; printf(从大到小排序为:); for (n=0;n10;n+) printf(%d ,numn);3、求一个3*3的整型二维数组对角线元素之和。#include void main() int num33,i,j; printf(输入二维数组:n); for (i=0;i3;i+) for (j=0;j3;j+) scanf(%d,&numij); printf(两对角线和分别为%d和%dn,num00+num11+num22,num02+num11+num20);5、将一个数组中的值按逆序重新存放。#include #include #include void main() int num100,n,i,temp; srand(time(0); n=rand()%100+1; printf(生成数组长度为%dn生成的数组:n,n); for (i=0;in;i+) numi=rand()%100;printf(%-3d,numi); printf(n数组逆序存放后排列为:n); for (i=0;in/2;i+) temp=numi;numi=numn-1-i;numn-1-i=temp; for (i=0;in;i+) printf(%-3d,numi); printf(n);6、输出以下的杨辉三角形(要求输出10行)。11 11 2 11 3 3 1 #include void main() int num1010,i,j; for (i=0;i10;i+) for (j=0;j10;j+) if (j-10|j=i) numij=1; else numij=numi-1j-1+numi-1j; printf(%-4d,numij); if (j=i) break; printf(n); 7、输出“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为8 1 6 3 5 7 4 9 2#include void main() int n,i,j,k; printf(输入奇数阶魔方阵的阶数:); scanf(%d,&n); k=(5*n-1)/2; for(i=0;in;+i) for (j=0;jn;j+) printf(%-4d,(k-i+j)%n*n+(k-i-j-1)%n+1); printf(n); 9、有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。#include #include #include void main() int num15,n,t=0,left,right,middle,key; srand(time(0); printf(数组为n); for (n=14;n=0;n-) t=numn=rand()%10+(t+1); for (n=0;n15;n+) printf(%-4d,numn); printf(n请输入要查找的数:); scanf(%d,&key); left=0; right=14; while (left=right) middle=(left+right)/2; if (key=nummiddle) t=-1;break; if (keynummiddle) left=middle+1; else right=middle-1; if (t=-1) printf(该数是数组中第%d个元素的值n,middle+1); else printf(无此数n);11、输出以下图案:* * * * * * * * * * * * * * * * * * * * * * * *#include void main() char asterisk=* * * * *,space= ; int a,b; for (a=0;a5;a+) for (b=0;ba;b+) printf(%s,space); printf(%sn,asterisk); 12、有一行电文,已按下面规律译成密码:第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求编程序将密码译回原文,并输出密码和原文。#include #include void main() char ch,code100; int n=0; printf(请输入密码:); while(ch=getchar()!=n) if (n=0) printf(密码n); printf(%c,ch); if (isupper(ch) coden+=(26-ch+65+64); if (islower(ch) coden+=(26-ch+97+96); if (!isalpha(ch) coden+=ch; coden=0; printf(n原文n%sn,code);13、编一个程序,将两个字符串连接超来,不要用strcat函数。#include #include void main() char a2100; puts(输入字符串:); gets(a0); gets(a1); int i=0; while(a0i!=0) i+; strcpy(&a0i,a1); puts(连接后字符串:); puts(a0);14、编一个程序,将两个字符串s1和s2比较,若s1s2,输出一个正数;若s1=s2,输出0;若s1s2,输出一个负数。不要用strcpy函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符串相应字符的ASCII码的差值。#include void main() char a2100; puts(输入字符串:); gets(a0); gets(a1); for (int i=0,n=0;a0i!=0&a1i!=0;i+) if (a0i!=a1i) n=a0i-a1i;break; printf(%dn,n);15、编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中。不用strcpy函数。复制时,0后面的字符不复制。#include #include void main() char a2100; puts(输入字符串:); gets(a0); gets(a1); a00=0; strcat(a0,a1); puts(复制后字符串:); puts(a0);从1累加到100 #include main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(sum=%dn,sum); 求1!+2!+n!:#includeVoid main() double fac, sum=0;Int i, n;fac=1;i=1;scanf(“%d”,&n);while(i=n)fac=fac*I;i+;sum=sum+fac;printf(“%lf”,sum);求1-3+5-7+。+101的值#include#includeVoid main()int a,I,j,sum=0;i=1;j=2;while(1=101)sum=sum+i*power(-1,j);i=i+2;j+;printf(“%dn”,sum);求1*2*3*100#include main()int i ,sum;i=1, sum=1;while(i101)i+;sum=sum*i;printf(sum=%dn,sum);水仙花数:#include main()inta,b,c,num;for(a=1;a10;a+)for(b=0;b10;b+)for(c=0;c10;c+)if(a*100+b*10+c=(num=a*a*a+b*b*b+c*c*c)printf(%d,num);从1到1000的素数:#include stdio.hvoid main()int f(int n);int i,k=0;for(i=1;i=1000;i+)if(!f(i)printf(%5d,i);k+;if(k%15=0)printf(n);getch();int f(int n)int j;for(j=2;j=n)return 0;elsereturn 1;最大公约数和最小公倍数:#includeVoid main() int m,n,I,j;Scanf(“m=%d,n=%d”,&m,&n); For(i=m;i=1;i-)If(m%i=0&n%i=0)Break;for(j=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论