|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27 】
6 | R) D; [- w" c9 d# w题目:利用递归函数调用方式,将所输入的5 个字符,以相反顺序打印出来。, e: m! S H, b; q8 t
1. 程序分析:; ~5 b) k1 @5 f6 B) o8 K- i2 Y
2. 程序源代码:$ l+ W* U: ^ S1 D, o; Y/ i% R- D
#include "stdio.h"
) l0 w+ {& ^8 r% W+ rmain() 8 Q, {2 f5 [" i1 x( v1 B
{
" e7 O9 G5 k; d/ T! `2 H! m% hint i=5;
7 R1 h- Z1 v3 `4 H/ b% [void palin(int n); " C0 O/ s2 c# X5 S
printf("\40:");
9 I0 ?) o0 P, X2 apalin(i); 1 u1 m$ `2 u: ]1 E; S3 K' Z& l
printf("\n");
# m- t/ V+ L$ p" J" ]4 K} $ P3 |0 Q7 A9 ~, G& u
void palin(n) " Y5 X m: V. K/ l* u5 o0 W
int n;
; J- G0 N9 u9 v r{ 9 z8 ^" H! F( E. R }" N: X9 i
char next;
7 X- d! ?6 C/ G& o9 V( V- @if(n<=1) 6 U; [4 ]- g; @0 Y" n, [8 x
{
/ y* S; S U' y$ V, I1 \0 e% p next=getchar();
' T' O( M, y: V& @7 A printf("\n\0:");
% v& M6 |# }& w7 l, Z# L# n putchar(next);
2 f9 ^$ F* C% x# z% _ } 4 z& b" r; ?" e6 G$ h7 T/ c% W+ \
else ( J# M. P1 ?0 c, O0 T1 w* L
{ / V% ?7 @4 Y) P
next=getchar();
, b o* q* M2 s# n2 R9 K palin(n-1); + m2 ?% o8 C: J7 M4 ~+ O
putchar(next);
6 u/ X4 b8 o% ]. | }
. b* B9 W5 j* u' L}
8 L4 [: V* x8 `' n6 J/ c============================================================== 2 B" Q, i% k) ~6 k: a( S
【程序28 】信盈达 嵌入式企鹅号要妖气呜呜吧久零就要
% O0 u+ U/ M4 P7 a; x, k) j题目:有5 个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
( |6 x- Z$ G1 U7 \7 S* c 3 个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 * K% m3 F6 x8 d* M# k' r
问第一个人,他说是10 岁。请问第五个人多大?8 i, L8 r/ R7 R1 p7 y4 s( A. t7 k' z* y
1. 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道9 b3 g `4 z0 ?
第四人的岁数,依次类推,推到第一人(10 岁),再往回推。
" s( g6 H N* E$ _2. 程序源代码:# R/ U1 J3 C) C; O% S* g( j- n
age(n) . C/ P9 Q0 J1 k8 _
int n;
* u* x0 j6 I0 i+ m{ " [5 [' \9 C( b3 l4 p6 Y% ]( i2 {- u
int c; - K+ B7 _$ _8 D& p- |+ v
if(n==1) c=10;
9 ?6 m6 D9 s: j5 I# b. w- E$ N; Pelse c=age(n-1)+2; + {! a6 p5 z/ a" L
return(c);
+ W" h; @0 x9 d4 v, z& Q}
) q Q- X& ?6 Kmain()
) A$ e" Q" `( ^' |{ printf("%d",age(5));
# j, N$ g# _& _7 B* ]8 E} % S$ l; @4 y4 X' i5 Z5 _. v" N
============================================================== . Z+ I* B( t6 p* d/ V$ F3 s0 g
【程序29 】
6 D1 o( P ?$ |6 V( G0 V题目:给一个不多于5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
" w- v8 P( L% w3 ]. W7 b1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) , Y6 C6 L }/ p* e' b
2. 程序源代码:/ _5 b% A% s3 Z3 D
main( ) 7 X/ f1 L& ]) M' U0 q
{ $ l3 L0 x9 w9 e+ u! R
long a,b,c,d,e,x; : l% F2 X* {5 b9 j9 B' }
scanf("%ld",&x); , h3 ~7 s' H Y1 t/ V- R: E
a=x/10000;/* 分解出万位*/' Q4 ~. O5 X& S: ]$ E$ p
b=x%10000/1000;/* 分解出千位*/
7 A" \/ w$ t$ H0 C$ ^& K7 ^) Rc=x%1000/100;/* 分解出百位*/& \9 r0 f. V+ x9 @
d=x%100/10;/* 分解出十位*/
+ V, u4 H, d1 L2 j' O; k2 B9 Ye=x%10;/* 分解出个位*/
/ b+ K7 y6 {6 R; v+ r* t5 d7 U; aif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
. P" K/ y' P& Oelse if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); $ ~5 `& F0 |4 h2 y. R
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
4 u0 i8 a3 ^0 B3 _ else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
" G+ g$ u, k) P" r3 e R else if (e!=0) printf(" there are 1,%ld\n",e);
! D1 Y, z2 n3 N! N# g, g: X} 2 u# h0 @& p1 O4 r( |
==============================================================
: o0 r" f( ]' P% [- H* z【程序30 】 + h x: {; x- Y' _; W+ f
题目:一个5 位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
5 g) r# {3 N* E8 m4 j5 |1. 程序分析:同29例
* o# A1 V" y) P3 {1 Y: q3 _2. 程序源代码:
9 F$ i# N! F( t/ Fmain( ) 4 R/ L+ ~2 C* |# V; I
{ 3 U( I7 p0 j+ F; v0 e3 d; h& x
long ge,shi,qian,wan,x;
% k0 K1 H9 H. a& hscanf("%ld",&x);
9 Y1 m% e0 ^5 O9 j; Wwan=x/10000; 9 G: r- \* g+ \- p
qian=x%10000/1000;
' r8 a' H1 s, w7 Ashi=x%100/10;
2 u4 P# k) D8 I/ y1 G2 ^& k0 uge=x%10;
. C5 H& ^$ M# T& ?if (ge==wan&&shi==qian)/* 个位等于万位并且十位等于千位*/9 u! \/ ]+ ]8 o- X6 D6 V: s Z' h
printf("this number is a huiwen\n"); 8 l4 F7 n; L2 f; o0 n/ d8 S9 F) a
else
8 c m: _$ E' V printf("this number is not a huiwen\n"); 8 h! N' n& {& x) ^1 q& g
} 【程序31 】% B$ ^' t5 X! j0 z, @. q4 o" D: f* ?
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
D! U/ g/ `3 `' a2 U m" I7 o$ o 判断第二个字母。
3 y. U, g& s1 F- }6 t1. 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
3 U: y' {) X( k/ q+ |2. 程序源代码:' M: B$ t* b; P5 K: ?& {8 ^
#include ' J. b" ]$ o% V$ r# v
void main()
/ \8 K8 v% O0 ~% v/ Q/ K{
! ^& T; {- O$ b; ychar letter; # B* |# X4 W" I
printf("please input the first letter of someday\n");
; e7 |% g& u' A) A9 t: |while ((letter=getch())!='Y')/* 当所按字母为Y时才结束*/
8 C1 r/ n: U7 n5 A2 k/ ]* S4 |{ switch (letter) " x/ |7 j3 j: |; I) X2 }7 U* e8 c
{case 'S':printf("please input second letter\n");
$ P1 a8 i% V/ q if((letter=getch())=='a')
. T0 v# t- e* n% g printf("saturday\n"); 7 Y" |: s) ?; n
else if ((letter=getch())=='u')
/ w" Q* z6 r3 ]! Z4 J printf("sunday\n");
0 d' ~) q$ j6 g5 _- R else printf("data error\n"); 3 E7 F8 u, ?0 {) ], A/ `
break;
6 a" l+ Y8 p6 acase 'F':printf("friday\n");break; 6 U: e; s. h* p
case 'M':printf("monday\n");break; ; c/ s: V# h5 J( v. j# B, L' M
case 'T':printf("please input second letter\n");
* E# t# b4 C( ^6 X9 n, o3 Q8 [8 K if((letter=getch())=='u') 0 L& {% y8 I( i3 c9 |$ Z
printf("tu ESDay\n");
. {7 o7 H: s Q/ O& u else if ((letter=getch())=='h') $ @0 Y! R( F/ A1 q2 y# E8 K4 P
printf("thursday\n");
6 z7 K- ]7 b4 H+ Z else printf("data error\n");
; j4 u, F5 e) Q* Y break; % H' j. K2 @0 C6 x. [* l" X
case 'W':printf("wednesday\n");break; ( y j; a& @8 X/ e9 K& x
default: printf("data error\n"); / |# D% n3 E. Y4 n3 [$ o( H* K
} - Q0 a2 X6 V! w* O7 z. P
}
' ]% J7 @3 \# H} # Q9 j2 i* M" B( g+ Z. v
==============================================================
: P6 o( q9 [ Y& E【程序32 】
/ ?/ }) J9 \# K. S- z# J, x2 R题目:Press any key to change color, do you want to try it. Please hurry up!
1 z9 H: r" _- v$ ]1. 程序分析: 9 r# u. A* k6 e% Z7 E( A2 u
2. 程序源代码:' d2 ^1 b4 I9 I7 K e7 R
#include
) U# t9 O x' m0 _3 a9 \* Ivoid main(void)
: ^6 o. @# A% N3 ?$ c{
/ G6 T* G: Q4 m% j) Yint color; 7 v& y$ N0 E* N" H/ e2 s
for (color = 0; color < 8; color++)
# m8 b4 A. P5 n+ j! d$ ?4 ?% h: T { - B `% G3 ~! m9 E/ a
textbackground(color);/* 设置文本的背景颜色*/
5 K: S8 e* W- M$ b7 q. M: a cprintf("This is color %d\r\n", color); % Q$ @0 G$ I/ I7 x8 n7 H
cprintf("Press any key to continue\r\n"); ( Q% a5 r3 @9 [( d( d) u+ s7 y6 X* L
getch();/* 输入字符看不见*/& W% x$ Q; m3 _/ @' |- A7 t8 r: d/ ?
} " K O3 M! D+ z3 K
} + B& l& r8 c" c; H
==============================================================
) i( o. T4 ]& ^: M2 s【程序33 】
% r9 m5 j a# j8 K1 I题目:学习gotoxy() 与clrscr()函数 8 v8 d$ B& y N% h g1 g3 M0 N
1. 程序分析:( Q/ v; E s3 R/ H, F @3 {
2. 程序源代码:
% E1 c5 a0 T7 p% T. j o- r, U#include 7 v: x+ g, D; c% A9 S$ |
void main(void) + f& V6 {$ D7 B9 z# l; Y9 T
{ # ~5 v; w5 U9 O5 u t G
clrscr();/* 清屏函数*/& W9 W! {+ {0 N- Q; G% F6 X" b* _
textbackground(2); $ _( ]3 m4 `% I, j
gotoxy(1, 5);/* 定位函数*/
' ]" G; t3 u# e! zcprintf("Output at row 5 column 1\n");
9 E3 }/ `" p1 b1 ftextbackground(3);
0 Q" l" d( w. E. Bgotoxy(20, 10);
; q1 x# z! Z+ e+ lcprintf("Output at row 10 column 20\n"); ! w3 ?. X8 v! F8 [
} + ^! P! K% ]8 s; \7 X9 J$ }
============================================================== , ]! c! ~$ y; r* a& ^. @
【程序34 】: t& ?% V7 u8 b& z8 Y1 G7 {
题目:练习函数调用
3 t3 Z$ a2 L4 R5 f1 M. J$ L7 K6 [1. 程序分析: ; G' M- G* t, ^9 o6 i: i' O7 ]
2. 程序源代码:
3 N3 D8 P, r# z ^2 \#include
3 T6 x: L7 j5 K' M6 Fvoid hello_world(void) 1 v5 c: m- K2 [0 q+ Y+ n. f
{ * v% E' k' d5 O5 n9 D7 w
printf("Hello, world!\n");
& U& t( |* _: L$ @7 Z1 A+ p& |}
: l6 t0 O) K4 g$ vvoid three_hellos(void)
1 s7 n2 c% H: m% u5 L6 ~% s% J" Z{ 2 |, |/ x6 T6 m: M ]
int counter; 5 X( [, z6 W: M7 a
for (counter = 1; counter <= 3; counter++) * E7 L( t. @+ y
hello_world();/* 调用此函数*/8 K; ~6 M& r& ]% m7 n0 u) m
} 9 G( H$ `: ^0 ^; _0 L6 Q
void main(void) $ Q n6 v* j+ e( w4 C! Y9 G
{
1 Z- |& X" e d! nthree_hellos();/* 调用此函数*/. q: p' F1 E' \. ~4 g! I* c# g W1 `) h
}
; d" Q7 O4 E1 Y$ S4 \% \==============================================================
* y$ A9 |4 M& p; }+ y; ~【程序35 】
! r/ ?! D8 [ G( n2 @题目:文本颜色设置$ Q: T2 M( h0 B" z' {8 g, X
1. 程序分析:. F" p+ W' k" d& j0 r1 B$ i: A
2. 程序源代码:1 a; r7 a6 S6 ?0 l
#include
0 X4 K; [& P# K# V' }. J( J+ }void main(void)
4 {$ e+ i, T& |& t% k{ 1 e- b* m* u& ?9 ~
int color;
# \8 r1 {0 O, h; B! P. S! Ffor (color = 1; color < 16; color++)
2 t, {, v+ P( I/ Y3 R; Z% f5 j# d1 V {
. z }& Y8 n# N5 t; X' Q' D textcolor(color);/* 设置文本颜色*/0 V$ o( B0 i F: ^0 b2 A4 Y
cprintf("This is color %d\r\n", color);
+ @0 @" F6 t; ]7 b }
6 L5 P2 _$ y$ Q6 U" u" wtextcolor(128 + 15);
# \2 g' t7 h2 ~% b- Ecprintf("This is blinking\r\n"); - N) g% f% a- `5 u( j
}
. m: k, j$ m2 O% L1 ?& G============================================================== 7 M( Y4 h# j3 ]6 z y9 c3 \
【程序36 】0 \; ^) N5 `6 I4 f9 ~
题目:求100 之内的素数
5 D6 x7 s4 b; ^5 Q* @1. 程序分析:# C6 b- J+ `" M$ P/ G
2. 程序源代码:+ q* o: o3 d# x5 Y& ]# x; |" U
#include / X8 x- y3 ^' M$ A! b
#include "math.h"
- s7 S5 J" c% w' k% t9 ?#define N 101
7 j! o$ W7 U6 d* _. S# Xmain()
+ C, C; X1 B$ W# R4 v/ D{ ; }; C! a5 \9 f* v
int i,j,line,a[N];
) l, z" l2 w$ Z% g. Pfor(i=2;ifor(i=2;i for(j=i+1;j {
h7 I4 M1 n( _0 F if(a !=0&&a[j]!=0)
: R. C0 T3 ?2 S( s/ G% k6 g' b# v if(a[j]%a==0)
6 T9 o/ E1 b6 l" D a[j]=0;}
6 O: ?2 D% i2 Jprintf("\n");
& n- S) u h' xfor(i=2,line=0;i{
6 U. `3 O' l' }, M9 S, t- n if(a!=0)
6 v p) i9 U7 X) m5 y {printf("%5d",a);
: k; i+ n9 u' M/ h/ j m- a line++;}& d( k3 U# `2 K; k
if(line==10)1 ]: c# H4 {3 j
{printf("\n");' G& w: A4 C# L/ t* h+ B
line=0;}
8 }( q# M( r6 s) n+ E}
8 w; T: O* B0 [}- F3 |, F' o- v
==============================================================
7 Y1 E" o, A; X9 M4 W+ }2 x【程序37】
" s6 g1 ?8 F* w+ _题目:对10个数进行排序
! `0 k% u" N( G. J/ e1 e1 P1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
`/ K9 d( u& j/ U3 q 下次类推,即用第二个元素与后8个进行比较,并进行交换。
7 r; W) X& E7 l5 m( p2.程序源代码:7 H9 ?& C/ f9 |+ H, W6 ]2 h
#define N 10
: P! x9 Q) P! r1 Ymain()# H. D% v9 @" R0 Y- f9 S$ J) C
{int i,j,min,tem,a[N];" ]7 T: G1 v% c6 W
/*input data*/' p* ~3 S) V: @
printf("please input ten num:\n"); c; x' f+ A' ~0 e
for(i=0;i{
5 {. s" x* |( P8 M, l9 C, ^! r3 @printf("a[%d]=",i);0 i- p& A" [# C6 D3 w) g
scanf("%d",&a);}& V+ u& j [9 u0 J
printf("\n");
6 o( B# e' y, N5 d8 \1 Jfor(i=0;iprintf("%5d",a);. O! z& U7 ]# t0 d) Q
printf("\n");
5 \# ? v( f& a4 _9 A# b3 n/*sort ten num*/
, k0 E! D- u% Q! U4 g( Xfor(i=0;i{min=i;
5 i) Y/ `; q9 d" nfor(j=i+1;jif(a[min]>a[j]) min=j;- V, {& e& b5 G' B5 X. T8 C( c; L
tem=a;1 U3 K4 w, _% i: `2 ^( X$ s5 `' f
a=a[min];
% H" w4 ~2 b; r: Ba[min]=tem;
% W# ], }2 w' f+ G; ]) A5 J}. Z0 e f! c# v( P7 K
/*output data*/
" B6 {" w3 I$ l @7 G6 D3 I+ \9 f. Sprintf("After sorted \n");
1 h5 \# ^, I5 z( O4 Ifor(i=0;iprintf("%5d",a);
7 ?0 ^% a9 |. d+ k}
2 F6 H( [9 k- S==============================================================
" h- ^6 [9 }6 [, s
$ H! {2 Y! r0 Y1 x! Q0 @ |
|