C语言程序设计前两章习题精选

这一篇主要内容是课本前两章习题(我个人认为比较具有代表性的)

我使用编译软件:Dev C++

https://sourceforge.net/projects/orwelldevcpp/

这是Dev C++下载链接(建议平时练习的时候用Dev或者Visual studio,可以更方便的知道哪步有问题)

正文开始

简单的C语言程序

 在打程序之前我们需要先知道基本的框架:

上面的是运行一个代码的基本内容。

下面就是习题:

编写一个C程序,运行时输出以下图形:

*****

  *****

    *****

代码示例:

#include<stdio.h>
int main()
{
  printf("*****\n");
  printf("  *****\n");
  printf("    *****\n");
  return 0;	
} 
//其中“\n”代表换行符

错误打法:

左边是根本运行不出来,右边则是输出的图形不对,在打该图形时一定要用上“\n换行符”,在学到第四章的时候我们可以用数组打出这样的图形。

计算两整数之和

代码示例:

#include<stdio.h>
int main()
{
    int a,b;
    a=5;
    b=6;
    printf("%d\n",a+b);
    return 0;
}

编写一个C程序,运行时输入a,b,c三个值,输出其中最大值

代码示例:

#include<stdio.h>
int main()
{
  int a,b,c,t;
  scanf("%d %d %d",&a,&b,&c);
  if(a>b)
  t=a;
  else
  t=b;
  if(t>c)
  printf("%d",t);
  else
  printf("%d",c);
  return 0;
} 

判断闰年

题目分析:什么是闰年?能被4整除但不能被100整除,可以被400整除的年份都是闰年

代码示例:

#include<stdio.h>
int main()
{
  int year;
  scanf("%d",&year);
   if(year%4==0||year%100!=0&&year%400==0)//在C语言中除法用“%”表示,==0代表可以被整除,!=0代表不能被整除,||是“或”,代表二选一,只要有一个成立该条件成立,&&是“与”,代表并列关系,两个条件要同时成立
   printf("%d是闰年",year);
   else
   printf("%d不是闰年",year);
   return 0;
} 

由这道题我们可以继续延伸到另一种题型

判断某一个范围内的闰年

例题:判断1900到2000年,哪一年是闰年哪一年不是闰年

代码示例:

#include<stdio.h>
int main()
{
  int year;
  for(year = 1900; year <= 2000; year++) //利用for循环统计1900到2000年的年份
  {
   if( ( year % 4 == 0 && year % 100 != 0 ) || ( year % 400 == 0 ) )
   printf("%d 是闰年\n", year);
   else
   printf("%d 不是闰年\n",year);
  }
  return 0;
}

运行结果:

和这种题型类似的还有

判断一个数是否为素数

题目分析:什么是素数?除了1和自身外不能被其他自然数整除的数是素数

代码示例: 

#include<stdio.h>
int main()
{
  int x,y;
  scanf("%d",&x);
  for(y=1;y<x;y++)//使用for循环且使y<x是为了找出能把x整除的自然数
  {
  	if(x%y==1)
  	break;//如果存在y在y<x的范围中能将x整除,跳出循环
  }
  if(x==y)//如果能将x整除的y是x本身,则x是素数
  printf("%d是素数\n",x);
  else
  printf("%d不是素数\n",x);
   return 0;
}

输出某个范围内的所有素数

例题:将100-200之间的素数输出

代码示例:

#include<stdio.h>
int main()
{
  int x,y;
  for(x=100;x<=200;x++)//第一个for循环是循环被除数x,也就是我们所求的范围内的数 
  {
  	for(y=2;y<x;y++)//第二个for循环是循环除数y,y=2且y<x的原因是找除1外能整除x的自然数 
  	{
  		if(x%y==0)
  		break;//当x可以被y整除跳出循环 
	}
	 if(y==x)//如果可以把x整除的y不是x本身则说明x是素数,否则说明x不是素数 
	 printf("%d\n",x);//输出100-200之间的所有素数 
   } 
   return 0;
}

求两个数的最大公约数

代码示例:

#include<stdio.h>
int main()
{
	int x,y,i;
	i=0;
	scanf("%d %d",&x,&y);
	while(i=x%y,i!=0)
	{
		x=y;
		y=i;
	}
	printf("最大公约数是%d",y);
	return 0;
}

最小公约数同理

求5!的结果

代码示例:

#include<stdio.h>
int main()
{
	int x,y;
	y=1;
	x=2;
	while(x<=5)
	{
		y=x*y;
		x=x+1;
	}
	printf("%d\n",y);
	return 0;
}

希望这些对各位复习或刷题有帮助,有其他题型大家可以在评论区讨论

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值