【C语言题库及答案】经典例题100题

例题1:对任意三个数字从大到小排序

# include <stdio.h>

int main(void)
{
	int a, b, c;  //等价于:  int a; int b; int c;
	int t;

	printf("请输入三个整数(中间以空格分隔): ");
	scanf("%d %d %d", &a, &b, &c);
	
	//编写代码完成a是最大值  b是中间值  c是最小值
	
	if (a < b)
	{
		t = a;
		a = b;
		b = t;
	}

	if (a < c)
	{
		t = a;
		a = c;
		c = t;
	}

	if (b < c)
	{
		t = b;
		b = c;
		c = t;
	}
	
	printf("%d %d %d\n", a, b, c);

	return 0;
}

例题2:互换两个数字

# include <stdio.h>

int main(void)
{
	int i = 3;
	int j = 5;
	int t;  //定义临时变量

//6和7行代码无法完成i和j的互换
//	i = j;  // 6行		i = 5; j = 5; 
//	j = i;  // 7行		i = 5; j = 5;

	//正确的互换i和j的方法
	t = i;
	i = j;
	j = t;

	printf("i = %d, j = %d\n", i, j);

	return 0;
}

例题3:求1到100之间的奇数之和

include <stdio.h>

int main(void)
{
  int i;
  int sum = 0;

  for (i=1; i<101; ++i)
  {
    if (i%2 == 1)
      sum += i;// sum = sum + i;
  }
  printf("sum = %d\n", sum);

  return 0;
}




例题4:求1到100之间的奇数的个数

# include <stdio.h>

int main(void)
{
  int i;
  int cnt = 0;  //个数一般用cnt表示

  for (i=1; i<101; ++i)
  {
    if (i%2 == 1)
      ++cnt;
  }
  printf("cnt = %d\n", cnt);

  return 0;
}

例题5:求1到100之间的奇数的平均值

# include <stdio.h>

int main(void)
{
  int i;
  int sum = 0;
  int cnt = 0;
  float avg; //average 的缩写
  
  for (i=1; i<101; ++i)
  {
    if (i%2 == 1)
    {
      sum += i;
      ++cnt;
    }
  }
  avg = 1.0*sum / cnt;  //1.0默认是double类型

  printf("sum = %d\n", sum);
  printf("cnt = %d\n", cnt);
  printf("avg = %f\n", avg);
  
  return 0;
}

例题6:求1到100之间的奇数之和, 再求1到100之间的偶数之和

# include <stdio.h>

int main(void)
{
  int i;
  int sum1 = 0;  //奇数和
  int sum2 = 0;  //偶数和
  
  for (i=1; i<101; ++i)
  {
    if (i%2 == 1)
    {
      sum1 += i;
    }
    else
    {
      sum2 += i;
    }
  }
  printf("奇数和 = %d\n", sum1);
  printf("偶数和 = %d\n", sum2);
  
  return 0;
}

例题7:用for实现1+2+3+4+…+100的和

# include <stdio.h>

int main(void)
{
  int sum = 0;
  int i;

  for (i=1; i<101; ++i)
  {
    sum = sum + i;
  }
  printf("sum = %d\n", sum);

  return 0;
}


例题8:将一个数组中的元素倒过来输出

例a[8] = {1, 2, 3, 4, 5, 6, 7, 8};==输出8 7 6 5 4 3 2 1

# include <stdio.h>

int main(void)
{
  int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};
  int i, j;
  int t;

  i = 0;
  j = 7;
  while (i < j)
  {
    t = a[i];
    a[i] = a[j];
    a[j] = t;
    
    i++;  
    --j;
  }

  for (i=0; i<8; ++i)
    printf("%d\n", a[i]);

  return 0;

}

例题9:判断101-200之间有多少个素数,并输出所有素数。。

~~什么是素数?所谓素数就是质数,只能有1和它本身才能整除自己,即除了1和它本身以外不再有其他因数的自然数。例如:1 2 3 5 7

#include <stdio.h>
int main()
{
  int i=0;
  int count = 0; //素数个数
  
  for (i = 101; i <= 200; i++) {
    int j = 0;
    int flag = 1; //假设是素数
    for (j = 2; j < i; j++) { // i是否是素数,拿2 到 i-1 范围的数去试除
      if (i % j == 0) {
        flag = 0;
        break; //不是素数,跳出此循环
      }    
    }
    if (flag == 1) {
      printf("%d\t", i);
      count++;
    }
  }
  printf("素数的个数为%d", count);
  return 0;
}

例题10:打印出所有的“水仙花数“。

~~什么是水仙花数?所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

例如:153是一水仙花数例如153是“水仙花数”,

思路:153 = 1的3次方 + 5的3次方 + 3的3次方。

so~利用for循环控制100-999个数,每个数分解出个位,十位,百位。

#include <stdio.h>
int main()
{
  int i = 0;

  for (i = 100; i <= 999; i++) {
    int a = i % 10; //个位
    int b = (i / 10) % 10; //十位
    int c = i / 100; //百位
    if (a * a * a + b * b * b + c * c * c == i) {
      printf("%d\t", i);
    }
  }
  return 0;
}

全文获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小阴学习吧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值