《C语言期末考试编程题.pdf》由会员分享,可在线阅读,更多相关《C语言期末考试编程题.pdf(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.打印出所有的“水仙花数”,并按照一行5个的格式输出。所 谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身例 如:153是一 个“水仙花数”,因为 153=1*1*1+5*5*5+3*3*3。#i n c l u d e v o i d m ai n ()i n t a,b,c,s,i=0;f o r (s=100;s 1000;s+)c=s%10;b=s/10%10;a=s/100;i f (s二 二a*a*a+b*b*b+c*c*c)p r i n t f(d t,s);+i;i f(i%5=0)p r i n t f(n);2.求l+2!+3!+.+20!的和#i n c l
2、 u d e v o i d m ai n ()d o u b l e f ac t=1.0,s u m=0.0;i n t i,j;f o r(i=l;i =20;i+)f o r(j=l;j =i;j+)f ac t*=j;s u n i+=f ac t;f ac t=l;p r i n t f(.O f n,s u m);)3.输入一个5位数,判断它是不是回文数。即12321是回文数,个位与方位相同,十位与千位相同。#i n c l u d e#i n c l u d e voidmainOlongnum;inta,b,c,d;p rin tf(Pleaseinputthenumber:
3、)s c a n f&n u m);if(num=100000)(printf(%Thenumberiserror!Xn);e x it(0);a=num/10000;b=num/1000%10;c=num/10%10;d=n u m%10;i f (a=d&b=c)p r i n t f (X n Y e s,t h e%l d i s p al i n d r o me!n ,n u m);e l s ep r i n t f(n N o,t h e%l d i s n o t p al i n d ro m e!n,n u m);)4.求出1到1000之内能被7或11整除、但不能同时被7
4、和11整除的所有整数并并按照一行5个的格式输出。#i n c l u d e v o i d m ai n Qi n t n u m,i=0;f o r(n u m=l;n u m =1000;n u m+)i f (n u m%7 1|n u m%l l)=l)&(n u m%7&n u m%l l)=0)(p r i n t f n u m);+i;i f(i%5=0)p r i n t f(n);)5.编程列出200以内所有的素数,按照一行10个的格式输出,并求出所有素数的平均值,#i n c l u d e#includevoidmainOinti,j,k=0,sum=0,avg=0;
5、for(i=2;i200;i+)(for(j=2;jsqrt(i)|pr i nt f i);+k;sum+=i;if(k%10=0)printf(/zn/z);av g=s u m/k;p r i n t f (/z n T h e av e r ag e i s%d n z,av g);)6、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+.+l/n,当输入n为奇数时,调用函数1+1/3+1/5.+l/n#i n c l u d e v o i d m ai n O(v o i d o d d(i n t n);v o i d e v e n(i n t n);intn;print
6、f(Pleaseinputthenumber:)s c a n f&n);if(n%2)odd(n);elseeven(n);)voidodd(intn)|floatsum=0.0;flo atj;in ti;for(i=l;i=n;i+=2)j=l.0/i;sum+=j;printf(%fn,sum);)voideven(intn)(floatsum=0.0;in ti;floatj;if(n=0)printf(%fn,sum);elsef o r (i=2;i =n;i+=2)j=l.0/i;s u m+=j;)p r i n t f(%f n,s u m);)7、已知 ab c+c b
7、a=13 3 3,其中 a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。#i n c l u d e v o i d m ai n Qi n t a,b,c;f o r(a=l;a=9;a+)f o r (b=0;b =9;b+)f o r (c=l;c =9;c+)i f (100*a+10*b+c+100*c+10*b+a)=13 3 3)p r i n t f (a=%d,b=%d,c二%d n”,a,b,c);)8、用户输入12个0100之间的整数,统计出小于6 0,6 0到7 9,8 0到100三个范围的整数各有多少个?#i n c l u d e#i n c l u d
8、 e v o i d m ai n Ointi,j,k,n,num;i=j=k=O;printf(Pleaseinputthenumberswith0100:);for(n=l;n=0&num=100)ex it(0);if(num60)+i;elseif(num80)+j;else+k;p r i n t f nThereare%dnumbers1essthan60,%dnumbersbetween60and79,%d n u m b e r s b e t we e n 8 0an d l 00.n”,i,j,k);)9、求这样一个三位数并输出该数字,该三位数等于其每位数字的阶乘之和。即:
9、ab c=a!+b!+c!#i n c l u d e v o i d m ai n O(i n t a,b,c,n u m;i n t s(i n t);f o r (n u m=100;n u m 1000;n u m+)a=n u m/100;b=num/10%10;c=num%10;if(num=s(a)+s(b)+s(c)printf(Thenumberis%dn”,num);break;s(intn)(inti,sum=l;for(i=l;i=n;i+)sum*=i;returnsum;10、猜数游戏:由用户随机输入一个1位正整数数让人来猜,只能猜5次,如果人猜对了,则在屏幕上显示
10、“Y o u ar e s o c l e v e r”,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止或者5次都猜不对给出提示“G am e O v e r”。#i n c l u d e#i n c l u d e v o i d m ai n Qi n t n u m,i,n;p r i n t f (P l e as e i n p u t t h e n u m b e r wi th 0 9 f o r g u e s s i n g:);s c a n f&n u m);system(cls);if(num9)exit(0);for(i=l;i=5;i+)(pr
11、intf(XnPleaseinputthenumberyouguess:77);s c a n f&n);if(num=n)(printf(nYouaresoclever!n);break;elseif(n 5)p r i n t f(G am e O v e r!n);11、设 N是一个四位数,它的9 倍恰好是其反序数(例如:123 的反序数是 3 2 1),求 N的值。#i n c l u d e v o i d m ai n O(i n t n,k,a,b,c,d;f o r (n=1000;n =9 9 9 9;n+)a=n/1000;b=n/100%10;c=n/10%10;d=n%
12、10;k=1000*d+100*c+10*b+a;i f (k=9*n)p r i n t f (N=%d n”,n);)12、100匹马驮100担货,大马一匹驮 3 担,中马一匹驮2 担,小马两匹驮 1 担。试编写程序计算大、中、小马的数目。#i n c l u d e v o i d m ai n O(i n t h l,h 2,h 3;f o r (h l=0;h l =100;h l+)f o r(h 2=0;h 2=100;h 2+)f o r(h 3=0;h 3 =100;h 3+=2)i f(h l+h 2+h 3=100&3*h l+2*h 2+l/2*h 3=100)p r
13、i n t f (T h e o l d h o r s e h as%d,m i d d l eh o r s e h as%d,yo u n g h o r s e h as%d nz,h1,h 2,h 3);)13、一位司机酒驾撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。(车号 为 4位数)#i n c l u d e#i n c l u d e v o i d m ai n Oi n t n,a,b,c,d,i;f o r (
14、n=1000;n =9 9 9 9;n+)(a=n/1000;b二n/100%10;c=n/10%10;d=n%10;i=s q r t(n);i f (a=b&c=d&i*i=n)p r i n t f(%d n”,n);14、求S=l/(1*2)+1/(2*3)+1/(3*4)+前5 0项之和并输出结果。#i n c l u d e v o i d m ai n O(f l o at i;f l o at s=0;f o r(i=l;i 5 1;i+)s+=l.0/(i*(i+l);p r i n t f(%f s);15、编程求出所有1000到3 000之间能被7、11、1 7同时整除的
15、整数,并求其平均值,并 输 出 结 果(结果保 田两位小数)。#i n c l u d e v o i d m ai n Oi n t i,k=0,s u m=0;f o r(i=1000;i =3 000;i+)i f (i%7=0&i%l l=0&i%17=0)s u m+=i;+k;printfi);printfsum/k);16、编程找出满足下列条件的所有四位数的和并输出:该数第一、三位数字之和为10,第二、四位数字之积为1 2 o#i nc l u d e#i nc l u d e i nt m a i n(v oi d)(i nt i,j,x,y,z,m;for(i=1 0 0 0
16、;i 1 0 0 0 0;i+)(x=i/1 0 0 0;y=(i/1 0 0)%1 0;z=(i/1 0)%1 0;m=i%1 0;i f(x+z)=1 0&(y+m)=1 2)pr i nt f(%d t,i);)pr i nt f(n);r e t u r nO;)1 7、求并输出所有满足如下条件的三位正整数:它是某整数的平方,它的三位数码有两位是相同的。(如1 0 0是1 0的平方,它有两个0,2 2 5是1 5的平方,它有两个2)。#i nc l u d e#i nc l u d e v oi d m a i nOi nt n,i,a,b,c;for (n=1 0 0;n=9 9 9
17、;n+)|a=n/1 0 0;b=n/1 0%1 0;c=n%1 0;i=s qr t(n);i f(a=b|a=c|b=c)&n=i*i)p rin tf n);)1 8、输出所有大于1 0 1 0的4位偶数,且该类偶数的各位数字两两不相同。#i nc l u d e v oi d m a i nOi nt nu m,a,b,c,d;for(nu m=1 0 1 2;nu m =9 9 9 9;nu m+=2)(a=nu m/1 0 0 0;b=nu m/1 0 0%1 0;c=nu m/1 0%1 0;d=nu m%1 0;i f(a!=b&b!=c&c!=d)p rin tf n um)
18、;)1 9、编制程序要求输入整数a和b,若a?+b 2大 于1 0 0,则输出+b?百位以上的数字,否则输出两数字之和。#i nc l u d e v oi d m a i nO(i nt a,b,s;pr i nt f(Pl e a s e i npu t a a nd b:;s c a nf(%d%d”,&a,&b);s=a*a+b*b;i f(s 1 0 0)pr i nt f(n%d n”,s/1 0 0);e l s epr i nt f(n%d n”,a+b);2 0、编写一个程序实现如下功能:计算1 1 0 0之间所有包含4或者包含5的数字,并显示其累加之和#i nc l u d e v oi d m a i nO(i nt a,b,i,s u m=O;for (i=l;i =9 9;i+)(a=i/1 0;b=i%1 0;i f(a=4|a=5|b=4|b=5)s u m+=i;pr i nt f(%d t”,i);printf(n%dn”,sum);