前言:
今天同学们对“c语言函数题目”大致比较讲究,看官们都想要学习一些“c语言函数题目”的相关内容。那么小编在网摘上收集了一些有关“c语言函数题目””的相关内容,希望咱们能喜欢,各位老铁们快快来学习一下吧!e1.键盘上输入n个数,输出最大值最小值.
# include <stdio.h>
# define M 30
main()
{ int a[M],n,i,max,min;
printf("请输入n(n<%d):",M);
scanf("%d",&n);
printf("请输入这%d个数:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=min=a[0];
for(i=0;i<n;i++)
{if(a[i]>max)
max=a[i]; }
for(i=0;i<n;i++)
{if(a[i]<min)
min=a[i]; }
printf("这%d个数中最大的数为:%d\n",n,max);
printf("这%d个数中最小的数为:%d\n",n,min);
}
2. 求这样一个三位数,该三位数等于其每位数字的阶乘之和。
#include<stdio.h>
int fab(int n)
{ int i,j=1;
for(i=1;i<=n;i++)
j=j*i;
return j;
}
main()
{ int i,s1,s2,s3;
for(i=100;i<999;i++)
{s1=i/100;
s2=(i-s1*100)/10;
s3=i%10;
if(i==(fab(s1)+fab(s2)+fab(s3)))
printf("the number is:%d\n",i);
}
}
3.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
# include <stdio.h>
main()
{ int n;
float t=0 ,s=2,k=1,m;
for(n=1;n<=20;n++)
{ t=t+s/k;
m=s; s=s+k;k=m;}
printf("%f\n",t);
}
4.输入整数N,求N的阶乘
# include <stdio.h>
main()
{int n,i,s=1;
printf("请输入您要计算的数n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s*i;
printf("%d!=%d\n",n,s);
}
5.输入一串正整数,倒序输出
# include <stdio.h>
# define M 100
main()
{ int i,j;
char a[M];
printf("请输入一列数字:\n");
for(i=0;i<M;i++)
{scanf("%c",&a[i]);
if(a[i]=='\n')
break;
}
printf("则该列数字倒序输出为:");
for(j=i;j>=0;j--)
printf("%c",a[j]);
printf("\n");
}
6. 求100~100000之间所有数字之和为5的整数的个数
# include <stdio.h>
main()
{ long int i,a1,a2,a3,a4,a5,j=0;
for(i=100;i<100000;i++)
{ a1=i/10000;
a2=(i-a1*10000)/1000;
a3=(i-a1*10000-a2*1000)/100;
a4=(i-a1*10000-a2*1000-a3*100)/10;
a5=i-a1*10000-a2*1000-a3*100-a4*10;
if(a1+a2+a3+a4+a5==5)
j=j+1; }
printf("整数100至100000之间所有数字之和为5的整数的总个数为:%ld\n",j);
}
7. 输入字符串,打印除小写元音字母之外的。
# include <stdio.h>
#define M 100
main()
{ int i,n;
char a[M];
printf("请输入一列字符串:");
for(i=1;i<M;i++)
{scanf("%c",&a[i]);
if(a[i]=='\n') break;}
printf("则该列字符串中去除小写元音字母后输出为:");
for(n=1;n<=i;n++)
{if((a[n]!=97)&(a[n]!=101)&(a[n]!=105)&(a[n]!=111)&(a[n]!=117))
printf("%c",a[n]); }
}
8. 从键盘输入10个整数,计算其中偶数的和以及偶数平均数,(用小数表示)
# include <stdio.h>
main()
{ int i,a[10];
float s,j=0,k=0;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{if(a[i]%2==0)
{j=j+a[i];
k=k+1;}}
s=j/k;
printf("这10个数中偶数和为:%1.0f\n这10个数中偶数的平均值为:%5.5f\n",j,s);
}
9. 从键盘输入10个整数,计算其中奇数之和以及奇数的平均数,(用小数表示)
# include <stdio.h>
int main()
{ int i,a[10];
float s,j=0,k=0;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{if(a[i]%2!=0)
{j=j+a[i];
k=k+1;}
}
s=j/k;
printf("这10个数中奇数和为:%1.0f\n这10个数中奇数的平均值为:%5.2f\n",j,s);
return 0;}
10.
# include <stdio.h>
main()
{int a,n,i;
long int s,t;
printf("请输入a(a<10):");
scanf("%d",&a);
printf("请输入n:");
scanf("%d",&n);
t=s=a;
printf("%d",a);
for(i=1;i<n;i++)
{t=t*10+a;
printf("+%ld",t);
s=s+t;}
printf("=%ld\n",s);
}
1求1!+2!+3!+…+n!
# include <stdio.h>
int fac(int x)
{int s=1,m;
for(m=1;m<=x;m++)
s=s*m;
return (s);}
main()
{ long int n ,j,sum=0;
printf("请输入n:");
scanf("%d",&n);
for(j=1;j<=n;j++)
sum=sum+fac(j);
printf("%ld\n",sum);
}
12. 输出满足以下条件的最大的n: 12+22+32+…+n2<=1000
#include <stdio.h>
main()
{int i,s;
for(i=1,s=0;s<=1000;i++)
{s=s+i*i;
if(s>1000) break;
}
printf("%d\n",i-1);}
13. 0~1000同时被7和13整除的数
#include<stdio.h>
main()
{int i;
printf("0~1000中同时能被7和13整除的数为:\n");
for(i=0;i<=1000;i++)
{if((i%7==0)&&(i%13==0))
printf("%5d",i);}
printf("\n");}
14. 1/1,1/3,1/5,1/7,1/9,1/11 ……的前20项之和,并输出。
#include<stdio.h>
main()
{float s,i,t;
for(i=0,s=0,t=1;i<20;i++)
{s=s+1/t;
t=t+2;}
printf("%f\n",s);
}
15. 求s=1-1/3+1/5-1/7+…,直到最后一项的绝对值小于0.00001为止。
#include<stdio.h>
void main()
{ double s1=0,s2=0,s,i;
for(i=0;i<10000;i++)
{if(1/(4*i+1)<0.00001)break;
s1=s1+1/(4*i+1);
if(1/(4*i+3)<0.00001)break;
s2=s2-1/(4*i+3);}
s=s1+s2;printf("%lf\n",s);}
16. 用公式e≈1+1/1!+1/2!+1/3!+…+1/n!,求e的近似值,直到1/n!<10-6为止。
#include<stdio.h>
#include<math.h>
void main()
{ double fac(double a);
double i,t=1;
for(i=1;;i++)
{if(1/fac(i)<0.000001) break;
t=t+1/fac(i); }
printf("%f\n",t);
}
double fac(double a)
{
int i;
double t=1;
for(i=0;i<a;i++)
t=t*(a-i);
return(t);
}
17.用π/4=1-1/3+1/5-1/7+……公式请求π的近似值,直到某一项的绝对值小于10-6为止。
#include<stdio.h>
void main()
{ double s1=0,s2=0,s,i;
for(i=0;i<10000;i++)
{ if( (1/(4*i+1))<0.000001||(1/(4*i+3))<0.000001)
break;
s1=s1+1/(4*i+1);
s2=s2-1/(4*i+3);}
s=s1+s2;
printf("%lf\n",4*s);}
18.输出1~10的阶乘值
#include <stdio.h>65
double fac(double x)
{double s,k;
for(s=1,k=1;s<=x;s++)
k=k*s;
return k;}
main()
{double i;
for (i=1;i<=10;i++)
printf("%1.0f!=%1.0f\n",i,fac(i));}
19.输入正数,判断是否是素数
#include <stdio.h>
int prime(int x)
{int flag=1,i;
for(i=2;i<x/2&&flag==1;i++)
{if(x%i==0) flag=0;}
return flag;
}
main()
{int w;
scanf("%d",&w);
if(prime(w))
printf("%d is a prime\n",w);
else
printf("%d is not a prime\n",w);
}
20.求1+(1+2)+(1+2+3)+…+(1+2+…+n)
# include <stdio.h>
int sum (int x)
{int i,j=0;
for(i=1;i<=x;i++)
j=j+i;
return (j);
}
main()
{int n,p,s=0;
printf("input n:");
scanf("%d",&n);
for(p=1;p<=n;p++)
s=s+sum(p);
printf("%d\n",s);
}
21.输入年月,输出该月有多少天。
#include <stdio.h>
main()
{int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}} ;
int y,m,i;
printf("Please input the year:");
scanf("%d",&y);
printf("Please input the month:");
scanf("%d",&m);
i=((y%4==0)&&(y%100!=0)||(y%400==0));/*判断是否为闰年*/
printf("this month has %d days\n",a[i][m]);
}
22. 编一个计算器,可以计算“+”“-”“*”“/”
#include <stdio.h>
main()
{int a1,a2;
char op;
printf("sign:\n");
scanf("%c",&op);
printf("no.1:\n");
scanf("%d",&a1);
printf("no.2:\n");
scanf("%d",&a2);
switch(op)
{case '+':printf("%d+%d=%d\n",a1,a2,a1+a2); break;
case '-':printf("%d-%d=%d\n",a1,a2,a1-a2); break;
case '*':printf("%d*%d=%d\n",a1,a2,a1*a2); break;
case '/':printf("%d/%d=%d\n",a1,a2,a1/a2); break;
default:printf("wrong");
}}
23.求555555的约数中最大的3位数:777
#include <stdio.h>
main()
{int a[1000],n=555555,i,j,k=0,w,t;
printf(" 555555的约数如下:\n");
for(i=100;i<1000;i++)
{j=n%i;
if(j==0)
{a[k]=i;
printf("%5d",a[k]);k=k+1;}}
t=a[0];
printf("\n则其中最大的约数为:\n");
for(w=1;w<k;w++)
{{if(a[w]>t) t=a[w];}
}
printf("%d\n",t);
}
24.
#include<stdio.h>
main()
{int s=11,i=1;
while(i==1) /*由于不知具体循环次数,故使用while型*/
{s++;
if((s%5==1)&&(s%6==5)&&(s%7==4)&&(s%11==10))
{printf("%d\n",s);
i=0; /*此处i=0*/ }
}}
25. 爱因斯坦阶梯问题(119)
#include<stdio.h>
main()
{int s=11,i=1;
while(i==1) /*由于不知具体循环次数,故使用while型*/
{s++;
if((s%2==1)&&(s%3==2)&&(s%5==4)&&(s%6==5)&&(s%7==0))
{printf("%d\n",s);
i=0; /*此处i=0*/ }
}}
26.输入m,n求其最小公倍数
#include <stdio.h>
int num(int u,int v)
{int r;
while((r=u%v)!=0)
{u=v;v=r;}
return(v);
}
main()
{int i,j,t;
printf("请输入两个数:");
scanf("%d%d",&i,&j);
if(i<j){t=i;i=j;j=t;}
printf("则这两个数的最小公倍数为:%d\n",i*j/num(i,j));
}
27,输入两个数并求其最大公约数。
#include <stdio.h>
int num(int u,int v)
{int t,r;
if(v>u){t=u;u=v;v=t;}
while((r=u%v)!=0)
{u=v;v=r;}
return(v);}
main()
{int i,j;
printf("请输入两个数:");
scanf("%d%d",&i,&j);
printf("则这两个数的最大公约数为:%d\n",num(i,j));
}
28.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include <stdio.h>
main ()
{int i,j;
int e=0,b=0,c=0,d=0;
char a[100];
printf("请输入一列字符串:\n");
for(i=0;i<100;i++)
{a[i]=getchar();
if(a[i]=='\n')break;}
for(j=0;j<i;j++)
{if((a[j]>=65&&a[j]<=88)||(a[j]>=97&&a[j]<=122)) e++;
else if(a[j]>=48&&a[j]<=57) c++;
else if(a[j]==' ') b++;
else d++;
}
printf("该行字符串中空格个数为:%d\n",b);
printf("该行字符串中数字个数为:%d\n",c);
printf("该行字符串中英文字母个数为:%d\n",e);
printf("该行字符串中其他字符个数为:%d\n",d);
}
29. 输入十个数,将其排序
#include<stdio.h>
main()
{int a[100],i,j,t,n;
printf("请输入n:");
scanf("%d",&n);
printf("请输入这%d个数:",n);
for(i=0;i<n;i++)
{scanf("%d",&a[i]);}
for(i=0;i<n-1;i++)
{for(j=0;j<n-1-i;j++)
{if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
}}
printf("则这%d个数按照从小到大的顺序排列为:\n",n);
for(i=0;i<n;i++)
{printf("%d\n",a[i]);}
}
30. 输出100~200之间的素数
# include <stdio.h>
int prime(int x)
{int flag=1,i;
for (i=2;i<x/2&&flag==1;i++)
if(x%i==0) flag=0;
return flag;}
main()
{int i,j=0;
printf("100到200之间的素数有:\n");
for(i=100;i<201;i++)
{if(prime(i))
{printf("%d ",i);j=j+1;if(j%10==0)printf("\n");}
}}
31题:由36块砖,男人一次可以搬4块,女人一次可以搬3块,2个小孩一次可以搬一块,问男人女人小孩各需多少人可以一次性将砖搬完?(有一共36人
#include <stdio.h>
main()
{int d,z,x;
for(d=1;d<9;d++)
{for(z=1;z<=(36-4*d)/3;z++)
{x=36-d-z;
if(4*d+3*z+0.5*x==36)
printf("%d(男) %d(女) %d(小孩)\n",d,z,x);}
}
}
32题:输入一个字符串,将其正序反序输出?
# include <stdio.h>
# define M 100
main()
{ int i,j;
char a[M];
printf("请输入一列字符串:\n");
for(i=0;i<M;i++)
{scanf("%c",&a[i]);
if(a[i]=='\n')
break;
}
printf("则该列字符串倒序输出为:");
for(j=i;j>=0;j--)
printf("%c",a[j]);
printf("\n");
}
33题:输入一行字符,统计以空格间隔的的单词个数?
# include <stdio.h>
main()
{int i,n,l=1;
char a[100];
printf("请输入一行字符串:\n");
for(n=0,i=0;n<100;n++,i++)
{a[i]=getchar();
if(a[i]=='\n')break;}
for(n=0;n<i;n++)
{if(a[n]==' ')l++;}
printf("则行字符串共有%d个单词。\n",l);
}
34题:输出一个十进制数,将其转化为一个2进制数输出?
#include <stdio.h>
main()
{
int n,x=0,a[100];
printf("请输入一个数字:\n");
scanf("%d",&n);
while(n)
{a[x++]=n%2;
n=n/2;}
--x;
printf("则该数字的二进制表示为:\n");
while(x>=0)
printf("%d",a[x--]);
printf("\n");
}
35题:水仙花数,输入一个三位数,该三位数各位数字立方和等于该数本身?
# include <stdio.h>
int cube(int x)
{return (x*x*x);}
main()
{int i,g,s,b;
for(i=100;i<1000;i++)
{b=i/100;
s=(i-b*100)/10;
g=i%10;
if(cube(g)+cube(s)+cube(b)==i)
printf("%d\n",i);
}
}
36题:求从3开始到小于100的所有双素数?
#include<stdio.h>
int prime(int x)
{int flag=1,i;
for (i=2;i<x/2&&flag==1;i++)
if(x%i==0) flag=0;
return flag;}
main()
{int n;
for(n=3;n<99;n++)
{if(prime(n)&&prime(n+2))
printf("%d/%d\n",n,n+2);}}
37题:求两位绝对素数
#include<stdio.h>
int prime(int x)
{int flag=1,i;
for (i=2;i<x/2&&flag==1;i++)
if(x%i==0) flag=0;
return flag;}
main()
{int t,w,g,s;
for(t=10;t<100;t++)
{g=t%10; s=t/10; w=g*10+s;
if(prime(t)&&prime(w))
printf("%d\n",t);
}}
38题:100~150之间整除3,每行输出5个数?
#include<stdio.h>
main()
{int i=100,j;
for(j=0;i<=150;i++)
{if(i%3==0)
{if(j%5==0)printf("\n");
j++;
printf("%3d ",i);
}}}
39题:对10个整数排序,输出10个数并按升序排序
#include<stdio.h>
main()
{int a[100],i,j,t,n;
printf("请输入n:");
scanf("%d",&n);
printf("请输入这%d个数:",n);
for(i=0;i<n;i++)
{scanf("%d",&a[i]);}
for(i=0;i<n-1;i++)
{for(j=0;j<n-1-i;j++)
{if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
}}
printf("则这%d个数按照从大到小的顺序排列为:\n",n);
for(i=0;i<n;i++)
{printf("%d\n",a[i]);}
}
40题:建立一个3*4的二维数组(3x4矩阵)求所有元素中最大值?【或求最小值,本题给出的是最大值】
#include<stdio.h>
main()
{int a[100][100],max,i,j,m,n;
printf("请输入该数组的行数:");
scanf("%d",&m);
printf("请输入该数组的列数:");
scanf("%d",&n);
printf("请输入该数组的%d个元素:",m*n);
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
printf("则该数组为:\n");
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
max=a[0][0];
for(i=0;i<m;i++)
{for(j=0;j<n;j++)
{if(a[i][j]>max)max=a[i][j];}
}
printf("该数组中最大的数为:%d\n",max);
}
41题:求一个整数在存储单元中,从右端开始第4到第7位的值?(未做)
#include<stdio.h>
main()
{int e;
unsigned a,b,c,d,num;
printf("您可以转换八进制、十进制和十六进制的数字\n");
printf("请输入您想转换的数字类型(8,10或16):\n");
scanf("%d",&e);
if(e==8)
{printf("请输入该八进制数字:\n");
scanf("%o",&num);}
else if(e==10)
{printf("请输入该十进制数字:\n");
scanf("%d",&num);}
else if(e==16)
{printf("请输入该十六进制数字:\n");
scanf("%x",&num);}
a=num>>4;
b=~(~0<<4);
c=a&b;
printf("转换后的数字,八进制输出为:%o\n",c);
printf("转换后的数字,十进制输出为:%d\n",c);
printf("转换后的数字,十六进制输出为:%0x\n",c);
}
42题:100匹马驮100袋货,一匹大马可驮3袋,一匹中马可驮1袋,两匹小马可驮一袋,求大中小马的个数
#include <stdio.h>
main()
{int d,z,x;
for(d=1;d<=33;d++)
{for(z=1;z<=(100-3*d)/2;z++)
{x=100-d-z;
if(3*d+2*z+0.5*x==100)
printf("大马%d匹 中马%d匹 小马%d匹\n",d,z,x);}
}}
43题:将一元钱分成一分、二分、五分的,共有多少种分法
#include <stdio.h>
main()
{int d,z,x,i=0;
for(d=0;d<=20;d++)
{for(z=0;z<=50;z++)
{for(x=0;x<=100;x++)
{if(5*d+2*z+x==100)
i++;}}}
printf("%d\n",i);}
44题:求一个四位数,它的9倍为其反序数(答案:1089)
#include <stdio.h>
main()
{int g,s,b,q,i,t;
for(i=1000;i<10000;i++)
{q=i/1000;b=(i-q*1000)/100;
s=(i-q*1000-b*100)/10;g=i%10;
t=i*9;
if(g*1000+s*100+b*10+q==t)
printf("%d\n",i);}}
45题:斐波那契序列:1,1,2,3,5,8,13……n,求第n项的值
#include <stdio.h>
# define M 500
main()
{long int a[M];
int n,i;
printf("Please input n:");
scanf("%d",&n);
a[0]=1;a[1]=1;
//printf("1 1"); //输出n项斐波那契数列(需用代码1)
for(i=2;i<n;i++)
{a[i]=a[i-1]+a[i-2];
//printf("%3d",a[i]); //输出n项斐波那契数列(需用代码2)
}
printf("\n%ld\n",a[i-1]);
}
46题:求双素数,输入一个素数,将其分成两个素数之和
#include <stdio.h>
int prime(int x)
{int flag=1,i;
for(i=2;i<x/2&&flag==1;i++)
{if(x%i==0) flag=0;
}
return flag;}
main()
{int j,k,t;
printf("请输入一个偶数n(n>4):");
scanf("%d",&j);
printf("则其可分解为一下各两个素数之和:\n");
for(k=5;k<=j-k;k++)
{t=j-k;
if(prime(t)&&prime(k))
printf("%d+%d\n",k ,t);
}}
47题:编写一个程序,输入16进制数转换成10进制数
#include <stdio.h>
main()
{int i,n=0,a[4];
printf("请输入一个十六进制数字:");
for(i=0;i<4;i++)
{a[i]=getchar();
if(a[i]=='\n')break;}
for(i=0;i<4;i++)
{if(a[i]>=48&&a[i]<=57) a[i]=a[i]-48;
else if(a[i]>=65&&a[i]<=70) a[i]=a[i]-55;
else if(a[i]>=97&&a[i]<=102) a[i]=a[i]-87;
else printf("error!");
}
for(i=0;i<4;i++)
n=n*16+a[i];
printf("%d\n",n);
}
48题:一辆卡车撞人,有三人目击,甲看到了车号中的两个数,乙看到了另两个,丙是一位数学家,说这四位数是一个整数的平方,这四位数车号是多少?(答案:7744)
#include<stdio.h>
main()
{
int i,j,w=1,s,t;
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
t=i*1000+i*100+j*10+j;
for(s = 30 ; s<=99 ; s++){
if(s*s == t){
printf("%d\n",t);
break;}}
}}}
49题:求前n项斐波那契序列之和 ,斐波那契序列为1,1,2,3,5,8,13……n
#include <stdio.h>
# define M 500
main()
{long int a[M];
int n,i;
printf("Please input n:");
scanf("%d",&n);
a[0]=1;a[1]=1;
printf("1 1 ");
for(i=2;i<n;i++)
{a[i]=a[i-1]+a[i-2];
printf("%1d ",a[i]);
}
printf("\n");
}
50题:输入年月日,输出该天为一年中的第几天?
#include <stdio.h>
main()
{
int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}} ;
int y,m,d,i,t;
printf("Please input the year:");
scanf("%d",&y);
printf("Please input the month:");
scanf("%d",&m);
printf("Please input the day:");
scanf("%d",&d);
i=((y%4==0)&&(y%100!=0)||(y%400==0));
for(t=1;t<m;t++)
{d=d+a[i][t];
}
printf("今天是%d年的第%d天.\n",y,d);
}
标签: #c语言函数题目