天津理工大学C语言题库(上)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.键盘上输入n个数,输出最大值最小值#includestdio.hvoidmain(){intarray[50];inti,n;printf(pleaseinputnumbers,input'0'tostop\n);for(i=0;in;i++){scanf(%d,&array[i]);}for(i=0;in;i++)if(array[0]=array[i+1])array[0]=array[i+1];printf(theminnumberis%d\n,array[0]);for(n=0;n=i-2;n++)if(array[0]=array[i+1])array[0]=array[i+1];printf(themaxnumberis%d\n,array[0]);}2.求一个3位数abc使得a的阶乘+b的阶乘+c的阶乘=abc#includestdio.hvoidmain(){intjiecheng(inta);inta,b,c;for(a=1;a=9;a++)for(b=1;b=9;b++)for(c=1;c=9;c++)if(jiecheng(a)+jiecheng(b)+jiecheng(c)==a*100+b*10+c)printf(ais%d,bis%d,cis%d\n,a,b,c);}intjiecheng(inta){inti,s=1;for(i=1;i=a;i++)s=s*i;returns;}//输出1453.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。#includestdio.hvoidmain(){inti;floatm=1,n=1,t,s=0;for(i=1;i=20;i++)/*就是进行二十次循环,求个和*/{t=m+n;s=s+t/n;m=n;n=t;}printf(%9.6f\n,s);}4.输入整数N,求N的阶乘#includestdio.hvoidmain(){inti,j=1,n;scanf(%d,&n);for(i=1;i=n;i++)j=j*i;printf(%d\n,j);}/*注意在实际打的时候,i,j要定义为float型,其初值比都是1*/5.输入一串正整数,倒序输出#includestdio.hvoidmain(){inta[10],i;for(i=0;i=9;i++)scanf(%d,&a[i]);for(i=9;i=0;i--)printf(%d\n,a[i]);}6.求10~1000之间所有数字之和为5的整数的个数#includestdio.hvoidmain()#includestdio.hintmain(){inti;intcounter=0;for(i=100;i1000;++i)if(i/100+(i/10)%10+i%10==5)++counter;printf(%d\n,counter);return0;}7.输入字符串打印除小写,元音,字母之外的。用数组{inti,j;chars[20];/*字符串长度(实际上是字符总数)不超过20*/for(i=0;i20;i++)/*从s[0]开始,逐个字符输*/scanf(%c,&s[i]);for(j=0;j20;j++){if(s[j]!='a'&&s[j]!='e'&&s[j]!='i'&&s[j]!='o'&&s[j]!='u')printf(%c,s[j]);/*不换行,各字符在一行输出*/}}8.从键盘输入10个整数,计算其中偶数的和以及偶数平均数,(用小数表示)#includestdio.hvoidmain(){inta[10];inti,s=0;floatm;for(i=0;i=9;i++){scanf(%d,&a[i]);if(a[i]%2==0){s=s+a[i];m=(float)(s)/10;}}printf(%d\n%f\n,s,m);}9.从键盘输入10个整数,计算其中奇数之和以及奇数的平均数,(用小数表示)#includestdio.hvoidmain(){inta[10];inti,s=0;floatm;for(i=0;i=9;i++){scanf(%d,&a[i]);if(a[i]%2!=0){s=s+a[i];m=(float)(s)/10;}}printf(%d\n%f\n,s,m);}10.循环语句求Sn=a+aa+aaa+…+aaa…a(n个a)的值其中a是一个数字n由键盘输入#includestdio.hmain(){doublen1,x,t,t1;intcx,i;printf(请输入a和n,用逗号隔开\n);scanf(%lf,%d,&n1,&cx);t=n1;t1=n1;for(i=1;icx;i++){t=t*10+n1;t1+=t;}printf(%0.0lf,t1);}11.求1!+2!+3!+…+n!(当n=10时得4037913)#includestdio.hvoidmain(){inti,j=1,n,sum=0;printf(请输入N的值\n);scanf(%d,&n);for(i=1;i=n;i++){j=j*i;sum=sum+j;}printf(%d\n,sum);}12.1*1+2*2+….+n*n=1000的最大数n#includestdio.h#includemath.hvoidmain(){inti,j=1,k,sum=0;for(i=1;sum=1000;j++){i=j*j;sum=sum+i;}k=sqrt(i)-1;printf(%d\n,k);}13.0~1000同时被7和13整除的数#includestdio.h{intn;for(n=1;n=1000;n++){if(n%7==0&&n%13==0)printf(%d\n,n);}}14.1/1+1/2+1/3+…+1/20#includestdio.hmain(){intn;doubles=0.0;for(n=1;n=20;n++)s=s+1.0/n;printf(s=%f,s);}15.sum=1-1/3+1/5-1/7+…+1/n(1/n0.0001)#includestdio.h#includemath.hvoidmain(){inti,j=1;floatk=1,sum=0;for(i=1;fabs((float)(j)/i)1e-4;){sum=sum+(float)(j)/i;if(i0){i=i+2;i=-i;}else{i=i-2;i=-i;}}printf(%f\n,sum);}16.求e用e=1+1/1!+1/2!+…+1/n!(1/n!10的-6次方)#includestdio.hvoidmain(){inti,j=1,n=1;floatsum=1;for(i=1;((float)(i)/n)1e-6;j++){n=n*j;sum=sum+(float)(i)/n;}printf(%f\n,sum);}17.用л∕4约等于1-1/3+1/5-1/7+…直到某一项的绝对值小于10的-6次方为止#includestdio.h#includemath.hvoidmain(){floatj=1,pi=0,n=1.0;/*pi就是∏*/inti=1;while(fabs(j)1e-6)/*最后一项绝对值大于10的-6次方,用到了数学函数*/{pi=pi+j;i=-i;n=n+2;j=i/n;}pi=pi*4;printf(%10.6f\n,pi);/*规定长为十位,有六位小数*/}18.输出1~10的阶乘,分行打出#includestdio.hvoidmain(){inti,j=1;for(i=1;i=10;i++){j=j*i;printf(%d\n,j);}}19.输入正数,判断是否是素数#includestdio.hvoidmain(){inti,m;scanf(%d,&m);for(i=2;i=m;i++)if(m%i==0)break;/*这句话很关键*/if(im)printf(%d不是一个素数,m);elseprintf(%d是一个素数,m);}20.1+(1+2)+(1+2+3)+…+(1+2+…+n)输入n=20,得1540#includestdio.hvoidmain(){inti,n,temp=0,sum=0;scanf(%d,&n);for(i=1;i=n;i++){temp=temp+i;sum=sum+temp;}printf(%d\n,sum);}21.输入年月,输出该月有多少天。#includestdio.hvoidmain(){inta,c;scanf(%d,%d,&a,&c);if(((a%4==0)&&(a%100!=0))||(a%400==0)){if(c==2)printf(29\n);}else{if(c==2)printf(28\n);}switch(c){case1:case3:case5:case7:case8:case10:case12:printf(%d\n,31);break;case4:case6:case9:case11:printf(%d\n,30);break;}}22.编一个计算器,可以计算“+”“-”“*”“/”#includestdio.hvoidmain(){floata,b;charf;scanf(%f,&a);f=getchar();scanf(%f,&b);switch(f){case'+':printf(a+b=%f,a+b);break;case'-':printf(a-b=%f,a-b);break;case'*':printf(a*b=%f,a*b);break;case'/':printf(a/b=%f,a/b);break;default:printf(inputerror!\n);}}23.求555555的约数中最大的3位数:777#includestdio.hvoidmain(){longj=555555;inti;for(i=999;i=100;i--)if(j%i==0){printf(%d\n,i);break;}}24.韩信点兵:士兵5人一行,末行一人;6人一行,末行5人;7人一行,末行4人,11人一行,末行10人。求士兵人数〉11:2111#includestdio.hvoidmain(){inti;for(i=11;i=3000;i++){if(i%5==1&&i%6==5&&i%7==4&&i%11==10)printf(%d\n,i);}}25.爱因斯坦阶梯问题(119)#includestdio.hvoidmain(){inti;for(i=1;i=200;i++){if(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0)printf(%d\n,i);}}26.输入m,n求其最小公倍数#includestdio.hvoidmain(){intm,n,max,min,i;printf(请输入两个数(逗号隔开):);scanf(%d,%d,&m,&n);if(mn){i=m;m=n;n=i;}for(i=m;i0;i--){if(m%i==0&&n%i==0){max=i;min=m*n/max;break;}}printf(这两个数的最小公倍数是%d\n,min);}27输入m,n求其最大公约数#includestdio.hvoidmain(){intm,n,max,i;printf(请输入两个数(逗号隔开):);scanf(%d,%d,&m,&n);if(mn){i=m;m=n;n=i;}for(i=m;i0;i--){if(m%i==0&&n%i==0

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功