C语言程序开发经典实例.docx
- 文档编号:5911803
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:10
- 大小:17.42KB
C语言程序开发经典实例.docx
《C语言程序开发经典实例.docx》由会员分享,可在线阅读,更多相关《C语言程序开发经典实例.docx(10页珍藏版)》请在冰豆网上搜索。
C语言程序开发经典实例
C语言程序开发经典实例之一时间:
2010-11-11
【程序1】
题目:
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
1.程序分析:
可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:
main()
{
inti,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);
}
}
【程序2】
题目:
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:
请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:
main()
{
longinti;
intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
elseif(i<=200000)
bonus=bonus1+(i-100000)*0.075;
elseif(i<=400000)
bonus=bonus2+(i-200000)*0.05;
elseif(i<=600000)
bonus=bonus4+(i-400000)*0.03;
elseif(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
【程序11】
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21....
2.程序源代码:
main()
{
longf1,f2;
inti;
f1=f2=1;
for(i=1;i<=20;i++)
{printf("%12ld%12ld",f1,f2);
if(i%2==0)printf("\n");/*控制输出,每行四个*/
f1=f1+f2;/*前两个月加起来赋值给第三个月*/
f2=f1+f2;/*前两个月加起来赋值给第三个月*/
}
}
【程序12】
题目:
判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
2.程序源代码:
#include"math.h"
main()
{
intm,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap){printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThetotalis%d",h);
}
【程序21】
题目:
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
1.程序分析:
采取逆向思维的方法,从后往前推断。
2.程序源代码:
main()
{
intday,x1,x2;
day9;
x21;
while(day>0)
{x1(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2x1;
day--;
}
printf("thetotalis%d\n",x1);
}
【程序22】
题目:
两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。
有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
1.程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
2.程序源代码:
main()
{
chari,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i'x';i<'z';i++)
for(j'x';j<'z';j++)
{
if(i!
j)
for(k'x';k<'z';k++)
{if(i!
k&&j!
k)
{if(i!
'x'&&k!
'x'&&k!
'z')
printf("orderisa--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
程序31】
题目:
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
1.程序分析:
用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
2.程序源代码:
#include
voidmain()
{
charletter;
printf("pleaseinputthefirstletterofsomeday\n");
while((letter=getch())!
='Y')/*当所按字母为Y时才结束*/
{
switch(letter)
{
case'S':
printf("pleaseinputsecondletter\n");
if((letter=getch())=='a')
printf("saturday\n");
elseif((letter=getch())=='u')
printf("sunday\n");
elseprintf("dataerror\n");
break;
case'F':
printf("friday\n");break;
case'M':
printf("monday\n");break;
case'T':
printf("pleaseinputsecondletter\n");
if((letter=getch())=='u')
printf("tuesday\n");
elseif((letter=getch())=='h')
printf("thursday\n");
elseprintf("dataerror\n");
break;
case'W':
printf("wednesday\n");break;
default:
printf("dataerror\n");
}
}
}
【程序41】
题目:
学习static定义静态变量的用法
1.程序分析:
2.程序源代码:
#include"stdio.h"
varfunc()
{
intvar=0;
staticintstatic_var=0;
printf("\40:
varequal%d\n",var);
printf("\40:
staticvarequal%d\n",static_var);
printf("\n");
var++;
static_var++;
}
voidmain()
{
inti;
for(i=0;i<3;i++)
varfunc();
}
【程序42】
题目:
学习使用auto定义变量的用法
1.程序分析:
2.程序源代码:
#include"stdio.h"
main()
{
inti,num;
num=2;
for(i=0;i<3;i++)
{
printf("\40:
Thenumequal%d\n",num);
num++;
{
autointnum=1;
printf("\40:
Theinternalblocknumequal%d\n",num);
num++;
}
}
}
【程序51】
题目:
学习使用按位与&。
1.程序分析:
0&0=0;0&1=0;1&0=0;1&1=1
2.程序源代码:
#include"stdio.h"
main()
{
inta,b;
a=077;
b=a&3;
printf("\40:
Thea&b(decimal)is%d\n",b);
b&=7;
printf("\40:
Thea&b(decimal)is%d\n",b);
}
【程序52】
题目:
学习使用按位或|。
1.程序分析:
0|0=0;0|1=1;1|0=1;1|1=1
2.程序源代码:
#include"stdio.h"
main()
{
inta,b;
a=077;
b=a|3;
printf("\40:
Thea&b(decimal)is%d\n",b);
b|=7;
printf("\40:
Thea&b(decimal)is%d\n",b);
}
【程序61】
题目:
打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
2.程序源代码:
main()
{
inti,j;
inta[10][10];
printf("\n");
for(i=0;i<10;i++)
{
a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
}
【程序71】
题目:
编写input()和output()函数输入,输出5个学生的数据记录。
1.程序分析:
2.程序源代码:
#defineN5
structstudent
{
charnum[6];
charname[8];
intscore[4];
}stu[N];
input(stu)
structstudentstu[];
{
inti,j;
for(i=0;i { printf("\npleaseinput%dof%d\n",i+1,N);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 开发 经典 实例