这一篇主要内容是课本前两章习题(我个人认为比较具有代表性的)
我使用编译软件: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;
}
希望这些对各位复习或刷题有帮助,有其他题型大家可以在评论区讨论