“Hello world”是我对于C语言的初印象,“Hello world”可以说是学习C语言最最基础的小程序了。当自己亲手在电脑上敲下代码,然后运行,呈现出来的结果可以说是很让人欣喜的。那除了“Hello world”这样的一个入门小程序,其他小程序你们还知道吗?今天小编我为大家整理了一下9个经典小程序,看看大家是否都能完整解答出来!(个人建议,先不要看答案,测试一下自己)!
-
Q
-
有1、2、3、4个
-
数字,能组成多
-
少个互不相同且
-
无重复数字的三
-
位数?都是多少?
-
A
-
程序分析:可填在百位、
-
十位、个位的数字都是
-
1、2、3、4。组成所
-
有的排列后再去掉不
-
满足条件的排列。
-
程序源代码:
-
main()
-
{
-
int i,j,k;
-
printf("\n");
-
for(i=1;i<5;i )
-
/*以下为三重循环*/
-
for(j=1;j<5;j )
-
for (k=1;k<5;k )
-
{
-
if (i!=k&&i!=j&&j!=k)
-
/*确保i、j、k三位互不相同*/
-
printf("%d,%d,%d\n",i,j,k);
-
}
-
}
-
Q
-
一个整数,它加上100
-
后是一个完全平方数,再加
-
上168又是一个完全平方数,
-
请问该数是多少?
-
A
-
程序分析:在10万以内判断,
-
先将该数加上100后再开方,
-
再将该数加上268后再开
-
方,如果开方后 的结果满
-
足如下条件,即是结果。
-
程序源代码:
-
#include "math.h"
-
main()
-
{
-
long int i,x,y,z;
-
for (i=1;i<100000;i )
-
{ x=sqrt(i 100);
-
/*x为加上100后开方后的
-
结果*/
-
y=sqrt(i 268);
-
/*y为再加上168后开方后的
-
结果*/
-
if(x*x==i 100&&y*y==i 268)
-
/*如果一个数的平方根的平方
-
等于该数,
-
这说明此数是完全平方数*/
-
printf("\n%ld\n",i);
-
}
-
}
-
Q
-
输入某年某月某日,
-
判断这一天是这一年
-
的第几天?
-
A
-
程序分析:以3月5日为例,
-
应该先把前两个月的加起
-
来,然后再加上5天即本
-
年的第几天,特殊情况,
-
闰年且输入月份大于3时需
-
考虑多加一天。
-
程序源代码:
-
main()
-
{
-
int day,month,year,sum,leap;
-
printf("\nplease input year,
-
month,day\n");
-
scanf("%d,%d,%d",&year,&
-
month,&day);
-
switch(month)
-
/*先计算某月以前月份的总天数*/
-
{
-
case 1:sum=0;break;
-
case 2:sum=31;break;
-
case 3:sum=59;break;
-
case 4:sum=90;break;
-
case 5:sum=120;break;
-
case 6:sum=151;break;
-
case 7:sum=181;break;
-
case 8:sum=212;break;
-
case 9:sum=243;break;
-
case 10:sum=273;break;
-
case 11:sum=304;break;
-
case 12:sum=334;break;
-
defaultrintf("data error");break;
-
}
-
sum=sum day;
-
/*再加上某天的天数*/
-
if(year@0==0||(year%4
-
==0&&year0!=0))
-
/*判断是不是闰年*/
-
leap=1;
-
else
-
leap=0;
-
if(leap==1&&month>2)
-
/*如果是闰年且月份大于2,
-
总天数应该加一天*/
-
sum ;
-
printf("It is the %dth day.",sum); }
-
Q
-
输入三个整数x,y,z,
-
请把这三个数由小
-
到大输出
-
A
-
程序分析:我们想办法把
-
最小的数放到x上,先将x
-
与y进行比较,如果x>y
-
则将x与y的值进行交换,
-
然后再用x与z进行比较,
-
如果x>z则将x与z的值进
-
行交换,这样能使x最小。
-
程序源代码:
-
main()
-
{
-
int x,y,z,t;
-
scanf("%d%d%d",&x,&y,&z);
-
if (x>y)
-
/*交换x,y的值*/
-
if(x>z)
-
/*交换x,z的值*/
-
if(y>z)
-
/*交换z,y的值*/
-
printf("small to big: %d %d %d\n",x,y,z);
-
}
-
Q
-
用*号输出字母C的图案
-
A
-
程序分析:可先
-
用<|>*<|>号在纸
-
上写出字母C,
-
再分行输出。
-
程序源代码:
-
#include "stdio.h"
-
main()
-
{
-
printf("Hello C-world!\n");
-
printf(" ****\n");
-
printf(" *\n");
-
printf(" * \n");
-
printf(" ****\n");
-
}
-
Q
-
输出特殊图案,
-
请在c环境中运行,
-
看一看,
-
Very Beautiful!
-
A
-
程序分析:字符共有
-
256个。不同字符,
-
图形不一样。
-
程序源代码:
-
#include "stdio.h"
-
main()
-
{ char a=176,b=219;
-
printf("%c%c%c%c%c\n",
-
b,a,a,a,b);
-
printf("%c%c%c%c%c\n",
-
a,b,a,b,a);
-
printf("%c%c%c%c%c\n",
-
a,a,b,a,a);
-
printf("%c%c%c%c%c\n",
-
a,b,a,b,a);
-
printf("%c%c%c%c%c\n",
-
b,a,a,a,b); }
-
Q
-
输出9*9口诀
-
A
-
程序分析:分行
-
与列考虑,共9行
-
9列,i控制行,
-
j控制列。
-
程序源代码:
-
#include "stdio.h"
-
main()
-
{
-
int i,j,result;
-
printf("\n");
-
for (i=1;i<10;i )
-
{ for(j=1;j<10;j )
-
{
-
result=i*j;
-
printf("%d*%d=%-3d",
-
i,j,result);
-
/*-3d表示左对齐,占3位*/
-
}
-
printf("\n");/*每一行后换行*/
-
}
-
}
-
Q
-
要求输出国际象棋棋盘
-
A
-
程序分析:用i控制行,
-
j来控制列,根据i j的和的
-
变化来控制输出黑方
-
格,还是白方格。
-
程序源代码:
-
#include "stdio.h"
-
main()
-
{
-
int i,j;
-
for(i=0;i<8;i )
-
{
-
for(j=0;j<8;j )
-
if((i j)%2==0)
-
printf("%c%c",219,219);
-
else
-
printf(" ");
-
printf("\n");
-
}
-
}
-
Q
-
打印楼梯,同时在楼梯
-
上方打印两个笑脸
-
A
-
程序分析:用i控制行,
-
j来控列,
-
j根据i的变化来控
-
制输出黑方格的个数。
-
程序源代码:
-
#include "stdio.h"
-
main()
-
{
-
int i,j;
-
printf("\n");/*输出两个笑脸*/
-
for(i=1;i<11;i )
-
{
-
for(j=1;j<=i;j )
-
printf("%c%c",219,219);
-
printf("\n");
-
}
}
,