C语言练习题

> 大一C语言课堂练习


1. Hello world

#include "stdafx.h"

int main(int argc, char* argv[])
{
	printf("Hello World!\n");
	return 0;
}

2. 求两个整数中的最大者

#include "stdafx.h"

int main(int argc, char* argv[])
{
	int max(int x,int y);//对调用max函数进行声明
	int a,b,c;
	scanf("%d,%d",&a,&b);
	c=max(a,b);
    printf("max=%d\n",c);
	return 0;
}
int max(int x,int y)
	{ int z;
	 if (x>y) z=x;
	 else z=y;

	 return (z);
	}

3. 鸡兔同笼

//x代表鸡的数量,y代表兔的数量,h为总头数,f为总脚数
#include "stdafx.h"

int main(int argc, char* argv[])
{ int h,f,x,y;
 printf("请输入总头数和总角数\n");
 scanf("%d,%d",&h,&f);
 y=(f-2*h)/2;
 x=h-y;
 printf("鸡的数量是%d,兔的数量是%d\n",x,y);
	return 0;
}

4. 正序输入反序输出

#include "stdafx.h"

int main(int argc, char* argv[])
{ char a='C',b='H',c='I',d='N',e='A';
 printf("%c%c%c%c%c\n",a,b,c,d,e);
 printf("%c%c%c%c%c\n",e,d,c,b,a);
	return 0;
}

5. 输入字母输出数字

#include "stdafx.h"

int main(int argc, char* argv[])
{ char a='C',b='H',c='I',d='N',e='A';
 printf("%c%c%c%c%c\n",a,b,c,d,e);
 printf("%2d%2d%2d%2d%2d\n",e,d,c,b,a);
	return 0;
}

6. 输入大写字母用小写字母输出

#include "stdafx.h"

int main(int argc, char* argv[])
{ char a,b;
printf("输入大写字母\n");
  a=getchar();
  printf("%c,%d\n",a,a);
  b=a+32;
  printf("%c,%d\n",b,b);
  
  return 0;
}

7.求圆的面积周长和圆球的体积

#define PI 3.1415926
#include "stdafx.h"
#include "math.h"
int main(int argc, char* argv[])
{     
	double r,c,s,v,PI;
	PI=3.14;
    r=3.67;
    c=2*PI*r;
	s=PI*pow(r,2);
	v=4.0/3.0*PI*pow(r,3);
    printf("c=%f\ns=%f\nv=%f\n",c,s,v);
	return 0;
}

8.输入三边长求三角形面积(先判断想)

#include "stdafx.h"
#include "math.h"
int main(int argc, char* argv[])
{   double a,b,c,s,area;
scanf("%lf,%lf,%lf",&a,&b,&c);
if (a+b>c&&a+c>b&&b+c>a)
    {s=(a+b+c)/2.0;
	area=sqrt(s*(s-a)*(s-b)*(s-c));
	printf("a=%f\nb=%f\nc=%f\narea=%f\n",a,b,c,area);}
 else  printf("这三边无法组成三角形\n");
	return 0;
}

9. 求根公式

#include "stdafx.h"
#include "math.h"
int main(int argc, char* argv[])
{  double a,b,c,d,x1,x2,p,q;
   scanf("%lf,%lf,%lf",&a,&b,&c);
   d=b*b-4*a*c;
   p=-b/(2*a);
   q=sqrt(d/(2*a));
   x1=p+q;x2=p-q;

	printf("x1=%5.2f\nx2=%5.2f\n ",x1,x2);
	return 0;
}

10. 九九乘法表

#include<stdafx.h>
int main()
{
	int i,j;
	for (i = 1; i < 9; i++)
	{
		for (j = 1; j < 10; j++)

			printf("%4d ",i*j);                     
		printf("\n");
	}
}

11. 爱心打印

#include "stdafx.h"

void main(int argc, char* argv[])
{   int row,col;
  int m[6][26]={
	  {0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1},
	  {0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1},
	  {0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,1},
	  {0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1},
	  {0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1},
	  {0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0}
  };
    for(row=0;row<6;row++)
	{
		for(col=0;col<26;col++)
		{ if (m[row][col]==0) printf(" ");
		 else printf("$");
		}
	
	printf("\n");
	}
}

12. 字符数组

#include "stdafx.h"//字符

int main(int argc, char* argv[])
{   char c[10];
  c[0]='i';
 c[1]=' ';
 c[2]='a';
 c[3]='m';
 c[4]=' ';
 c[5]='a';
 c[6]=' ';
 c[7]='b';
 c[8]='o';
 c[9]='y';
 for (int i=0;i<10;i++)
	 printf("%c  ",c[i]);
	return 0;
}

13. 字符串打印且有几个单词

#include "stdafx.h"//字符

int main(int argc, char* argv[])
char a[20]="i am a boy";
  printf("%s\n ",a);
// return  0;
//  }*/
char c;
int num=0;

 for (int i=1;i<20;i++)
 { c=a[i];
	 if (c==' ')
   num=num+1;
   
 if (c=='\0' )     break;
 
 }
 printf("这个字符串里有%d个单词\n",num+1); 
 return 0;
}

14. 找出每列最大并打印出位置

#include "stdafx.h"
#include"math.h"
int main(int argc, char* argv[])
{
   int i,j,max=0;
   
   for (i=1;i<=5;i++)
   { 
	   for (j=1;j<=5;j++)
          
	   {
		   if(i*j>max)
		   {max=i*j;}
		   printf("%5d",i*j);

		   
	   }
	   
	   printf("第%d行,第%d列,%2d\n",i,j-1,max);printf("\n");
   }
   return 0;

}

15. 十行杨辉三角形

#include "stdafx.h"

void main(int argc, char* argv[])
{   int a[10][10];
   int i,j;
    for(i=0;i<10;i++)
	{ a[i][0]=1;a[i][i]=1;}
	for(i=0;i<10;i++)
	{ for (j=1;j<i;j++)
	a[i][j]=a[i-1][j]+a[i-1][j-1];
	for(j=0;j<=i;j++)  printf("%5d",a[i][j]);
	printf("\n");}
	
	
	
}

16. 将数组赋值再打印(双for循环)

#include <stdafx.h>
#include<math.h>
int main()
{int a[5][5];
int i,j;
  for ( i=0;i<5;i++)
  for( j=0;j<5;j++)
		  a[i][j]=i*j;
	  for(i=0;i<5;i++)
	  {for(j=0;j<5;j++)
	    printf("a[%d][%d]=%d     ",i,j,a[i][j]);
	  printf("\n");}

return 0;
}

17. 数组形式打印斐波那契数列

#include <stdafx.h>
#include<math.h>
int main()
{int a[5][5];
int i,j;
  for ( i=0;i<5;i++)
  for( j=0;j<5;j++)
		  a[i][j]=i*j;
	  for(i=0;i<5;i++)
	  {for(j=0;j<5;j++)
	    printf("a[%d][%d]=%d     ",i,j,a[i][j]);
	  printf("\n");}

return 0;
}

18. 数组赋值再打印

#include "stdafx.h"
int main ()
{
	int b[100];
	for (int i=0;i<100;i++)
	{b[i]=i;}
	for (int j=0;j<100;j++)
		printf("b[%d]=%d\n",j,b[j]);
	return 0;}
19.	斐波那契数列
#include <stdio.h>//斐波那契数列
#include<math.h>
int main()
{int i,x=1,y=1,z;
for (i=1;i<20;i++)
{ z=x+y;
   x=y;
   y=z;

   printf("%d\n",z);}
return 0;
}

20. 十个一组打印200个数

#include "stdafx.h"

int main()

{int i;
for(i=1;i<201;i++){
printf("%5d ",i);
if (i%10==0)
printf("\n");
}	
	return 0;
}

21. 判断一个数是否为素数

#include <stdafx.h>//判断一个数是否为素数
#include<math.h>
int main()
{
	int i, k, m,n;
	for(i=1;i<100;i++)
	{
		k=1;
	 
		for (m=2;m<=sqrt(i);m++)
	 {if(i%m==0) {k=0; printf("i=%d不是素数\n",i);break;}
		}
	 if(k==1){printf("i=%d是素数\n",i);n++;
	 }
	// if(n%9==0) printf("\n");
	}
}

22. 输入三个成绩然后由高到低输出

#include "stdafx.h"

int main(int argc, char* argv[])
{ int a,b,c,d;
   printf("请输入三个成绩\n");
   scanf("%d,%d,%d",&a,&b,&c);
   if (a<b) {d=a;a=b;b=d;}
   if(a<c) {d=a;a=c;c=d;}
   if(b<c) {d=b;b=c;c=d;}
	printf("%d %d %d \n",a,b,c);
	return 0;
}

23. 输入数量和单价得到货款

#include "stdafx.h"

int main(int argc, char* argv[])
{ int num;
  double cost,price,total;
   printf("请输入数量和单价:\n");
   scanf("%d,%lf",&num,&price);
   if(num>=500)  cost=0.10;
   else
	    if(num>=300)  cost=0.075;
        else
             
	        if(num>=50)  cost=0.05;
             else cost=0;
	total=num*price*(1-cost);
    printf("总价为%5.2f\n",total);
	return 0;
}

24. while循环语句使用

#include "stdafx.h"

int main(int argc, char* argv[])
{ int i=0;
  while(i<100)
  { i=i+1;
    printf("i=%d\n",i);}
	printf("Hello World!\n");
	return 0;
}

25. 求两个正整数最大公约数和最小公倍数

#include "stdafx.h"

int main(int argc, char* argv[])
{int a,b,c,m,n;
  printf("输入两个整数\n");
  scanf("%d,%d",&a,&b);
  m=a;n=b;
  if(a<b)
  {c=a;a=b;b=c;}//交换值使a>b
  c=a%b;
  for(;c!=0;)//辗转相除法求最大公约数
  {a=b;b=c;c=a%b; }
  printf("最大公约数是%d\n",b);
  printf("最小公倍数是%d\n",m*n/b);
	return 0;
}

26函数模块化之数字公式

#include "stdafx.h"
 jia(int a,int b,int c)
 {   int A;
     A=a+b+c;
 //printf("A=%d\n",A);
  return A;
 }
    jian(int c,int d)
	{ int B;
      B=c-d;
	 //  printf("B=%d\n",B);
return B;
    }  

    cheng(int e,int f,int m)
	{ int C;
      C=e*f*m;
	   //printf("C=%d\n",C);
return C;
	}

  chu(int g,int h)
  {int D;
       D=g/h;
    printf("D=%d\n",D);

  }

int main(int argc, char* argv[])
{   int receive_jia;
	receive_jia=jia(10,20,30);
  printf("receive_jia=%d\n",receive_jia);
	
  int receive_jian;
  receive_jian=jian(300,1);
   printf("receive_jian=%d\n",receive_jian);
 
   int receive_cheng;

  receive_cheng=cheng(12,6,2);
   printf("receive_cheng=%d\n",receive_cheng);
 
  chu(56,7);

return 0;
}

27.函数模块化之字母打印

#include "stdafx.h"
void printf_star(int m)
   {for (int i=0;i<m;i++)
	printf("*");
    printf("\n");
   }
int printf_message()
   { printf("                       I LOVE YOU!!!!!!\n                       I LOVE YOU!!!!!!\n");
       return 521;
   }


int main(int argc, char* argv[])
{ //void printf_star();
	int re;
    printf_star(66);
	
	re=printf_message();
	printf("re=%d\n",re);
	printf_star(66);
	return 0;
}

28.函数模块化之大小比较

#include "stdafx.h"
//副函数
int printf_max(int a,int b)

{  if (a>b) return a;//printf("max=%d",a);
   else return b//printf("max=%d",b);
   ;
}
//主函数
int main(int argc, char* argv[])
{   int a,b,c,d,MAX;
printf("请输入四个值来比较大小\n");
   scanf("%d,%d,%d,%d",&a,&b,&c,&d);
    MAX=printf_max(a,b);
      MAX=printf_max(c,MAX);
		MAX=printf_max(d,MAX);
//printf("re=%d\n",re);
    printf("%d,%d,%d,%d,max=%d\n",a,b,c,d,MAX);
	
	return 0;
}

29.数组中的正向输入反向输出

#include <stdafx.h>//输入数组反向输出

int main()

{
	int b[5],i;
	for (i=0;i<5;i++)
		scanf("%d",&b[i]);
	for ( i=4;i>=0;i--)
		 printf("%4d",b[i]);
}

30.程序模块化之数组数据求和

#include "stdafx.h"
 int sum(int a[],int n)
  {   int he=0;
	  for (int i=0;i<n;i++)
	  {
		  he+=a[i];
	  }
	  return he;
  }
int main(int argc, char* argv[])
{  int S;

int a[10]={12,15,17,19,21,29,61,72,14,13};
     S=sum(a,10);
	printf("S=%d\n",S);
	return 0;
}

31.判断一个年份是否为闰年

#include "stdafx.h"
#include "math.h"
int main()
{
  int year;
  printf("请输入年份:\n");
  scanf("%d\n",&year);
  if((year%4==0)&&(year%100!=0)||(year%400==0))
	  printf("year=%d是闰年",year);
	
	else  printf("year=%d是平年\n",year);
	 return 0;
}

32.输入十个学生的成绩求平均分并输出大于平均分的成绩

#include "stdafx.h"

int main(int argc, char* argv[])
{int i;int s[10];float a=0.0;
 printf("请输入是个学生的成绩\n");
 for (i=0;i<10;i++)
	 scanf("%d",&s[i]);
 for (i=0;i<10;i++)
	 a=a+s[i];
 a=a/10;
 printf("平均数是%2.1f\n",a);
 for (i=0;i<10;i++)
	if(s[i]>a)
	printf("比平均数高的成绩有%3d\n",s[i]);
	return 0;
}

33. 奇数和偶数分别相加求和

#include "stdafx.h"
int main(int argc, char* argv[])
{int a,b,c,d;
  a=1;b=0;c=1;d=0;
  for(int i=0;i<100;i++)
  {a=a+2;
   b=b+2;
   c=c+a;
   d=d+b;
   printf("奇数项的和为%d\n偶数项的和为%d\n",c,d);}
	return 0;
}

34.中国现有13.54亿人口,以每年增长1%何时能到15亿

#include "stdafx.h"
int main(int argc, char* argv[])
{int i;float num=13.54;
 while (num<15)
 {num=13.54*(1+0.01);
 i++;}
  printf("%d\n",i);
	return 0;
}

35.行和列元素互换

#include "stdafx.h"

int main(int argc, char* argv[])
{int a[2][3]={{1,2,3},{4,5,6}};
 int b[3][2],i,j; 
  for(i=0;i<2;i++)
  {for(j=0;j<3;j++)
  printf("%d",a[i][j]); 
b[j][i]=a[i][j];
 printf("\n");}

  for(i=0;i<3;i++)
  {for(j=0;j<2;j++)
 
  printf("%d\n",b[j][i]);}
	return 0;
}

36.比较数组中数字大小多的数组获胜

#include "stdafx.h"

int main(int argc, char* argv[])
{int red[10]={11,2,34,4,5,68,7,8,92,10};
 int blue[10]={13,15,17,19,21,24,28,46,45,78};
 int red_N;
 int blue_N;
 
  for(int i=0;i<10;i++)
  { if(red[i]<blue[i])  blue_N++;
    else  red_N++;
  }

if    (red_N>blue_N)    printf("red  win\n");
 else if  (red_N<blue_N)  printf("blue win\n");
   else  printf("red=blue\n");	
	return 0;
}

37.函数之比较数组中数字大小多的数组获胜

#include <stdafx.h>
  higher(int a[],int b[]) 
  { int high=0;
    int red=0;
    int blue=0;

  for(int i=0;i<10;i++)
  { if(a[i]<b[i])  blue++;
    else  red++;
  }
if (red>blue) high=1;
if (red<blue) high=2;
if (red=blue) high=3;
return high;
  }

int main()
{
 int a[10]={11,2,34,4,5,68,7,8,92,10};
 int  b[10]={13,15,17,19,21,24,28,46,45,78};
 int high;
 high=higher(a,b);
if(high==1) printf("winner is a\n");
if(high==2) printf("winner is a\n");
if(high==3) printf("no winners \n");
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋到亦天凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值