【程序27】 % T2 I" f. u) p! D3 W/ R& P$ I* `
題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個(gè)字符,以相反順序打印出來(lái)。
( a5 @* M! C. N, l" V6 {; }1.程序分析:
; p4 C) | f- N) f2.程序源代碼:, P2 \# w, r! q& l' f" R
#include "stdio.h"* k! L; p2 e! ^; s, _
main()% U0 v# \; q! t U
{! ^- e- \8 Y; K; S2 j- q6 p2 m
int i=5;
* f) Z5 L2 a3 p2 t0 |void palin(int n);5 {; N' f- C+ H# J
printf("\40:");
* E( W* w, F9 V) I) kpalin(i);
Y1 i3 p" g4 W1 o0 o( hprintf("\n");
! s& C0 R4 c9 g7 ]# O# M; Q}, z X% n {+ Q0 Y
void palin(n)* [3 f# }9 F3 P t+ p
int n;
+ b* r/ g2 _* o8 @{# c. t/ g# e4 _) t9 \+ n3 J. O
char next;
" l P4 l9 k) F$ O4 P- `0 @if(n<=1)
5 P# S# O! M! k {
) s1 P8 D) F W, A" z next=getchar();
! [- t- A' b( X+ h9 E9 A) M printf("\n\0:");
6 @% M) }* [5 j* p' g putchar(next);
( e+ Q0 V5 y# z/ b9 g6 I }
( i1 w( e9 i6 i' D+ z2 I! _- N( Telse
+ G, [4 x, Z, Z1 E' r5 | {
: \; H7 O: T4 ~/ m- \; \ next=getchar();$ S2 l" T$ `$ W" L
palin(n-1);
* X3 M5 A# z z+ |5 \% ^ putchar(next); Q+ t6 U/ I1 Z& A( u$ W, o0 j
}
3 P* N l- M, Q. m$ E4 O}- c$ P; e1 w5 P& Z2 ]" V4 w' \
==============================================================
4 g6 [+ p' T" ~* u& U/ @【程序28】信盈達(dá)嵌入式企鵝號(hào)要妖氣嗚嗚吧久零就要 . k# G! q9 Q7 S; j8 M5 |
題目:有5個(gè)人坐在一起,問(wèn)第五個(gè)人多少歲?他說(shuō)比第4個(gè)人大2歲。問(wèn)第4個(gè)人歲數(shù),他說(shuō)比第, P- c. L# h }/ K% e
3個(gè)人大2歲。問(wèn)第三個(gè)人,又說(shuō)比第2人大兩歲。問(wèn)第2個(gè)人,說(shuō)比第一個(gè)人大兩歲。最后 ; a9 H5 k+ ~& f4 o& z. z
問(wèn)第一個(gè)人,他說(shuō)是10歲。請(qǐng)問(wèn)第五個(gè)人多大?9 R5 A2 d) b6 i% k
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第五個(gè)人歲數(shù),需知道3 t3 o" I: q5 J7 G/ n7 a
第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。5 a% H: T) L6 S' c" G5 P' s
2.程序源代碼:
1 j0 s0 S J: p( p0 D& N7 page(n)" W' o8 s- f; x
int n;' h9 q% L% Q x8 p t8 t
{
% ^; y% v' b2 C ~int c;9 p8 c* l+ c9 n& X
if(n==1) c=10;
" f v* Q, o S1 B; Z& eelse c=age(n-1)+2;
6 [/ W4 O& s1 ]return(c);/ v. Q9 G2 H7 h) Y; d
}9 E; U- Z/ ?4 Q. I% n: E! G
main()4 r/ Y y7 m/ V; Z! o; J! _
{ printf("%d",age(5));
$ e& }& I& [$ b}
0 }8 A1 t ^4 S* e==============================================================
W" G$ m6 M; {$ y* Q( d* }【程序29】
) W/ R( U8 {8 Q2 r: I* R% a題目:給一個(gè)不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。
( ?4 Z- b* X7 ]4 j1 c1. 程序分析:學(xué)會(huì)分解出每一位數(shù),如下解釋:(這里是一種簡(jiǎn)單的算法,師專數(shù)002班趙鑫提供) $ y* Q' @+ i9 Y0 m+ ?! r7 m% ^
2.程序源代碼:! @$ R' z$ v$ t2 A
main( )
u0 Q, l' R8 p- ~{
0 ?( g/ G( B0 U' Tlong a,b,c,d,e,x;
/ Q, q' B0 m, \5 B0 E% Wscanf("%ld",&x);) f3 F% Y. t+ V9 U8 R4 V7 z2 r
a=x/10000;/*分解出萬(wàn)位*/
/ {6 n$ X" G+ H9 q- @b=x%10000/1000;/*分解出千位*/; I$ ^# e2 m. L) w' V* Y0 A/ |
c=x%1000/100;/*分解出百位*/0 V" a0 t9 I z/ b
d=x%100/10;/*分解出十位*/7 e1 N- x3 V, r9 `; y; M
e=x%10;/*分解出個(gè)位*/
* _5 o) U+ B0 f) mif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
: w" R3 i1 F. g% Yelse if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
2 [6 \2 A! E" w else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); d) r w4 I+ F
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
" [3 J4 x Y; c9 h5 A else if (e!=0) printf(" there are 1,%ld\n",e);
- N- A: [1 z7 m$ |9 E}+ d1 R+ V" `6 E" H) M
==============================================================
- I1 `+ i% `4 f【程序30】 " \# N- K1 R2 b% T, U
題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。 + T! t. G+ Q X/ r
1.程序分析:同29例
! F- w' t, Q" O# p6 ?9 `" ^# ~. X2.程序源代碼:
0 p# c0 @/ ^2 w* p5 Y* xmain( )
5 N! E; M% X+ o8 l/ c) i{+ K7 a4 T1 X4 O% k+ h N9 X4 ]
long ge,shi,qian,wan,x;
$ i" r6 F2 [9 ^- i" a# Fscanf("%ld",&x);
/ |1 O* Q! G* n1 swan=x/10000;
H) f# f' z1 T- o) K) Zqian=x%10000/1000;
: F" x) M2 W; c5 [. E2 Yshi=x%100/10;! w2 l. K0 s, y. ?( d3 Y
ge=x%10;
1 j0 O% z1 Q- z/ _9 Sif (ge==wan&&shi==qian)/*個(gè)位等于萬(wàn)位并且十位等于千位*/
9 Q; l1 ` b5 W printf("this number is a huiwen\n");* _% q/ [; O8 j- }! J( i
else
. o9 y: D. y0 E- j l' P7 P printf("this number is not a huiwen\n");
* j5 b i1 q( x+ h1 Z; n7 h6 q} 【程序31】( a& n) L% M- p7 D% K. `
題目:請(qǐng)輸入星期幾的第一個(gè)字母來(lái)判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)
9 u3 D. I7 K, g" I) B+ ~% C5 n# R3 O1 t 判斷第二個(gè)字母。
' x6 |) G" C" p1.程序分析:用情況語(yǔ)句比較好,如果第一個(gè)字母一樣,則判斷用情況語(yǔ)句或if語(yǔ)句判斷第二個(gè)字母。
, S7 `" h% G) T6 D9 L- I2.程序源代碼:! e) y" j4 s" w( y
#include . F$ E- g$ e" D
void main()3 N5 ~. F# _5 z+ X6 P
{
* r! r5 F$ r$ D" t- Pchar letter;4 ~* \3 H4 R& b/ o# x' }0 ~+ n; B8 H8 T
printf("please input the first letter of someday\n");' O; \" w8 g9 I: s+ Q" q
while ((letter=getch())!='Y')/*當(dāng)所按字母為Y時(shí)才結(jié)束*/" |- V: i1 V1 C6 A9 Z
{ switch (letter)
6 U, k1 z5 ?/ s2 z) |{case 'S':printf("please input second letter\n");0 ]+ B v* q! F! V
if((letter=getch())=='a')
$ C0 j0 e! D# s" m7 T0 l3 H/ z) ~ printf("saturday\n");% _2 s. k1 h: N" l9 l7 m. {; \3 ]
else if ((letter=getch())=='u')* G1 k4 I5 q+ a- q' @. x
printf("sunday\n");
" ]7 e6 k7 k5 q/ M else printf("data error\n");
% L8 y/ r5 `5 t' P5 U break;
& {: F7 ?) i4 x bcase 'F':printf("friday\n");break;# v. H% K7 q k! _
case 'M':printf("monday\n");break;9 b9 U- }* d5 [/ X3 @4 l3 Y# d( G
case 'T':printf("please input second letter\n");- m4 ^. |4 v5 t$ I' V
if((letter=getch())=='u')
' h/ s2 F; l. f- m7 c R( B printf("tuesday\n");. Y, \3 a/ h! \ D
else if ((letter=getch())=='h')+ x3 c' u+ u2 W `) U3 x0 r
printf("thursday\n");
, B2 M t1 K- o8 ~/ r/ E& ?% F. B else printf("data error\n");
% @6 \. g3 g% ~5 l& F( N; j' I% Y/ G% g break;: _8 S; B& Z' C8 {! \: x
case 'W':printf("wednesday\n");break;( Z; E J5 a9 T
default: printf("data error\n");# ^7 g# P6 i( {5 ]4 \! F' b `# v% H
}
) C0 T4 @( W& e i5 a- l }, j5 r# M7 J4 J1 C
}. m5 `7 l2 b4 r- f: N
==============================================================. [$ N9 l4 _$ |) O5 X1 f
【程序32】; D! }: B, e6 s+ s
題目:Press any key to change color, do you want to try it. Please hurry up!% B$ J- p% R. B) i. t% C* y
1.程序分析: % s7 S2 W( l L5 e- t$ z
2.程序源代碼:" A; C# l5 G3 q. B: \
#include
) g! H; J+ a8 e W' D4 q" {6 A6 kvoid main(void)
4 Q; E5 G# J; o& F5 r/ L{& L' a: v. k& o2 \* W1 L
int color;
: ^% U. J1 b( p) s8 J" C4 Ifor (color = 0; color < 8; color++)
4 Y4 F0 i7 M U4 g { # U! P5 C$ V: O) l( T
textbackground(color);/*設(shè)置文本的背景顏色*/3 G% Y. V1 y& i5 l# J4 `: s
cprintf("This is color %d\r\n", color);
: _. L' Q( d" r; i cprintf("Press any key to continue\r\n");% C% o! M7 u l0 T2 K
getch();/*輸入字符看不見(jiàn)*/
: d5 f5 u$ \0 k% m d# \ }5 J$ }" [6 T4 [/ l" |
}* y( K0 Y7 Q2 t% P8 t
==============================================================% Y2 A+ f9 s" u& [: H& h
【程序33】& }1 x1 k7 p/ l& ]
題目:學(xué)習(xí)gotoxy()與clrscr()函數(shù)
* C7 \* r6 {- b1.程序分析:0 I: k( \5 V n: `: i
2.程序源代碼:2 f) N& D! ], v- g: L! T2 a# F! _1 R
#include
% I# S2 C P$ E! c9 e( kvoid main(void)
+ m* e E- D+ J- @9 i S, t{
/ r# [! d# H# w0 X7 Gclrscr();/*清屏函數(shù)*/
6 D+ ~( {3 p4 |0 |textbackground(2);
; ~* {" Y7 D4 n( ggotoxy(1, 5);/*定位函數(shù)*/
! R# Z T& i8 H- I( K0 M' V- ecprintf("Output at row 5 column 1\n");
0 v% N6 D1 Y" S) Ftextbackground(3);# V! G* n; S" ]' `! ? A
gotoxy(20, 10);" K F8 ~2 \2 l8 N5 V
cprintf("Output at row 10 column 20\n");
- M6 O8 W- j. g5 j( T8 L- R}
/ Q1 l B/ R4 O' j==============================================================
4 f$ x4 H4 r& K0 Q- v) [% z* r【程序34】: `7 X+ n. b9 { y' A7 ^5 L
題目:練習(xí)函數(shù)調(diào)用0 y$ h7 ]+ K O9 V/ e& r; s
1. 程序分析: 3 f0 ~7 L# H2 t d4 J/ l0 r; o$ b7 U% d& n
2.程序源代碼:
- v8 R! u" B1 y+ O6 l3 @6 h" K& Z#include
0 b# x) G; D* T& z' Rvoid hello_world(void)
& S5 d- N% v) y+ u{+ T" i: i( g c$ y7 f; s" Q" W
printf("Hello, world!\n");
! K" r4 Q5 O% e" s5 d; m# ^$ w. [+ |}
0 h4 f/ D0 p! ~- `void three_hellos(void)
- B/ i6 J! j! b{
+ d4 }: T/ e6 c" p7 x7 o' Z) X! {int counter;
1 Y5 E! c1 h: j8 U" x) Bfor (counter = 1; counter <= 3; counter++)( Q+ e' L: v0 ^5 l: {
hello_world();/*調(diào)用此函數(shù)*/
) ]/ K& M3 Y" c. }- ~$ V" h( M. d$ o}
. S0 `. F2 D: Q9 n4 gvoid main(void)5 R0 J# r- D7 [; A( X
{% h8 h4 A6 m' |% V8 E) n+ N
three_hellos();/*調(diào)用此函數(shù)*/( j" H7 z2 b3 G1 |" c4 ~6 P
}
1 z6 U) e# `4 V7 g* D( ?==============================================================
3 D4 t5 R* R7 I0 |: n( F2 t【程序35】4 p! ?( Z' ~# |1 F2 `4 j8 v
題目:文本顏色設(shè)置% B/ I" U' E% m+ C7 q
1.程序分析:) Y \3 R; r4 F
2.程序源代碼:
4 G" Z' Z/ L$ c3 G* l$ N#include
: f0 \! h; {5 T8 ?void main(void)
5 a% Y. W+ D5 ~0 \4 g1 Y* q( N{
+ f8 S! d0 {) Y* a7 ?3 l9 qint color;
8 Z; ]7 _$ J6 f1 B, `; ^, mfor (color = 1; color < 16; color++)4 j7 S; \" E) ^6 c p& n# l
{
* `- z b3 Y& }) D2 Y1 M8 P: l textcolor(color);/*設(shè)置文本顏色*/5 c+ J7 M/ _; x
cprintf("This is color %d\r\n", color);; \0 b$ C Y `$ ?. B: s r
}2 k" A+ m' }/ }% ?* ?' l& E
textcolor(128 + 15);* b- O6 J/ f( N4 _1 F6 B
cprintf("This is blinking\r\n");2 d2 ^- ~8 c" h/ w$ D# ]
}
5 l+ P; c) i: \==============================================================2 n$ n5 O, K' Z
【程序36】
z! Q3 ^ U B1 A題目:求100之內(nèi)的素?cái)?shù)
* Z2 _+ M& J- ]3 m% r9 x% n1.程序分析:2 _' | ~7 z/ M7 P
2.程序源代碼:
, l7 k; R$ I' T# v#include . g4 [) n3 h6 j' r
#include "math.h"! b+ }: ?& c! R8 H
#define N 101
0 p* _6 x0 L3 Q/ n2 T' Umain()
3 u) p7 g( x) M- j{
1 D; F) u1 _. b; C: ]int i,j,line,a[N];" D! Z& z' c7 r! N6 j( ^0 y
for(i=2;ifor(i=2;i for(j=i+1;j {
3 }) H8 w% E1 D7 G1 f7 C$ Z9 O if(a!=0&&a[j]!=0): T0 N. @' z) s/ W+ z
if(a[j]%a==0)
+ g1 T. |6 t# M) | a[j]=0;}+ F9 q: a- [; E5 }, a& M! j( x
printf("\n");
: Q7 g% B6 c$ @) Z2 ]* G R0 x9 Pfor(i=2,line=0;i{5 n1 p) C5 `% T4 r( _# }% D# o* U
if(a!=0)1 }, Y3 w0 t; c, Q, }1 _$ P
{printf("%5d",a);
7 F( P8 e7 |, s% m/ G' G# h line++;}" M, _5 h& F( F
if(line==10)
* k! q- f" d* V ` {printf("\n");2 I9 ~- W" Y; `9 c7 U8 f
line=0;}6 O$ G' \- @. V6 u9 Q$ e
}% P& X) w) u8 o3 D
}" Z. B( p, K. o; ]0 p$ X
==============================================================
2 t6 D; o. |( v# n【程序37】' s" V3 ^7 u' q0 T
題目:對(duì)10個(gè)數(shù)進(jìn)行排序1 W# \- C- I1 P
1.程序分析:可以利用選擇法,即從后9個(gè)比較過(guò)程中,選擇一個(gè)最小的與第一個(gè)元素交換,5 j0 L5 C/ z! }* M2 S. |/ p l4 o
下次類推,即用第二個(gè)元素與后8個(gè)進(jìn)行比較,并進(jìn)行交換。 " m+ q, k3 n1 z
2.程序源代碼:6 A: X" g8 l6 f' g3 H) _
#define N 101 P: R9 y* S" n* z
main(): K" }' T0 }* n3 J! t, U
{int i,j,min,tem,a[N];+ b9 V1 G" z6 ^- Q7 W$ S6 Z
/*input data*/
9 L' c2 m/ O4 L0 k* ?printf("please input ten num:\n");
" E" L# x" @9 x% H3 `# x( yfor(i=0;i{
3 r5 V v5 D. C* ^& ]' a* ?printf("a[%d]=",i);: v$ R$ |9 q& X& |: }( v& S
scanf("%d",&a);}7 C) B6 X: c5 b) j* x2 q# Q# d6 H* ~
printf("\n");7 i5 Z8 x/ f, y- b. A$ D
for(i=0;iprintf("%5d",a);
! p. g. C1 l2 `% j5 g$ _0 h9 Pprintf("\n");
/ k: y8 J; v: O- ^/*sort ten num*/" d, q0 S. v# V& u4 w
for(i=0;i{min=i;
, a: I6 _' F! ?, Afor(j=i+1;jif(a[min]>a[j]) min=j;
7 Y/ q9 O' ?- ~; o1 ?$ c: m# Vtem=a;; F9 v1 g/ M) d+ S% j. u8 t, Q3 l
a=a[min];
6 H4 `9 G. f/ j# R9 B& [a[min]=tem;
2 v& Q# V2 \% R# ]9 z. ~}
- }$ `' ` z6 e0 Z/*output data*/
9 A, Z# n/ v& g% Y+ b3 ^printf("After sorted \n");
: _7 }; u4 i0 ]for(i=0;iprintf("%5d",a);6 q/ z5 ~+ ?2 O( V t, {
}8 U8 d `0 ]+ i9 u% g- r- L
==============================================================
) s! W# D+ q- i# ~0 y & l8 I2 Q* E! j& u) T9 p0 J' D
|