【程序27】 ! E( f, B8 m7 k' x
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
8 C5 J6 T! I/ K1.程序分析:
5 j7 S# I4 {, R3 Y$ E2.程序源代码:5 `, p- p R4 \4 U* T% K' A( e" a
#include "stdio.h"
# d3 w3 f6 }# n4 t& T$ |) imain()
, O4 ?. E( @" W1 ?" v/ Z{. ~; b e4 T- G: y! s
int i=5; s9 `' D9 N! `( v9 J1 t% w3 y
void palin(int n);% C; B# ?! H( q
printf("\40:");3 k/ h, F0 ?" F& h
palin(i);
) W& A4 T3 C$ w9 r& i! Rprintf("\n");
! ]! F* P Q1 v" H% s8 J}
' o5 x" j+ X" {- f& L% y5 z* B! Ovoid palin(n)
& C1 [1 w8 W5 X6 Z4 Gint n;. b5 H* P# H5 ]) R4 @
{* R" u. ^. `5 ^- ?' y
char next;! v" [1 z" y. A7 x, C9 Y5 q7 ^
if(n<=1)
( g6 B* `* l9 e- g- L: I# }3 M3 e7 H0 k' M {
7 c! E3 o; b# G' G next=getchar();
8 q. ~( Z3 k2 B1 B5 |& D- y printf("\n\0:");
9 V- @# r q. }( f% i. D putchar(next);
/ k: D! |& P) C/ X% T$ l) P }
1 `* [, b: N! `3 @else# r9 q) ~% T; G- S6 n8 b6 X- z- a
{5 |# S: Q8 X3 V N" O+ v( `. |! E, q
next=getchar(); i5 B6 M, @0 B C! N
palin(n-1);
5 h' |1 q% i. ] ^: f. Y putchar(next);( s3 W3 y; @' W
}- {: C! q+ ~ l9 @7 A
}/ }/ q8 d% S& f3 X* A" T
==============================================================6 ^' Z3 l8 R- ]) w1 F& H
【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要
, X1 ~" W" p: j题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第+ J7 [( e. M- W& e; I
3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 + N/ X6 c7 j1 q
问第一个人,他说是10岁。请问第五个人多大?
; q0 g# }5 g j' E0 A& M1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
; \: U& j' I7 x 第四人的岁数,依次类推,推到第一人(10岁),再往回推。1 X8 f' l; e( z0 b
2.程序源代码:5 W: A( r7 s8 i. O: V8 Q' B7 e
age(n)
, `- p0 P1 X. P X/ aint n;
/ _5 {% t" ^; I$ \{
5 J+ N2 }3 ]# m5 h1 C: cint c;" E; [( P% f; C" D& K* K' s5 Z
if(n==1) c=10;
4 A4 n6 t2 M4 j1 w) M- n8 U' X8 i0 Uelse c=age(n-1)+2;4 U8 u8 V7 R4 R! @: E' [" ]) ~
return(c);
' ^8 O' w! y; `6 L}
0 s2 N* R* c5 o7 mmain()6 _3 y& p+ s, ?' R
{ printf("%d",age(5));9 Z+ w- e+ n2 G s& Z
}
! p; {5 |7 L) {- D! O8 f==============================================================
) g, }* _- C& ?8 h& b' [8 x! M2 P【程序29】
$ I& ?5 r: ?% y1 Z6 d/ o题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。! M1 a8 E, B! \
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) ; }6 b* [& p( }- P: O' i' B# }
2.程序源代码:
f# [8 j2 S5 d8 lmain( )
' R" o6 J/ P r( }( `1 C{
" g T0 Y T8 m. L- v0 g% o% jlong a,b,c,d,e,x;. K/ a1 v6 F; e+ y& I
scanf("%ld",&x);: X2 W4 V) w: N
a=x/10000;/*分解出万位*/
& [( g3 W( m; y; eb=x%10000/1000;/*分解出千位*/) p4 S+ }" x. d2 p% R, G& V
c=x%1000/100;/*分解出百位*/+ X/ _# R2 g$ y4 k5 n
d=x%100/10;/*分解出十位*/
# }1 j3 b) w0 Le=x%10;/*分解出个位*/- m' @& l+ Z$ ?7 w/ H. e
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);9 v7 ^3 E( m% o3 l
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);) ~7 h/ _) ]4 B' [# T: w
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);- L6 Z2 [/ I# m. p
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);# E, S" r! H% I. p# r
else if (e!=0) printf(" there are 1,%ld\n",e);
2 l3 j4 S; a7 ]2 d" u8 Y}
3 \: c C( S; b. c6 O1 j! O==============================================================3 M' e7 V. r' c
【程序30】
- U" H# D. l& d6 W8 q/ K% Z. w题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
# [/ P6 s* g# N: H! e8 Q3 w1.程序分析:同29例
1 K& B. g7 X, v8 Z! R2.程序源代码:4 K7 y) n; x* x; O
main( )2 M# \4 E: q5 l: E8 I7 F/ a4 Q
{, z W) H1 R7 w( F3 W
long ge,shi,qian,wan,x;+ R e& b- R8 G/ g6 m% X
scanf("%ld",&x);
- f, h- i; h. v( R* J" }wan=x/10000;; `2 E7 u; J' \# G- X/ x
qian=x%10000/1000;
/ ?9 F1 O3 `0 |' o& ~shi=x%100/10;
4 Q1 w; Y- f8 z$ @: D, J0 ~7 Oge=x%10;: A' H4 ]- P* Z
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
6 x# d; T6 o% v( g+ k) _ printf("this number is a huiwen\n");
$ H6 d) L6 f- D8 y' Q( F6 Felse
; N' ?7 V7 }! y printf("this number is not a huiwen\n");
' k% K, e) i& v} 【程序31】" L& r s+ P6 O# Y0 E, ~3 D
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
. S7 t/ }9 b/ n) N4 v" r& l 判断第二个字母。- ?+ h5 U4 U" v9 ?
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。4 M" t: Y# P4 F* @1 r" r5 U% [' C
2.程序源代码: r1 g- l: C8 l+ o- v# r' U7 ?
#include 1 u- r) @8 l6 p4 P( b
void main(), ?9 t8 X1 }; }' P. Q& ~
{
! Z' r; S; c# ~+ O8 Lchar letter;
- B& u" X: B0 q z* F' xprintf("please input the first letter of someday\n");% s6 U/ E) m- @& u* }
while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/
4 X1 k! h3 A3 _" I3 r, I }, @{ switch (letter)
1 R0 |( S' j& ?1 U$ G{case 'S':printf("please input second letter\n");$ d4 w( M; R) I* z2 e6 T0 n+ i' Q' A
if((letter=getch())=='a')
0 X& ]3 g3 A8 B8 L" e3 \+ e/ A printf("saturday\n");
7 k- F; v7 Z4 E% i. Y else if ((letter=getch())=='u')
4 R" K/ a! ]& Q4 F- f6 X. W printf("sunday\n");' T# v7 I5 h) }" |0 A5 p1 p& A
else printf("data error\n");
! S f6 u7 m: D break;
& J3 f) t7 E+ ecase 'F':printf("friday\n");break;
2 C7 C0 ^5 y3 q2 H% bcase 'M':printf("monday\n");break;
- |- j- q4 k( J, Acase 'T':printf("please input second letter\n"); Q% d* q; O4 n0 ?8 ~( z I! G
if((letter=getch())=='u')
! g- X8 H6 J! b6 E2 a printf("tuesday\n");
$ _, X4 J) i r. \9 j, Q% @8 t else if ((letter=getch())=='h')
( @2 [( @$ n8 [ printf("thursday\n");. M4 E: y& W1 G8 @" p+ M
else printf("data error\n");4 L: F$ h( v0 E$ a! R- N9 _. y5 d- M( o
break;
& k0 R1 ?8 I7 m7 B; icase 'W':printf("wednesday\n");break;
. j1 V6 z& Q' B1 W4 A0 p' x2 Mdefault: printf("data error\n");
! y) G; ~; r4 a) T2 U }
" M8 e- ]& z; T3 E- S% ~$ `* a2 m }
/ k5 ?8 H i: j/ {}5 M, Z0 a7 g t1 X
==============================================================0 d# c: ]$ f5 R g4 P
【程序32】. {/ l1 ~! c6 { m4 X, U5 M1 O& M$ L
题目:Press any key to change color, do you want to try it. Please hurry up!* O* y- N& u, d% x
1.程序分析:
5 D1 B2 A6 k; z7 C( K6 L9 |2.程序源代码:
" M! H; w. X4 F* c/ m) M9 N6 h0 Q9 i1 E#include
' ?; E' R" S9 E( S8 \8 E: |/ bvoid main(void)
2 V+ ` I5 ~# H3 |6 h* C% K+ g{ P/ j# M! { L
int color;
* n/ M) s' Z, b* k8 Zfor (color = 0; color < 8; color++). c! C* y. U5 t+ H
{ 5 x& [% a" D5 G6 ] D
textbackground(color);/*设置文本的背景颜色*/
9 g) e/ t4 o! `* u/ q cprintf("This is color %d\r\n", color);; @7 G8 f7 y4 x5 C5 E2 D u
cprintf("Press any key to continue\r\n");9 G1 ]) z2 ?0 a: E0 W8 a/ d
getch();/*输入字符看不见*/5 O, r; P, Y( |6 t# Z( d7 @ w# s/ z
}/ l* v7 J7 p- _: U7 A; o% H) P
}
: n( r0 I& T8 D, w; |==============================================================
/ R: e6 R9 S: I& @1 J【程序33】
2 ~# y- B3 r* j) [# |' B题目:学习gotoxy()与clrscr()函数 ! F; @6 z/ d+ Y j
1.程序分析:
9 e; f& h2 h- k" Y2.程序源代码:
9 H0 A4 E! I" ^8 v8 G [# i#include $ C+ Z. X0 `8 \: b; H
void main(void)
4 U/ l! q0 J, _) X7 u4 \{
1 }$ c0 v* ]* a: \$ c/ aclrscr();/*清屏函数*/& N _1 s, p, i2 n/ J8 z) [" E
textbackground(2);
1 K1 P9 |% i) J2 P+ W! _- Lgotoxy(1, 5);/*定位函数*/
, I& P$ s$ P* [0 K U0 xcprintf("Output at row 5 column 1\n");, E+ v! t' s' N: |6 ^7 R2 g: S
textbackground(3);
+ ?$ c5 i8 m% Z: y% H7 Z5 Pgotoxy(20, 10);4 q5 S. t; o* K, D/ ~, u
cprintf("Output at row 10 column 20\n");
" f0 Z4 L$ T- U( l4 X! s8 \; k}
. ~3 d4 |1 W3 c$ w1 \4 D) j==============================================================
4 k1 {+ x( T2 l% r) k8 P【程序34】
I* F) ?9 X- ^7 A+ Z题目:练习函数调用* V1 n: n- y; Q
1. 程序分析: % Z' N/ _' J, d/ N3 A/ a
2.程序源代码:
8 G' F. x1 f* w8 L#include
" ?4 a/ o0 K+ N& z/ U3 u1 H6 Z! tvoid hello_world(void)
" Y7 I8 f( a5 n0 [& h8 F( W+ O3 C6 I{; C1 e2 w6 I, h5 B4 S
printf("Hello, world!\n");
3 }* ]- V0 q9 m3 V s}
5 W$ D, | o% kvoid three_hellos(void)
# T+ T- r& W( \' l: Z{/ A9 P: ^ J. _/ _ {4 \5 u- }
int counter;
1 Y( q8 w! E& Y6 n8 y/ F0 h* s5 m" H# sfor (counter = 1; counter <= 3; counter++)
' Q4 [% f8 V- ghello_world();/*调用此函数*/
* s9 \, l* ]5 V6 O}
/ w) \. A) ?- y% b2 Hvoid main(void)& r4 O# k3 W" [; _4 w0 |
{
2 U) Q s0 K, rthree_hellos();/*调用此函数*/+ K" g) f) `# \" ]
}* \2 o5 c9 n( U( |' B- y w, H
==============================================================
s; b1 m- ?& z, n) f. t# ^% g【程序35】
! F$ ?/ U+ u' Q- w; j题目:文本颜色设置
1 F% ^( @& b; K1 b- R- P1.程序分析:+ M2 b% e5 r+ P8 I' L1 x: y2 D5 ]
2.程序源代码:: ?! I4 R$ u$ Z Q- B! u
#include 1 F$ O) M* u' a- I) {- B
void main(void)
% u7 Z- ` n; T8 ~8 [, A! a; S4 A{0 p x& k3 C4 [. ]$ K y6 I) q
int color;- e% _5 p+ x5 D. S
for (color = 1; color < 16; color++)
4 Z2 R) w' y" b' s' K {: [6 C0 n8 H; l& T7 {6 f
textcolor(color);/*设置文本颜色*/
7 O5 {. \' \* T5 V' j- H cprintf("This is color %d\r\n", color);* o6 @) G: |4 Z4 a3 n* S
}
( \4 e; k; q1 K5 X/ qtextcolor(128 + 15);: i% h; u6 M& L7 ?( c& F& w& R
cprintf("This is blinking\r\n");
5 n: \5 }0 R2 T7 n8 Y, A}
1 B' V, H- H v7 t9 q" p==============================================================, _/ u) G$ x) F0 \
【程序36】
" K, x5 c7 b9 a* J8 S& J题目:求100之内的素数 ; m8 d( V; R ~7 D. u
1.程序分析:
# @! U. i# U& P$ `* i8 Q2.程序源代码:9 o/ c" y' E# S) B
#include
- Z+ A- g9 { T$ H#include "math.h"
6 c& S: B8 ^" W _#define N 101% i* f3 ^# x' J8 B2 J
main(); x5 [" {: V7 f7 _' [) q
{$ v4 `7 m8 T! m0 p/ o
int i,j,line,a[N];4 Y& o0 S ~5 @- b8 l
for(i=2;ifor(i=2;i for(j=i+1;j {
' e4 \; y6 J& k) q; D7 h: w if(a!=0&&a[j]!=0)
1 U/ Z7 B0 {: Q# u1 n6 } if(a[j]%a==0)8 i. m! i# C- ?3 j; v$ ~
a[j]=0;}
9 b3 G8 ?: c9 i7 sprintf("\n");
2 N9 |1 y( X7 @7 \; m! `for(i=2,line=0;i{
" A$ H8 o9 I* y+ e3 u if(a!=0)9 V" E4 M: L+ k
{printf("%5d",a);
8 [8 V8 c! e9 X line++;}3 V; Q( \& Y% H) ~+ w
if(line==10)6 e+ Q0 h1 i, d* N% v
{printf("\n");9 } K+ F4 ?" |/ a! B2 J5 R. D
line=0;}
5 |, X B6 y' A# c2 Q) q& Q}2 G' O. b; [3 S( R. M7 b- W
}
0 Y! h2 c: ^$ i: O2 M2 y+ h==============================================================; Q& R P; g3 H5 v" i. A
【程序37】
2 J" V2 {. f* l" L题目:对10个数进行排序4 E# b7 D4 N5 U. O7 ~
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
. Y9 Y( g; ~' d 下次类推,即用第二个元素与后8个进行比较,并进行交换。
- U" T: P) y) g8 w7 S6 u2.程序源代码:. T$ K' C4 v2 Y4 i
#define N 10
! Y4 X: J/ q& v1 ?1 ^+ N9 Kmain(); A/ N) U6 R, c ~$ C" G' m3 _* x
{int i,j,min,tem,a[N];6 r1 w+ b5 O0 a
/*input data*/
+ @# l* R, y( {8 u: Aprintf("please input ten num:\n");
; P0 l" k4 g6 ?- W* d- ?, nfor(i=0;i{
+ K" f. h/ F* V1 Zprintf("a[%d]=",i);
' G& U+ ]/ f# Q3 z1 l( ascanf("%d",&a);}: w1 C( y0 _4 b \/ q
printf("\n");
+ o. e! N% B# l% G3 U) }' zfor(i=0;iprintf("%5d",a);# M; Y$ G1 t3 H0 f3 q; c; X% N( E* Y
printf("\n"); I+ `9 ]/ b+ e0 q' h, v- _% _
/*sort ten num*/
) g/ e) b6 \* o5 B. V$ N* E" \for(i=0;i{min=i;
- _* Z. P) U6 a% Z% X, _, w- x; i- Afor(j=i+1;jif(a[min]>a[j]) min=j;
( Q' Z) D M7 N# B5 i% @tem=a;
# @' [. W- y" H3 p3 o7 @a=a[min];
2 [ o' u/ V! b8 u+ `a[min]=tem;
* _$ F1 A$ P; e N. w! y}0 O S4 F0 h: I1 [
/*output data*/* H5 A; F8 x" i+ E/ b! ^
printf("After sorted \n");1 l* ]; B0 S5 g) z( l
for(i=0;iprintf("%5d",a);
& U4 T+ T9 {' t}1 E4 [+ }2 ]2 V7 h( N9 _# V5 p6 i( w. `
==============================================================
( R4 h b) O: H0 S: I3 G3 _
# H2 b l, {) l! C3 m |