【程序27】
/ w- D" [- C# @ f' N題目:利用遞歸函數(shù)調(diào)用方式,,將所輸入的5個字符,,以相反順序打印出來,。
8 _% [; `- K$ [( ?# t4 m, x/ L1.程序分析:
6 F2 a5 k5 x. O+ l+ _2.程序源代碼:' ?8 L! U) [3 e( C& B3 d9 o
#include "stdio.h"! d7 U$ Y9 b+ g! v6 b# N) ~4 @
main()
' d3 L" Q4 P) C9 v4 O! g{ b3 `* P0 `1 Q0 c H4 M
int i=5;; g. u% ]$ G5 i1 |. M0 B/ m
void palin(int n);9 d/ Q8 E; U! D) \- U$ }6 t* ~
printf("\40:");
' n+ t$ _" C/ x& b1 }" Fpalin(i);0 Y4 C& o' H& u: E
printf("\n");
+ E( ~ T& o! ~: b" [3 t. E" C}
: p( e$ u* D/ _3 M* ^void palin(n) Z$ M' B; B6 z( Z% X% A
int n;/ f5 }1 o0 g: ?& h
{6 l% y/ P" l% l: v
char next;
/ ?7 A& Z( D Y, Rif(n<=1)
# `! I, Z% d: E' G {; R% p, J8 l( ~8 P7 p; h3 U4 N
next=getchar();/ ^+ l3 b! n# \8 }) w# G* K
printf("\n\0:");
) O2 Z6 j) ^- c- f) } putchar(next);
- C a! p0 M' M- D! c$ F }
7 s# x; ?& l& ~0 \4 L" k. xelse% L' d9 o6 O1 a1 E
{5 b1 @3 ]8 u$ d0 I! t
next=getchar();- i4 [1 P0 F5 ~ Y& J
palin(n-1);
! K( x7 ~3 T- _3 ?6 @ putchar(next);
& u1 i% e. R2 T# l }. h3 `7 i: m3 V; d2 p
}- \ y' b. \: u4 d
==============================================================
9 B, y8 m9 e9 _" o1 i# a* T【程序28】信盈達嵌入式企鵝號要妖氣嗚嗚吧久零就要 - M# a8 W4 m+ H1 t
題目:有5個人坐在一起,問第五個人多少歲,?他說比第4個人大2歲,。問第4個人歲數(shù),他說比第+ i, ~+ o0 R, o3 w
3個人大2歲,。問第三個人,,又說比第2人大兩歲。問第2個人,,說比第一個人大兩歲,。最后 5 L, Z: K; q- K" K6 g2 G! C* r j
問第一個人,他說是10歲,。請問第五個人多大,?
; f1 C9 ]9 M; C9 v1.程序分析:利用遞歸的方法,,遞歸分為回推和遞推兩個階段,。要想知道第五個人歲數(shù),,需知道
2 F1 i4 l9 L% s x0 v( k 第四人的歲數(shù),依次類推,,推到第一人(10歲),,再往回推。9 k7 L+ _6 E( f
2.程序源代碼:
W% k8 H$ ~3 k& M9 L, fage(n)
$ G' M* _; q; n( S4 Fint n;
4 ?8 m7 e& N& U6 E9 h F) m{0 N% \# }! w/ v6 l7 A+ [
int c;
; }& }' x" ^% e" b0 r, K" ^% w8 F/ [if(n==1) c=10;
$ [) }7 K3 ]! C/ oelse c=age(n-1)+2;2 ~- l; E& c2 J3 l1 M" K! I. D
return(c);7 s# U8 Z' j, a6 `3 m
}
* N& y% n4 z& r. k# R* j( gmain()
$ h% \. {) [" F0 {# i, G3 r" B5 v- B7 I{ printf("%d",age(5));
% E0 f, w& t; `% ~: G}: e$ t) ?( f. {
==============================================================
/ D; {$ o0 n7 o8 v【程序29】 M' _9 z8 m$ _. _* Q# D( y5 V
題目:給一個不多于5位的正整數(shù),,要求:一,、求它是幾位數(shù),二,、逆序打印出各位數(shù)字,。% p) ~. B) y* g8 l% r r/ h
1. 程序分析:學會分解出每一位數(shù),如下解釋:(這里是一種簡單的算法,,師專數(shù)002班趙鑫提供)
3 p0 F- P z. k; B& p p1 e7 q _6 k2.程序源代碼:
/ J- L4 H. ]4 y& vmain( )$ H3 T3 i" Z( y, E3 I9 ^! V
{
7 `7 c# \" y& qlong a,b,c,d,e,x;
5 k" }, t4 V! p% a" Nscanf("%ld",&x);& c% S" G! P8 J" J% K& q
a=x/10000;/*分解出萬位*/
! H% J& J& c# [# G, mb=x%10000/1000;/*分解出千位*/5 }( m0 c9 p |6 p, G9 t
c=x%1000/100;/*分解出百位*/
3 s8 V& R; L/ n1 x" c" \! K: bd=x%100/10;/*分解出十位*/3 D3 K5 A s+ f' V" r) I. N
e=x%10;/*分解出個位*/
* a5 E4 ]% Y" I b8 zif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
2 s5 s- h% W% I# i& zelse if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
% {; z- I/ H/ i5 D6 ~4 d& o else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
' O# E+ N9 j1 o3 I$ Q- C else if (d!=0) printf("there are 2, %ld %ld\n",e,d);# h( w7 R, A) M7 d, K* N' `8 H
else if (e!=0) printf(" there are 1,%ld\n",e);
" W8 }: t1 y) X; y}
; h: }) A' ^: `==============================================================
' R2 L& H) W+ S【程序30】 3 Q/ s" o' O+ j
題目:一個5位數(shù),,判斷它是不是回文數(shù)。即12321是回文數(shù),,個位與萬位相同,,十位與千位相同�,! �, Y. j R- o- r$ B, a& N
1.程序分析:同29例1 i5 E. `/ a4 p; y
2.程序源代碼: u: L C( K; I0 ~
main( )
+ t9 ]+ U, Q* Q/ ]% V* m{
5 _1 \" ^; w9 M* c Zlong ge,shi,qian,wan,x;
, c0 K, l' p- \4 e) n( u5 |- lscanf("%ld",&x);
. X+ z# [$ z- S" r zwan=x/10000;: i0 Y( D! C% C9 [) G6 N
qian=x%10000/1000;4 U9 y$ N+ Y" b
shi=x%100/10; i# A# i3 ?6 b& p2 Z* W
ge=x%10;4 o# @" d1 w3 {% ^
if (ge==wan&&shi==qian)/*個位等于萬位并且十位等于千位*/' J: S- x- k* b3 w* @2 q
printf("this number is a huiwen\n");% o. r) t3 i0 h
else
X* s4 j5 X5 S t# f# g: s; y7 L printf("this number is not a huiwen\n");' ^ H! _7 Y* e5 b( `+ `5 ^
} 【程序31】
S0 _: F/ s. e" i題目:請輸入星期幾的第一個字母來判斷一下是星期幾,,如果第一個字母一樣,則繼續(xù)3 \- }0 b- h0 z, V. j
判斷第二個字母,。9 R# H9 ^; k! W6 g
1.程序分析:用情況語句比較好,,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母,。
5 M: Q' d2 E. m0 q y) S) |+ p' V2.程序源代碼:( j- L4 ~% ^. b' T2 D, _7 O5 }
#include
3 \' \0 q1 \9 ~( ]void main()
" m( I, U/ V+ C{+ @9 p, Z3 |0 G) J; ]& i
char letter;
1 N% v5 K. I- q2 T3 S) Y7 oprintf("please input the first letter of someday\n");' J; _+ U2 k8 C7 Z6 }. M/ }" T* o1 U
while ((letter=getch())!='Y')/*當所按字母為Y時才結(jié)束*/
3 |/ z$ Y8 F+ f5 I, u$ q{ switch (letter)' z8 w1 b. c* A! q: {
{case 'S':printf("please input second letter\n");
5 X1 C- b4 Q5 g0 R if((letter=getch())=='a')
4 v. O8 x; p+ E3 ~& f P printf("saturday\n"); N0 a3 N$ _1 _4 C
else if ((letter=getch())=='u')& o8 S ?- k+ r" Q
printf("sunday\n");3 N4 \. Y5 A% o) d1 z
else printf("data error\n");3 }& z+ T; j4 z7 J2 ]- d0 h$ s) D
break;4 a5 i4 t' v5 I
case 'F':printf("friday\n");break;
" \ i# K# N3 e w/ Ccase 'M':printf("monday\n");break;- E4 {6 ^( k' n) z. |
case 'T':printf("please input second letter\n");
) D+ w, ]8 M% m- }* g% H4 M) i% r1 F if((letter=getch())=='u')$ O, L" L9 v- V9 o& t& y0 O: H, V
printf("tuesday\n");
* M9 J& n' I3 p; g/ X else if ((letter=getch())=='h')
* v; J+ G' y7 W8 C, g printf("thursday\n");
5 E& ]% \8 N! @$ Q/ p( S else printf("data error\n");
" V5 Z1 P0 Q! ~ break;
! x2 r' E* k1 i ccase 'W':printf("wednesday\n");break;
0 W5 K; P- i9 q8 f9 b- `2 Sdefault: printf("data error\n"); k& ^* o( j& L; W1 k7 Z
}
4 t$ W7 ^: I1 ^( t' _ }
( K$ w, x4 H( m5 c W$ R$ d" }+ j} [# f; _1 {- u# Z( ~$ O
==============================================================
+ T! T3 j* W$ Y# E) V; {【程序32】
/ R3 K0 X) _0 c8 I8 E9 `題目:Press any key to change color, do you want to try it. Please hurry up!
7 V' A ?% F" Y9 I- K/ k5 q. |1.程序分析:
\0 E, [# u" c2.程序源代碼:
% V7 g; h5 b' C#include
( R3 {6 f. b X7 Y2 A* \; B! R mvoid main(void)
y0 |: z a4 \% o{& e9 P ]2 O8 O! ?7 Q0 Q2 \# y
int color;( Y h% k, C. X7 l0 e. F' k
for (color = 0; color < 8; color++)
: l( I8 b3 m' f: h- \- j+ E {
& H2 b+ @: c) K0 F; S" P1 L- N- H textbackground(color);/*設置文本的背景顏色*/; l# N! Z; q7 D, ?
cprintf("This is color %d\r\n", color);% X" B4 u" Z3 n W
cprintf("Press any key to continue\r\n");, \2 R" `9 h2 L5 o1 O
getch();/*輸入字符看不見*/
* `4 K+ W+ _5 G( R$ y$ @ }
* l- \# {8 p8 x" _- ^# F}
0 W9 Y2 O9 Y7 a==============================================================* e+ P6 w5 e0 k5 V% z+ o$ l
【程序33】0 h1 B z+ r: a5 U
題目:學習gotoxy()與clrscr()函數(shù)
" I! \3 x+ ~3 a0 `1 ?' S& F4 v; b! N0 v1.程序分析:
8 V1 W' W: R1 n& s1 w T2.程序源代碼:8 `$ p3 R6 W5 c$ D& l, F
#include
c* T6 |4 ^' K5 Zvoid main(void)0 m$ J) Y, a" c1 ]
{, T8 f; ~. V x. l: q+ e9 f' C
clrscr();/*清屏函數(shù)*/
6 E; Z% i: e3 u3 x" \textbackground(2);
0 v8 P, I9 D/ z- E# m: W2 [gotoxy(1, 5);/*定位函數(shù)*/4 S7 G5 g, a `. g7 M# Z1 ~
cprintf("Output at row 5 column 1\n");
; ~2 g$ n X- S/ G$ Ptextbackground(3);4 P9 v5 n1 h5 N0 T+ \
gotoxy(20, 10);3 o s* L" u- T6 _6 B8 N- ~' l
cprintf("Output at row 10 column 20\n");# Y# k: o+ \2 Z6 \$ R2 r
}2 I7 ?6 b" F8 X; j0 X
==============================================================+ {. ~) i0 f' l4 n
【程序34】9 B {, J6 k) s2 d/ |( s5 \$ d
題目:練習函數(shù)調(diào)用9 V: h8 P9 {3 g
1. 程序分析:
, v! t' v& ]1 B; T, e/ I$ j7 C4 P2.程序源代碼:
6 T" h- k* C# x7 L1 J& A#include 3 D5 v) {) j1 w1 {' f: R$ U
void hello_world(void)
6 R% A2 X" o3 I) b4 ^+ a, S{7 n4 S" H! ]1 E2 B
printf("Hello, world!\n");& L0 `$ F$ M) ^4 o5 K6 k
}+ t9 J A- t, n; A% ?
void three_hellos(void)* t' e" r2 b6 {) H+ c
{
* M$ u B: ~: \& i% nint counter;3 m: |, D5 ]5 `; l8 |
for (counter = 1; counter <= 3; counter++)% @/ d; ?3 x) q9 ~( z( T
hello_world();/*調(diào)用此函數(shù)*/7 j- B2 g: B7 p! c0 Z1 d
}
! a6 F% l6 F# A& F) B3 R) Pvoid main(void)
7 X% q& Z5 o( R( y# b{
/ w4 v9 k: W, g, {three_hellos();/*調(diào)用此函數(shù)*/
0 f" w8 N" e) {9 Z}
/ I3 B) T8 `# j6 c% ^$ d============================================================== x l$ \( k5 q( H5 R* j. L3 [" V
【程序35】
, l; ]2 F. O) d! y# K題目:文本顏色設置
) G3 z& A* }1 ]8 t' `1.程序分析:
- f* y, N8 r* j& Q& I7 C% p% h2.程序源代碼:6 }' p3 D' G* x: G* w( W% ~3 m
#include
/ f1 S" g) s& {, i" Mvoid main(void)
9 |3 I5 C4 x( m% i! a, a. }{0 V: }7 Z* E3 j/ G6 ]
int color;3 G& T0 c% h& b N# c+ V- ?
for (color = 1; color < 16; color++) S# u8 } M! w" T1 p; i
{
- S& L4 D7 V; P) J8 T textcolor(color);/*設置文本顏色*/1 Y+ F$ Z/ i8 [1 Y6 s* U8 O+ s5 H
cprintf("This is color %d\r\n", color);) U+ R2 [( K! b* j9 u' {0 A+ W2 w
}
. n8 D& K7 F1 l! |0 r6 }textcolor(128 + 15);* |- V3 q5 j& p* o% O' [6 X
cprintf("This is blinking\r\n");
. T' y8 X- v8 j3 Q0 y3 o7 m1 W}/ c3 Q, H1 R4 a( G3 k) d8 _
==============================================================
$ L6 @/ O' E5 V( n【程序36】. q2 {# k* m$ X+ z o/ S1 I
題目:求100之內(nèi)的素數(shù)
, W' p0 j1 F0 E9 o# C1 L1.程序分析:
9 h$ t7 s; J/ N" _% {4 ]0 [2.程序源代碼:
" i+ e# p1 F* U#include
% v- k q9 }, c; C Z" G#include "math.h"
g' I- ^7 U% L4 E/ g#define N 101, A& S, q+ k, n; S
main()2 W8 L5 u4 f8 q, S
{
4 l1 y6 S7 j# S8 d6 f4 pint i,j,line,a[N];
1 k \& v1 o0 Mfor(i=2;ifor(i=2;i for(j=i+1;j {
! A6 `# Q" f9 @; C3 |( i if(a!=0&&a[j]!=0)+ S; n0 L4 r+ J( B9 f6 S& c
if(a[j]%a==0)( I2 V: g3 z5 N6 j) C
a[j]=0;}+ Q6 ?4 ^8 G6 z% c% o( [
printf("\n");
* f+ S2 p, B6 S! P/ x: j/ X; qfor(i=2,line=0;i{
[, _% e& y; u/ ]1 B; M if(a!=0)% p7 y$ ~: x" \* I
{printf("%5d",a);
) I! a# s$ T5 x1 T1 t) d2 G line++;}
! P& B2 B+ `2 P" a b if(line==10); V- G; ]; Q/ F. J7 j2 Z
{printf("\n");
8 t. ^! z, y( r2 O( r" U' _2 Xline=0;}* {. ], [& b @
}
. T1 y- [& p* \) {" L' C- R}# J4 L1 y6 C/ H' o% w& k
==============================================================
) ?+ v! x' r0 Q' b【程序37】/ t! n( K4 j5 d# L7 r- D
題目:對10個數(shù)進行排序
& R" x9 M3 D A1 {; b1.程序分析:可以利用選擇法,,即從后9個比較過程中,選擇一個最小的與第一個元素交換,,
6 N Z& i' a& R" p" Q 下次類推,,即用第二個元素與后8個進行比較,并進行交換,。
. {2 R, W+ Q9 { Y2.程序源代碼:4 f! l, z1 P0 f" g6 Z6 F
#define N 10
) G2 k/ w5 k. H8 ^; h- l" t' ]main()) A7 e2 Q, _8 i1 Q
{int i,j,min,tem,a[N];
" g' N: N% j- S) f/*input data*/
; ]% |$ i+ Y1 s7 J$ {printf("please input ten num:\n");9 O. Q( v! O1 r' N1 d. v4 @3 W
for(i=0;i{( ~; M7 Z$ f. m2 B: M& z* T
printf("a[%d]=",i);
% x, _& W; J! _4 y% `4 Ascanf("%d",&a);}
6 Y, m: L* ], n/ V2 vprintf("\n");
1 Q5 ^( c% `+ Sfor(i=0;iprintf("%5d",a);, ^3 Z7 F+ W7 [' ~8 C& [! w
printf("\n");4 S) Q- j- n# z
/*sort ten num*/
2 @/ f, u) @+ x {0 l. z+ i- Afor(i=0;i{min=i;# k% d( U7 y' @
for(j=i+1;jif(a[min]>a[j]) min=j;
5 k% i/ k& j5 z7 G; f: ~tem=a;
, b, O1 T. |3 J: Ya=a[min];
9 F1 g& u" L; k3 g! ~a[min]=tem;
% c9 Q1 F0 h+ x3 [' d/ |8 z}
9 o/ `8 Z, h/ @" \/*output data*/
7 Q5 d# v4 [% _; j$ ?+ q$ q' Uprintf("After sorted \n");
' k5 h& |& \( V& _$ L; O+ cfor(i=0;iprintf("%5d",a);
# c& f# \, i C# Y8 U}, b6 h; V, e6 o5 _8 w( F: t6 ]3 i
==============================================================( {0 Q" x/ Y9 c9 `
8 ], ?/ z8 w4 j- t" L7 d
|