《C语言期末考试编程题内含代码.docx》由会员分享,可在线阅读,更多相关《C语言期末考试编程题内含代码.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、倾情奉献马杰L打印出所有的“水仙花数”,并按照一行5个的格式输出。所谓“水仙花数”是指一 个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为 153=1*1*1+5*5*5+3*3*3。main()int ij,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(H%d%d%d n,iJ,k);getch();)2 ,求1+2!+3!+.+20!的和#includeint main ()float i, index=l, sum
2、=l;for(i=l;i=20;i+)(index*=i; 保存每一项的阶乘sum+=index; 加上每一项的阶乘printf (z,%en/z, sum);return 0;)3.输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十 位与千位相同。.#include include main()int i,nLen,flag;char num6;printf (input the n:);scanf( d,&nNum );printf (Calculating.An);while( nNum 0 )(fResult = fResult + (1 / (float(
3、nNum ) * float( nNum + 1 );nNum-;)printf( HResult is %.3f fResult);)15、编程求出所有1000到3000之间能被7、11、17同时整除的整数,并求其平均 值,并输出结果(结果保留两位小数)。#include void main()(int s100=0;数组s用来存放所有符合条件的数字int a=0,i=0; a用来记数,有几个,最后算平均数用的i是数组角标int sum=0;float average;for (intj=1000;j=3000;j+)if (j%7=0 & j%11=0 & j%17=0)si=j;a+;i
4、+;)for(i=0;iv=a;i+)(sum+=si;)average=sum/a;printf (平均数是 .2fnn”,average);printf(”能整除的数字只有61个n”,a);for(i=0;ia;i+)printf(H%d H,si);printf(”nnn);16、编程找出满足下列条件的所有四位数的和并输出:该数第一、三位数字之和为 10,第二、四位数字之积为12o#include “stdio.hvoid main()int i,thus,hun,ten,data,sum=0;for(i=1000;i10000;i+)thus=i/1000;hun=i%1000/100
5、;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 i5a,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(H%5dH,s);if(b=c)printf(,%5dn,s);if(c=a)p
6、rintf(n%5dH,s);printf(nnn);)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,若a?+b2大于100,则输出d+bz百位以上的数字,否则输出两数字之和。#includeint main()(int a,b;printf(ninput two number:);scanf(H%d
7、 %d”,&a,&b);if(a*a+b*b)=100)printf(Mn %d(a*a+b*b)/100); elseprintf(Hn %d”,a+b); getch();)20、编写一个程序实现如下功能:计算1100之间所有包含4或者包含5的数字, 并显示其累加之和include int calc(int x) ( int i;intj;int sum =0;for(i=0;i10;i+)for(j=0;j10;j+) if (i=x II j=x) sum += 10 *i +j; ) if (x=0|x=1) sum+=100;) return sum;) int main() (
8、int sum; sum = calc(2); printf(,sum= %dnH, sum); return 0;)21.求平均成绩#include void main()float score=0, average=0; int n=0;doscanf(f, &score);if (score=0)average+=score; n+;while (score=0);if(n!=0) average/=n;printf (6. 2f,average);gets(num);nLen =strlen(num);for (i=0;ivnLen/2;i+)fiag=o;if (numi=numnL
9、en-i-1)flag =1 ;)if (flag) puts(回文数)else puts(不是);)4.求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并 并按照一行5个的格式输出。#includevoid fun (int *a, int *n)(int i;*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()int aa1000,n,k;fun(aa,&n);for (k=0;kn;k+)if (k+1)%10=0) printf(,nn);el
10、se printf(,%5d,aak);5,编程列出200以内所有的素数,按照一行8个的格式输出,并求出所有素数的平 均值,.#include main()int m,i,k,n=O;for(m=2;m=200;m+)k=sqrt(m);for(i=2;i=k+l)printf(n%4d,m);n+;if(n%8=0)printf(nnn);)printf(,n,);)6、编写一个函数,输入n为偶数时,调用函数求l/2+1/4+.+l/n,当输入n为奇 数时,调用函数l+l/3+l/5.+l/n#include include double fun1 (double n)(double sum
11、=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; i=n; i+=2)(m=1/n;sum+=m;)return sum;)void main()(int num;cinnum;if(num%2=0)(coutfun1 (num)endl;)else(coutfun2(num)endl;)7、已知abc+cba=1333,其中a, b, c均为一位数,编程求出满足条件的a, b, c所有 组合。.#in
12、clude#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(H%d,%d,%dnH,&a,&b,&c);system(,pausen);return 0;8、用户输入12个0100之间的整数,统计出小于60, 60至IJ 79, 80到100三个 范围的整数各有多少个?#include stdio.htypedef struct strint m;intj;int k;)S;int fun(s p);main()int a
13、12;int i;sp;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分的人数为:%dnn,p.m);printf(“成绩在 60-79 分的人数为:%dnzp.j);printf(“成绩在 80-100 分的人数为:%dnn,p.k);return 0;9、求这样一个三位数并输出该数字,该三位数等于其每位数字的阶乘之和。即
14、: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 ij,k;int n;for(n=100;n rndlnt)(Console. Wiite(猜大了nn”);)else if (input rndlnt)(Console. Write(猜小了nrT); while (input != rndlnt);Console.Wiite(恭喜你,猜对了! nn);do(Console
15、.W他(“若继续猜测输入丫,若退出则输入N!n请输入:”);i = Console.ReadLine();if (i.Trim().Equals(,n,J Stringcomparison.OrdinallgnoreCase)(return;)if (i.Trim().Equals(,y Stringcomparison.OrdinallgnoreCase)goto start; while (!i.Trim().Equals(,(1); )IK设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。#includeint main()(int i;for(i=10
16、02;i1111 ;i+) /*穷举四位数可能的值*/if(i%10*1000+i/10%10*100+i/100%10*10+i/1000=i*9)/*判断反序数是否是原整数的9倍*/printf(nThe number satisfied stats condition is: %dnn,i);/*若是则输出*/12、100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。 试编写程序计算大、中、小马的数目。ttinclude int Lar = 0, for (Lit = 0;(for ( Nor =for(Lar =int Lar = 0, for (Lit = 0;(
17、for ( Nor =for(Lar =int main (void)Lit = 0, Nor = 0;Lit 100;Lit+=2)0; Nor100;Nor+)0; Lar100;Lar+)if (Lar Lit Nor) = 100) & (3 * Lar 2 *Nor + Lit / 2) = 100) printf CLar = %d, Nor = %d , Lit = %d n, Lar, NorLit);return 0;13、一位司机酒驾撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车 号。(车号为4位数)#includeint main()intfor(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(H%dM,k);) return 0;14、求S=l/(1*2) +1/(2*3) +1/(3*4) +前50项之和并输出结果。#include include void main ( void )(int nNum;float fResult = 0.0;