【程序27】
' U8 p K5 c" N; g題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個(gè)字符,以相反順序打印出來。
& h* W5 U, ^! f1 M7 ^( ~+ j2 ^( c( g; F1.程序分析:$ {) o/ s; a- e2 R: b$ ?* K
2.程序源代碼:0 m$ E; ?' l9 H9 G( w
#include "stdio.h") E/ L( S! }! w5 {6 l4 ?9 m) s5 Q) v
main()8 u+ [' s7 W: |7 ?3 d; b8 N
{ L7 U) y! x: D3 ` Q. A
int i=5;( q' n% ?; s+ A
void palin(int n);
& a5 @* o2 t) c9 q$ Aprintf("\40:");; [. O! a2 U8 ?' m2 T
palin(i);
# U4 |- Q/ p! K y( r4 o5 pprintf("\n");" a) E9 V- ^ w0 Y
}
. k. O4 o6 h4 o# Ovoid palin(n)
' L! i( B# a1 ^0 u+ e; B& Q2 sint n;+ E3 i# k# G& [- U# C$ s& W) S$ e
{7 E+ E$ M6 h: H
char next;' c0 c) k' g: Y& \. C/ x* V1 J
if(n<=1). W' j- M2 ]: o+ \* Z6 m! E) U. W
{
- W5 E; f7 F' m; s" w next=getchar();
& T0 q# B+ q* v4 Q printf("\n\0:");( }: A c* `- \( G& T- _. E
putchar(next);3 k+ Z+ b6 W+ I- J9 O& e
}, W/ F8 d i, d7 K
else
5 O/ Z( f. X( x+ w {
+ j, a1 H. T. T) b0 v8 y+ @2 m. J next=getchar();+ Z, H3 V/ e: L* e! s" C5 C: a0 N
palin(n-1);' p& v1 B" M# x: `. [! X0 ^
putchar(next);
& _8 n, s4 L3 \) F, b- | }
- R" ]& b( w, m3 I& D" M}$ I( i4 J. D3 J/ M: f% a3 M2 { S
==============================================================5 K2 x% Q& W9 @2 m) v# Z
【程序28】信盈達(dá)嵌入式企鵝號(hào)要妖氣嗚嗚吧久零就要
, ^6 [$ W# T. A2 M8 r% _題目:有5個(gè)人坐在一起,問第五個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比第
% Y6 |4 { Z/ C) ?8 z( G 3個(gè)人大2歲。問第三個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第一個(gè)人大兩歲。最后
( m$ A( u* m' p$ z0 g 問第一個(gè)人,他說是10歲。請(qǐng)問第五個(gè)人多大?
9 \1 {2 m. a3 k5 n' [% o1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道! ^ N8 }" W& T/ b0 {9 g+ m
第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。3 o m* I; e2 `" a1 m( h2 X* m2 o
2.程序源代碼:/ \$ u/ z( X; J/ n! B
age(n). W% p- z' t- L! }" }* S7 _7 W
int n;. ~2 L4 f0 S1 [" o* u: g
{" r f" _" [$ f8 ]; A- Q
int c;& o2 m$ o* e( t# `$ W* w, \/ o) ?
if(n==1) c=10;
/ r- o' d4 H# P4 H3 E& zelse c=age(n-1)+2;# t( |0 E ?) q2 d
return(c);
6 P( C7 |$ e+ D5 I P4 a! c}
$ B' c! q# Z& V8 d* ymain(), ?( X, j; I; T/ q
{ printf("%d",age(5));
7 o6 t6 c3 d6 P6 d, l" o}
8 h! G% F9 d$ ~ |7 o5 K==============================================================% r6 E1 u1 {. _. O' L! w
【程序29】
" N |" p# U2 l4 [% W題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。' c* \& U, W! h7 {4 N
1. 程序分析:學(xué)會(huì)分解出每一位數(shù),如下解釋:(這里是一種簡(jiǎn)單的算法,師專數(shù)002班趙鑫提供) - b# M: N, S; A6 c
2.程序源代碼:5 `' f; h* P5 _9 X
main( )$ t! Q% c1 X. B- M; B9 Y
{" t1 n7 F* x) T9 n) j1 v8 K7 l( S
long a,b,c,d,e,x;3 D' G" z+ ^) [8 q( d
scanf("%ld",&x);
3 h& c- s9 S+ `, v1 @! b; X5 A8 ~a=x/10000;/*分解出萬位*/; d& I C) {# M2 }3 _2 |" s
b=x%10000/1000;/*分解出千位*/( \- @4 e3 d- y* k+ s
c=x%1000/100;/*分解出百位*/
5 U% {+ t' {* R' H Ad=x%100/10;/*分解出十位*/# C* i4 M" q/ ~" z. p' \6 x3 x2 n
e=x%10;/*分解出個(gè)位*/+ N( S6 Y+ x% d* B- {8 D9 A
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
. Z+ C; p7 V% X& `+ u' G8 R3 ?else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
6 s) j8 j% ^3 c, e7 Y9 B else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);5 l; ]+ Q; a. ]
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);: Q5 O! X+ [$ V5 g, \
else if (e!=0) printf(" there are 1,%ld\n",e);
a# h7 F u$ x* S' o}' j" x2 _& W, u' T8 x. b! `
==============================================================
$ g& d0 P! B" x8 {! F% V% Z【程序30】
5 V6 b/ F5 ~( f4 {+ a+ I% v m題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬位相同,十位與千位相同。
9 g# T' F3 I! |( q2 f1.程序分析:同29例; K% b+ t1 \% W
2.程序源代碼:5 n( A" P. L9 n
main( )
' V7 L0 u6 y7 x{: j9 x. M/ a, g% _' \8 k
long ge,shi,qian,wan,x;; S0 {8 \% P' h" Y7 u& c3 g A+ ~! Y
scanf("%ld",&x);
9 ?; }4 n/ N6 f/ z# F; }wan=x/10000;
1 q/ }7 j) B L9 {) i* F; mqian=x%10000/1000;# i5 N, K7 b. e4 k1 h% ]4 Y
shi=x%100/10;" N/ r& ~* K1 r
ge=x%10;, ]; @, A& Z D j, P- d! c
if (ge==wan&&shi==qian)/*個(gè)位等于萬位并且十位等于千位*/% u; s- h; ^) }* K- x ]4 b, u" p' O
printf("this number is a huiwen\n");
) ]' _, r- T- q$ K1 R- u5 oelse
0 o9 D0 I, T$ B4 B9 o& ~ printf("this number is not a huiwen\n");
5 j$ }8 m: `& m9 F% q} 【程序31】
4 @" k! ]9 Q+ U題目:請(qǐng)輸入星期幾的第一個(gè)字母來判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)4 E# t+ b3 q: O+ T& r( c1 N6 a
判斷第二個(gè)字母。0 N- \( l% {9 b8 t) ^4 X$ O+ U$ ~: z
1.程序分析:用情況語句比較好,如果第一個(gè)字母一樣,則判斷用情況語句或if語句判斷第二個(gè)字母。
7 s8 o, ^1 s0 }2.程序源代碼:
% ]: l1 O( o$ `2 L; g6 Q- K#include
5 b. S1 V6 S( C& vvoid main()
6 g% J6 F. H( ^2 m7 H' k* [{
5 l7 N( e9 X, }5 b2 E& kchar letter;
4 {8 F3 N% W% y2 ]: ?6 T. Jprintf("please input the first letter of someday\n");. v. `$ P" P( y: w
while ((letter=getch())!='Y')/*當(dāng)所按字母為Y時(shí)才結(jié)束*/
1 n3 T7 K* A; H% [7 d{ switch (letter)( V4 u, q- C2 T7 I3 ~$ {! @
{case 'S':printf("please input second letter\n");% h2 ]# ^% ?& S8 X7 e2 Y
if((letter=getch())=='a')
; @! Q5 Z/ ?; W; ~9 d7 E printf("saturday\n");
( S( ?0 X* d. b7 R1 \1 k7 s else if ((letter=getch())=='u')
6 u4 `6 \% E: e- k& a2 } printf("sunday\n");+ j/ ~$ y, s+ P
else printf("data error\n");
' a$ S1 R( E- b) D" o) y# D break;
& A( j1 ^7 `' Z) d3 l/ O: z2 s& Icase 'F':printf("friday\n");break;" p+ a8 n7 K9 \ S
case 'M':printf("monday\n");break;0 @/ b; T" s- N" x$ M0 m/ O! f8 a
case 'T':printf("please input second letter\n");$ K. s$ U' T/ i, D4 O, a
if((letter=getch())=='u')8 N. L1 Y5 Z; J
printf("tuesday\n");* v" O' @4 O% K: l: w' Q
else if ((letter=getch())=='h')6 O8 a+ f2 m) ?, q8 P+ J+ F
printf("thursday\n");
2 {6 B' ^- h+ G2 N else printf("data error\n");
# y9 J7 d$ U$ ^- l break;
- o+ ^4 C p; J' S) ^6 ocase 'W':printf("wednesday\n");break;
3 m5 D: @4 D) V- {% W7 r0 ~4 a9 x7 hdefault: printf("data error\n");& [8 G& G$ ^0 n5 Z2 _0 B& b
}1 v$ a: P, |% d" F( N j) [
}& O# {- V, H8 ]. E4 M0 s% w
}
8 e. f( j! V8 I; X==============================================================
6 C# m: r2 V& n【程序32】
9 A) }" v- x2 X題目:Press any key to change color, do you want to try it. Please hurry up!
5 i4 Z2 H! v+ X" `! _1 g1.程序分析:
# f! O+ I0 [# \2.程序源代碼:
6 e* u; a( P# b7 D4 N* b! K) [" T#include 2 U( [2 y7 L2 f) ^/ F
void main(void)1 P8 E( v" e+ G5 }
{
& C5 o' ~7 O$ N: q) {8 \+ lint color;
# l9 K# }6 @1 U5 W+ s7 I( mfor (color = 0; color < 8; color++)
7 f, v2 R* ^. L { 2 v+ p! I* B3 }, X( x6 i
textbackground(color);/*設(shè)置文本的背景顏色*/
$ {' u; ?# m0 z% {7 ] cprintf("This is color %d\r\n", color);
& R& ^) f% y5 C1 V2 }6 C- B cprintf("Press any key to continue\r\n");
R- u- C7 ?1 F, i2 i5 O6 h; B getch();/*輸入字符看不見*/
S* B4 ]1 o' A/ @' [ }: t7 I, i! o* U4 p
}& Y3 v+ B+ e1 z& I+ p
==============================================================: @ U1 }8 P! b2 V* W# O0 F
【程序33】
4 W' z. t: C/ p+ h9 W題目:學(xué)習(xí)gotoxy()與clrscr()函數(shù)
0 P. j, L: I7 g1.程序分析:
: C" P, ^1 l* w1 w# _4 I6 p5 A2.程序源代碼:
7 f+ `. F0 U; q' `1 Q+ c#include 7 b4 P1 J. S& K6 F2 i
void main(void)9 U9 V* x- u5 x" b# L3 R; Z
{
/ t. O0 z2 x* p @clrscr();/*清屏函數(shù)*/
$ j2 Y, }& X t% b, o9 Dtextbackground(2);5 r h9 r! P; I! o3 W' U8 s
gotoxy(1, 5);/*定位函數(shù)*/
% D, m7 |; M9 _, j+ v8 O% Gcprintf("Output at row 5 column 1\n");
& b @8 Y4 r3 q- c) K8 s; u' btextbackground(3);
' Z( Y8 y* ]4 n- Q; e; \% v- I6 {gotoxy(20, 10);
3 c; Y6 S) l9 @( a! m. z0 X! q7 `6 Pcprintf("Output at row 10 column 20\n");
& H3 X9 E8 z; g) X; l* d8 _}
% f0 K" }- |- V) x/ I$ i==============================================================) o9 A2 n7 K' n. m" k& x
【程序34】( ~' @& W, m9 R) k, b% [5 r' z
題目:練習(xí)函數(shù)調(diào)用% [6 q2 G4 t* F
1. 程序分析:
3 {- a1 L$ G6 s; _3 |9 g2.程序源代碼:9 e8 y& O/ {0 m/ F) a9 f
#include 2 B) M- l! b& f- [, P
void hello_world(void)
, O6 k: |: t) a1 ], ~3 O! P' C{
4 R% _) Y1 m' W( {- C: Kprintf("Hello, world!\n");6 v* P4 ^* c5 |5 ~) ~) ^; g8 X+ e
}: t( X. _* g$ I7 G5 f: ~0 s
void three_hellos(void)
. R. h; W& T" B{8 b7 z& Q" q8 K" q+ R+ w
int counter;
7 t( k2 E8 x& ^+ R& z& ~ [for (counter = 1; counter <= 3; counter++)
2 D( c4 A# Y o1 i' j( k) ^. Chello_world();/*調(diào)用此函數(shù)*/
& s! i8 {! r( B6 \8 c3 N* m}
9 P2 N" n& y$ |0 S7 x$ nvoid main(void)
. q. q( T- q* V ~5 e" P{/ T: ^% S& h1 ]4 |; f
three_hellos();/*調(diào)用此函數(shù)*/
( [3 z A8 B& O1 P3 ^9 L% j3 Q8 }} k9 r U0 g$ a. I4 g3 N
==============================================================
$ z6 G2 K" X7 s" E; A* a( H& W【程序35】
7 O( J$ `& `8 Y+ ?+ N8 R' Z4 ~: W題目:文本顏色設(shè)置
9 S5 g5 {# B9 u: V1.程序分析:
: H L9 ?( y q/ @/ V2.程序源代碼:! l" S, j d! W8 [
#include
+ C# }8 F& n9 b- I& T) H' jvoid main(void); u' X9 K0 u) L% a# v
{& S" u- d L; x% Q2 _' s! Z
int color; L6 Y' U2 e! O9 T( b. b8 L& X0 f
for (color = 1; color < 16; color++)6 m; ~! U& y) _- S
{8 t6 x, y6 ]9 t6 `0 `6 y# h' U4 t
textcolor(color);/*設(shè)置文本顏色*/ ?0 v, {9 k; N9 w
cprintf("This is color %d\r\n", color);
% H3 G# g( J( f- n# R' Y; b }3 o* r1 o/ w( g9 N- u" q0 l% G
textcolor(128 + 15);
1 B1 i- f. l4 V3 z5 K1 i) jcprintf("This is blinking\r\n");
. b5 t1 R! \" ^& j z: A% [}8 \) \+ |( J& ]3 a" Z
==============================================================/ C4 _. f* C/ F
【程序36】 I6 J% ^# r: K3 V- e7 H
題目:求100之內(nèi)的素?cái)?shù) * [ b7 |: V q
1.程序分析: L# P& a, z7 G* T" o, S3 [
2.程序源代碼:
4 P6 ^/ `2 _5 R#include * T5 `+ z* M4 E9 ?/ z
#include "math.h"
) h' M$ b% w/ h#define N 101
7 g2 u9 f: X, U. O) P3 m# L3 Wmain()3 J6 n- e+ g4 Z V
{" b+ i4 G, ?, m$ H
int i,j,line,a[N];
, E; ^! _) ^% f9 x. q6 @for(i=2;ifor(i=2;i for(j=i+1;j {
. j4 {4 E, s: C1 h if(a!=0&&a[j]!=0)# V) l' [7 N* G. a
if(a[j]%a==0)
0 H& @ g! `0 z4 u/ C" d. W a[j]=0;}
" k# R" ]" N7 h0 A" p5 rprintf("\n");
! p3 i8 O# B5 `* D' B2 _for(i=2,line=0;i{1 ~! j. }& E2 p
if(a!=0)) m. Z8 s' Q3 q' V+ `$ \9 i# g
{printf("%5d",a);: U8 w3 k$ g; R3 x% c+ R7 _: h+ j( r0 S
line++;}& D' {' ]6 H5 B$ `- r# c* X
if(line==10) G5 k+ I- r: n# n) x4 s; X
{printf("\n");3 [4 ^" ` q- R' } n z
line=0;}% }+ i2 L3 @0 I7 c
}# `) g6 o( F, i4 z2 @5 @$ j- i
}7 @) z T; I9 e& E6 _
==============================================================
; D* u+ ~ q6 B/ Z【程序37】0 q$ E `7 A& O8 h* R: y/ A1 R
題目:對(duì)10個(gè)數(shù)進(jìn)行排序% G8 e$ Y$ R" k9 X; P* Q
1.程序分析:可以利用選擇法,即從后9個(gè)比較過程中,選擇一個(gè)最小的與第一個(gè)元素交換,
! f, _- R3 Q6 A1 p) [+ F; Y. m 下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。 ) K Q7 }4 _, J8 o
2.程序源代碼:. U4 C. C z9 p) @# p1 T
#define N 106 j+ d5 p5 Q( B& a" g
main()4 D, u. b) [$ L/ \( h
{int i,j,min,tem,a[N];
0 ?- P# V2 ?# J* Z/*input data*/
* i& s$ N; G" d* A6 f7 Z wprintf("please input ten num:\n");: w3 e* l! e! X3 K7 j/ N/ f# y Z N
for(i=0;i{
! a3 ]' O5 [. {% s" J5 r2 Oprintf("a[%d]=",i);
5 T/ [+ k, f7 D' h: lscanf("%d",&a);}
/ ]3 p N+ ^: e$ ^) @7 Nprintf("\n");# ^2 c0 l6 \& o- r1 q) x8 h, u
for(i=0;iprintf("%5d",a);
8 @$ I; t+ e0 J" z0 u& e/ bprintf("\n");/ q3 X1 r, [$ S# F6 c( e, i
/*sort ten num*/: E$ x: \6 R- i0 j
for(i=0;i{min=i;7 A- E: S! ?7 ]% R
for(j=i+1;jif(a[min]>a[j]) min=j;
- B- ]4 m" S3 B/ y/ ktem=a;
2 W' m3 z$ B9 X& d+ Y2 pa=a[min];9 l! f# ?& s$ b i
a[min]=tem;6 M6 ]0 f' ]0 l8 E% u$ J
}
+ X% O2 b) G& o+ g$ c3 q/*output data*/& P! p1 X5 I1 I, c
printf("After sorted \n");7 @/ X( u9 q2 K2 j2 m% o) N+ G
for(i=0;iprintf("%5d",a);- F# n1 B8 B3 u! D% U9 W' T
}% n7 b! Q" X# y+ r+ r# P
==============================================================$ b5 B5 P! h; y( P/ a* f7 q
# ?5 c n" X% F
|