【程序27】 ) Q. g. W, _- }' W) C( L# ?
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。6 b, O3 P) x% {
1.程序分析: l5 x; _1 ?; X2 H/ [
2.程序源代码:4 N0 x( |1 [; `$ z9 O% W
#include "stdio.h"& z2 D- U( j8 R" b9 K9 A7 w
main()" y$ h! T8 X0 }+ H: e* K' K
{0 D$ D0 f: H0 H. T
int i=5;4 |$ A4 P8 A! P3 |' V! K; W
void palin(int n);7 K N3 ~- S! d2 C( c m
printf("\40:");2 j8 J# X8 G7 O, T/ q6 U! S$ h
palin(i);
9 D; d2 l9 }7 E" b0 Aprintf("\n");
' v6 }" K( m$ F0 Y3 e}
, r- L; {4 b* I6 k8 R. v( Xvoid palin(n)
$ I; d4 l- P1 W0 gint n;
/ @( p! }/ P5 H; C{; ~6 Q: ?# `2 }6 ]/ w
char next;
1 G, g6 u0 Z1 M( E8 ]3 p; A. \if(n<=1): h/ A" f! I9 [4 o' q8 n
{
( y6 v% Z# E$ m1 ~2 k! c; E6 i next=getchar();' c/ [+ x+ W* w; w. X' y) i
printf("\n\0:");) K( q+ W& j# Z. N! T9 R8 \
putchar(next);6 P+ _* m8 z; [, n5 r0 ]( ?3 ^$ g, y
}
. m# T @1 }( }5 relse
: _1 b! Y, k; ]- z X {. Q3 y( ?4 X0 C* W9 f
next=getchar();
. U; V: h8 S+ U: E" @9 R$ c palin(n-1);
3 v, k4 F7 w k* \: o x putchar(next); ~4 u& M% p9 p* F, d7 i5 o- s
}, H4 @; ~+ b# }& n7 X
}! P! h( V/ I0 s/ H0 V1 s# w: _8 @
==============================================================7 b2 K; \7 R# P- o( ?5 u0 j
【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要 2 O7 U0 F4 m' E$ j* @
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第$ r; B H( {1 W0 L5 E* u
3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
$ C( e" d) n* Z* @( B4 L" O 问第一个人,他说是10岁。请问第五个人多大?
! ~) \; u( z& h/ y: S {1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道0 s" I% x: Y* r3 w5 s
第四人的岁数,依次类推,推到第一人(10岁),再往回推。% }: L" ~; u9 z8 f
2.程序源代码:
0 S! h% O/ P; S% V; D9 n4 Wage(n), _! u3 v0 l! d! l/ y/ W
int n;
; m! W% F+ Z9 b7 E) ^$ A{
) }6 H" B- L2 T* b ^. t! eint c;& y$ v5 d0 H( ^2 I- j3 r5 e5 l/ M5 v
if(n==1) c=10;" s& v1 j$ Y* @+ i: C2 h
else c=age(n-1)+2;" w. V+ Y5 ]( u: a! B' k
return(c);
1 X6 I5 y: ~; I: V' H4 ^& J9 g0 X}2 B' u* C+ \0 M. S4 c
main()0 G+ l+ h% o, d# t6 E
{ printf("%d",age(5));
2 _5 C# |/ y/ q% m$ e}
' \$ z9 ^" _. t6 G6 N7 S==============================================================+ ]7 m$ v4 { e( E
【程序29】
( \1 `+ R% O; J3 R$ l! O题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
! P9 \' _/ N8 o, r4 D4 s1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
8 a4 @; W$ U6 Q& l2.程序源代码:
# z+ M# M/ l: A6 N, z* H5 fmain( )
# N' s7 B4 R/ \- z# i{0 P1 o i/ r. }
long a,b,c,d,e,x;3 A7 y0 o# g" I6 ~, O8 r. ]6 i
scanf("%ld",&x);
f& @( n! g/ [% _a=x/10000;/*分解出万位*/2 G% s) F2 x6 Q) X7 V
b=x%10000/1000;/*分解出千位*/
* e h' ]. O3 m' I4 c4 N5 Jc=x%1000/100;/*分解出百位*/
; o$ R; Q; `" N$ T+ E3 i/ r; _d=x%100/10;/*分解出十位*/
0 x5 T( R8 P& i& c/ G9 z8 h4 ue=x%10;/*分解出个位*/
( w5 Q( [' S7 e5 J( u4 |1 `if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);. w: d5 H# G% ~* V- _7 }( ]0 F7 F
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
- Z+ _9 N, i; {; I else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
/ t9 z8 ~5 ~ Y$ v% ^) Q) l, u else if (d!=0) printf("there are 2, %ld %ld\n",e,d);1 s. u) P* m7 v4 k) ^. \
else if (e!=0) printf(" there are 1,%ld\n",e);
b+ X# }3 S# z3 L% _; @3 |$ h. m}
: U2 Z4 c3 N( D. ?7 `==============================================================- a6 V$ B' H+ X8 ?
【程序30】
7 f' J$ x v, @$ H8 ~" e8 A题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 ; P3 v: Q) X$ w+ l9 `( b
1.程序分析:同29例, ?% I3 n# @6 A1 @& {* b. x
2.程序源代码:
, e+ s% Q0 ?& w2 n* n {main( )
, p) @+ ~, O/ |, O1 q6 N2 x{
/ r4 ? x& q8 |0 Ilong ge,shi,qian,wan,x;7 o! X* G W4 c' b8 i
scanf("%ld",&x);
' i/ q" X# ]6 O7 B$ E) X- l/ l0 Xwan=x/10000;3 V" Q- R: |3 y% R6 i3 j" w. s
qian=x%10000/1000;
) @) Y. o" [5 N+ q% e8 h H. `# Bshi=x%100/10;- `4 U+ T, T/ h$ z: v6 J) s
ge=x%10;4 y$ a0 e a% t: Y6 n
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/) w, O2 \4 |3 y$ v; K! s
printf("this number is a huiwen\n");1 r: W0 i2 u5 f: t e
else
`8 Z& {2 }+ f6 f( A x7 E printf("this number is not a huiwen\n");" h+ o7 Q) N$ \; k- D
} 【程序31】
1 D2 ]1 i# |, {4 v! v) ?6 Y H/ g题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
7 V* C3 Q% v. ]6 t$ p; w' P 判断第二个字母。5 r# [8 o* m) W
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
4 Y0 A# @8 b! D s, z* L2.程序源代码:
, W0 Q% i2 k/ b" C1 A#include , C$ r9 M0 T3 }$ |# V5 |
void main()
3 |8 z9 q# | j* p2 h8 `{
$ X1 H4 t& r5 e' a/ fchar letter;8 C0 m, p$ l; r0 L: R
printf("please input the first letter of someday\n");
1 [0 H: y9 e4 I# t' e7 @while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/% _4 q6 n. z+ c; T, N2 i& h1 g% a
{ switch (letter)
! q5 r! N5 M0 X- p{case 'S':printf("please input second letter\n");% R1 Y5 e3 v9 F& Q
if((letter=getch())=='a')
, c ^+ P. ?/ z* [' M4 W$ U- C/ F printf("saturday\n");
: F, E+ L! x9 i3 h else if ((letter=getch())=='u')+ y) q8 d1 z/ e* O* i! [
printf("sunday\n");' _ e7 \; G* a4 j, d$ r. g( J
else printf("data error\n");2 k& O0 i+ l; t4 {* T5 a
break;; i& C& M% e3 z- q! L# q
case 'F':printf("friday\n");break;
- J$ ] l/ F) F) W6 v- [case 'M':printf("monday\n");break;
4 f2 u8 D% D/ i+ o a5 u! n: J, mcase 'T':printf("please input second letter\n");+ `/ O# G3 p0 x3 @- p; [" j- D
if((letter=getch())=='u')
2 a. w+ i9 G" T& I printf("tuesday\n");
5 M- |8 ^8 H ^ else if ((letter=getch())=='h')' b$ b- v1 _5 ` \
printf("thursday\n");" u# S3 {6 P* H( G+ \
else printf("data error\n");3 | l, M# `$ S7 V1 e; i
break;
: e, l9 L$ S& n( P4 X2 Jcase 'W':printf("wednesday\n");break;
+ K9 a! _5 P; n+ P. Zdefault: printf("data error\n");, o' @- M2 }9 h: C6 l
}
* k% G+ u. x: k! \8 Q }
2 Q+ i4 y8 a" `8 a6 k. O, ^: |}
. F8 a6 N$ o9 ]( f# l. }& i==============================================================$ R) j8 y6 J) Z- _4 r
【程序32】
" r2 ^7 w5 L/ F' X8 X: u题目:Press any key to change color, do you want to try it. Please hurry up!! a6 M8 I( D, C
1.程序分析:
: P- |& s1 G6 E/ b6 X( `' Q2 C( I2.程序源代码:
& `" g% @* ~5 O; s( z3 K, S3 h1 [#include
' I9 E8 l- _5 O; |+ w+ J) c evoid main(void)
% M7 C, F9 C$ c5 P d" N{
. ?6 T$ X1 F5 v2 l" I y0 sint color;9 ^, @/ E( C' f- e* ] N
for (color = 0; color < 8; color++)/ E; v' H& i. |2 h
{
$ J2 y, |7 @9 Y: m6 J textbackground(color);/*设置文本的背景颜色*/
8 Q9 P1 q% y$ \ cprintf("This is color %d\r\n", color);5 I4 x3 Q' Y% u8 B# m
cprintf("Press any key to continue\r\n");2 c& M) c% X0 A
getch();/*输入字符看不见*/6 f; I5 T. ^0 J5 i$ R
}4 a, {+ D/ J6 n* E
}
7 L# ?+ R* v6 B: g==============================================================( _# E) K6 u1 {0 u" K! ~
【程序33】/ l) X4 n! ~1 J0 N1 ?9 H
题目:学习gotoxy()与clrscr()函数 ) i' d0 i- x+ {0 N7 y* A" Q$ H0 _5 q2 r
1.程序分析:9 U2 d4 l3 `% W B" x
2.程序源代码:
+ a8 S" x) l/ i+ U6 W; d3 E. X#include
) N' X" p" [' m0 ?: K8 Xvoid main(void), }% `. v* d& r8 K9 Z
{
9 P% R$ F- C `5 @) z$ v1 Wclrscr();/*清屏函数*/3 k9 Y) i4 \$ X# f1 }4 T t1 d
textbackground(2);9 W0 ^+ \7 Q6 D
gotoxy(1, 5);/*定位函数*/8 G; d' W1 i; [' }! D
cprintf("Output at row 5 column 1\n");8 [; M; L5 k4 Z* k
textbackground(3);
# g! m# H A% Y( a% @1 ]gotoxy(20, 10);: X/ ~5 z \7 _" I- U8 d
cprintf("Output at row 10 column 20\n");
5 e% P! e: ~) B* t% L}. y: c: H0 Q+ T; s% }
============================================================== O9 F9 N" W* ^1 F Q8 D1 o
【程序34】
& g( \ ?$ C5 g) d) U# _6 ]3 }题目:练习函数调用
" {' m0 Z4 M9 O5 C8 a1. 程序分析:
$ h1 z! N8 ~5 c& X. n% E+ f2.程序源代码:! u3 K7 U5 i4 n$ o# }
#include j. S) ~. T2 ^$ O% f$ X
void hello_world(void)
! z4 X# q' R3 r# a! j/ z{: R0 Y! ~$ Z: g3 y( n
printf("Hello, world!\n");
3 T, O* a) H1 |/ Z& A& Z}
& Y1 g9 q4 ?0 f* z2 Avoid three_hellos(void)) f9 S9 N& Q/ c+ B8 H
{ H, }: x, P- `; E4 N2 g4 v7 G1 M2 m
int counter;, p+ l5 v3 f/ E3 c
for (counter = 1; counter <= 3; counter++)
( z! s' P, g5 ^% T9 [: t) jhello_world();/*调用此函数*/7 m7 D8 ]/ P- u
}* S" }0 E8 g' O: U/ O6 S2 G
void main(void)
, l7 F7 K! h4 ], G2 E e% Y; j{
; q9 \" G1 e9 X* H! Z: n/ rthree_hellos();/*调用此函数*/* n- c/ F% x. a+ p
}
2 _) [/ K1 `6 s$ j==============================================================
3 e/ C& A* ^8 o# U4 K【程序35】; x. @* W# G; |9 s8 d. [' j
题目:文本颜色设置$ Q6 M; E; s% L3 x) ~2 p* n
1.程序分析:
$ i8 w. h& v# i F. M0 s2.程序源代码:, e) P! i8 ?! e3 F" C* A! C! t
#include # `" g( p# e2 m8 k2 N
void main(void)! S! V7 A- P. J& `+ d
{
) L; E& r- w$ |' @* zint color;' F! [2 @+ S6 d; w$ V! x
for (color = 1; color < 16; color++)1 D" D6 ^" q5 }& I0 {- p; N6 H
{
8 j" g7 l: t1 i j% C textcolor(color);/*设置文本颜色*/( A8 E4 c3 d' ~) }( j; d; P
cprintf("This is color %d\r\n", color);' K# k, @& ?! V4 d
}5 Y% _9 G8 k; H1 R& ]1 v
textcolor(128 + 15);
0 [6 N& |. `( h) N: `1 xcprintf("This is blinking\r\n");
O8 ^+ U4 E5 _1 u9 t b0 _}
$ s& f) E% {) U" ~& k3 v8 i==============================================================( T& m; U2 b$ ^: B/ u- ?2 |
【程序36】! ^5 H+ p! c1 o4 ]$ v# c
题目:求100之内的素数 " w8 E+ X8 z' t f! B3 D+ K( l
1.程序分析:
( ]' {/ Q2 R) V$ ^, p5 x- R2.程序源代码:
6 b1 l2 c1 o0 m2 W& @0 p#include % b) ]( z- O2 w4 u0 l8 ]% o
#include "math.h", |, G* v7 [' K0 Z4 l
#define N 101; o2 t% f0 v# {$ V
main()
" O5 Z) y. y2 @; Q, H{
5 y. F" |- L) Z, j8 Q; X6 x$ Qint i,j,line,a[N];
' |( K2 E4 b4 c( A1 w F) Ofor(i=2;ifor(i=2;i for(j=i+1;j {
- `( |& N$ E& e; A: N; N if(a!=0&&a[j]!=0)
p5 q' Q F) R% _/ P* O3 Z9 p% q/ N& [ if(a[j]%a==0)
2 I' H0 n6 t$ N a[j]=0;}8 m9 E- n& G. a
printf("\n");
* }% ^8 d0 C3 ^. I; R2 G& t) H9 Wfor(i=2,line=0;i{4 q5 I U! f" @' s* t" F
if(a!=0)
6 i2 @+ p& k, G4 p2 j! y1 I {printf("%5d",a);7 h. A; A& n* ^+ n- g
line++;}+ z3 X G0 @: o8 u, s, o% s4 l1 W0 c
if(line==10)" ?" ^# F5 _8 {' L0 q( A
{printf("\n"); m5 i% @( o. i( w% ~* c
line=0;}6 p4 s; z( L+ m
}
8 Z. E5 p: Y H/ Z; N0 x: K}
T' C# g( _1 e9 a( ?. ~- n) W% C==============================================================" w) D. ~* x) v0 P! q3 {
【程序37】, W( f; x( g/ X
题目:对10个数进行排序
0 N% x7 y6 |; O# P y& p: }) S1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
& W8 n3 m+ S" Q- A- M& T% m 下次类推,即用第二个元素与后8个进行比较,并进行交换。 4 V* N/ d- E- l
2.程序源代码:. h1 u% M5 i& Z. l7 ^+ |0 T+ \
#define N 10; T) k/ { A0 ]9 [4 S
main()
, p1 P p# y! }* S{int i,j,min,tem,a[N];! _8 w" z0 l* y1 v$ c
/*input data*/
/ z4 }% }8 G4 V& _' v; Lprintf("please input ten num:\n");3 z6 B) q1 H. G4 U1 ~- m4 Q
for(i=0;i{
0 y \' l" L; Eprintf("a[%d]=",i);
4 O( L! ~8 `$ N5 c1 pscanf("%d",&a);}9 h# g5 B- J9 m6 j5 {. S5 Y: M
printf("\n");
6 C1 A+ [# D3 ]" rfor(i=0;iprintf("%5d",a);) h. E6 @7 ]6 X0 D6 d: U% ^! g8 Q3 n+ z
printf("\n");) L& {+ t2 x: v! O! F% K' z
/*sort ten num*/1 Q* X+ N0 P$ c: y. @
for(i=0;i{min=i;% D( r6 L% u6 ]$ S' n
for(j=i+1;jif(a[min]>a[j]) min=j;
& c) x1 P" }/ Y; gtem=a;; ]0 {1 A! D+ ~, n1 Z4 e$ D& f3 s
a=a[min];
) t# u- A; U( l! Ka[min]=tem;
) t) F7 D5 a5 x}- c/ x6 W3 H& y7 d( J" R
/*output data*/
" N& j5 B5 | T$ Hprintf("After sorted \n");4 c( k& H+ N6 I( g' S
for(i=0;iprintf("%5d",a);
7 u: ~7 e- b6 d0 y2 Y1 b% k q}! u0 _3 Z) H# a
==============================================================
9 ]8 p2 p8 G$ K7 a9 ?: k . ^$ B0 N. z6 b0 a
|