C语言经典例题100道.docx
《C语言经典例题100道.docx》由会员分享,可在线阅读,更多相关《C语言经典例题100道.docx(34页珍藏版)》请在咨信网上搜索。
1、经典C源程序100例 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。2.程序源代码: mainO int i, j, k; printf(n); for(i=l; i5; i+)/*以下为三重循环*/for(j=l;j5;j+)for (k=l;k5;k+) (if (i !=k&i !=j&j!=k)/*确保 i、j、k 三位互不相同*/printf (与d, %d, %dn”, i, j, k); )【程序2】题目:企业发放的奖金根据利润提成。利润(
2、1)低于或等于10万元时,奖金可提10版利润 高于10万元,低于20万元时,低于10万元的局部按10%提成,高于10万元的局部,可 可提 成7. 5%; 20万到4()万之间时,高于20万元的局部,可提成5%; 40万到60万之间时 高于40万元的局部,可提成3%: 60万到100万之间时,高于60万元的局部,可提成1. 5%, 高于100万元时,超过100万元的局部按巡提成,从键盘输入当月利润I,求应发放奖金 总数?1 .程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。2 .程序源代码:mainO long int i;int bonus 1, bonus2, bonus4
3、, bonus6, bonuslO,bonus;scanf (机d,&i);bonus 1=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;else if(i=200000)bonus=bonus1 + (i-100000)*0. 075;else if(i=400000)bonus=bonus2+(i-200000)*0. 05;else if(i0)x
4、l=(x2+l)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2=x1;day-; printf (th。total is %dn,z, xl); 【程序22题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签 决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程 序找出三队赛手的名单。1 .程序分析:判断素数的方法:用一个数分别去除2到sqrt (这个数),如果能被整除,那么 说明此数不是素数,反之是素数。2 .程序源代码:main() char i, j, k;/*i是a的对手,j是b的对手,k是c的对手*/for
5、(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(order is a-%ctb一%ctc-%cn*, i, j, k); 【程序23题目:打印出如下列图案(菱形)* *.程序分析:先把图形分成两局部来看待,前四行一个规律,后三行一个规律,利用双重for 循环,第一层控制行,第二层控制列。1 .程序源代码: mainO int i, j, k;for(i=0;i=3;i+) for(j=0;j=2-i;j+)printfC );for(k=0;
6、k=2*i;k+) printfC*); printf(*n*); for(i=0;i=2;i+) for(j=0;j=i;j+) printfC ); for(k=0;k=4-2*i:k+) printfC*);printfC 【程序24题目:有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13.求出这个数列的前20项之和。1 .程序分析:请抓住分子与分母的变化规律。2 .程序源代码:main() int n,t, number=20;float a=2, b=l, s=0;for(n=l;n=number;n+) s=s+a/b;t=a;a=a+b;b=t;/*这局
7、部是程序的关键,请读者猜猜t的作用*/ printf(sum is %9, 6fn*, s); 【程序25题目:求 l+2!+3!+. .+20!的和1 .程序分析:此程序只是把累加变成了累乘。2 .程序源代码:main() float n, s=0, t=l;for(n=l;n=20;n+) t*=n;s+=t; printfCl+2!+3!. +20!=%en”, s); 【程序26题目:利用递归方法求5!。1 .程序分析:递归公式:fn=fn_l*4!2 .程序源代码:Sinclude stdio. hmain () int i;int fact();for(i=0;i5;i+)prin
8、tf(40:%d!=%dn”, i, fact(i); int fact(j)int j; int sum;if(j=O)sum=l;elsesum=j*fact(j-1);return sum: )【程序27题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。1 .程序分析:2 .程序源代码:#include stdio. hmain() int i=5;void palin(int n);printfC40/);palin(i);printf(n); void pal in(n)int n; char next;if(n=l) next=getchar();printf(n
9、0:);putchar(next); )else next=getchar0;palin(n-l);putchar(next); 【程序28题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数, 他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?1 .程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需 知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。2 .程序源代码:age(n)int n; int c;if(n=l) c=10;else c=a
10、gc(n-l)+2;return; main() pr i n t f (*%(1*, age (5);)【程序29题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1 .程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班 赵鑫提供).程序源代码:main() long a, b, c, d, e, x;scanf &x);a=x/10000;/*分解出方位*/b=x%10000/1000;/* 分解出千位*/c = x% 1000/100; /* 分解出百位*/d=x%100/10;/*分解出十位*/e=x%10;/*分解出个位*/i
11、f (a!=0) printf(there are 5, %ld %ld %ld %lde, d, c, b, a);else if (b!=0) printf(there are 4, %d %ld %ld %ldn*, e, d, c, b);else if (c!=0) printf( there are 3, %ld %lde,d,c);else if (d!=0) printf(there are 2, %ld %ldn*, e, d);else if (e!=0) printf( there are 1,机dn”,e); 【程序30题目:一个5位数,判断它是不是回文数。即12321
12、是回文数,个位与万位相同,十位与千 位相同。1 .程序分析:同29例.程序源代码:main() long go, shi, qian, wan, x;scanf&x);wan=x/10000;qian=x%l0000/1000;shi=x%100/10;gc=x%10;if (ge=wan&shi=qian) /*个位等于万位并且十位等于千位*/ printf(this number is a huiwcnn);elseprintf(this number is not a huiwenn); 程序31】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,那么继续 判断第二个
13、字母。1 .程序分析:用情况语句比拟好,如果第一个字母一样,那么判断用情况语句或if语句判断 第二个字母。2 .程序源代码:include void main() char letter;pri ntf(please input the first letter of somedayn);while (lettei-getchO) != Y )/*当所按字母为 Y 时才结束*/ switch (letter)case S:printf (please input second letternz,);if (letter=getch () )=,a) printfC,saturdayn,,);e
14、lse if (letter=getch()=, u*) pri ntf (,sundayn,,);else printf (data errorn,/); break;case F :printf (/fridayn,z) ;break;case 1 :printf C,mondciyn,/) ;break;case * T* :printf(please input second lettern*);if (letter=getch ()= u) printf (,ztuesdayn,/);else if (letter=getch()=, ) printf(thursdayn);else
15、 printf (data errornz,); break;case W :printf (,wcdnesdayn,);break;default: printf(data errorn); 【程序32题目:Press any key to change color, do you want to try it. Please hurry up!1 .程序分析:2 .程序源代码:#include void main(void) int color;for (color = 0; color 8; color+)textbackground (color) ;/*设置文本的背景颜色*/cpri
16、ntf(This is color %drn”, color); cprintf(Press any key to continuern); getch();/*输入字符看不见*/【程序33题目:学习gotoxyO与clrscr()函数.程序分析:1 .程序源代码:#include void main(void) clrscrO ;/*清屏函数*/textbackground (2);gotoxy (1, 5);/* 定位函数*/cprintf(Output at row 5 column ln);textbackground (3);gotoxy(20, 10);cprintf(Output
17、 at row 10 column 20n); 【程序34题Fl:练习函数调用.程序分析:1 .程序源代码: ttinclude void helloworld(voi d) printf(Hello, world!n*); void three hellos(void) int counter;for (counter = 1; counter = 3; countcr+) hello_world();/*调用此函数*/ void main(void) three_hellos() ;/*调用此函数*/ 【程序35题目:文本颜色设置1 .程序分析:2 .程序源代码: include void
18、 main(void) int color;for (color = 1; color 16; color+) textcolor(color);/*设置文本颜色*/ cprintf(*This is color %drn”, color); textcolor(128 + 15);cprintf (,/This is blinkingrnw);【程序36题Fl:求100之内的素数.程序分析:1 .程序源代码:include #include malh. h#define N 101mai n () int i, j, line, aN;for(i=2;iN;i+) ai=i; for(i=2
19、;isqrt(N);i+) for(j=i+l;jN;j+) if(ai!=0&aj!=0)if (aj%ai=0)aj=0;printf(n);for(i=2, line=0;iN;i+) if(ai!=0)printf(*%5d*ai);1ine+;if(line=10)printf (rT);line=0;)【程序37题目:对10个数进行排序.程序分析:可以利用选择法,即从后9个比拟过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比拟,并进行交换。1 .程序源代码:define N 10mainOint i, j, min, tem, aN;/*input
20、data*/printf (please input ten num:nz,);for(i=0;iN;i+) printf (,a%d=* i);scanf(*%d*,&ai);printf(n); for(i=0;iN;i+) printf(%5d, ai);printf(n);sort ten num*/ for(i=0;iN-l;i+) min=i;for(j=i+l;jaj) min=j;tem=ai;ai=amin;amin=tem;/output data*/printf(After sorted n);for(i=0;iN;i+) printf(%5d, ai);【程序38题目:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 经典 例题 100
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。