题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?4 r% |! S3 B1 O! O( k% G
' p" v/ _% ~2 b 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 7 [4 O9 k1 P% L) F" \; ~2 D ' i+ l" v2 ?8 e8 D6 ~ 2.程序源代码: 5 D% k. {$ ] u. F0 \1 [$ P# S ; L) ?0 u" r, Z2 R6 ~. {main() 6 O9 Q |( J$ L k/ H/ J{ 9 I2 Z5 _5 N" [ c6 cint i,j,k; 8 Z% o8 s+ Y4 ^9 Nprintf("\n"); 6 i: t4 v# c7 ^: lfor(i=1;i 9 W" X) h8 D' c$ e! M6 v 【程序2】2 M6 n# H! I- X- m0 u
5 u0 x' m* M" M) x+ }$ G 题目:企业发放的奖金根据利润提成。利润(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
1 H. ?: D7 s. |- U) |7 g6 |- G, [# ?! e 2.程序源代码:7 w* m4 Q) G0 E n7 q! U+ Z' ^/ F3 ?
A7 l6 a; m- V! D( k$ mmain() s) i1 j9 A5 O( T5 N, h; S { & R1 p% ^4 h( j9 Rlong int i;- u: b" C* _* L h int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; , s7 x) D- R5 [! } }4 G+ ascanf("%ld",&i); 1 z# _$ |' e+ {7 ?8 J$ {bonus1=100000*0.1;bonus2=bonus1+100000*0.75; & J! ]5 h( h9 t( B: Xbonus4=bonus2+200000*0.5; ( m: K0 L% c9 N6 `& ]! v B; Pbonus6=bonus4+200000*0.3;, k+ I6 F# q0 a/ C, X1 r+ o bonus10=bonus6+400000*0.15; % h- j' }8 Y4 B9 ^2 r) y if(i6 M2 z8 p4 @; A2 P+ p 【程序3】, l: ~% ]* e" c' }" t8 K9 b* Y
' w* K; U& l5 v* A% _8 o4 x 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?" H2 l. H( p' p4 v6 I
s$ r9 o* q, C' R, R 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析: 2 H" b% d5 H8 L) v/ ]* x f" d8 L" [" y9 x- D, K# b8 m$ m 2.程序源代码: $ o% R1 w/ c0 x9 \2 D; ]8 a9 f2 I : c& Y! W( {6 ]# ~6 v! c7 B#include "math.h"2 }) X* s8 ^0 Y! }' v1 w O- W! G main() V$ u8 F7 h' F8 h* `) w- h { * J9 {- _; L/ x& m' s( _long int i,x,y,z;0 Q% \0 V5 h; H) l9 X1 Y for (i=1;i 4 ^8 f7 E/ i. ~- b! r3 D8 z- p. x: P【程序4】( O/ \3 c- \ O1 t% ]5 K ]; g3 T
5 z% d2 M* J& s' z/ [% M* y0 x( y* r 题目:输入某年某月某日,判断这一天是这一年的第几天? 4 r9 \0 O, B+ V* G, k1 q ; R) q2 B2 Z8 \" m 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。) M) D- q- ]2 h6 l 5 v* {3 x( ^/ S( a; h9 Q% L# ~ 2.程序源代码: , {8 Z& D& ^/ N# {' z9 M5 S6 S# V4 B; F- E$ { main()9 F2 j" x% M+ C/ _0 S { : S: I+ U( s$ ]2 s' I6 nint 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); 0 u3 @' v7 x5 R" Q% p6 eswitch(month)/*先计算某月以前月份的总天数*/2 n0 Q1 s7 v5 i2 g" y { - C/ Q% c: f; t6 m6 ]" y$ t case 1:sum=0;break;; u- n( S+ G( N3 |/ [ case 2:sum=31;break; 8 k- Z0 D' K+ j4 r! ]( i case 3:sum=59;break; 3 {( e, U: H- o" J S/ u9 O& T case 4:sum=90;break; 5 u/ p6 p% w. g) M' Q# z- R 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; * {: g7 ?* g' q j! f/ f case 9:sum=243;break;+ _; e. {7 `( L T! M7 g; Y case 10:sum=273;break; " h1 R* Y6 f$ F' [2 R case 11:sum=304;break; P% |6 Z" G: h% L* n6 D% [+ X7 _ case 12:sum=334;break; - T5 Y- `( Y" C9 l default:printf("data error");break; g3 p$ z1 ^& g, c6 J} : a3 Z& m3 B+ A+ u. g6 vsum=sum+day; /*再加上某天的天数*/2 Z: g8 V6 o) \! A% q t if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ * p* ` B/ R" O& P# B( M leap=1; 9 H7 B) F! w; Z5 m( A r, ] else * p* Y9 K9 ]. \' N% \) s% Q leap=0;& g1 g* y1 Q8 d" e% ?, o if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ * W7 z/ S! j, \/ f; O8 o' H9 m w# zsum++; - ?) n4 t3 v5 n8 N1 l; xprintf("It is the %dth day.",sum);} # X% N# d {! F a! p 【程序5】2 M5 @$ @6 b n6 K4 K7 o }. s
% G4 p$ V V+ k8 D, k; Q 题目:输入三个整数x,y,z,请把这三个数由小到大输出。( B) G* z7 a0 {$ m
2 D. ?3 ?! E3 z 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 ; t& K; l& }/ P4 s0 ^- B# s o9 ~5 d 2.程序源代码: 5 ]5 _; z. r$ d7 O/ O8 |+ ^ 7 e9 n! g! [) w6 O& ymain()% y& u" O9 S; a2 n2 x- h { ! L' i* N8 n1 X$ i# A5 [: a int x,y,z,t; / J; T0 c6 _! j! N+ }3 Z8 k scanf("%d%d%d",&x,&y,&z); 1 [, |3 U$ \! Z4 c1 G5 L+ C2 d, x 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) 9 s7 Q' k# }# n/ L( z% T7 {) E |8 U {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的值*/ I" H. A9 N+ T printf("small to big: %d %d %d\n",x,y,z);* j6 w1 e" }# E7 _0 }: Y1 v } * c# k% o% s% K 【程序6】 3 c% @1 V' \+ i& z1 p( q, `& t! O: J# b/ c7 p" P& k 题目:用*号输出字母C的图案。+ A8 h2 ~4 D( l; u+ n7 o
5 |) o2 N/ Z# ^/ H9 a 1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 ; W; c" h& y" V @8 x- q! S% {8 c, z: [ j/ S- }( f 2.程序源代码: 9 u C1 Y4 K; O& K! y& I1 I7 ^* Z* n4 f& w, b/ K$ y" K- | #include "stdio.h" * f3 g' z& m( @9 ?: i1 w! A" kmain()5 i" b! t1 t; ^5 N/ u7 J* L { Z: X1 n. w! g8 o& `2 aprintf("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"); ; G, l. }/ W7 R" x w" [9 c& kprintf(" ****\n"); - T9 E. e- X8 p8 r7 b3 Y}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
9 |7 t* C( X1 y6 K/ Z 1.程序分析:字符共有256个。不同字符,图形不一样。 & V6 ^7 L* f9 K6 L 8 m5 ]$ K" K3 N# s3 M) @# M 2.程序源代码:( {: |7 i5 G* a, t& A! f
# n. u' Z* C: n# x4 q; d#include "stdio.h" . Q; }- H$ K: _3 {main()' C- Z# k7 i* d0 X! W: E9 _( f {1 U+ x$ U& H3 ]7 J. X char a=176,b=219; + l0 t: p% I4 n2 T: u: gprintf("%c%c%c%c%c\n",b,a,a,a,b); + \, F, }9 S3 d- ~- ^printf("%c%c%c%c%c\n",a,b,a,b,a); ' G+ m) B0 w$ l% Oprintf("%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
" N& F8 G! y/ J( F: ? 题目:输出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 ^
8 [ X" G$ `; }; q$ Z7 C# { y 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() % w6 C! A9 H" f& r% @' {3 K{. g% s: z8 S/ J int i,j,result; 7 f6 ]% t4 a- K3 s; ^$ U printf("\n");* d/ V0 B! t& B" O0 k* k5 g. k6 @ for (i=1;i: U# u! O9 L, j 【程序9】 2 r4 p. b5 ?' O+ C5 c % Y; R! K$ E3 c' w$ L" ~2 s 题目:要求输出国际象棋棋盘。 " u0 P& }1 D/ g# t+ i% 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
5 I- G# f, }/ L6 I4 t- @9 J" O. V6 M! o#include "stdio.h"" W" F E; p% x main()* I" B! G9 S( F5 I
|