C语言期末考试编程题内含代码.doc_第1页
C语言期末考试编程题内含代码.doc_第2页
C语言期末考试编程题内含代码.doc_第3页
C语言期末考试编程题内含代码.doc_第4页
C语言期末考试编程题内含代码.doc_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

倾情奉献-马杰1.打印出所有的“水仙花数”,并按照一行5个的格式输出。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1*1*15*5*53*3*3。main() int i,j,k; for(i=1;i10;i+) for(j=0;j10;j+) for(k=0;k10;k+) if( (i*100+j*10+k)=(i*i*i)+(j*j*j)+(k*k*k) printf(%d%d%d ,i,j,k);getch();2.求1+2!+3!+.+20!的和#include int main() float i,index=1,sum=1; for(i=1;i=20;i+) index*=i;/保存每一项的阶乘 sum+=index;/加上每一项的阶乘 printf(%en,sum); return 0; 3.输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。#include #include main()int i,nLen,flag;char num6;gets(num);nLen =strlen(num);for (i=0;inLen/2;i+)flag=0;if (numi=numnLen-i-1)flag =1;if (flag)puts(回文数);elseputs(不是); 4. 求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并并按照一行5个的格式输出。#includevoidfun(int*a,int*n)inti;*n=0;for(i=1;i=1000;i+)if(i%7=0|i%11=0)&(!(i%7=0&i%11=0)a*n=i;(*n)+;main()intaa1000,n,k;fun(aa,&n);for(k=0;kn;k+)if(k+1)%10=0)printf(n);elseprintf(%5d,aak);5.编程列出200以内所有的素数,按照一行8个的格式输出,并求出所有素数的平均值,#includemain() int m,i,k,n=0; for(m=2;m=200;m+) k=sqrt(m); for(i=2;i=k+1) printf(%4d,m); n+; if(n%8=0) printf(n); printf(n);6、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+.+1/n,当输入n为奇数时,调用函数1+1/3+1/5.+1/n#include #include double fun1(double n) double sum=0; double m=0; for(int i=2; i=n; i+=2) m=1/n; sum+=m; return sum;double fun2(double n) double sum=0; double m=0; for(int i=1; inum; if(num%2=0) coutfun1(num)endl; else coutfun2(num)endl; 7、 已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。#include#includemain() int a,b,c; for(a=1;a10;a+) for(b=0;b10;b+) for(c=1;c10;c+) if(a*100+b*10+c+c*100+b*10+a=1333) printf(%d,%d,%dn,&a,&b,&c); system(pause); return 0;8、用户输入12个0100之间的整数,统计出小于60,60到79,80到100三个范围的整数各有多少个?#include stdio.htypedef struct strint m;int j;int k;s;int fun(s p);main()int a12;int i;s p;p.j=0;p.k=0;p.m=0;printf(输入12个数:);for(i=0;i12;i+)scanf(%d,&ai);for(i=0;i12;i+)if(ai=60&ai=79)p.j+;elsep.k+; fun(p);getch();return 0;fun(s p)printf(成绩小于60分的人数为:%dn,p.m);printf(成绩在6079分的人数为:%dn,p.j);printf(成绩在80100分的人数为:%dn,p.k);return 0;9、求这样一个三位数并输出该数字,该三位数等于其每位数字的阶乘之和。即:abc = a! + b! + c!#include #include int fun(int n)int num = 1;while(n 0)num *= n;n-;return num;int main(int argc, char* argv)int i,j,k;int n;for(n=100;n rndInt) Console.Write(猜大了nn); else if (input rndInt) Console.Write(猜小了nn); while (input != rndInt); Console.Write(恭喜你,猜对了!nn); do Console.Write(若继续猜测输入Y,若退出则输入N!n请输入:); i = Console.ReadLine(); if (i.Trim().Equals(n, StringComparison.OrdinalIgnoreCase) return; if (i.Trim().Equals(y, StringComparison.OrdinalIgnoreCase) goto start; while (!i.Trim().Equals(1); 11、设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。#includeint main()int i;for(i=1002;i1111;i+) /*穷举四位数可能的值*/if(i%10*1000+i/10%10*100+i/100%10*10+i/1000=i*9)/*判断反序数是否是原整数的9倍*/printf(The number satisfied stats condition is: %dn,i);/*若是则输出*/12、100匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序计算大、中、小马的数目。#includeintmain(void)intLar=0,Lit=0,Nor=0;for(Lit=0;Lit100;Lit+=2)for(Nor=0;Nor100;Nor+)for(Lar=0;Lar100;Lar+)if(Lar+Lit+Nor)=100)&(3*Lar+2* Nor+Lit/2)=100)printf(Lar=%d,Nor=%d,Lit=%dn,Lar,Nor,Lit);return0;13、一位司机酒驾撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。(车号为4位数)#includeint main()int i,j,k,c;for(i=1;i10;i+) for(j=0;j10;j+)if(i!=j)k=i*1000+i*100+j*10+j;for(c=20;c*ck;c+) if(c*c=k)printf(%d,k);return 0;14、求S=1/(1*2)+1/(2*3)+1/(3*4)+前50项之和并输出结果。#include #include void main ( void ) int nNum; float fResult = 0.0; printf ( input the n: ); scanf( %d, &nNum );printf ( Calculating.n ); while( nNum 0 ) fResult = fResult + ( 1 / ( float( nNum ) * float( nNum + 1 ) ) ); nNum-; printf( Result is %.3f, fResult );15、编程求出所有1000到3000之间能被7、11、17同时整除的整数,并求其平均值,并输出结果(结果保留两位小数)。#includevoidmain()ints100=0;/数组s用来存放所有符合条件的数字inta=0,i=0;/a用来记数,有几个,最后算平均数用的i是数组角标intsum=0;floataverage;for(intj=1000;j=3000;j+)if(j%7=0&j%11=0&j%17=0)si=j;a+;i+;for(i=0;i=a;i+)sum+=si;average=sum/a;printf(平均数是%.2fnn,average);printf(能整除的数字只有%d个n,a);for(i=0;ia;i+)printf(%d,si);printf(nnn);16、编程找出满足下列条件的所有四位数的和并输出:该数第一、三位数字之和为10,第二、四位数字之积为12。#include stdio.hvoid main()int i,thus,hun,ten,data,sum=0;for(i=1000;i10000;i+)thus=i/1000;hun=i%1000/100;ten=i%100/10;data=i%10;if(thus+ten=10&hun*data=12) sum+=i;printf(%d,sum);17、求并输出所有满足如下条件的三位正整数:它是某整数的平方,它的三位数码有两位是相同的。(如100是10的平方,它有两个0,225是15的平方,它有两个2)。#includevoid main() int i,a,b,c,s; for(i=10;i32;i+) s=i*i; a=s/100; b=(s-100*a)/10; c=s%10; if(a=b) printf(%5d,s); if(b=c) printf(%5d,s); if(c=a) printf(%5d,s); printf(n);18、输出所有大于1010的4位偶数,且该类偶数的各位数字两两不相同。#include #include int main() for (int i=1012; i 0) if ( aj%10 != 0 ) flag = 0; break; +aj%10; j /= 10; if (flag) printf(%6dt, i); 19、编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数字之和。#includeint main() int a,b; printf(input two number:); scanf(%d %d,&a,&b); if(a*a+b*b)=100) printf(n %d,(a*a+b*b)/100); else printf(n %d,a+b); getch();20、编写一个程序实现如下功能:计算1100之间所有包含4或者包含5的数字,并显示其累加之和#include int calc(int x)int i;int j;int sum =0;for(i=0; i10; i+) for(j=0; j10; j+) if (i=x | j=x) sum += 10 *i +j;if (x=0 | x=1) sum

温馨提示

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

评论

0/150

提交评论