【程序27】 1 K7 e5 Z1 u& R: T; ~0 m1 C
題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個字符,,以相反順序打印出來。
3 w% b) s% A' W4 W4 E& O5 O1.程序分析:7 d' o1 A; R. d Z% ]% ]6 `
2.程序源代碼:
- J% R3 g- C }4 i#include "stdio.h"
8 B& ~; _0 |) |/ I0 e. j+ {" Y) i0 l, B9 Ymain()8 f5 D* k& m8 k' b& p1 k
{
, L4 e3 a* T3 f1 p4 Q. c! `* [int i=5;
( d1 {. Z. M9 {void palin(int n);; U/ ^9 E1 q: B( q
printf("\40:");7 r; V& D8 k: Y, p( a
palin(i);: t4 L! H% ^' T% U3 b( k' y) q+ m
printf("\n");
, A- g; A/ V8 S( L$ ]7 B$ I3 q}7 o6 ?- L; m+ d" L9 \2 u/ V
void palin(n)
4 t& v; m: Q- w$ }( P+ |# ^+ @int n;5 ?, v# T& }8 ^, P9 r) s) v) n
{! v( u5 h+ x7 {# `0 Z
char next;
8 I' E' ]( }2 y1 S& ?: G; f% Qif(n<=1)0 b6 V+ u0 D! V4 k4 ^" A
{
3 o8 x6 _) X( B! Z7 |" d t next=getchar();
3 C0 b' y; ?4 m! X$ M5 \ printf("\n\0:");
; H, K3 C5 [2 e( f8 [9 b: B putchar(next);
b; E% b% `! V8 B( K1 f0 H }( P& Y- I* G7 X* N/ b) V7 u& a) H3 D1 J
else$ V* S. [$ V/ A; W2 `, v/ ?( k* d5 f
{ {9 t) Z& c5 x3 v1 i9 g0 f+ I
next=getchar();
2 y0 b4 c7 K$ o" Y! K palin(n-1);0 \) v7 K. B: R+ |, O; M" h8 J/ _6 v
putchar(next);& L" I, {1 E" K7 I
}8 v& ]7 D% y& z) p- _0 ]) Y5 y. g
}
* \, o9 s. a, t# y) I* o7 a3 Z==============================================================* @! r ?% G+ W; {8 \ O
【程序28】信盈達嵌入式企鵝號要妖氣嗚嗚吧久零就要 # E0 A( H8 H8 u v1 t; ~
題目:有5個人坐在一起,,問第五個人多少歲,?他說比第4個人大2歲。問第4個人歲數(shù),,他說比第3 R' Z% ]; a# h! h
3個人大2歲,。問第三個人,又說比第2人大兩歲,。問第2個人,,說比第一個人大兩歲。最后
3 R6 w8 n+ o% |0 T! S 問第一個人,,他說是10歲,。請問第五個人多大,?. q6 R/ u& v. \. A" e
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段,。要想知道第五個人歲數(shù),,需知道
& D- ~2 K( M8 b3 p7 k% \ 第四人的歲數(shù),依次類推,,推到第一人(10歲),,再往回推。
k( V; u! @5 y3 P& `2 z0 q. f( A2.程序源代碼:
$ [+ G9 |: q/ B vage(n), h/ t0 l" [) q: n* ?. F2 L: h
int n;1 n+ w2 s3 E& @( H8 i+ i( w
{
- e3 v0 X) \* g: vint c; f2 ^5 ` y: c* T. t [/ \
if(n==1) c=10;! F$ X" Z& P& e& V; i2 ~7 {
else c=age(n-1)+2;5 q) `5 ~& j) z7 Y2 k' U+ s
return(c);
3 Q8 ?. l7 d! U! {7 D}/ l( a& b9 W( v; t: o$ A: m
main()* v5 w$ \# ~* K) A: h/ ?/ | I
{ printf("%d",age(5));: G1 B& J% Z; ^) r. P; k6 X
}
+ W+ y0 t6 S; {; t" J% c7 l6 M==============================================================
! ]" D; n4 ^, \$ G7 [【程序29】
6 Z3 P; ?; r+ t' X4 E題目:給一個不多于5位的正整數(shù),,要求:一,、求它是幾位數(shù),二,、逆序打印出各位數(shù)字,。
x0 e! r5 W9 N; P" f+ c5 L1. 程序分析:學(xué)會分解出每一位數(shù),,如下解釋:(這里是一種簡單的算法,,師專數(shù)002班趙鑫提供)
3 ]( F. x% m1 ]2 @2.程序源代碼:
6 R/ ]/ ]. s+ d) ?* {7 X9 j* zmain( )
+ m5 I+ k, x5 s' E# a$ A3 A) m! l{
; O4 F4 O6 o. Z$ {long a,b,c,d,e,x;' l! I* y. v: [2 R* Q6 b! f8 ?0 q
scanf("%ld",&x);
$ X2 P' s& R" j) A- l9 B6 L" ^a=x/10000;/*分解出萬位*/2 ~) R+ P) M/ D
b=x%10000/1000;/*分解出千位*/
0 Z0 {9 |+ [$ q7 Y# |- Ic=x%1000/100;/*分解出百位*/
# x5 j- {8 G ^( Td=x%100/10;/*分解出十位*// L5 G/ f0 B& a5 j; ~) Q+ {8 ^ Z' V
e=x%10;/*分解出個位*/2 f/ l1 @! b( l' j9 x
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
, A- W4 r7 }3 W0 I5 Z, ~5 V* R: Q& `else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);& s" Q3 W8 F( a- T1 u1 @! I1 ~
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
5 e( H7 D7 F# V/ Y) r- m7 [ i6 p else if (d!=0) printf("there are 2, %ld %ld\n",e,d);2 o0 r& Q% v" Z' q. }# B/ z
else if (e!=0) printf(" there are 1,%ld\n",e);8 X' z) L8 `( O" S0 ?( [$ g# Q
}3 ~8 D- p/ W8 @/ R6 L" y
==============================================================
4 H6 n6 ~6 C0 V【程序30】
3 h6 i/ l! @4 {( S0 V題目:一個5位數(shù),判斷它是不是回文數(shù),。即12321是回文數(shù),,個位與萬位相同,十位與千位相同,�,! �6 L& O7 w' a+ A( K9 }- M% M
1.程序分析:同29例
B/ F# p! H7 P3 p2.程序源代碼:
; T M& U4 m! h! f! ~main( )5 ^* P, _ o9 E5 J+ h
{6 q8 A$ _: q1 p0 x- b- }
long ge,shi,qian,wan,x;' J* C" C) u- z6 p% h
scanf("%ld",&x);$ l' L) t- g6 U3 A
wan=x/10000;/ `! {! x( _9 o
qian=x%10000/1000;3 f+ y* x6 Y. z+ T! I# B% U5 ^0 u
shi=x%100/10;5 \8 C* i& m0 b; }
ge=x%10;1 H7 D2 @+ K8 p$ D: J$ x; h- Z# K4 ?
if (ge==wan&&shi==qian)/*個位等于萬位并且十位等于千位*/
: w! f/ n1 t/ l; o+ a; m7 i* ~' H printf("this number is a huiwen\n");2 t* Q5 K% L5 Q. R* t% T( g
else5 m; f3 Y$ J( Y' a) G$ k1 g
printf("this number is not a huiwen\n");
( ?. o+ Q0 @: b" e1 o} 【程序31】4 g# h. x% t) F, @( o! l; S
題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,,則繼續(xù)) F8 [- T1 O/ v3 M6 r+ u9 r# l
判斷第二個字母,。3 C; a) r5 \( P# k; m) {5 O
1.程序分析:用情況語句比較好,如果第一個字母一樣,,則判斷用情況語句或if語句判斷第二個字母,。
% k) x( H0 i$ N: Z+ i2 \3 O2.程序源代碼:
7 ^% T2 ^+ Q0 V#include
2 \' I/ D9 w) Rvoid main()
/ `: M1 N' Z! I{
- @' C" X, u' e/ ~8 a- achar letter;7 K! n- T: k6 K2 ~" J# w
printf("please input the first letter of someday\n");
3 N9 q# R$ B' E" N4 Z4 ?( ewhile ((letter=getch())!='Y')/*當(dāng)所按字母為Y時才結(jié)束*/7 j( K+ A8 S+ Z1 M7 i, p# j
{ switch (letter). f: z6 a5 U0 h2 s3 b
{case 'S':printf("please input second letter\n");
0 ]8 M) L% v: M( Q7 y if((letter=getch())=='a')+ U- _2 J) x3 R% `. E6 A, {
printf("saturday\n");7 q6 u0 }0 o3 k0 W. C7 l1 P
else if ((letter=getch())=='u')+ s$ o6 [3 v+ o: z! h
printf("sunday\n");
8 X" @5 a z2 _' `$ p else printf("data error\n");
* k( b- X1 d) m) p. C break;
a! Y: q( G( Y/ P, l8 B2 ucase 'F':printf("friday\n");break;
2 x$ ^9 B4 j8 D; j- Jcase 'M':printf("monday\n");break;
5 K: y- _6 _$ }! zcase 'T':printf("please input second letter\n");
) \( B4 x- O7 M! q+ K c if((letter=getch())=='u')
) p2 A( Z% }7 j# [ a* w- T$ B printf("tuesday\n");( ]! J$ P5 k8 F1 t& g( o# l0 \
else if ((letter=getch())=='h')6 e! S0 R% U) i$ b% _% ^
printf("thursday\n");; t, l1 R2 u# ?4 p* W l$ b* X
else printf("data error\n");
5 d* m: o. G6 v( t! O3 j: b) k& q break;
5 A: [, _5 d7 ]- qcase 'W':printf("wednesday\n");break;! y+ x$ U* L# O$ h1 R; n
default: printf("data error\n");
# ?% M. n7 k# P/ E1 e' g: X }0 p: j1 T2 P2 v0 o( e" I
}
+ p$ m+ [- z6 |' j) G}
/ C0 `+ A1 J$ ]3 G1 \7 @==============================================================3 v r7 z1 o$ w4 Q3 p
【程序32】% C9 G. Z" j# a# E
題目:Press any key to change color, do you want to try it. Please hurry up!
# a- u, K4 o; ~" V1.程序分析:
. w1 C# n1 z3 u+ G2 D5 P5 y2.程序源代碼:' U, X* D, H4 ^( u) V7 ` b
#include " v+ K1 s( y9 V; r' J0 l
void main(void)
" e0 M" k# P/ p{
; h0 h0 z! W3 yint color;% I0 d0 C, T, M" ^
for (color = 0; color < 8; color++)/ c. [% T$ p: e& N7 d4 \8 x: \
{ 9 _& b0 w3 U7 X
textbackground(color);/*設(shè)置文本的背景顏色*/
& X3 {9 |. w" n% N cprintf("This is color %d\r\n", color);; r" ?% {& z& w+ |3 N" J% W
cprintf("Press any key to continue\r\n");- |" Q) }- k, F- E0 a) B) u
getch();/*輸入字符看不見*/+ h2 S4 k& l+ h t/ ? n2 c
}
5 o1 T! V: }/ K* r, ~. P}* x* _; r+ Q# d
==============================================================
, _* I" v1 s2 o. W9 m6 M3 C【程序33】
$ z" f/ v, h5 Q3 T題目:學(xué)習(xí)gotoxy()與clrscr()函數(shù) / {9 H) S# [$ q$ S
1.程序分析:5 W( A3 N& x. \, q
2.程序源代碼: t5 l @( M7 x' R; [/ p2 |1 o
#include 7 A% ^: z" i) N8 Y5 R L7 \
void main(void): M9 x+ r7 u" U1 N5 Q& ^0 U/ D
{+ K0 k3 f7 c$ j1 r; L5 [
clrscr();/*清屏函數(shù)*/
& `+ ^& ~, F+ M9 x! P! y3 Dtextbackground(2);7 g( c( F$ P3 r- i
gotoxy(1, 5);/*定位函數(shù)*/5 G9 ]; s( u' J" B; l
cprintf("Output at row 5 column 1\n");
: ~2 C$ Y" t& }: f: stextbackground(3);
* {# S2 `' s+ d2 V/ @6 pgotoxy(20, 10);
8 \* p2 t' d1 @$ Vcprintf("Output at row 10 column 20\n");
0 o8 T4 q7 {" k |! W8 d' f}/ J4 s' n/ j9 k9 v' {6 G
==============================================================- `$ z4 J( I! [' A- I9 L& `0 J
【程序34】' Y. S( r E2 w: | r/ e( w
題目:練習(xí)函數(shù)調(diào)用
, l ~6 f8 }+ ?3 G6 K6 D9 C1. 程序分析: * _* y' ?# O7 i2 d) i* d+ T
2.程序源代碼:8 t* O; z1 `* |& `) B! A3 H
#include 7 G5 c) H6 A! T, g
void hello_world(void)3 C$ t' n3 w6 {. y
{" b0 _5 ?% I/ T+ ~ z. l ~
printf("Hello, world!\n");
0 m6 l; i* _1 ~5 y. f+ ]- a}
9 J" I5 k0 k$ \void three_hellos(void)) N. v9 `8 B3 U0 G7 y6 T
{
& x0 a2 I5 y3 R# ~int counter;
/ X) w+ Y: W0 D* l/ pfor (counter = 1; counter <= 3; counter++)
8 C1 g1 E% f' |: rhello_world();/*調(diào)用此函數(shù)*/# B0 c* v; @3 F) J7 H1 o) @
}
N% S, R( Z3 m0 J: lvoid main(void)
8 x* c- g! o' x2 E+ L$ D# Y0 J; J. G{
$ t2 M: H: b' b7 ]three_hellos();/*調(diào)用此函數(shù)*/& |1 p& {( Z9 Q" T G) G5 v
} I1 K# [: d& g- f* Y
==============================================================7 ^5 z. s6 z# y3 A- g c2 k$ F" h
【程序35】7 f+ t# U; V$ `3 j
題目:文本顏色設(shè)置6 ]' C) [$ \5 G* e" H
1.程序分析:) k6 J3 j# p, n( e& m
2.程序源代碼:
0 ~# e2 b( O* z1 Q5 h, W! L#include 4 b# z+ A8 c7 a& W! a& l3 a0 B! M7 Y
void main(void). g7 b" o* v( ^) ~5 ^( S& I( W
{; u' U6 w# n9 |: ?& q
int color;. Q- H4 T! N- l% F% R+ q0 K
for (color = 1; color < 16; color++)
0 y3 D4 h$ `" @9 q- m {
- J3 H, u A; ? l textcolor(color);/*設(shè)置文本顏色*/
: B6 \/ S, u- e# B& B8 O; V; V cprintf("This is color %d\r\n", color);) t1 ~) x3 u+ u1 n$ H/ w$ i
}
& x9 V: K5 |$ {- Otextcolor(128 + 15);
" U0 f/ M' ^& t1 S+ ]cprintf("This is blinking\r\n");
; S' N5 d, ?4 S6 `}
) K& {* O J; v5 r0 ~4 d0 c==============================================================
& |/ S9 {/ |- L4 x6 \【程序36】0 g" X$ z' Y+ `9 j
題目:求100之內(nèi)的素數(shù)
1 @. c4 D6 K }5 n. ~- |2 B) `1.程序分析:
' W& g Z; v" M2.程序源代碼:% O2 ?+ Q9 [6 L
#include
5 O/ n6 w8 ~6 {#include "math.h"
4 M) Y% T: c% q6 B; {# T#define N 101
0 s/ u5 n" i, X2 }main()
4 O9 e, w: I# n: m" c{
; B1 h# U" y8 @4 Qint i,j,line,a[N];
. u& F- K6 F& l+ b: |: Ufor(i=2;ifor(i=2;i for(j=i+1;j {3 `1 m3 \9 ^3 o
if(a!=0&&a[j]!=0)
) B% A3 [) A' ?8 ?) W0 L5 ? if(a[j]%a==0): ~3 S, D1 x- S9 r. C& p$ O
a[j]=0;}9 f9 q$ o# c1 k5 B4 ~1 z
printf("\n");
6 Z6 g3 J4 ~; m3 h4 g8 {for(i=2,line=0;i{
5 m6 E4 {& h2 t9 U4 j if(a!=0)1 ?- H& O( T! U
{printf("%5d",a);
* e3 g% E& _* ?) d( a line++;}7 X- q: M2 k) J- I J
if(line==10)
. e% u( a2 T. @: d3 A, ^3 `9 Y {printf("\n");
$ _- E* U8 Y4 a! Z. M' Xline=0;}
1 o& z5 ~. l# l7 \" E- `* y}
# Q, D) W- R# X2 P0 K, Y$ W9 I4 g}2 ]# ?4 N. t7 w/ }" X% V
==============================================================
9 T9 i+ F V$ r% q【程序37】% G( `$ e d) \+ ~2 H( p
題目:對10個數(shù)進行排序
* F' b" A, p; m g1.程序分析:可以利用選擇法,即從后9個比較過程中,,選擇一個最小的與第一個元素交換,,* j3 H9 p7 h) |' k1 Q9 `5 t. \4 A
下次類推,即用第二個元素與后8個進行比較,,并進行交換,。 1 `; Q. G$ b6 p
2.程序源代碼:
0 b/ Q( _2 i: T#define N 10) n) g2 N+ @6 w" u: {. b
main()/ M+ W+ M7 G1 ~2 p5 o+ @2 R( t
{int i,j,min,tem,a[N];
' Q: x; {& B1 d/*input data*/: `7 { Z* G3 P
printf("please input ten num:\n");
P0 p: y, J' D1 \for(i=0;i{& s: X" [$ C3 y$ l. u& M# v0 o
printf("a[%d]=",i);
/ K- A- W7 \: A5 jscanf("%d",&a);} _: _4 F ]+ k/ Y5 C
printf("\n");
: g; M8 T! @3 J# v, @: f- O2 ^for(i=0;iprintf("%5d",a);5 B2 s+ h+ K" ^7 J* d& R5 \, X, |9 m
printf("\n");
* f3 S M8 K8 W: d s5 |/*sort ten num*/
, s, m8 @; s' n! j" Efor(i=0;i{min=i;) k$ U' u' B+ q
for(j=i+1;jif(a[min]>a[j]) min=j;
! S! W8 s" G! o/ btem=a;
! h( S$ k: E0 o$ ^a=a[min];# E( W1 j( j1 \# c
a[min]=tem;
: d# }" [9 U- i9 ]$ R" H}
, g# X I, u/ s. X, V/*output data*/
& o0 G4 I- R) ~printf("After sorted \n");
, I0 A$ I, c9 v# l/ {0 T9 o6 c& }for(i=0;iprintf("%5d",a);6 r' \. @: o, R! b3 w' E0 Q& Y; a; K
}4 f9 C7 {+ j- I8 H. k- \. C
==============================================================. P- e5 c+ ?4 z' ]4 R% A
$ \, w. C" G8 f1 J4 r! p7 z |