【程序27】
1 q9 l- g+ O4 B' T$ Z4 ~5 ~题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。7 f9 |7 R% F6 M) `4 i
1.程序分析:$ V* c' @; P- O( E1 |
2.程序源代码:- O4 ]4 D2 u, V9 v/ A5 F
#include "stdio.h"
. E0 }5 _5 Y0 \, h0 cmain()
0 a3 e5 P9 F- g; I{
, { ]8 l- M. l5 E+ k) t2 pint i=5;- M9 u3 b* J' {3 {* u
void palin(int n);& ? q, t1 t7 h6 B" \
printf("\40:");* L4 J! l6 S8 Y
palin(i);
! U2 b2 _5 H" b- sprintf("\n");0 N1 c2 s, P) w5 W' c
}9 l, v0 w. q) L, f, t: m
void palin(n)
& H; s2 j2 l9 Aint n;
1 @+ F. Z# Y8 s{
2 _' i, _; t2 X: P: a* e# Kchar next;9 o0 [: a% h* t2 f; Q
if(n<=1)
- n. Q6 x9 u5 e) S1 ?' Y {
, \% }" d9 j' u- ?( [ next=getchar();* d* l w# S% h
printf("\n\0:");/ o: W# O/ l5 W
putchar(next);
! z$ Y' i* @& j/ c9 f }4 {6 K5 u8 n* d# `# U$ c
else! f: V3 I5 A( C" B
{, P }" e+ l: E0 `. ?4 R
next=getchar();$ r6 J. K0 k* Y+ I
palin(n-1);8 V" O% V9 M1 F/ a/ A+ Q: P
putchar(next);0 G9 X- s) M& k, J6 ~/ F* S
}8 G( u" c1 b2 [ M$ Y3 c. b
} ]1 f1 T6 [5 [% ^7 b
==============================================================9 E5 L$ i8 O S4 o+ Z/ {
【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要 % v6 f2 t/ q, c) J' l4 e8 a H
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
4 v1 a5 N; }9 f5 ?: v/ C/ F9 b 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 ( p2 ?9 n* o3 q( [9 Z/ N7 r
问第一个人,他说是10岁。请问第五个人多大?- i2 {6 x9 f; | R
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
+ ]' K9 v- R* z$ u N. G4 e 第四人的岁数,依次类推,推到第一人(10岁),再往回推。
; ~( O$ D9 [5 O* j8 t6 r( T2.程序源代码:
+ d' ~: b# K" m' {3 `age(n)' ~) v8 w% A( |/ T P
int n;
2 w- a& i' F$ W' D$ V{
3 R* {4 s! [! ^7 l9 k8 ?, I/ W5 qint c;* D/ [* ^6 E7 t1 k) P+ o4 @
if(n==1) c=10;
+ W) Q, w1 z ?+ `0 felse c=age(n-1)+2;- d7 p! w3 e$ q/ n/ f. s x
return(c);0 }" }/ k J2 Y* N% A
}& J+ _5 t. d5 `# N; [- ^" d
main()
8 B/ V2 v* x) a" l- Z{ printf("%d",age(5));
9 q F# O; b5 W% ~, v3 a; O}, ?& t2 U, F/ }% R1 ~: E
==============================================================
& M% \+ C/ Z3 t, b【程序29】
$ r8 h& c" [+ b题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
2 J7 @1 g a& _! Q! f1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
9 @$ b( A- G( h2.程序源代码:: V9 u4 l- C% z" Y
main( )! ^' ]8 @6 Q. ^: W# i* q
{
1 I9 o3 @ W& x, ]+ H0 {+ Ilong a,b,c,d,e,x;
" ?( s+ D# C) a- d t0 ascanf("%ld",&x);
+ p! J( R0 B% A- w, r7 k* w' ra=x/10000;/*分解出万位*/' s2 u5 ]; e2 O" |4 y, `5 v
b=x%10000/1000;/*分解出千位*/0 w# Q# b% E X# f- l
c=x%1000/100;/*分解出百位*/
( \8 y, c; L; y, R7 zd=x%100/10;/*分解出十位*/# ?7 w) m; Q. Y0 T, Z
e=x%10;/*分解出个位*/
$ m, H" ]9 f: Iif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);/ S( e8 [$ q" `2 O' d! T4 i8 V3 _( F$ U
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);# h- a8 D' U+ i4 V- z
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
+ M; O) q w* S6 ~& K6 S, }0 J# { else if (d!=0) printf("there are 2, %ld %ld\n",e,d);% I# V+ b9 j3 n/ N' B; J
else if (e!=0) printf(" there are 1,%ld\n",e);- ] }! p8 _4 c8 u* A% j9 ~2 E% f
}
1 E3 n# n' _/ }. X, F* K==============================================================
& @- Q' w) G" f% m2 m, n" X【程序30】
* m, [' `9 E* ?( B题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
. a) {3 r0 K# p: V! c. D1.程序分析:同29例5 e: T$ f; N- v3 N
2.程序源代码:+ ]6 @8 ]+ ^- K8 A; ?, ?! P
main( )' O3 Y. b# `* m1 z, r" a* _
{; d \8 N7 ]+ }8 D" h8 G J
long ge,shi,qian,wan,x;$ m; ~4 O( C4 O Q& t, F
scanf("%ld",&x);$ |" K5 _) T" |, P) c
wan=x/10000;1 q$ C& ?; x* `* s; Q
qian=x%10000/1000;
$ \$ `5 I* t( N8 |5 Jshi=x%100/10;
5 \+ t4 o4 m$ w" ^* K% q# Nge=x%10; n' `& P C* b2 n1 Y9 Y
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/# {5 m# |$ b1 D) g
printf("this number is a huiwen\n");
) ~1 Z5 ^ {# V! w4 |4 f( Gelse* G( l4 v" w' H, Z% A& x$ P! R
printf("this number is not a huiwen\n");, u" g7 B; A2 h% V" ]* c' M; Z
} 【程序31】
% L( R1 g9 |$ E" b题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
" M0 F+ O$ w; U7 l. E" w2 J; ?% U) R 判断第二个字母。
! o2 `; e' u% b% c. N1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
" h9 V8 }# `) ] I2.程序源代码:/ _7 u8 U: T @3 z. ^# a3 l
#include $ k; O1 q2 u2 q
void main()
\4 p* w7 j" L2 e) v{* G8 P! x3 s* ?( @1 R& |9 K
char letter;
+ e/ `; v# s. `% X+ r5 D/ Tprintf("please input the first letter of someday\n");
+ r. n( s/ ^7 ]3 R h3 `while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/
/ a* \) j0 D; M6 |- B{ switch (letter): W% Z$ B4 e* p7 X4 p
{case 'S':printf("please input second letter\n");
0 Q o2 }" p% ?$ w# I/ w if((letter=getch())=='a')$ b) S. L! H3 I! e! J. w
printf("saturday\n");; ]7 y# J8 {6 u" G: P2 L0 p Z' R
else if ((letter=getch())=='u')
5 X5 q: ?, w4 t2 z' K printf("sunday\n");
, I! \9 f8 |7 N I else printf("data error\n");
# H! N. ^6 p* A. W" _( D break;4 M+ ?( J) G6 I% P! A
case 'F':printf("friday\n");break;
$ C0 ? M- T K% a+ s- L5 Lcase 'M':printf("monday\n");break;" y. \* Q" l f( |* @
case 'T':printf("please input second letter\n");- H8 q4 T7 s* K( W+ @
if((letter=getch())=='u')
5 L) w* z3 G; }: B printf("tuesday\n");
2 i) Z5 w: K p7 p0 d$ r# m else if ((letter=getch())=='h')
% `! O' F. n4 D X8 J& P: U9 D printf("thursday\n");
; n# u6 v9 @7 Q6 f* n' {! x" V* J8 b else printf("data error\n");
: ^ f$ f1 K" y! `+ b) ` u break;: o* j6 l; C2 _
case 'W':printf("wednesday\n");break;
+ d5 p1 r3 Q7 _4 |+ _# g6 u8 }, r# ydefault: printf("data error\n");% s% y& _2 |: K% q7 Y. o3 S
}& X0 Z- B+ v& _5 h v5 e
}# c/ R) I# _6 I& `
}
]8 X, r$ ^& w& u$ }3 [( s==============================================================
. n, i x0 j# t& P2 C, Q2 d【程序32】( o: v( j) W M" C* l
题目:Press any key to change color, do you want to try it. Please hurry up!8 I. _% e0 o5 [3 ^* w
1.程序分析: ; V8 i' }) ]0 ]4 N
2.程序源代码:
% m2 s% n2 S0 k#include
! F) u, B/ G0 S' k' dvoid main(void)
1 r3 Q/ ^/ P6 b) u{
* d/ I/ O/ O: l* M8 h2 uint color;! s" V7 h" s* t# ]' B; \1 S
for (color = 0; color < 8; color++)6 b- x; U+ M4 W ]" r
{ . m* t, X0 t8 I2 {/ N/ F
textbackground(color);/*设置文本的背景颜色*/
$ R+ q6 c* q: i3 e, T0 J' C1 a cprintf("This is color %d\r\n", color);
; Y2 f! I, x3 a2 j0 Q. U5 Y cprintf("Press any key to continue\r\n");
& |; n% p* N: `3 l( W2 F$ A getch();/*输入字符看不见*/
$ B. l) o7 Z# f5 u3 T }) o1 B( b9 A+ E" ~4 \
}
2 _. ]6 t# ^0 C# f9 u+ Y& b& w==============================================================# {+ h" o) p/ i R3 d! U% O
【程序33】
2 N! V2 U6 P; s) K* p题目:学习gotoxy()与clrscr()函数 . M. e) ?; x: G3 G& ^
1.程序分析:% z! `# o* \* l0 u/ O L
2.程序源代码:% _8 ]! K1 H- ^& d4 s
#include T$ F n9 j2 a. R6 V: L& x7 ?
void main(void)8 B: ]* P4 b8 [
{
( @6 f7 d- ]1 A. j: W Nclrscr();/*清屏函数*/5 U8 f, X/ [" K/ O8 @8 E. S
textbackground(2);
5 E6 F! ^4 B! E! i, b% Ngotoxy(1, 5);/*定位函数*/
+ J$ F, u U. a6 T- O' a0 |cprintf("Output at row 5 column 1\n");
8 i$ I' c0 P3 q% L9 Vtextbackground(3);& |; E- q. y% c$ }( o
gotoxy(20, 10);
. Z2 K- P3 Q' ?# r' c5 \cprintf("Output at row 10 column 20\n");$ A; t$ N! w. z+ x
}: G5 ^) R( T1 q
==============================================================
" W% ^4 O a$ P/ F, u【程序34】
1 C% J9 K$ c4 v d7 \" T2 v0 s题目:练习函数调用
# K& O" k X1 U, C1. 程序分析:
) a/ @" Q$ F; m2.程序源代码:
% ?5 e6 [3 R9 k) Z9 ?/ u, z#include
4 ^: m/ J. m& f1 ?: d* Tvoid hello_world(void)
2 L3 [6 e J7 ^9 G{
0 ~+ `! c1 K7 @* gprintf("Hello, world!\n");5 a7 x7 J% D+ s% B% q- n
}
" j0 f* r1 A# y* x q) F i) ?1 }void three_hellos(void)
; l- o+ ]) o( x3 h{
}/ g$ Y/ Y" c) d- o5 [# Vint counter;
( d' a9 j: D% _% ]) u, @for (counter = 1; counter <= 3; counter++)" x8 ~3 {7 q0 ^* i% `$ s. g; c: N1 v
hello_world();/*调用此函数*/: f( [6 q* r$ i! n7 i" A
}
* `9 A1 i8 U9 Q9 _' O6 Wvoid main(void)
6 k+ I$ x; B2 F k& {" M{& i1 l, T' ~' e$ n2 p% r9 O
three_hellos();/*调用此函数*/4 y j6 ~+ M. E% R' K- e$ e
}7 W& K6 w9 r! Y" F# G1 w
==============================================================
% O' F. G6 f+ S【程序35】
; ~- x. D( M* _题目:文本颜色设置( x' W- Z( @& E# I1 ~2 h# |
1.程序分析:* j$ y5 Z; J1 y6 k% J2 }7 ]
2.程序源代码:
$ y" S: Z! q& x: b3 k#include 2 y0 R3 S: m; p4 U" x) \
void main(void)- E- t5 G3 u) i1 `+ j
{6 t ]. E: _3 L5 p+ x0 A, N
int color;
6 A9 L# O3 y7 ~) Afor (color = 1; color < 16; color++)) l$ e8 w9 H" {
{. A# E* w9 I/ e
textcolor(color);/*设置文本颜色*/
- l( }* V' E- I/ j: h cprintf("This is color %d\r\n", color);6 o2 K; H2 y* P& Q( L6 ]
}
7 d0 h0 P3 o% n6 {textcolor(128 + 15);7 y6 h7 N" W/ l1 V* Y9 I
cprintf("This is blinking\r\n");7 l& O0 W4 Q6 J. Q6 i* M
}
" z& m; v) [9 ]$ v. |8 W; a==============================================================9 \: H' Y( l' q& G1 e! {" h
【程序36】+ u+ _* u" |- o; v8 w/ Y% J# u5 y6 L
题目:求100之内的素数
" @5 X/ ?, b. t1.程序分析:8 Q; z4 P. B0 s m& f: H, C' \
2.程序源代码:
2 T5 z7 j5 s5 a; ]3 v5 y#include
8 ?& C7 y+ ^$ F' l, x$ i. D#include "math.h"' j% ?' j8 j& ^" H& U+ M) X
#define N 101; z- F" `( q# ]9 e
main()
7 V' S( }5 K9 U7 ? }+ Y{. }5 p7 ~3 E* e/ _
int i,j,line,a[N];; O; y. y1 o e/ m+ H3 O P
for(i=2;ifor(i=2;i for(j=i+1;j {
`& R o$ d. {( m* W if(a!=0&&a[j]!=0)! S7 n8 \: m4 n0 @4 e- L
if(a[j]%a==0)
0 z" {4 R4 m6 W7 } a[j]=0;}' ]% q1 U% X- |" p) m( i
printf("\n");3 d* r& Z; v! t5 E2 K/ Q2 Q N
for(i=2,line=0;i{* K4 }& C# {. h' ~* a0 m
if(a!=0)
6 ^' u. t( R- ?, p: K {printf("%5d",a);: D5 J# C) P5 z6 a9 Q
line++;}
* [7 W) }6 n2 E; s, Y9 j if(line==10)" n5 F% j T+ V5 g+ }
{printf("\n");
" y+ R0 F$ F8 M; S" ?& Jline=0;}# c3 A5 S+ ^* `) l- y( s. k
}
, r$ C: N+ Y2 l3 g8 _* k v/ Q}) A% m A; N3 |9 O6 G# D9 _
==============================================================
/ S" m6 d' P+ G8 ^【程序37】
* E0 j) d5 A* W5 O v题目:对10个数进行排序
& k' c- Y/ H- y1 x$ [$ u% u1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
; @: w/ J0 {5 p) ~7 ?* y 下次类推,即用第二个元素与后8个进行比较,并进行交换。 . ]) R! C3 H/ Q6 J1 D
2.程序源代码:
! m& U7 X6 E l) x: F* S3 x+ x6 n#define N 10
6 s1 E3 V2 ]& ?main()( m2 L2 B5 ^- ^
{int i,j,min,tem,a[N];
0 L0 h" S* ?( `8 b7 e _* t6 i/*input data*/
8 B4 p; P- n# E, {* hprintf("please input ten num:\n");
9 P, |' {: ?$ ]2 W9 ~- p( Ffor(i=0;i{
' { Y* H- M' Y% } Z2 Nprintf("a[%d]=",i);4 V8 d% w6 ~2 T$ E7 n
scanf("%d",&a);}
, h) w. C! a6 Y2 K! I& Vprintf("\n");
, s7 n7 u# r% h$ i: {2 Q8 Rfor(i=0;iprintf("%5d",a);
/ H# p6 i7 J' l+ r. b7 C0 B( Jprintf("\n");3 k! ?1 o" C0 q' C* S; W9 X+ l# B
/*sort ten num*/, z4 l% f5 m. L7 u
for(i=0;i{min=i;( G8 [+ i8 o! @* T4 J8 ]; N ?+ W
for(j=i+1;jif(a[min]>a[j]) min=j;
; [+ w# d$ J# _( o8 {tem=a;0 L8 B; }* A- H/ d7 ~, Y0 V
a=a[min];3 o7 R% @/ Y: g& G
a[min]=tem;( }% ?7 }8 M+ ^ R+ m6 T
}* M; |. ]+ U& z& @2 Q
/*output data*/; y# j; G; @" q6 J4 A% n
printf("After sorted \n");
: ]/ ]8 J/ q4 jfor(i=0;iprintf("%5d",a); E3 x, ]% J4 F2 p
}# Z! r& Z' d- [5 ~ \
==============================================================
7 u# b& G! v @* w" c7 N% C7 W 9 A; I, r, S$ w5 K
|