【程序27】 & y5 n# y7 \0 G9 G9 Z% j
題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個(gè)字符,以相反順序打印出來。
& Z) s$ y+ i6 ]1.程序分析:, W6 m1 F) m8 b y5 S. |
2.程序源代碼:1 A* X$ `$ u' `# E6 e F2 M6 [
#include "stdio.h"
2 u6 o1 B% q, V/ f+ p$ A) V- Xmain()
$ b/ J" H5 W [9 R9 H{
2 Q n+ Q; H; e+ Cint i=5;6 N3 [1 O% I* v& Z
void palin(int n);6 A7 \/ n: U0 s* o( a) G
printf("\40:");' i2 \* x, \* u, T: s7 B+ F3 Z/ y
palin(i);. M m" x; _$ F9 N* ? X# ?
printf("\n");) j! H# X% M. ^+ \
}
|5 L k. b; s1 G hvoid palin(n)( o7 s0 ], C/ V
int n;
6 E, F9 `& [5 Q4 t( b{
5 z* W6 h/ x S& Y/ r' v, w- Mchar next;6 O7 \' `1 V) L6 C7 w- i
if(n<=1)8 c9 J. W8 W* {. l) u) Q: A; `; t
{ ~0 L/ a; q5 h4 b
next=getchar();; l8 B" S! q% N
printf("\n\0:");
0 Q0 ~2 F$ H: {0 |5 w$ R putchar(next);, ^% b) Q' [+ h. t
}1 g7 h) L) Q1 G
else' v( v9 p2 M: O$ T) a7 h" B
{
2 H$ d! L# B+ g, q9 a1 x next=getchar();3 E+ w1 q. a$ I$ n
palin(n-1);' U9 [# W) g2 [! Y: X/ J' q
putchar(next);7 h0 }1 `# O5 k6 W7 L$ @
}' W- Z! Q3 j6 l$ _. I6 |: T
}- T9 J* J* G' X
==============================================================
3 [8 }1 t. h4 t9 P【程序28】信盈達(dá)嵌入式企鵝號(hào)要妖氣嗚嗚吧久零就要 , m6 } }7 D0 H( p7 p
題目:有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比第
$ D6 J1 x+ j7 ]6 } 3個(gè)人大2歲。問第三個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最后
, Q0 T4 W& e, X% v 問第一個(gè)人,他說是10歲。請(qǐng)問第五個(gè)人多大?, R6 h2 E' e- `8 Q/ w0 z
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道
+ u6 X0 B5 Y$ T% G5 p; N5 H 第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。8 z1 @- n) E! j' X: u) d3 Q4 h
2.程序源代碼:
X* m) F5 R' s2 l* |9 b( Zage(n)1 N7 ~+ I: A+ p
int n;' A# O/ B( i9 f' A8 h6 K; E
{
! I" b, O e0 M8 q: Wint c;7 _7 s( y7 g% P# i# E7 N
if(n==1) c=10;$ E) s f7 h0 I6 M
else c=age(n-1)+2;7 e0 O+ B6 i6 h
return(c);
9 F1 J9 O% }- j) K( G9 A}
" V& V) n7 s3 y9 j3 Mmain()* O; P1 e r+ f( S) G7 z0 c. Z& b
{ printf("%d",age(5));1 j( G$ g( r& _% O! C
}
c: N# @: ?5 L4 d" W+ g2 H9 g==============================================================
& J# z9 m# [3 h【程序29】
% R( x% Y% T' |, W題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。
& r6 j+ N$ g) s, C% r$ v& N+ n2 X1. 程序分析:學(xué)會(huì)分解出每一位數(shù),如下解釋:(這里是一種簡單的算法,師專數(shù)002班趙鑫提供) " S+ w( r, g# }' g) ~' }
2.程序源代碼:6 B5 Z7 l+ ~0 r# K5 `8 T# q- ^) b
main( )
+ g4 K8 t6 Z/ P) }# L) Z{9 y' j# |; d/ O
long a,b,c,d,e,x;* J2 w. w7 L ~ c U! ^
scanf("%ld",&x);
, U( L0 `7 x" ?# pa=x/10000;/*分解出萬位*/
. p7 ?1 z# f" i1 Q* E- xb=x%10000/1000;/*分解出千位*/
: ?( T' {1 Z' `/ r) nc=x%1000/100;/*分解出百位*/ r, o7 Z: {$ Y" @+ [3 ~4 d
d=x%100/10;/*分解出十位*/: `3 E% x: p; t+ v7 \1 _ S* y
e=x%10;/*分解出個(gè)位*/# J% M& I: g( s1 }) t* n1 f
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);2 ?0 t& f: k) q3 K, A! t, u& V
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
! ]. `% K+ c. }$ P else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);2 w+ G* N' H7 r2 [! Q0 b
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);$ N9 w u: D, y- u2 j: D2 h
else if (e!=0) printf(" there are 1,%ld\n",e);7 w1 V, F' J9 X; m0 M% C
}3 U( [& L ^% Q& U5 N% W* `5 O6 ~
==============================================================
1 E0 f" L8 V" j2 U, b1 P) _( o K8 `【程序30】 6 P8 J$ d7 Y/ Z0 [& b) a% j
題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬位相同,十位與千位相同!
1 Y9 t; ]) ]9 a! i( M/ |5 m1.程序分析:同29例2 h- u- o. l" k6 P% U# N+ L& ?; k
2.程序源代碼:! M, E$ ?: I q! k, d5 |: ~* U( N
main( )
# v; l5 s, e0 k" [# H{3 [0 M( u E* ]
long ge,shi,qian,wan,x;
" T) a6 S* I: rscanf("%ld",&x);& S1 v( b2 R( ]' k
wan=x/10000;
4 t R. H% r7 ?! j, G4 cqian=x%10000/1000;8 U$ ~! ?) [- X, }% L d6 a
shi=x%100/10;' Y" y- N$ \; D& \" d
ge=x%10;* `' _- L: `" i9 d
if (ge==wan&&shi==qian)/*個(gè)位等于萬位并且十位等于千位*/
) e- i/ L7 z7 @) J; { printf("this number is a huiwen\n");
0 D( e& B9 r. @& E, p" n% B telse
1 j9 C4 J* y4 t, N1 J" y# m; d printf("this number is not a huiwen\n");( x: W8 ^5 N" [% ]* d; L3 X
} 【程序31】" b$ s' m. p' d' h7 D* {+ v
題目:請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)
0 W% a1 F/ Q) }) e D 判斷第二個(gè)字母。
) r" q! p' U) W/ c% r& V' W1.程序分析:用情況語句比較好,如果第一個(gè)字母一樣,則判斷用情況語句或if語句判斷第二個(gè)字母。( Y, j A1 S; P$ R) e2 b
2.程序源代碼:
, v6 v5 l ~+ w1 D; J. t: _#include 0 |. x6 T$ o- p1 {8 X
void main()9 u; l4 d. T# Y2 U) @5 M
{, }) W4 o5 H% j0 K$ T) [6 O
char letter;7 l! J# g1 p+ U0 L* U5 s; j; @" f
printf("please input the first letter of someday\n");$ K! P- D5 I; e; ^
while ((letter=getch())!='Y')/*當(dāng)所按字母為Y時(shí)才結(jié)束*/& K l$ K- R7 o8 k& M
{ switch (letter)
3 }5 J: r' r5 h2 L0 \: r{case 'S':printf("please input second letter\n");
9 p1 n& e6 {0 @- I( h9 v' A if((letter=getch())=='a')
& k9 _5 \" q4 q( K printf("saturday\n");
n) N+ f% p2 b+ Z6 Z \9 g else if ((letter=getch())=='u')
]6 t9 R9 K( l printf("sunday\n");
5 U8 {. m' Z U. n' T* M5 j else printf("data error\n");; q' B5 D" J* p0 F
break;
# P5 f, P9 ^/ |( d6 g9 d: q" Ycase 'F':printf("friday\n");break;; k3 g; [+ y/ j- D
case 'M':printf("monday\n");break;1 u: K u% ^' \" a
case 'T':printf("please input second letter\n");
$ b4 _7 k# u F if((letter=getch())=='u')
) }% k& ^7 R3 { {8 i' l3 V printf("tuesday\n");
. d0 S# t& z4 M7 a+ X! q+ U" b else if ((letter=getch())=='h'). _1 M4 y* X7 j2 d& W/ B
printf("thursday\n");
' p) E( e! r, S* m# v* M& g. X else printf("data error\n");! E G4 D! f! q6 y
break;
7 I! b. j: M8 g+ _. vcase 'W':printf("wednesday\n");break;
# k- D* ^! [# H+ b7 hdefault: printf("data error\n");! i$ C+ \. C# T/ g4 ?2 N
}
) N1 s% p" @8 n3 V# s+ ~$ x3 P }+ a$ O) G7 g& {! L- n% i4 Q( y2 Q& {
}5 l/ w3 z- @- I/ ?, |& S
==============================================================
8 A0 o) i/ ^! V; f9 ^8 M& W【程序32】; Z" l' I+ R. A4 L* F
題目:Press any key to change color, do you want to try it. Please hurry up!0 J3 ?0 e& N, r# b$ E1 _* D% O& X8 X
1.程序分析: 9 L6 P- }( ?2 j# R5 t, u. N
2.程序源代碼:+ W) x6 R2 W/ }/ F# W+ c! g( r3 }
#include 8 n+ X' t+ N7 a7 ]: r$ P8 Y5 w
void main(void): }, x# }% ^+ r: Q) Z8 ?& P5 c
{
. n( r9 Z* h Dint color;
+ g1 h; D& F6 k Y: ~0 P2 H2 ]for (color = 0; color < 8; color++)8 Y* g# t/ K3 e0 N: x) |
{ ( h- I# [# L0 c+ ^) }: C, H6 i
textbackground(color);/*設(shè)置文本的背景顏色*/# M- w. r9 Q) t3 p
cprintf("This is color %d\r\n", color);
9 G3 {+ }, Z* D, E1 H d: _ cprintf("Press any key to continue\r\n");% ? n! Z2 @' i o2 k3 |3 `8 j
getch();/*輸入字符看不見*/
5 Z& v2 `- H# Y v1 O. m( \ }: o9 O# ]" w) v6 Z0 I
}
! Y! V+ V0 M, B==============================================================: J6 T, c u1 x: a3 J7 f
【程序33】
9 h2 }. y) M& w2 d% X題目:學(xué)習(xí)gotoxy()與clrscr()函數(shù) ! W7 | Z q% `) R& k2 {$ L
1.程序分析:6 ^" C$ {+ G: j! W* g, X
2.程序源代碼:* z$ s2 U1 U: ?8 H9 I
#include . S5 w$ j1 D8 ]% y$ U n# ?
void main(void)* A% U: N2 @# c2 \$ H! _1 t1 a) B$ Y
{2 a: C3 O9 ^ f
clrscr();/*清屏函數(shù)*/
4 Z- {. ]) m/ f9 i r& [+ Rtextbackground(2);
' h) L& V' B5 j( T# `5 I7 Ggotoxy(1, 5);/*定位函數(shù)*// c4 l8 L. V2 z3 D
cprintf("Output at row 5 column 1\n");" W! o) Q& `4 O9 o% O8 N' T
textbackground(3);
( G. q$ [1 O% Ogotoxy(20, 10);
! e0 R0 ?' w) hcprintf("Output at row 10 column 20\n");# k' V6 f2 R) Z S
}
; @2 M/ S* [2 `$ M6 m1 s* e1 X==============================================================
& |' i: j2 \6 p. z/ `7 c【程序34】
8 @# j5 R8 ?" L0 A t/ a題目:練習(xí)函數(shù)調(diào)用$ t: ]4 F% C& z/ X" N( ^) T- H9 v6 s
1. 程序分析: - n7 R$ _( n& O, T+ V- ^. x& C
2.程序源代碼:
' ]# ]& i0 [/ c# ]6 u#include * u+ E9 g- a! L: E" F/ i, I
void hello_world(void)0 C. g( o9 _* d$ R! x
{
: e, q& \& Y+ Z2 |( Sprintf("Hello, world!\n");7 E$ q- a; U5 k6 E
}2 J) h; V0 k9 I$ Z
void three_hellos(void)
; y0 _. H b: s S1 Z" W{
) A( I3 Z$ u' oint counter;: N, Z. O6 C/ c1 G
for (counter = 1; counter <= 3; counter++)
0 ^8 Z* M" m' E- K# _* Z4 ~hello_world();/*調(diào)用此函數(shù)*/
& L' M1 P# B+ y3 M' h}
, d3 [% {" M! s* ?void main(void); T: o( V5 _, f( ~5 g7 d
{0 g" |% n# [; w9 h
three_hellos();/*調(diào)用此函數(shù)*/& E h( A/ D3 h2 y& Y4 k9 p# `- r
}6 E& s' r# Y( @4 x2 C" J4 `
==============================================================
$ T0 V7 x+ D6 g' d O【程序35】
) P- ^' o( `1 R$ m, J* `題目:文本顏色設(shè)置# A+ g t- Q3 q- C
1.程序分析:
0 N9 ?; ~) c( Z2 p9 s9 X1 V2.程序源代碼:! s, V2 X8 x' w n5 y) M3 r
#include ! {8 s3 \- ], A% s. h
void main(void); n3 r+ T3 F) c2 v+ p. Z" T+ S: D* D$ e
{2 x$ B; g( X& U$ x: u; u" j
int color;
+ t' A# N! {( ifor (color = 1; color < 16; color++)
( K l8 a' J N1 w+ K {6 D6 J6 Q; d; U" _5 J
textcolor(color);/*設(shè)置文本顏色*/9 h$ o% v& h7 v0 x: D
cprintf("This is color %d\r\n", color);5 H4 W6 f( Z* E0 E
}3 M3 J; G+ l0 F2 ~* g% k% I# C9 I
textcolor(128 + 15);( u0 G: [# @0 ^/ M1 e+ J
cprintf("This is blinking\r\n");) X/ `! i4 `* S4 Q4 c* u
}& C1 ~9 T' m" a7 f$ I& s
==============================================================
! C1 W0 U9 Z3 H1 h' q2 f9 X" b0 u【程序36】
V2 [8 D0 `+ Z; z1 c0 l題目:求100之內(nèi)的素?cái)?shù)
0 q, r: q( p% w8 d; G# O) F1.程序分析:
8 ?! X& T9 b1 S2.程序源代碼:, @; s1 @+ y+ ?& n j/ B
#include # M' ]" r0 w6 V+ J; c' a# r a
#include "math.h"/ F: D2 G) Y/ o& z6 y0 m
#define N 101" X0 j3 a* k) v! M8 T& t; x, n
main()
$ M( o5 B- k% [) a$ D; S! o y{
$ W, {$ ?) Q9 k j$ ?8 @1 Z6 Wint i,j,line,a[N];8 A* n: i f# e, b2 g
for(i=2;ifor(i=2;i for(j=i+1;j {
: B# v. H" K% k& x if(a!=0&&a[j]!=0)
; ^2 @- _; x( R- L if(a[j]%a==0)
2 K0 y$ c! [, ~( G6 s- ^4 X9 g a[j]=0;}1 K1 W" A0 @( V3 O) P& t: q; v
printf("\n");
4 V2 @# ^; K5 I! _+ lfor(i=2,line=0;i{: g4 q- u, v9 X# X5 [2 D
if(a!=0) x! |6 g6 d: u- F
{printf("%5d",a);
^0 T2 }* U- [ line++;}
+ F8 ?) s5 k! {6 {/ R5 [ I; L, t. x if(line==10)3 s; {2 W7 E1 j! E, R7 c
{printf("\n");
/ x" I6 U. Y( V* Jline=0;}
7 y6 v# L1 r) a ?. r5 }}
6 b2 ]) S4 B7 D2 O+ `' M8 n& T. J}
% F q& a# ~, B3 T+ T==============================================================; M$ p7 |( S3 w! C; w
【程序37】
' \3 m1 p6 o0 g. w4 w題目:對(duì)10個(gè)數(shù)進(jìn)行排序
: M$ x9 }3 l0 ^& z( }. m1.程序分析:可以利用選擇法,即從后9個(gè)比較過程中,選擇一個(gè)最小的與第一個(gè)元素交換,. l$ p7 U7 M& i- Z) r2 K
下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。
' q2 A+ {9 C- A2.程序源代碼:6 q% a$ ]) q: o3 i) \1 ?! X+ v
#define N 10
# P* t1 M, U$ @# u& lmain()
$ w" z8 D# h. T; T{int i,j,min,tem,a[N];
& a3 L$ A& H. a0 P$ z/*input data*/
x- \& B- b3 i$ W& A5 Y) k |# jprintf("please input ten num:\n");2 r3 y! q" E1 L2 g! n
for(i=0;i{
/ n; z8 _$ M% l. X8 mprintf("a[%d]=",i);
$ ~9 D. j- n) O4 w4 E3 |scanf("%d",&a);}
; q- H* w+ B2 Q# Gprintf("\n");7 o" g. h& s/ P9 }- ~0 \
for(i=0;iprintf("%5d",a);
/ f/ T, A" Y, B6 @( U% P/ q# Pprintf("\n");# c8 W* M8 b- R' c
/*sort ten num*/& j: P: C/ M. |$ r: s
for(i=0;i{min=i;
3 Z# X( c, j: a: @( A- e; Ffor(j=i+1;jif(a[min]>a[j]) min=j;
, k1 D1 k: ~& C6 b1 {tem=a;2 b) p1 Z% P. g4 Q* c
a=a[min];
6 _: K) y4 Y6 V5 a3 ba[min]=tem;$ S' w: W& }4 q5 @5 O
}& u; p, T. K4 S# i
/*output data*/& k$ q) {3 F3 _# G* |/ I7 E! _
printf("After sorted \n");
( G3 m9 H, U! @) z! t4 dfor(i=0;iprintf("%5d",a);: d: _! l: |- r/ I; B$ N6 j Y# V
}
" f9 t3 B/ q5 {# c) F5 w) m==============================================================! o5 I- {) ?1 x! }# t- E4 F& n
; A4 @9 M' A6 ~4 @9 x' [
|