40道C语言大学经典例题及代码(免费全)-创新互联

废话不说,咱们直接上车

成都创新互联-专业网站定制、快速模板网站建设、高性价比金安网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式金安网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖金安地区。费用合理售后完善,10年实体公司更值得信赖。索引
    • 1.计算三角形面积
    • 2.分段函数计算,输入一个x值,计算并输出y值。
    • 3.求e=1+1/1!+1/2!+1/3!+……..+1/n!
    • 4.最小公倍数
    • 5.求最高分
    • 6.求数列和
    • 7.输出平均分和低于平均分学生成绩
    • 8.从键盘输入一字符串,将其逆序输出。
    • 9.字符串连接
    • 10.字符串复制
    • 11.编写函数,求1+2+3+…….+m。
    • 12.用函数计算分段函数的值
    • 13.编写函数,求3个整数最小值。
    • 14.编写判断素数函数
    • 15.编写求大公约和最小公倍函数
    • 16.编写求n个a的值的函数。
    • 17.编写求数组中元素大值函数。
    • 18..编写函数排序数组元素
    • 19.fibonacci数列递归函数
    • 20.输入一字符串,查找字符’k’
    • 21.判断字符串是否回文
    • 22.输出所有的水仙花数(水仙花数:153= 1^3+ 5^ 3+3^3)
    • 23.输出数列2、3、5、8、...(从第三项开始,每一项为前两项的和)的前二十项,且每行显示五个数
    • 24.兀/4=1-1/3+1/5-1/7+...+(-1)^(n-1)*(1/(2n-1)),求兀
    • 25.从键盘输入一个正整数,判断该数是否为素数
    • 26.请输入m和n,求他们的大公约数
    • 27.百元买百鸡
    • 28.从键盘输入一个整数n,求1!+2!+3!+...+n!
    • 29.输入10个学生的成绩,求平均分、最高分和最低分
    • 30.求Fibonacci数列的前30个数,将其保存在数组中,并按每行6个数输出(Fibonacci:0,1,1,2,3,5,8,13,21,34,...)
    • 31.输入一个字符串,求该字符串的长度(例如:"VC"的长度为2)
    • 32.从键盘输入一个字符串到字符数组a中,将其中的大写字母复制到另一个字符数组b中
    • 33.用递归法求n!
    • 34.编写一个将字符数组中所有小写字母转换成大写字母的函数,并在main()函数中调用该函数
    • 35.输入一行字符,统计其中字母,数字,空格及其他字符的个数
    • 36.求x和y的大值
    • 37.编写实现两个整数交换的自定义函数swap(),要求形参采用指针变量,在main()函数中输入两个整数,调用swap()函数后输出结果
    • 38.编写求数组所有元素的平均值的自定义函数,在main()函数中输入学生人数和每个学生的成绩,调用自定义函数后输出平均分
    • 39.求1+2+3+...+100的和
    • 40.编程找出1000以内的所有完数(一个数如果恰好等于它的因子之和,这个数就称为“完数” 例如6=1+2+3)

1.计算三角形面积
#include#includedouble area(double a,double b,double c)
{double s,sarea=-1;
	if(a+b>c&&b+c>a&&c+a>b)
	{s=(a+b+c)/2;
        sarea=sqrt(s*(s-a)*(s-b)*(s-c));
	}
	return sarea;
}
void main()
{	double a,b,c,sarea;
	printf("请输入三个数:");
	scanf("%lf%lf%lf",&a,&b,&c);
	sarea=area(a,b,c);
	if(sarea>0)
		printf("可以构成三角形,其面积为:%.2lf\n",sarea);
	else
		printf("不可以构成三角形\n");
	
}
2.分段函数计算,输入一个x值,计算并输出y值。
#includevoid main()
{int x,y;
    scanf("%d",&x);
    if(x>-5 && x<0)  y=x-1;
    else if(x==0)  y=x;
    else if(x>0 && x<8)  y=x+1;
    else y=10;
    printf("y=%d\n",y);
}
3.求e=1+1/1!+1/2!+1/3!+………+1/n!
#includevoid main ()
{int i=1;
	double s=1,e=1;
	while(1/s>=1E-5)
	{s=s*i;
		e=e+1/s;
		i++;
	}
	printf("e=%lf\n",e);
}
4.最小公倍数
#includevoid main ()
{int m,n,i;
	printf("请输入两个正整数: ");
	scanf("%d%d",&m,&n);
	for(i=m;;i++)
		if(i%m==0 && i%n==0)
			break;
	printf("%d,%d的最小公倍数为%d\n",m,n,i);
}
5.求最高分
#includevoid main()
{int cj,max=0;
    printf("输入成绩,以负数结束: ");
    scanf ("%d",&cj);
    while(cj>=0)
    {if(cj>max)   max=cj;
         scanf ("%d",&cj);
    }
    printf("最高分:%d\n",max);
}
6.求数列和
#includevoid main()
{int a,b,t,i,n;
	double sum=0.0;
	printf("请输入n:");
	scanf("%d",&n);
	a=2,b=1;
	for (i=1;i<=n;i++)
	{sum=sum+(double)a/b;
		t=a;  a=a+b;  b=t;
	}
	printf("sum=%f\n",sum);
}
7.输出平均分和低于平均分学生成绩
#includevoid main()
{int a[100],i,n,score;	float sum,ave;

	i=0,sum=0;
	while(1)
	{printf("请输入第%d个学生成绩: ",i+1);
		scanf("%d",&score);
		if(score<0)  break;
		a[i]=score;     sum+=a[i];
		i++;
	}

	n=i;
	ave=sum/n;
	printf("平均分为: %.2f\n",ave);

	printf("低于平均分的成绩有: ");
	for(i=0;i
8.从键盘输入一字符串,将其逆序输出。
#include#includevoid main()
{char a[20];
	int i;
	printf("请输入字符串:");
	gets(a);
	for(i=strlen(a)-1;i>=0;i--)
		printf("%c",a[i]);
	printf("\n");
}
9.字符串连接
#includevoid main()
{char s1[80],s2[40];
	int i,j;
	printf("请输入第1个字符串:");
	gets(s1);
	printf("请输入第2个字符串:");
	gets(s2);
	i=0;
	while(s1[i]!='\0')
		i++;
	j=0;
	while(s2[j]!='\0')
	    s1[i++]=s2[j++];    
	s1[i]='\0';
	printf(" 连接后的字符串为:%s\n",s1);
}
10.字符串复制
#includevoid main()
{char s1[80],s2[80];
	int i;
	printf("请输入一个字符串:");
	gets(s2);

	for(i=0;s2[i]!='\0';i++)
		s1[i]=s2[i]; 
	s1[i]='\0';

	printf("复制后的字符串为:%s\n",s1);
}
11.编写函数,求1+2+3+…….+m。
#includeint sum(int m)
{int i,sumn=0; 
    for(i=1;i<=m;i++)
	   sumn=sumn+i;
    return sumn;
}
void main()
{int m;
	int sumn;
	printf("请输入一个整数:");
	scanf("%d",&m);
	sumn=sum(m);
	printf("1+2+3+...+%d=%d\n",m,sumn);

}
12.用函数计算分段函数的值
#includedouble fd(double x)
{double y;
	if(x<0)
		y=x*x-2*x+1;
	else
		y=x*x*x+x+3;
	return y;
}
void main()
{double x,y;
	scanf("%lf",&x);
	y=fd(x);
	printf("y=%.2lf\n",y);
}
13.编写函数,求3个整数最小值。
#includevoid main()
{int min(int,int,int);
    int a,b,c,d,e,m1,m2;
    printf("请输入5个整数: ");
    scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
    m1=min(a,b,c);
    m2=min(m1,d,e);
    printf("最小值为: %d\n",m2);
}
int min(int x,int y,int z)
{int m=x;   
    if(m>y)  m=y;
    if(m>z)  m=z;
    return m;
}
14.编写判断素数函数
#include#includevoid main()
{int prime(int m);
    int m,i;
	i=0;
    for(m=2;m<=100;m++)
	   if(prime(m))  
		{	
			printf("%5d",m);
			i++;
			if(i%5==0) printf("\n");
		}
	
	printf("\n");

}
int prime(int m)
{int k,n;
    n=(int)sqrt(m);
    for(k=2;k<=n;k++)
        if(m%k==0) return 0;
    return 1;
}
15.编写求大公约和最小公倍函数
#includeint gy(int x,int y)
{int gyxy,i;
	for(i=x;i>=1;i--)
       if(x%i==0&&y%i==0)
	   {gyxy=i;break;}
     return gyxy;

}
int gb(int x,int y)
{int gbxy,i;
	for(i=x;i<=x*y;i++)
       if(i%x==0&&i%y==0)
	   {gbxy=i;break;}
     return gbxy;

}

void main()
{int x,y,gyxy,gbxy;
	printf("请输入两个整数:");
	scanf("%d%d",&x,&y);
	gyxy=gy(x,y);
	gbxy=gb(x,y);
	printf("%d和%d的大公约数是:%d\n",x,y,gyxy);
	printf("%d和%d的最小公倍数是:%d\n",x,y,gbxy);
	
}
16.编写求n个a的值的函数。
#includeint f(int a,int n)
{int i,t=0;
    for(i=1;i<=n;i++)
        t=t*10+a;
    return t;
}
void main()
{int a,n,i,s=0;
    printf("请输入两个整数a,n: ");
    scanf("%d%d",&a,&n);
    for(i=1;i<=n;i++)
        s=s+f(a,i);
    printf("结果为: %d\n",s);
}
17.编写求数组中元素大值函数。
#include#define N 6
int max(int a[])
{int i,m;
    m=a[0];
    for(i=1;iint i,b[N];
    printf("请输入%d个整数: ",N);
    for(i=0;i
18…编写函数排序数组元素
//(1)顺序比较法
#includevoid sort(int str[],int n)
{int i,j; 
    int t;
    for(i=0;istr[j])
            {t=str[i]; str[i]=str[j]; str[j]=t; }
}

void main()
{int i,n,str[100];    
    printf("请输入元素个数: ");
    scanf("%d",&n);
    printf("请输入%d个元素: ",n);
    for(i=0;i
//(2)冒泡排序法
#includevoid sort(int a[],int n)
{int i,j,t; 
    for(i=0;ia[j+1])
            {t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}

void main()
{int i,n,a[100];    //最多100个元素
    printf("请输入元素个数: ");
    scanf("%d",&n);
    printf("请输入%d个元素: ",n);
    for(i=0;i
19.fibonacci数列递归函数
#includeint fib(int k)
{int f;
    if(k==1) f=0;
    else if(k==2) f=1;
    else f=fib(k-1)+fib(k-2);
    return f;
}
void main()
{int i,n;
    printf("请输入项数: ");
    scanf("%d",&n);
    printf("前%d项fibonacci数列为:",n);
    for(i=1;i<=n;i++)
        printf("%d  ",fib(i));
    printf("\n");
}
20.输入一字符串,查找字符’k’
#includevoid main()
{char a[100],*p=a;
    int flag=0;
    printf("请输入一个字符串: ");
    gets(a);
    while(*p!='\0')
    {if(*p=='k')
         {flag=1;  break;  }
         p++;
    }
    if(flag==1)  printf("已找到!\n");
    else printf("没找到\n");   
}
21.判断字符串是否回文
#include#includevoid main()
{int hw(char *s);
    char s[80];
    printf("请输入一个字符串: ");      gets(s);
    if(hw(s))  printf("该字符串是回文!\n");
    else  printf("该字符串不是回文!\n");   
} 
int hw(char *s)
{int flag=1;
    char *p,*q;
    for( p=s,q=s+strlen(s)-1 ; pflag=0;  break;  }
    return flag;
}
22.输出所有的水仙花数(水仙花数:153= 1^3+ 5^ 3+3^3)
#includeint main()
{int i,j,k,n;
    for(i = 100;i< 1000;i++)
    {j = i%10;
        k = i/10%10;
        n = i/100;
        if(j*j*j + k*k*k + n*n*n == i)
            printf("%5d\n",i);
    }
    return 0;
}
23.输出数列2、3、5、8、…(从第三项开始,每一项为前两项的和)的前二十项,且每行显示五个数
#includevoid main()
{int i,a1=2,a2=3,a3;
  printf("%6d%6d%6d",a1,a2);
  for(i=3;i<=20;i++)
  {a3=a1+a2;
  printf("%6d",a3);
  a1=a2;
  a2=a3;
  if(i%5==0)
    printf("\n");
   }
}
24.兀/4=1-1/3+1/5-1/7+…+(-1)^(n-1)*(1/(2n-1)),求兀
#include#includevoid main()
{double sum=0,pi,c=1,s=1;//c为当前项,s为符号位
  int n=1;
  while(fabs(c)>=1e-6)
  {sum=sum+c;
  s=-s;
  n++;
  c=s/(2*n-1);
  }
  pi=4*sum;
  printf("pi=%lf\n",pi);
}
25.从键盘输入一个正整数,判断该数是否为素数
#includevoid main()
{int i,m;
  scanf("%d",&m);
  for(i=2;i<=m-1;i++)
    if(m%i==0) break;
    if(i>m-1)
      printf("%d是素数\n",m);
    else
      printf("%d不是素数\n",m);
}
26.请输入m和n,求他们的大公约数
#includevoid main()
{int i,m,n;
  scanf("%d%d",&m,&n);
  for(i=m;i>=1;i--)
  {if(m%i==0 && n%i==0)
       break;
  }
 printf("大公约数:%d\n",i);
}
27.百元买百鸡
#includevoid main()
{int a,b,c; //a,b,c分别表示公鸡、母鸡和小鸡的数量
for(a=0;a<=19;a++)
  for(b=0;b<=33;b++)
  {c=100-a-b;
  if(5*a+3*b+b/3==100 && c%3==0)
    printf("公鸡:%d,母鸡:%d,小鸡:%d\n",a,b,c);
  }
}
28.从键盘输入一个整数n,求1!+2!+3!+…+n!
#includevoid main()
{int i,j,n;
  long p,sum=0;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {p=1;
    for(j=1;j<=i;j++)
      p=p*j;
    sum=sum+p;
   }
   printf("计算结果为:%d\n",sum);
 }
29.输入10个学生的成绩,求平均分、最高分和最低分
#includevoid main()
{int i,sum=0,max=0,min=100,c[10];
  float ave;
  for(i=0;i<10;i++)
  {   scanf("%d",&c[i]);
   sum=sum+c[i];
   if(c[i]>max)
     max=c[i];
     if(c[i]
30.求Fibonacci数列的前30个数,将其保存在数组中,并按每行6个数输出(Fibonacci:0,1,1,2,3,5,8,13,21,34,…)
#includevoid main()
{int i;
  long f[30]={0,1};
  for(i=2;i<30;i++)
    f[i]=f[i-1]+f[i-2];
  for(i=0;i<30;i++)
  {if(i%6==0)
    printf("\n");
  printf("%10d",f[i]);
  }
}
31.输入一个字符串,求该字符串的长度(例如:"VC"的长度为2)
#includevoid main()
{char a[20];
  int i=0;
  scanf("%s",a);
  while(a[i]!='\0')
     i++;
  printf("%s的长度为:%d\n",a,i);
}
32.从键盘输入一个字符串到字符数组a中,将其中的大写字母复制到另一个字符数组b中
#includevoid main()
{char a[20],b[20];
  int i=0,j=0;//i和j分别为数组a和b的下标
  gets(a);
  while(a[i]!='\0')
  {if(a[i]>='A' && a[i]<='Z')
    {  b[j]=a[i];
      j++;
    }
    i++;
   }
   b[j]='\0';
   puts(b);
}
 
33.用递归法求n!
#includeint fac(int n)
{int f;
  if(n==1)
  f=1;
  else
  f=n*fac(n-1);
  return f;
}
void main()
{int n,c;
  printf("请输入n的值:");
  scanf("%d",&n);
  c=fac(n);
  printf("%d!=%d\n",n,c);
}
34.编写一个将字符数组中所有小写字母转换成大写字母的函数,并在main()函数中调用该函数
#includevoid change(char b[10])
{int i=0;
  while(b[i]!='\0')
  {if(b[i]>='a' && b[i]<='z')
    b[i]=b[i]-32;
  i++;
  }
}
void main()
{char a[10];
printf("请输入一个字符串:");
gets(a);
change(a);
printf("调用函数后数组a的值:");
puts(a);
}
35.输入一行字符,统计其中字母,数字,空格及其他字符的个数
#includeint letter,digit,space,others;
void main()
{char str[1000];
	void count(char ch[]);
	printf("请输入一个字符串(<1000个字符):");
	gets(str);
	letter=0;
	digit=0;
	space=0;
	others=0;
	count(str);
	printf("字母:%d\n 数字:%d\n 空格:%d\n 其他:%d\n",letter,digit,space,others); 
 } 
void count(char ch[])
{int i=0;
	while(ch[i]!='\0')
	{if((ch[i]>='a' && ch[i]<='z')|| (ch[i]>='A' && ch[i]<='Z'))
		letter++;
		else if(ch[i]>='0' && ch[i]<='9')
		digit++;
		else if(ch[i]==' ')
		space++;
		else
		others++;
		i++;
		
	}
}
36.求x和y的大值
#includevoid main()
{int x,y,max,*px,*py;
  px=&x;
  py=&y;
  printf("请输入两个整数:");
  scanf("%d%d",px,py);
  if(*px<*py)
    max=*py;
  else
  max=*px;
  printf("max=%d\n",max);
}
37.编写实现两个整数交换的自定义函数swap(),要求形参采用指针变量,在main()函数中输入两个整数,调用swap()函数后输出结果
#includevoid main()
{int m,n;
void swap(int *pm,int *pn);  
printf("请输入两个整数:");
scanf("%d%d",&m,&n);
printf("交换前:m=%d,n=%d\n",m,n);//输出交换前两个实参的值
swap(&m,&n);//调用函数
printf("交换后:m=%d,n=%d\n",m,n);//输出交换后两个实参的值
}
void swap(int *pm,int *pn)
{int temp; 
temp=*pm;  
*pm=*pn;  
*pn=temp;
}
38.编写求数组所有元素的平均值的自定义函数,在main()函数中输入学生人数和每个学生的成绩,调用自定义函数后输出平均分
#includevoid main()
{float score[100],ave;
int i,n;
float compute(float *a,int n);
printf("请输入学生人数:");
scanf("%d",&n);
printf("请输入学生成绩:");
for(i=0;ifloat sum=0,ave;
int i;
for(i=0;i
39.求1+2+3+…+100的和
#includevoid main()
{int sum=0,i=1;
  do
  { sum=sum+i;
     i=i+1;
  }while(i<=100);
  printf("sum=%d\n",sum);
}
40.编程找出1000以内的所有完数(一个数如果恰好等于它的因子之和,这个数就称为“完数” 例如6=1+2+3)
#includemain()
{static int k[10];
  int i,j,n,s;
  for(j=2;j<1000;j++)
    { n=-1;
     s=j;
     for(i=1;iif((j%i)==0)
          {n++;
             s=s-i;
             k[n]=i;
          }
       }
  if(s==0)
   {printf("%d是一个完数:  ",j);
    for(i=0;i

<–精力有限,就先整理这么多–>
有错误的欢迎大家在评论区批评指正😍
以上这些仅供大家参考,建议大家不要照搬照抄,这对提升自己的编程能力没有任何的作用,最主要的是去理解、明白为什么这么写。
多敲代码

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:40道C语言大学经典例题及代码(免费全)-创新互联
转载来于:http://bzwzjz.com/article/coshii.html