以文本方式查看主题 - 曙海教育集团论坛 (http://peixun0.cn/bbs/index.asp) -- C语言开发 (http://peixun0.cn/bbs/list.asp?boardid=62) ---- C语言程序开发经典实例 (http://peixun0.cn/bbs/dispbbs.asp?boardid=62&id=2388) |
-- 作者:wangxinxin -- 发布时间:2010-12-10 9:53:08 -- C语言程序开发经典实例 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?4 r% |! S3 B1 O! O( k% G 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\\n"); for(i=1;i 【程序2】2 M6 n# H! I- X- m0 u 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?0 r& ?& F. E* T, T6 K3 @ 5 s+ {$ S. u) N6 I 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 \' K1 V/ W9 V6 \\4 q 2.程序源代码:7 w* m4 Q) G0 E n7 q! U+ Z\' ^/ F3 ? main() s) i1 j9 A5 O( T5 N, h; S { long int i;- u: b" C* _* L h int bonus1,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;, k+ I6 F# q0 a/ C, X1 r+ o bonus10=bonus6+400000*0.15; if(i6 M2 z8 p4 @; A2 P+ p 【程序3】, l: ~% ]* e" c\' }" t8 K9 b* Y 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?" H2 l. H( p\' p4 v6 I 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include "math.h"2 }) X* s8 ^0 Y! }\' v1 w O- W! G main() V$ u8 F7 h\' F8 h* `) w- h { long int i,x,y,z;0 Q% \\0 V5 h; H) l9 X1 Y for (i=1;i 【程序4】( O/ \\3 c- \\ O1 t% ]5 K ]; g3 T 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。) M) D- q- ]2 h6 l 5 v* {3 x( ^/ S( a; h9 Q% L# ~ 2.程序源代码: 6 S# V4 B; F- E$ { main()9 F2 j" x% M+ C/ _0 S { int day,month,year,sum,leap;. @" W; Q( Q\' U printf("\\nplease input year,month,day\\n");0 B\' ^. b- u& a& y; | scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/2 n0 Q1 s7 v5 i2 g" y { case 1:sum=0;break;; u- n( S+ G( N3 |/ [ case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break;\' ]6 `& g* g* j, R0 l case 6:sum=151;break;5 f: r$ }- i" E7 u\' l0 \\8 v case 7:sum=181;break;& M) ^+ e: k! G case 8:sum=212;break; case 9:sum=243;break;+ _; e. {7 `( L T! M7 g; Y case 10:sum=273;break; case 11:sum=304;break; P% |6 Z" G: h% L* n6 D% [+ X7 _ case 12:sum=334;break; default:printf("data error");break; } sum=sum+day; /*再加上某天的天数*/2 Z: g8 V6 o) \\! A% q t if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1; else leap=0;& g1 g* y1 Q8 d" e% ?, o if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++; printf("It is the %dth day.",sum);} 【程序5】2 M5 @$ @6 b n6 K4 K7 o }. s 题目:输入三个整数x,y,z,请把这三个数由小到大输出。( B) G* z7 a0 {$ m 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 0 ^- B# s o9 ~5 d 2.程序源代码: main()% y& u" O9 S; a2 n2 x- h { int x,y,z,t; scanf("%d%d%d",&x,&y,&z); if (x>y)% z4 h5 K& \\: ^# K {t=x;x=y;y=t;} /*交换x,y的值*/% I; w, _( ^# f; m1 E% a G if(x>z) {t=z;z=x;x=t;}/*交换x,z的值*/" K) Y( F* w& w8 v9 Y6 R if(y>z)% y1 m0 v/ S. A8 ~8 L {t=y;y=z;z=t;}/*交换z,y的值*/ printf("small to big: %d %d %d\\n",x,y,z);* j6 w1 e" }# E7 _0 }: Y1 v } 【程序6】 & t! O: J# b/ c7 p" P& k 题目:用*号输出字母C的图案。+ A8 h2 ~4 D( l; u+ n7 o 1.程序分析:可先用\'*\'号在纸上写出字母C,再分行输出。 % {8 c, z: [ j/ S- }( f 2.程序源代码: 7 ^* Z* n4 f& w, b/ K$ y" K- | #include "stdio.h" main()5 i" b! t1 t; ^5 N/ u7 J* L { printf("Hello C-world!\\n");( ?$ Q7 m( r, Q- G0 O6 O" X7 j printf(" ****\\n");, p" m" d- {0 ^$ ]! [% r printf(" *\\n");5 }! Q\' d0 w) H printf(" * \\n"); printf(" ****\\n"); }4 U\' e3 u6 F# C/ S9 y, M" a w# L 【程序7】) J7 k/ h5 C4 U9 w* ?% P, o- m 7 |! O" r5 H5 m1 t/ a* g; X7 R 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!7 B: [& k3 W/ W3 T, S9 r 1.程序分析:字符共有256个。不同字符,图形不一样。 & V6 ^7 L* f9 K6 L 8 m5 ]$ K" K3 N# s3 M) @# M 2.程序源代码:( {: |7 i5 G* a, t& A! f #include "stdio.h" main()\' C- Z# k7 i* d0 X! W: E9 _( f {1 U+ x$ U& H3 ]7 J. X 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);" ^3 U1 h/ Q- l$ F printf("%c%c%c%c%c\\n",a,b,a,b,a);7 b6 O1 }# o3 K printf("%c%c%c%c%c\\n",b,a,a,a,b);}, y) y# o- {) S9 p) ] 【程序8】" ~+ O2 R9 x0 ~% P6 o! O 题目:输出9*9口诀。" ]5 e: Z& q0 j 3 }* }3 k8 W% I1 U4 u. { 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。# E+ j8 Q( `$ _3 R: N0 ^ 2.程序源代码:3 Z, }) j\' v0 k9 a3 g 7 {* B# F9 j3 X* s\' o- f\' q4 Y9 d+ u #include "stdio.h"5 `( H; m, `/ G\' ^" _; ~ main() {. g% s: z8 S/ J int i,j,result; printf("\\n");* d/ V0 B! t& B" O0 k* k5 g. k6 @ for (i=1;i: U# u! O9 L, j 【程序9】 题目:要求输出国际象棋棋盘。 % j) ~3 c2 o# G9 ?; {( w! E3 k\' |3 W 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。6 H* d2 R8 _# j: ^* a# R! |6 S4 \\ W J% t% y6 r% w& H* i$ Y3 H4 j 2.程序源代码:& K% n) y. J4 S, [# Z #include "stdio.h"" W" F E; p% x main()* I" B! G9 S( F5 I |