EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27】
( ^5 B- v: i9 H, |( I$ q$ n题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
- n) Z7 Z6 H5 m2 D% V- [; ^% G, |$ R# V P1.程序分析:
, I3 k' G. } J) b! u+ g8 Z1 f2.程序源代码:
" }6 [) ]& X. n1 h; m: X- ^#include "stdio.h"/ L* ?+ Z1 f" i& n3 e; ~
main()
# A: p5 A5 w/ M n4 T7 P4 h* s{
! E5 _* |& ^% c6 ~int i=5;
- Z% C0 |+ J- ^void palin(int n);, y2 m/ c( u% j2 C
printf("\40:");
* b0 V7 q' T* p9 [6 j" D: E4 r: S1 h% upalin(i);* Q. v" Y4 v6 j! T" c" B
printf("\n");
& }2 `' c9 h$ @4 G}
$ P) f* G$ I/ Y& F: [void palin(n), ^" z& R) _; Y* k) `7 ?5 y) V, ^1 M
int n;
1 v* I c5 ~3 K9 t# m) C{ @# T2 b' W% r6 _0 U
char next;
3 ~& i2 a+ B7 Gif(n<=1)! ~; v" k, s4 b( ]: u# D/ T
{
2 r2 e" e% ]3 ` k next=getchar();
9 X2 p+ C$ N9 |, q$ i printf("\n\0:");; L0 o) j# o( N9 m' _% c ^" j) p# l5 d7 K c
putchar(next);$ f$ t: z& P, L* U
}: d4 A% L* e" |( ]4 z1 C) _
else6 N4 j8 f% q2 \- O2 n
{% F5 a/ A1 n+ f, R
next=getchar();, d2 h+ V. k: p
palin(n-1);
! T: m2 |! J) f0 v/ t1 w9 P putchar(next);& q% ^/ J2 `* |9 J- P( Q
}
5 S" k1 G3 ^) m$ s}
5 a- K5 j' T. M( e4 M==============================================================
* Y3 O) `3 l# E4 H/ O【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要
; t5 r1 G, l I题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
2 e) O! [0 w9 ]4 E2 j. m 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
- M. q5 K7 u; Q# g 问第一个人,他说是10岁。请问第五个人多大?. M' o. U) l& _+ Z; l0 y# y3 B
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
5 G( q4 B" V: v) w8 Q4 G. d9 G 第四人的岁数,依次类推,推到第一人(10岁),再往回推。* b" @- _ f; q; W
2.程序源代码:
8 A: i0 k) K' x" Uage(n)5 ^ O0 A5 O) A* H K5 N# Y
int n;6 n$ r/ M" _" N8 T- F
{6 L8 C M: T. O- O7 F* _. P0 ^( q
int c;9 k6 T2 f7 y( Z- `
if(n==1) c=10;
3 `% U- P6 b9 ielse c=age(n-1)+2;. j' [- T, r+ ]( _' B8 M
return(c);7 I6 j6 f9 O6 ?' L! J! C' B& B
}* ?: \+ u! n* t. Z8 }5 v6 j1 \0 ^
main()2 n4 o! e# Q: ]4 z) c4 ^0 m
{ printf("%d",age(5));' e$ b' L8 E; y+ R2 b) d9 Y! x7 W
}
! B& `5 c, A6 o, }$ z$ a; I==============================================================/ o% v4 {8 z7 R( p
【程序29】 3 a9 {" A8 Y8 d; m; k
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
. O( a: ?( {: b/ Q1 z1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) ) E! ?9 n8 K- t
2.程序源代码:
9 G5 ]% V& l% U) n' q" cmain( )5 s2 h; A# C3 m; t8 c7 K% e; k8 Z6 G
{, U1 i* [0 H3 Z1 ], x |5 z
long a,b,c,d,e,x;/ j& Q. j! E' D; ^! @$ u
scanf("%ld",&x);, v$ |/ u/ N* y e7 x$ e7 Y
a=x/10000;/*分解出万位*/! ^0 K, g4 p/ l1 @" b5 U0 V
b=x%10000/1000;/*分解出千位*/
3 a& V! b) n0 ]8 W) b Nc=x%1000/100;/*分解出百位*/- w. S1 h: i7 U5 T2 J7 N
d=x%100/10;/*分解出十位*/3 T3 M0 ~ y- l) n6 T0 G% q8 B3 v: b
e=x%10;/*分解出个位*/
3 i/ P b# u) ]/ A% m6 T% \. L' m% Kif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);5 G2 N! v+ C( a
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
# N/ J/ c0 \" @9 } else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);" c% I) x9 [5 z. y; l" n6 _: `
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
}9 p- u0 M/ B5 Y0 Y I2 L! f else if (e!=0) printf(" there are 1,%ld\n",e);
3 _0 p4 x0 W& u# H) M& z# e}7 y0 x ]# K- A( P6 t1 I
==============================================================
+ L# l/ M' U8 \0 U, s1 _【程序30】
% K, |: y1 v6 B. T |题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
+ T( [% D# ?& R8 {% j* {1.程序分析:同29例1 T \- Z6 \ n* K% e
2.程序源代码:
$ o# e1 ^# K; bmain( )5 Q; ^; u) ]& j$ N
{
4 W! ~- n. V0 Z( y& y- Y. N: \long ge,shi,qian,wan,x;! o/ w4 o: M# |. y7 ~, g3 i. F5 T1 l# \
scanf("%ld",&x);6 n) }) }1 i& d, x# A+ r' A% t$ Y
wan=x/10000;
0 R% c/ Z6 g5 P+ Xqian=x%10000/1000;- a( k u7 V* m4 }
shi=x%100/10;- T. {% Y. s/ z. s5 O$ V; L
ge=x%10;3 `5 u( B# T! H! u
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/: ~+ j) _; l, a2 h
printf("this number is a huiwen\n");0 N# u& J* ]- ^/ T! B. x
else% O* f* C3 f* H" j( l
printf("this number is not a huiwen\n");) r8 B6 U% B4 g/ q& h: _; T
} 【程序31】
0 K4 P& b& m5 \& m- y( e) `, [题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
; b1 c# v8 x; s3 j8 m! P 判断第二个字母。) c* J$ r J3 [" n; K6 ^; c
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
4 h9 X2 f' S& i$ z' F5 y. c, S+ y2.程序源代码:; _. L& P8 ^' a0 P1 d
#include
$ D3 ~8 e3 p A( B Q2 uvoid main()
( v7 i) n. C; H2 E7 T6 N. u, m8 Q6 p{' L9 _& S0 }- h8 B8 W* g
char letter;" G0 k' b& ~* U' M# K! B; c
printf("please input the first letter of someday\n");
5 `8 }( F8 ]1 C, a! ~7 [3 }5 |4 \while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/- T: h r3 J) K" q6 m
{ switch (letter)+ d, j9 B$ T/ ?& g) ~
{case 'S':printf("please input second letter\n");
) g, V6 L6 A% o/ V if((letter=getch())=='a')
6 Z$ f3 K3 b4 ~" j" ^0 f% O printf("saturday\n");
( x0 X/ ]6 [: G" d& o7 S else if ((letter=getch())=='u')' e# p+ t) ?; l/ o) p2 y# [! \+ n$ R
printf("sunday\n");4 s- d. |6 H1 y$ D! W7 \; B
else printf("data error\n");
. W5 A7 _; G, H8 n0 k! g+ ^ break;+ g& `% u5 T% f9 S. S6 d
case 'F':printf("friday\n");break;
1 e1 }) ` |3 |5 X5 i: Z. rcase 'M':printf("monday\n");break;/ h4 o$ i2 d4 B" ^
case 'T':printf("please input second letter\n");& ]+ B4 M+ ~$ H& Z
if((letter=getch())=='u')8 q, O% ]9 x8 R. d; j0 ^
printf("tuesday\n");
9 K, C& q, w9 B- [, ` else if ((letter=getch())=='h'); }1 W' f3 R, w) ^
printf("thursday\n");2 e1 {6 V0 e: }" g7 m! A
else printf("data error\n");
5 Q4 z2 ^* N& m1 S break;
. u9 X: k) A: @5 W) W! Lcase 'W':printf("wednesday\n");break;; G- Z7 A* `% d7 L. g
default: printf("data error\n");
! h4 G/ ?& j9 U3 V' m9 ?# R& [9 g }" r! a% u* g+ o: C
}6 ~3 J3 \9 B9 \0 m% d8 d% i2 y& W
}
4 u6 B" {: g; c7 V! V; e& o==============================================================
8 i; ^8 h" m0 o) b q3 r, \【程序32】$ Q" a: J3 r: _/ G5 }0 I" S: A6 `
题目:Press any key to change color, do you want to try it. Please hurry up!
$ F. O% }0 ?1 y& \! \8 e1.程序分析: ; A6 H# X8 f1 _ w
2.程序源代码:
1 ^& |' A7 e6 S" m#include
4 L& \ e b- ?, x8 W% h# u4 evoid main(void)) }0 c- n7 d0 H3 w- b, y
{
2 g9 w7 G6 t& kint color;
7 _6 i, S; Y% U2 U5 pfor (color = 0; color < 8; color++)
' ~2 H6 N4 U6 {" i- v. o { - T, b2 H2 s* m% l) r
textbackground(color);/*设置文本的背景颜色*/
" s W" |1 u) q1 Z cprintf("This is color %d\r\n", color);0 e$ a7 l0 o, k a, M
cprintf("Press any key to continue\r\n");
2 N7 Q9 j% K# }- p getch();/*输入字符看不见*/1 m' u% H3 W& Q: l, z8 J
}
# _; P) f( w) {, c: T: R* E}
' H+ D% W& l7 Y! e3 R9 D" o==============================================================' q3 R# E1 [- M9 A5 D7 s! M- o8 j
【程序33】9 I3 u/ W `; g8 n
题目:学习gotoxy()与clrscr()函数 % N/ c$ A& S* ]; t1 P+ v# o" P
1.程序分析:
& s4 d, ]+ z* @' V/ Z2.程序源代码:/ E, H0 H! L% O7 ~ ^
#include
7 @' | w1 e9 s v7 {void main(void)# @5 u- X8 `* V# v( _
{* L# E! g+ {1 _. ?: a3 E; Q% g
clrscr();/*清屏函数*/
8 O3 u7 S6 }( l& P* H' i) Ptextbackground(2);
! U% [2 o/ H! s: b* n+ Ogotoxy(1, 5);/*定位函数*/
% g4 n: j( Y" p/ |7 N$ pcprintf("Output at row 5 column 1\n");
2 g) Z- `) X2 M9 t0 W0 Rtextbackground(3);
( J* a7 ~9 y* t5 kgotoxy(20, 10);) Q- x: r1 u2 b) I6 \* d0 @' S
cprintf("Output at row 10 column 20\n");& ~5 c$ X3 ]5 e0 j4 {/ c
}0 L- h: h8 _& b. U& [9 u0 ?" B5 P/ \2 P
==============================================================+ \* W" D0 V$ S
【程序34】4 ^4 R5 L6 t% [) S. ?0 A& T# H
题目:练习函数调用
; m3 Y2 L5 `3 y: I* ^3 G1. 程序分析:
* I2 A3 G f7 I$ M2.程序源代码:* T) K& @ _' Z0 j# A7 r4 m% S
#include - p: f6 c& P0 @
void hello_world(void)4 M; d2 @9 a( X0 [4 T. X" G
{6 h n+ E) O: T& y& b$ O7 b
printf("Hello, world!\n");: o ^' u2 d) X" }. J5 Z; p
}
+ y; T* f2 k o' z9 fvoid three_hellos(void)
( q: g% H% p( n% d i6 z- e{, `% P+ P$ L: @7 r7 k
int counter;
1 ~- T: W: r- w/ G7 Ofor (counter = 1; counter <= 3; counter++)
# U2 i' D7 Q& [$ Nhello_world();/*调用此函数*/
$ h" T6 f' J/ v3 }1 U} L$ a6 T! t! `$ r1 f
void main(void)
. M2 ^+ P& M9 T* V7 U{8 w5 A. ^( a+ Z1 F; L; o) D+ l$ ]
three_hellos();/*调用此函数*/$ J, j, T) V; P6 ]- k- Z
}) o8 u$ b6 g- t" G( L
============================================================== B; Z3 ~+ {1 x2 l1 v4 s2 k
【程序35】
* q7 v. {" Y ]7 `" L% ~6 ^题目:文本颜色设置. D- Y0 w6 A& i, g i4 V0 V" J' \/ R: R
1.程序分析:1 A( Y0 }; x/ [) Z2 B
2.程序源代码:
$ ]7 I2 B0 [' D# t0 A6 H#include
$ ~! `: x9 b( k7 r/ Dvoid main(void)
- u) x6 Q: s% p K# f( d6 b/ V{
, f3 U' F9 H% @4 }( _int color;% [8 C! q1 B. M- n. ^* F4 b
for (color = 1; color < 16; color++)
3 W) f! L' {& V5 w9 z% @ {
3 f# T$ v3 ]9 i, }8 U) s) R: [ textcolor(color);/*设置文本颜色*/6 i: _: B Z, ^6 ~0 C+ L
cprintf("This is color %d\r\n", color);
% S. o! G5 W8 W5 s; E, f0 U }. W. T. C% w9 b/ z j/ W
textcolor(128 + 15);% g) t: z2 O* }0 P# y' _5 U5 `
cprintf("This is blinking\r\n");. L1 k, y/ L+ c9 Y% S
}, R$ X6 }3 M& ]7 W
==============================================================& k. i2 [2 E1 \. i! r7 X# p% j
【程序36】
C5 x. L. v3 i: Q# U$ [& @题目:求100之内的素数
, l+ B; T: A9 w1.程序分析:
4 R$ C& h4 L8 V) h! u2.程序源代码:
$ d' {. G8 v( I: U2 Z& t) X#include
: J0 y' s4 _* _: r#include "math.h"
$ z% b9 i5 i6 h7 y; f: w" @#define N 1016 n1 `# F/ v% S6 J1 a/ `; \8 p9 ^
main()
; g+ D- A2 y; s! g3 W% y* m{5 ~1 @$ c d( o
int i,j,line,a[N];8 u6 z9 l) D* _# A
for(i=2;ifor(i=2;i for(j=i+1;j {
* c! P2 y! G% W: ] if(a!=0&&a[j]!=0)
; C. H" l$ H! z' o* e if(a[j]%a==0)
o, Z3 ^! u: F8 _6 D a[j]=0;}
7 l; `* @+ ]3 bprintf("\n");
3 I' [+ Z& A O& c/ }% K; y8 mfor(i=2,line=0;i{
' ?. _8 W8 s! o, P2 ? if(a!=0)& P3 \$ e/ y! P* `8 O/ i
{printf("%5d",a);
+ D4 b7 K3 N3 T4 {6 _ line++;}
\: n* H0 \& M( ? if(line==10)' n; `, ~) R* \4 f0 O2 e
{printf("\n");" n7 y. v0 y* K
line=0;}6 y7 ] _: {. i
}- o1 _3 E% r B% n
}, }, s' w* Q- P# T* {; J( i
==============================================================
) l3 @/ j% l2 m9 _4 M【程序37】
" G4 H; a1 Z* F$ w6 U题目:对10个数进行排序
0 j7 c2 f/ N0 a/ x( K1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
* ~4 a% s- w* g! U: }5 } 下次类推,即用第二个元素与后8个进行比较,并进行交换。 9 z9 }1 n: b' j6 `. z* n( d- b
2.程序源代码:- m* g- W. [8 [( g5 M' Y8 } M, u. Y
#define N 10- E& D9 |5 h8 Z8 d
main()% f. U4 p* u3 j9 {; a2 q( Z, u. F5 E
{int i,j,min,tem,a[N];& F) y* p2 t% U; g3 F! q4 t
/*input data*/
3 _5 Y! i+ n" E! @* t+ Q& C4 tprintf("please input ten num:\n");" H. ^2 }3 j! u+ ]
for(i=0;i{
1 H) e$ J& k0 U$ |) Y) pprintf("a[%d]=",i);
) u, S0 |( e0 ], Yscanf("%d",&a);}" j6 F' X7 D( f+ M+ g
printf("\n");" q- r" N+ B" _0 e
for(i=0;iprintf("%5d",a);6 P( x+ }9 p# r) A# j @
printf("\n");- o( H6 |& @: E: O5 I9 W7 G
/*sort ten num*/% }0 m) e4 E$ K+ ~! y+ F
for(i=0;i{min=i;+ @+ z$ J; r" y! G2 P3 u% r( y9 y' b. G* ^
for(j=i+1;jif(a[min]>a[j]) min=j;- ^# F; M$ D. A. n \
tem=a;* G' E, s; _3 M# C% Y; i4 {! Q. `
a=a[min];1 @' M% \; o& I. U& ?7 [! D
a[min]=tem;4 F9 Y+ X& p- v$ k# O o
}
! _! _! H. c1 c/*output data*/9 x* A5 k- p3 n, h5 q
printf("After sorted \n");
/ @& ?0 k& s+ S4 |7 k( z: Pfor(i=0;iprintf("%5d",a);
! F' [$ D2 c3 V6 l9 b6 u}
' L* S' Y6 u) u) U+ B; l. l==============================================================
/ `. @ T' }) `8 e7 t7 _
9 Q% o! }+ S. i2 M2 }; N! A |