【程序27】 # S2 T, b+ o0 u5 P$ Z* p
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
! K/ ?4 K; m6 X# J& z. l# e1.程序分析:
6 C, O6 Q1 ]7 ?) S2.程序源代码:
Y/ a% N) x- e: O#include "stdio.h"1 W" A: V9 n3 @* H' O: ]( c: u+ q
main()& k: k9 D. a& p
{9 X1 D: l' p* S& S$ p7 K6 G- W3 Q
int i=5;! V9 Z$ C( ^, r' s
void palin(int n);
4 ~- q; U6 n9 _' ?9 gprintf("\40:");; T2 O5 k3 E0 D4 @' a1 k
palin(i);
' V2 {# _/ u/ Uprintf("\n");/ |6 ~0 H' G* C8 K. G9 s
}
7 \: b( W( v, g+ C/ Gvoid palin(n)
, B4 X6 l9 i! A' o/ x Kint n;, Q, U$ {% G. B* F
{
" Y9 R3 ?0 E b5 h# O. Vchar next;& o' o" C+ r/ ^" Y( X/ \
if(n<=1)
/ j% u v+ f4 C1 }# H; ` {
- |( m/ l z4 V7 n next=getchar();
0 Y- w4 B/ _, w+ Z. i printf("\n\0:");% ]/ d b+ g2 m4 b
putchar(next);! `* F5 p* e+ r3 U2 W
}
: f) ~# S0 J! @7 ]6 ]) R( X+ E$ Aelse/ ?+ h4 e7 t- O5 e5 t/ N: Y
{
% o0 g: U- p/ V+ ^ O. f next=getchar();
' M9 c4 x6 `; c; Z9 u4 d+ X8 ~3 c& U palin(n-1);
# |6 I5 d2 P' v5 \2 v2 y putchar(next);* d! P5 O! [$ B% C2 t" q
}
; {1 \' y0 y K4 ~1 W: @! m}
* t1 Z8 b7 w$ H) W M, i5 q! G============================================================== O( ~( R5 [& F4 v' e/ d( h9 V
【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要 ' p l0 G' v. h t! C* q/ x1 k
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
0 k6 N8 Z- m. w5 s- P 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
& [3 z1 S/ x( \6 X4 U 问第一个人,他说是10岁。请问第五个人多大?9 ?4 `# j; h$ {+ H1 M7 O
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
, {) [" f) A9 U. A7 y2 n8 ]8 J5 P) o 第四人的岁数,依次类推,推到第一人(10岁),再往回推。
5 J7 P5 c. E) Q3 A3 ?2.程序源代码:3 _ _3 a9 w: n6 V# n
age(n)4 r. q$ E0 Q" {, V, h- u
int n;
4 @4 z) G$ d+ J0 s& ~$ a+ B{9 }7 o x9 B% E, ~+ P, h& ]9 i4 W. W
int c;
2 \6 R. j# P5 B! K7 @if(n==1) c=10;* {9 v, }+ w7 a+ L3 g4 G: o
else c=age(n-1)+2;5 S, @7 w4 L/ `: i+ V
return(c);
: j- r) l& s! A}
" `$ v/ Q6 V+ }main()* v7 E% ~7 x3 p
{ printf("%d",age(5));
' C! q6 t4 T: {4 P}" B8 i- s4 q2 E1 O' t8 O/ e' b$ D
==============================================================1 w9 U; s* ~% _4 W
【程序29】
2 S) l: Y+ c- v+ p: v3 J* ?8 W! }) N题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- u& x4 }* b9 B. u0 M, ~: l1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
/ e- p/ b2 }7 ]) {2.程序源代码:
0 I7 }: }5 r( v4 Gmain( )
7 {. m9 x2 [; H" t: t" J5 O3 w{
8 o+ z9 O7 H! p$ N) K* G, D- Y& Z; jlong a,b,c,d,e,x;( l n4 O9 v4 k0 B3 g- s
scanf("%ld",&x);9 j2 P4 P0 B. z) u. \1 o* A, q3 m
a=x/10000;/*分解出万位*/
1 U9 I' G$ c W) Mb=x%10000/1000;/*分解出千位*/8 t7 c: _8 y6 k; }# b8 L3 u5 @
c=x%1000/100;/*分解出百位*/
/ p/ O6 `/ s5 k k% U" Td=x%100/10;/*分解出十位*/8 U* y' p2 ]: W$ @
e=x%10;/*分解出个位*/
$ ~& Q4 i, R5 E0 f. {/ g" _ Hif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
) i2 o5 _* w3 D7 j' \else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
' D7 D' r# B. x, p1 r8 \ else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
& W1 w9 A* p* p# A9 o3 L else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
. j9 Q8 E# V. l8 m! I0 X else if (e!=0) printf(" there are 1,%ld\n",e);$ z# D* F: x% q5 J$ ~* q/ b s: t: j
}
: x* ^5 e$ S9 ~! ?7 Y# j; _! ^==============================================================
: Q8 y- H1 |. Y$ n9 U% M3 \【程序30】 ( j1 o! b/ q7 }
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
) k* `! k- v+ }' {" ^7 S# O1.程序分析:同29例
; G. \' ]0 f- Z, b) Z2.程序源代码:
* G! ^3 _4 P8 t& ~ x" b' |main( )* ~. U: n& W7 s# y: v& S* W f
{
3 z9 m: ]1 s- G4 G2 \long ge,shi,qian,wan,x;* m- c$ v% {8 g! B
scanf("%ld",&x);9 ~* Z) x1 H v
wan=x/10000;1 _1 H+ d; v$ P: X
qian=x%10000/1000;
v8 @4 A1 Z' Z5 ^shi=x%100/10;
; Y6 M t+ P% }# |ge=x%10;& l* q2 p/ X. b6 S
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
2 q( V8 z6 s- X: {' a( c printf("this number is a huiwen\n");9 I9 |6 o5 S; S4 Y- _
else0 `/ Y& [' [8 l: N
printf("this number is not a huiwen\n");# `* M% t7 G2 v0 ]) n) w7 w
} 【程序31】5 L- C; d8 y9 Q
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续4 J P3 X6 U+ `3 ~7 v: A
判断第二个字母。
. |0 l% k9 D9 q' `1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。 U# @( X( I8 |
2.程序源代码:+ j% o6 W6 U( s, [4 C+ e+ f
#include
\0 t, y+ a0 G2 z$ o9 Lvoid main()# a6 g C8 l6 w# N0 F
{" [1 h$ F2 j$ l7 n8 |
char letter;& c! k. g1 p: s3 z) l9 ?
printf("please input the first letter of someday\n");
/ D$ ^1 O5 {6 d4 m7 [$ T& ]5 Cwhile ((letter=getch())!='Y')/*当所按字母为Y时才结束*/ `( o3 z% s8 n% A8 u
{ switch (letter)
3 g4 [ Q7 ]: t# M$ B0 ~4 Q{case 'S':printf("please input second letter\n");
8 n$ |# } K+ }- S _8 S" y if((letter=getch())=='a')* H; y2 I; _# c
printf("saturday\n");
2 _3 w ^% b- e0 K else if ((letter=getch())=='u')& b, I, D* \ N
printf("sunday\n");
; g2 ?5 F3 n; r- |1 w9 G else printf("data error\n");7 }3 W. e# Z7 V) p" n$ y# k
break;, [2 `9 r& o+ q
case 'F':printf("friday\n");break;! c& J0 [5 q2 ?/ t
case 'M':printf("monday\n");break;% g9 c2 W; M4 `" E% Q$ t
case 'T':printf("please input second letter\n");
7 i! _0 u/ i. Q if((letter=getch())=='u')
% S& [! {/ `1 c7 l9 o- B j printf("tuesday\n");
/ k1 c) k- Y/ q4 x5 w% H else if ((letter=getch())=='h')
6 x& Z) A) d4 _4 \ printf("thursday\n");) U' d* R" f) Q+ N
else printf("data error\n");
( z, h! ~6 ^! Q% X8 } break;4 v& k# c: F5 l" f' t; F- C
case 'W':printf("wednesday\n");break;
# l# O0 s) B. K4 G4 ^default: printf("data error\n");! ]( A5 G+ I/ C
}
: A+ s9 V( Z4 O, Q G5 h }
4 U& L* b9 `- ~0 Z% t$ Y}# E0 h4 j7 R% B- M, A
==============================================================2 ]0 }1 o; |$ x4 J( z
【程序32】: D9 a$ t( c6 l7 L0 J; b
题目:Press any key to change color, do you want to try it. Please hurry up!5 o4 }) n. B9 D
1.程序分析: 6 T- ~: k0 Z+ t* t
2.程序源代码:6 w6 J* U+ C; h9 o
#include ( w% y" ?% |% m2 c* h4 k" h! @
void main(void)
: R* ^* h$ [$ [- Z) x3 r% T{
* W# Q' @ m. R0 Xint color;
' S5 d+ |# X: P Q# lfor (color = 0; color < 8; color++)" f) j9 R: |3 b8 |2 A+ {$ |
{
! v* V6 S2 y& P9 \3 J textbackground(color);/*设置文本的背景颜色*/6 G4 Y* j U9 @2 l# V
cprintf("This is color %d\r\n", color);: r) M" ?2 H$ C& r# S
cprintf("Press any key to continue\r\n");
9 _$ v- q- [$ v7 ], m5 b" E, E: { getch();/*输入字符看不见*/
V9 j* b, Y/ w. \9 T; f Q }. k% \8 T8 b* x9 A
}% K7 M+ h6 z( }# w) b
==============================================================
# K. E2 \/ |8 k; l【程序33】! d7 N+ `9 n$ v
题目:学习gotoxy()与clrscr()函数
( M" `) m2 \" F. y4 ~1.程序分析:
. {! Q8 N4 h7 b% j2.程序源代码:
6 ~, w+ P: i. ^: I#include
/ K; y O7 U4 x) k9 qvoid main(void)
8 {$ w7 H- f/ R+ `/ E; L' C{
8 E$ X! y7 N: e G6 f! {clrscr();/*清屏函数*/
( j9 b4 S0 w: h% D- o0 ^textbackground(2);" [0 R5 V# B' ?
gotoxy(1, 5);/*定位函数*/; W: j6 L% E. f8 ~7 d- G
cprintf("Output at row 5 column 1\n");" O8 W4 I9 l4 s: S* l
textbackground(3);8 `6 z" P1 L3 \3 S; b
gotoxy(20, 10);5 Q# i' U0 n2 s0 ^% i# c$ k, v$ n( M
cprintf("Output at row 10 column 20\n");
9 |6 p/ @% k2 g3 u/ c1 S}
, e! l2 M" n1 Y5 d' _0 s==============================================================5 v: _3 U2 |9 z$ T- j+ Z
【程序34】
& u5 |: a$ {" K9 V: D题目:练习函数调用
( i1 Q3 d9 L% [+ O1. 程序分析:
0 P" z" y- `5 n& K( j, p. k2 o, Q2.程序源代码:) c- h* ?- T K( w. @, y
#include 9 [5 x# h9 T) z5 b; ^! C
void hello_world(void)
5 S* `* b! G9 B9 z5 q* u, i4 ]' _! d{
5 [5 N* u. H) rprintf("Hello, world!\n");& {! S0 h* G* g9 B7 i! Y
}- L5 |( C% P. j! B) G o
void three_hellos(void)
; b6 l! T" w+ O+ ?{! b; I6 O, J/ Q7 N- ?
int counter;% z. p p _& M8 V+ `
for (counter = 1; counter <= 3; counter++)( Z H$ C3 h* `" Y" R$ \
hello_world();/*调用此函数*/) F; M. W( D& c3 W' D4 ]' c7 k
}( `, m) t7 }5 m: D9 p1 U* d
void main(void)
5 K4 \. D: ]: u: q) q{
- r, G1 ?! V9 ]( m2 s" H+ \0 Pthree_hellos();/*调用此函数*/7 Y+ o9 f. _8 `1 \% ?
}' R8 s. @+ N4 H1 z
==============================================================
% |( o0 W; I! E【程序35】- _5 Q `" @ a* `( B- E0 y( i
题目:文本颜色设置4 P2 N# V& T5 U3 ?
1.程序分析:2 n' R2 {2 p G. v9 C8 [- R( c
2.程序源代码:
# m! c1 A' {+ W/ l, x6 i/ H4 s#include
; m' D5 E) S5 h4 f' Hvoid main(void)
/ N. }! H8 |8 Z& I% ~8 F6 j2 o{/ {5 c5 `! ?0 ~5 c
int color;
* P6 D d- j* O8 v W9 y# T! C3 qfor (color = 1; color < 16; color++)) E# W, H2 a7 U/ d
{
. ?' G' C3 ?4 f, ?% s0 B textcolor(color);/*设置文本颜色*/
[# }$ c. L; i) v cprintf("This is color %d\r\n", color);
P6 v7 |* Q- t* y+ i }7 l: C$ U/ T, o/ u( F/ l/ L
textcolor(128 + 15);9 B+ o9 h* J5 j) c; o& w) N2 U }: L
cprintf("This is blinking\r\n");* `& p* E) @% I* s
}
7 m b, [& i) y% x% P# l==============================================================
$ n8 o1 V9 x& d5 l, Z【程序36】
6 A% i x9 a& c题目:求100之内的素数 $ }% \! K; e! l) T
1.程序分析:
. @; }0 b1 n* i+ Z2.程序源代码:
, a4 F$ M* |' @7 t. V2 }+ `#include . J; ?2 V0 c N" K, W' X' O% |
#include "math.h"
7 |4 z) `* b3 L- f#define N 101! S# N8 _& _2 P7 S% F! ]
main()
2 ?' T3 c+ i+ c& |{
( V) ]0 m+ l4 k& G zint i,j,line,a[N];# l# I V6 O/ H$ V2 q; ~
for(i=2;ifor(i=2;i for(j=i+1;j {
2 m% S& |, c- |7 a/ R6 A1 [ if(a!=0&&a[j]!=0)" H8 h8 F- ^( {- \# x
if(a[j]%a==0)# P/ c% ?9 s0 m( y2 {' f! v
a[j]=0;}+ k2 R8 t) Y3 i
printf("\n");' E3 X+ @* S. ]- d0 K, W% |
for(i=2,line=0;i{+ ^4 G" A" |7 n" ^0 v) h
if(a!=0)& T8 l! \& D' U0 S
{printf("%5d",a);3 o" C" n' P3 t, o* Q
line++;}/ z! N$ z7 n6 S3 W! J( F+ |
if(line==10)
5 B" B! L% ?6 B3 w2 {0 ` {printf("\n");
- m1 i& F* P8 A% W2 Gline=0;}
" q8 k1 `1 Y/ u1 `3 |}$ s! G$ A# L6 V& b
}
, a8 G8 u0 w7 A8 Z' R# Q" Q. z==============================================================9 ^" }7 A6 n$ d& c7 y% q
【程序37】5 q' Q1 j( M" Y2 R3 x6 e
题目:对10个数进行排序
0 H5 o% K) W3 {$ l3 [ l, u1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,5 o4 b/ l4 s2 E+ N0 Q4 }5 y
下次类推,即用第二个元素与后8个进行比较,并进行交换。
, @8 Q1 d8 Q( v0 |8 V4 T0 N8 P2 Q) L8 R2.程序源代码:, ^( X1 U* N& ?1 C1 N1 B
#define N 10
# P6 _4 S- C9 F. X9 _main()* f: O6 o6 Y2 t" u
{int i,j,min,tem,a[N];
3 C% a, [4 N! ?# e c( x7 [, A Y5 |/*input data*/; r9 M% @; x; w; N2 |& i) K
printf("please input ten num:\n");
, C; I, @0 S0 {! ?5 pfor(i=0;i{
3 e2 L S* V6 b+ u6 {6 P2 Yprintf("a[%d]=",i);
# b3 P0 `( \6 m2 t, N) r# z0 \scanf("%d",&a);}
! p. X8 b9 Y2 j0 o- H% V2 dprintf("\n");# K4 b1 C: ]7 N0 ~- g
for(i=0;iprintf("%5d",a);" j' S8 Y. E6 ^3 o& W% E0 g% h8 r; k$ c
printf("\n");! b5 B" v) w, d. \7 \7 a
/*sort ten num*/
6 ^7 m/ X3 |1 f5 Nfor(i=0;i{min=i;
: n! d3 F# _. n" Rfor(j=i+1;jif(a[min]>a[j]) min=j;
% I. d+ p2 B- E* W- S/ K9 Dtem=a;7 x# a- c" u g+ m9 n5 `3 e; m; ~4 q
a=a[min];# B5 g( }6 J, x# f9 T! d
a[min]=tem;
: |) |# t/ T3 W3 E7 U}
: g- o3 X& l) Z- N/*output data*/ J# C( s2 Y* U% R4 e- b. h' ~
printf("After sorted \n");
7 @& A: b) c9 Yfor(i=0;iprintf("%5d",a);
0 U) F& T7 ^: U) N}, B+ f- C' `" H) X: C
==============================================================
6 n5 p; X; ]$ q5 x5 ^ 9 h5 i- S6 c. h8 u! C
|