天津理工150c语言题库.docx
- 文档编号:6738065
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:29
- 大小:22.49KB
天津理工150c语言题库.docx
《天津理工150c语言题库.docx》由会员分享,可在线阅读,更多相关《天津理工150c语言题库.docx(29页珍藏版)》请在冰豆网上搜索。
天津理工150c语言题库
1.键盘上输入n个数,输出最大值最小值(键盘上输入一组数,输出其中中最大数最小数。
要求形式:
如n=10,然后输出10个数。
)
#include
main()
{
inta[50],i,n;
printf("pleaseinputnumbers,input'0'tostop\n");
for(i=0;;i++)
{
scanf("%d",&a[i]);
if(a[i]==0)
break;
}
for(n=0;n<=i-2;n++)
if(a[0]>=a[n+1])
a[0]=a[n+1];
printf("theminnumberis%d\n",a[0]);
for(n=0;n<=i-2;n++)
if(a[0]<=a[n+1])
a[0]=a[n+1];
printf("themaxnumberis%d\n",a[0]);
}
2.求一个3位数abc使得a的阶乘+b的阶乘+c的阶乘=abc(求一个3位数abc,这个3位数满足abc=a!
+b!
+c!
答案:
145)
#include
main()
{
inta,b,c,n,fac(inti);
for(n=100;n<1000;n++)
{
a=n/100;
b=n/10-a*10;
c=n%10;
if(n==fac(a)+fac(b)+fac(c))
printf("%d\n",n);
}
}
intfac(inti)
{
intj,s=1;
for(j=1;j<=a;j++)
s=s*j;
returns;
}
//输出145
3.题目:
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
答案:
32.66(要求答案一定要有小数)
#include
void main()
{
int i;
float m=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!
并输出
#include
voidmain()
{
inti,j=1,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
j=j*i;
printf("%d\n",j);
}
5.输入一串正整数,倒序输出
#include
voidmain()
{
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.求100~100000之间所有数字之和为5的整数的个数(120)
#include
void main()
{
int i,n=0;
for(i=100;i<100000;i++)
if(i/10000+(i/1000)%10+(i/100)%10+(i/10)%10+i%10==5)
n++;
printf("%d\n",n);
}
7.输入字符串打印除小写,元音(aeiou)字母之外的。
用数组
#include
voidmain()
{
inti,j;
chars[20];
for(i=0;i<20;i++)
scanf("%c",&s[i]);
for(j=0;j<20;j++)
{
if(s[j]!
='a'&&s[j]!
='e'&&s[j]!
='i'&&s[j]!
='o'&&s[j]!
='u')
printf("%c",s[j]);
}
}
8.从键盘输入10个整数,计算其中偶数的和以及偶数平均数,(用小数表示)
#include
void main()
{
int a[10],i=0,n=0,s=0;
printf("please input 10 int numbers.\n");
for(;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]%2==0)
{
n++;
s=s+a[i];
}
}
printf("%d,%d,%f",n,s,(float)s/n);
}
9.从键盘输入10个整数,计算其中奇数之和以及奇数的平均数,(用小数表示)
#include
voidmain()
#include
=0){n++;s=s+a[i];}}printf("%d,%d,%f",n,s,(float)s/n);}
10.循环语句求Sn=a+aa+aaa+…+aaa…a(n个a)的值其中a是一个数字n由键盘输入(如a=2,n=5,得数为24690)
#include
main()
{
longa,b,c;
inti,t;
scanf("%d,%d",&a,&t);
b=a;
c=a;
for(i=1;i<=t;i++)
{
b=b*10+a;
c=c+b;
}
printf("%d\n",c);
}
11.求1!
+2!
+3!
+…+n!
(当n=10时得4037913)
#include
voidmain()
{
inti,j=1,n,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
j=j*i;
sum=sum+j;
}
printf("%d\n",sum);
}
12.输入满足条件的最大数n,条件为:
1*1+2*2+….+n*n<=1000唯一答案:
n=13)
#include
main()
{
inti,t=0;
for(i=1;t<=1000;i++)
t=t+i*i;
printf("%d\n",i-2);
}
13.0~1000同时被7和13整除的数
#include
voidmain()
{
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
#include
main()
{
inti=1;
floatsum=0,j=1;
for(;i<=20;i++)
sum=sum+j/i;
printf("%f\n",sum);
}
15.sum=1-1/3+1/5-1/7+…+1/n(1/n<0.0001)
#include
#include
voidmain()
{
inti,j=1;
floatk=1,sum=0;
for(i=1;fabs((float)(j)/i)>1e-4;)
{
sum=sum+(float)(j)/i;
if(i>0)
{
i=i+2;
i=-i;
}
else
{
i=i-2;
i=-i;
}
}
printf("%f\n",sum);
}
16.求e≈1+/1!
+1/2!
+…+1/n!
一直加到1/n!
<10ˉ6(10的负6次方),求e的近似值
#include
voidmain()
{
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次方为止
#include
#include
voidmain()
{
floatj=1,pi=0,n=1.0;
inti=1;
while(fabs(j)>1e-6)
{
pi=pi+j;
i=-i;
n=n+2;
j=i/n;
}
pi=pi*4;
printf("%10.6f\n",pi);
}
18.输出1~10的阶乘,分行打出
#include
void main()
{
int i,j=1;
for(i=1;i<=10;i++)
{
j=j*i;
printf("%d\n",j);
}
}
19.输入正数,判断是否是素数
#include
voidmain()
{
inti,m;
scanf("%d",&m);
for(i=2;i<=m;i++)
if(m%i==0)break;/*这句话很关键*/
if(i printf("%d不是一个素数",m); else printf("%d是一个素数",m); } 20.1+(1+2)+(1+2+3)+…+(1+2+…+n)输入n=20,得1540 #include voidmain() { 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.输入年月,输出该月有多少天。 (答案: 如输入1992-2得到29,输入2009-2得到28) #include voidmain() { 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.编一个计算器,可以计算“+”“-”“*”“/” #include voidmain() { 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 #include voidmain() { 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) #include voidmain() { 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爱因斯坦阶梯问题: 台阶,每步跨2阶最后剩1阶,跨3阶剩2阶,跨5阶剩4阶,跨10阶剩5阶,跨7阶一个不剩正好走完,问一共有多少阶? (答案: 119) #include voidmain() { 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求其最小公倍数(答案: 如输入12和8,输出4和24;输入4和16,输出4和8) #include voidmain() { intm,n,max,min,i; printf("请输入两个数(逗号隔开): "); scanf("%d,%d",&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i--) { if(m%i==0&&n%i==0) { max=i; min=m*n/max; break; } } printf("这两个数的最小公倍数是%d\n",min); } 27输入m,n求其最大公约数(答案: 如输入24和16,输出8) #include voidmain() { intm,n,max,i; printf("请输入两个数(逗号隔开): "); scanf("%d,%d",&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i--) { if(m%i==0&&n%i==0) { max=i; break; } } printf("这两个数的最大公约数是%d\n",max); } ps: 1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include voidmain() { intm,n,max,min,i; printf("请输入两个数(逗号隔开): "); scanf("%d,%d",&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i--) { if(m%i==0&&n%i==0) { max=i; min=m*n/max; break; } } printf("这两个数的最大公约数是%d,最小公倍数是%d\n",max,min); } 28输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。 #include voidmain() { charc; intletters=0,space=0,digit=0,other=0; printf("请输入一行字符: \n"); while((c=getchar())! ='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; elseif(c=='') space++; elseif(c>='0'&&c<='9') digit++; else other++; } printf("字母数: %d\n空格数: %d\n数字数: %d\n其他字符数: %d\n",letters,space,digit,other); } 29.输入十个数,将其排序 #include voidmain() { inti,j,k,a[10]; printf("Pleaseinput10numbers: "); for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=0;j<9;j++) for(i=0;i<9-j;i++) { if(a[i]>a[i+1]) { k=a[i]; a[i]=a[i+1]; a[i+1]=k; } } for(i=0;i<10;i++) printf("%d\n",a[i]); } 30.输出100~200之间的素数 #include intjudge(inta) { intj=1,i; for(i=2;i<=a-1;i++) { if(a%i==0) j=0; } return(j); } voidmain() { intb,c; printf("Theprimenumbersin100~200are: \n"); for(b=0;b<10;b++) for(c=0;c<10;c++) { if(judge(100+10*b+c)) printf("%d",100+10*b+c); } }_ 31题: 由36块砖,男人一次可以搬4块,女人一次可以搬3块,2个小孩一次可以搬一块,问男人女人小孩各需多少人可以一次性将砖搬完? (3男,3女,30小孩) #include voidmain() { inta,b,c,d; for(a=0;a<=9;a++) for(b=0;b<=12;b++) for(c=0;c<=72;c++) { if(4*a+3*b+0.5*c==36&&a+b+c==36) printf("Itneed%dmen\nItneed%dwomen\nItneed%dchildren\n",a,b,c); } } 32题: 输入一个字符串,将其正序反序输出? #include voidmain() { chara[10]; inti,j,k; printf("Pleaseinputastring: "); for(i=0;i<10;i++) scanf("%c",&a[i]); printf("The->is: "); printf("\n"); for(j=0;j<10;j++) printf("%c",a[j]); printf("\n"); printf("The<-is: "); for(k=9;k>=0;k--) printf("%c",a[k]); } 33题: 输入一行字符,统计以空格间隔的的单词个数? #include voidmain() { charstring[81]; inti,num=0,word=0; charc; gets(string); for(i=0;(c=string[i])! ='\0';i++) if(c=='')word=0; elseif(word==0) { word=1; num++; } printf("Thereare%dwordsintheline.\n",num); } 34题: 输出一个十进制数,将其转化为一个2进制数输出? #include voidmain() { inta,i=0,j,s[8]; printf("Pleaseinputanumber: "); scanf("%d",&a); while(a>0) { s[i]=a%2; a=a/2; i++; } printf("Theresultis: "); for(j=i-1;j>=0;j--) printf("%d",s[j]); } 35题: 水仙花数,输入一个三位数,该三位数各位数字立方和等于该数本身? #include voidmain() { inta,b,c; for(a=0;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) if(100*a+10*b+c==a*a*a+b*b*b+c*c*c) printf("%3d\n",100*a+10*b+c); } 36题: 求从3开始到小于100的所有双素数? #include #include voidmain() { intprime(intx); inta,c,p; for(p=3;p<=100;p++) { a=prime(p); c=prime(p+2); if(a&&c) printf("%d/%d\n",p,p+2); } } intprime(intx) { inti,k; k=(int)sqrt(x); for(i=2;i<=k;i++) { if(x%i==0) return0; } return1; } 37题: 求两位绝对素数? #include #include intisPrime(intn) { inti,k; k=(int)sqrt(n); for(i=2;i<=k;i++) if(n%i==0) return0; returnn; } voidabsPrimeTens() { intx,y,i,j; for(i=10;i<100;i++) { x=isPrime(i); if(x)//表示x不为零,即是素数 { j=10*(x%10)+x/10; y=isPrime(j); if(y>=10&&y<100) printf("%d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津 理工 150 语言 题库