您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言期末考试编程题
1.打印出所有的“水仙花数”,并按照一行5个的格式输出。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。#includestdio.hvoidmain(){inta,b,c,s,i=0;for(s=100;s1000;s++){c=s%10;b=s/10%10;a=s/100;if(s==a*a*a+b*b*b+c*c*c){printf(%d\t,s);++i;if(i%5==0)printf(\n);}}}2.求1+2!+3!+...+20!的和#includestdio.hvoidmain(){doublefact=1.0,sum=0.0;inti,j;for(i=1;i=20;i++){for(j=1;j=i;j++)fact*=j;sum+=fact;fact=1;}printf(%.0f\n,sum);}3.输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。#includestdio.h#includestdlib.hvoidmain(){longnum;inta,b,c,d;printf(Pleaseinputthenumber:);scanf(%d,&num);if(num=9999||num=100000){printf(%Thenumberiserror!\n);exit(0);}a=num/10000;b=num/1000%10;c=num/10%10;d=num%10;if(a==d&&b==c)printf(\nYes,the%ldispalindrome!\n,num);elseprintf(\nNo,the%ldisnotpalindrome!\n,num);}4.求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并并按照一行5个的格式输出。#includestdio.hvoidmain(){intnum,i=0;for(num=1;num=1000;num++)if(((num%7||num%11)==1)&&((num%7&&num%11)==0)){printf(%d\t,num);++i;if(i%5==0)printf(\n);}}5.编程列出200以内所有的素数,按照一行10个的格式输出,并求出所有素数的平均值,#includestdio.h#includemath.hvoidmain(){inti,j,k=0,sum=0,avg=0;for(i=2;i200;i++){for(j=2;j=sqrt(i);j++)if(i%j==0)break;if(jsqrt(i)){printf(%d\t,i);++k;sum+=i;if(k%10==0)printf(\n);}}avg=sum/k;printf(\nTheaverageis%d\n,avg);}6、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1+1/3+1/5...+1/n#includestdio.hvoidmain(){voidodd(intn);voideven(intn);intn;printf(Pleaseinputthenumber:);scanf(%d,&n);if(n%2)odd(n);elseeven(n);}voidodd(intn){floatsum=0.0;floatj;inti;for(i=1;i=n;i+=2){j=1.0/i;sum+=j;}printf(%f\n,sum);}voideven(intn){floatsum=0.0;inti;floatj;if(n==0)printf(%f\n,sum);else{for(i=2;i=n;i+=2){j=1.0/i;sum+=j;}printf(%f\n,sum);}}7、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。#includestdio.hvoidmain(){inta,b,c;for(a=1;a=9;a++)for(b=0;b=9;b++)for(c=1;c=9;c++)if((100*a+10*b+c+100*c+10*b+a)==1333)printf(a=%d,b=%d,c=%d\n,a,b,c);}8、用户输入12个0-100之间的整数,统计出小于60,60到79,80到100三个范围的整数各有多少个?#includestdio.h#includestdlib.hvoidmain(){inti,j,k,n,num;i=j=k=0;printf(Pleaseinputthe12numberswith0~100:);for(n=1;n=12;n++){scanf(%d,&num);if(!(num=0&&num=100))exit(0);if(num60)++i;elseif(num80)++j;else++k;}printf(\nThereare%dnumberslessthan60,%dnumbersbetween60and79,%dnumbersbetween80and100.\n,i,j,k);}9、求这样一个三位数并输出该数字,该三位数等于其每位数字的阶乘之和。即:abc=a!+b!+c!#includestdio.hvoidmain(){inta,b,c,num;ints(int);for(num=100;num1000;num++){a=num/100;b=num/10%10;c=num%10;if(num==s(a)+s(b)+s(c)){printf(Thenumberis%d\n,num);break;}}}s(intn){inti,sum=1;for(i=1;i=n;i++)sum*=i;returnsum;}10、猜数游戏:由用户随机输入一个1位正整数数让人来猜,只能猜5次,如果人猜对了,则在屏幕上显示“Youaresoclever”,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止或者5次都猜不对给出提示“GameOver”。#includestdio.h#includestdlib.hvoidmain(){intnum,i,n;printf(Pleaseinputthenumberwith0~9forguessing:);scanf(%d,&num);system(cls);if(num0||num9)exit(0);for(i=1;i=5;i++){printf(\nPleaseinputthenumberyouguess:);scanf(%d,&n);if(num==n){printf(\nYouaresoclever!\n);break;}elseif(nnum){printf(\nThenumberyouinputislittle,goonplease!Youhave%dtimesleft!\n,5-i);continue;}else{printf(\nThenumberyouinputislarge,goonplease!Youhave%dtimesleft!\n,5-i);continue;}}if(i5)printf(GameOver!\n);}11、设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。#includestdio.hvoidmain(){intn,k,a,b,c,d;for(n=1000;n=9999;n++){a=n/1000;b=n/100%10;c=n/10%10;d=n%10;k=1000*d+100*c+10*b+a;if(k==9*n)printf(N=%d\n,n);}}12、100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。试编写程序计算大、中、小马的数目。#includestdio.hvoidmain(){inth1,h2,h3;for(h1=0;h1=100;h1++)for(h2=0;h2=100;h2++)for(h3=0;h3=100;h3+=2){if(h1+h2+h3==100&&3*h1+2*h2+1/2*h3==100)printf(Theoldhorsehas%d,middlehorsehas%d,younghorsehas%d\n,h1,h2,h3);}}13、一位司机酒驾撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。(车号为4位数)#includestdio.h#includemath.hvoidmain(){intn,a,b,c,d,i;for(n=1000;n=9999;n++){a=n/1000;b=n/100%10;c=n/10%10;d=n%10;i=sqrt(n);if(a==b&&c==d&&i*i==n)printf(%d\n,n);}}14、求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和并输出结果。#includestdio.hvoidmain(){floati;floats=0;for(i=1;i51;i++)s+=1.0/(i*(i+1));printf(%f,s);}15、编程求出所有1000到3000之间能被7、11、17同时整除的整数,并求其平均值,并输出结果(结果保留两位小数)。#includestdio.hvoidmain(){inti,k=0,sum=0;for(i=1000;i=3000;i++)if(i%7==0&&i%11==0&&i%17==0){sum+=i;++k;printf(%d\t,i);}printf(\n%d,sum/k);}16、编程找出满足下列条件的所有四位数的和并输出:该数第一、三位数字之和为10,第二、四位数字之积为12。#includestdio.h#includeconio.hintmain(void){inti,j,x,y,z,m;for(i=1000;i10000;i++){x=i/1000;y=(i/100)%10;z=(i/10)%10;m=i%10;if((x+z)==10&&(y+m)==12){printf(%d\t,i);}}printf(\n);return0;}17、求并输出所有满足如下条件的三位正整数:它是某整数的平方,它的三位数码有两位是相同的。(如100是10的平方,它有两个0,225是15的平方,它有两个2)。#includestdio.h#includemath.hvoidmain(){intn,i,a,b,c;for(n=100;n=999;n++){a=n/100;b=n/10%10;c=n%10;i=sqrt(n);if((a==b||a==c||b==c)&&n==i*i)printf(%d\t,n);}}18、输出所有大于1010的4位偶数,且该类偶数的各位数字两两不相同。#includestdio.hvoidmain(){intnum,a,b,c,d;for(num=1012;num=9999;num+=2){a=num/1000;b=num/100%10;c=num/10%10;d=num%10;if(a!=b&&b!=c&&c!=d)printf(%d\t,num);}}19、编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数字之和。#includestdio.hvoidmain(){int
本文标题:C语言期末考试编程题
链接地址:https://www.777doc.com/doc-5922201 .html