EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27】 ; V0 ~5 J y: Y3 F, a
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。: O% R& ]. V5 F8 s' H5 ~
1.程序分析:$ f: [9 E H2 S% n( y, z
2.程序源代码:
, y' g2 d4 Z/ e, |, E. R#include "stdio.h"
) _: r! Z+ s6 o. W! |main()" T2 I: O1 @( u: R6 X- t- b w
{
* p6 c s& x4 O& Kint i=5;
3 v( f& c% M4 c( lvoid palin(int n); j% K% D: r ^) W& R' Y- G9 t! D
printf("\40:");) h6 ~" e0 F' t
palin(i);$ [% @" `2 q9 V/ T. D
printf("\n");
' u. n1 q# O& `$ e2 r}
: c6 [$ }/ V" n" n, qvoid palin(n)
- C$ i7 o K2 x8 Vint n;6 q/ A K% y3 c# }" E
{
w7 |* ^' u+ d# B) U9 Z1 }' xchar next;$ X/ s+ t/ [& S4 x @! a5 ?; h) T* D
if(n<=1)
% a @9 a4 E+ O; @/ X" x {4 B# ]# L- K' W6 N4 T& n* e0 e
next=getchar();
/ j' d0 S0 M5 n printf("\n\0:");9 l- ` Y" O) r8 Z, l& N- ^" q
putchar(next);6 \. D, n4 T9 o! q- ~! N
}# j- k- V' m, G
else# _% P, u# z( r6 m) X. u7 Z
{
. S( g) h% M7 a+ m% q8 N1 N next=getchar();' S9 t1 e3 e" X# c5 Y
palin(n-1);5 y. y. c3 R$ l2 ~( @* t
putchar(next);
7 _- a3 H+ i& Z5 |, y }9 f* B, `- r; m, L/ G
}
) b+ j$ N3 V7 W o) r==============================================================- r% Y Y+ [5 ~' t7 K
【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要 4 A0 T0 k5 ?& U5 _0 O1 T
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
! \5 M0 w B _+ N# L# ] I 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
0 t5 w9 L% i4 i, U/ o 问第一个人,他说是10岁。请问第五个人多大?; T1 d8 y0 M- @. w
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
$ U2 i6 [2 X H; y 第四人的岁数,依次类推,推到第一人(10岁),再往回推。
1 F- b/ K0 X8 v) o* [2 H2.程序源代码:
* f( F5 W. q; o, Qage(n)& P. v! }$ F+ Y4 d
int n;% E) p% e1 e2 g
{
) O/ x/ Q; J2 [* O2 {) R+ h, |int c;
; P. ?6 m) j B% sif(n==1) c=10;# w- k1 }( d2 O. z w& s7 b( Q; S
else c=age(n-1)+2;) Y7 L/ B( B) d3 K ]' E1 r8 v2 J
return(c);
' C2 c0 q6 w+ D}+ Y/ W4 u0 i3 l* {6 s: W
main()$ o. b% t% q4 N$ f: {, N3 c
{ printf("%d",age(5));
. ]+ S- T- ` Z. V}
' Q0 S8 ^ }' @" \==============================================================
! Y# Z3 a) i4 }: W5 o3 ?! a6 ]【程序29】
+ `+ v* s* @3 X) E题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。3 F- K. ^* M3 i' g
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
0 {) s3 @3 ~+ ~& F; Y2.程序源代码:
4 n- C% N1 `" X7 j6 jmain( )
- j: P7 V" z, L3 e0 V& p: P# ~{; @7 n- g+ u5 v& m; n
long a,b,c,d,e,x;
" ]3 O: ?# x) {scanf("%ld",&x);
2 h9 e7 H( t1 [# C) M* k2 p Qa=x/10000;/*分解出万位*/
4 A, P0 l- W% K1 Z4 n7 ?b=x%10000/1000;/*分解出千位*/2 o& h1 I$ q# h$ Z4 b$ y, r; s
c=x%1000/100;/*分解出百位*/
, s6 w, S A. L' [' x9 B% v3 i& Wd=x%100/10;/*分解出十位*/
; ` P6 o h" g( H6 @e=x%10;/*分解出个位*/0 P3 i! e/ o# r s
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
% h1 _: Y. R& ]5 ]- z( L: Delse if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
9 y4 d5 x% `. z5 I, ^ else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);- A4 I7 f5 x9 s
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);1 h) Q% W( [6 g. I
else if (e!=0) printf(" there are 1,%ld\n",e);
2 a* V/ w3 v( O! Q8 E0 K0 S' F}- r) Y* S2 `$ X2 J) ]; A
==============================================================
+ h V7 I7 g. @; X【程序30】
+ q# F! W; d& s- h' W题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
$ d2 P! K. n3 ]. e; u8 J4 y0 L1.程序分析:同29例( c0 w# j. P5 U# b2 ~
2.程序源代码:
5 h% z( w; j; L8 c$ d7 l! p" `* ?main( )
* v1 x* t3 {/ E{
: Y8 U: a1 v# [5 klong ge,shi,qian,wan,x;8 F5 i$ {. s; A8 ?+ l
scanf("%ld",&x);
: m9 o4 V" \: x6 hwan=x/10000;+ n: {* d% C. B! |8 z
qian=x%10000/1000;
" q0 w; r& O- }3 Zshi=x%100/10;
' ]5 ~4 e# S7 ` z7 S7 {ge=x%10;" r; i; E( g J$ e: E
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ o2 b8 q4 Q- l9 x5 H
printf("this number is a huiwen\n");2 u* z, ~) `4 i" r9 r) L$ ^
else' x: i% g# g$ @; r- S
printf("this number is not a huiwen\n");
& V7 [& Y) c2 X; ~3 ~} 【程序31】
, G( M2 c, ?. u* f+ M: m. v题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续% d& N* [1 f* }* [# |( a) Z
判断第二个字母。
& e) R6 F% s& t1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。" l7 P7 E! N& O3 H/ k3 k4 D7 L! a# A
2.程序源代码:
5 t! d% _/ {) `) K3 o8 {; W#include 7 L* I6 R1 M2 z3 E# F6 a
void main()
2 q/ r" ^7 J9 v4 f7 f+ H{ U) m! j8 N7 C# y. Y
char letter;0 x- s9 r+ J# q
printf("please input the first letter of someday\n");; F; |' h' j* ~2 f
while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/8 _1 l% k& e; {* |
{ switch (letter)0 ^9 S) G( P. i" r3 s B
{case 'S':printf("please input second letter\n");- T7 J* A/ d3 I0 s7 c7 g
if((letter=getch())=='a')- F. o2 P8 B O' S
printf("saturday\n");# E" n# H$ }( _& R# D1 K" J
else if ((letter=getch())=='u')
3 m4 {) c! X' G: m printf("sunday\n");
; |; R) P9 f' L/ e7 S else printf("data error\n");
u2 A! U0 J' p. A" g2 w& j break;6 K5 o9 A- M. Y. J% r& n0 J
case 'F':printf("friday\n");break;
# V; Q0 n/ Y! l) Ucase 'M':printf("monday\n");break;
5 V4 g& E5 H& Ocase 'T':printf("please input second letter\n"); f5 {# V. W7 b- B( t% O
if((letter=getch())=='u')7 L& |" M1 u3 A0 T
printf("tuesday\n");0 Q, v( d( O0 p' X
else if ((letter=getch())=='h')
! S9 ^* J# g4 w5 G7 S1 i9 S printf("thursday\n");& k6 Y6 W& X. ~2 d6 N
else printf("data error\n");0 [$ q5 ], O3 |; Z' o! ]
break;2 B4 S# u& g' \7 Y
case 'W':printf("wednesday\n");break;1 u# g4 q. j! t) O% |
default: printf("data error\n");
5 h9 Y4 Y2 Z& I }/ Z0 G A3 X& L8 ~! }# |8 D
}
5 F7 i: k8 j- b; [/ b" G1 N- C {}7 C2 ~" e3 x+ m( h, I3 R# g
==============================================================. S- B% `8 N+ g5 g) B. h
【程序32】+ U; A9 D e5 p( [- k* K
题目:Press any key to change color, do you want to try it. Please hurry up!
' \9 d# b6 d0 A+ | d1.程序分析:
' V% Z8 u, E# g& X; O5 A% `2.程序源代码:$ s5 Z& i" ^4 o2 a3 }/ q4 ^
#include ) Y; U1 D( }; T2 P. W2 E" s
void main(void)
4 R1 N9 w8 T* i3 U. y, S' {{* O$ m9 A/ W. _
int color;
3 _: D' }9 ^9 \for (color = 0; color < 8; color++)" p6 U* u7 Z& X9 e6 k8 b
{ 5 q+ e$ [1 T6 \" T1 q$ p! M( Y
textbackground(color);/*设置文本的背景颜色*/
/ z0 a3 j7 u" F9 J! p cprintf("This is color %d\r\n", color);/ w# \5 I% X. v3 {/ V+ }
cprintf("Press any key to continue\r\n");
6 z; U# K M, n: i# ^ getch();/*输入字符看不见*/ [# L7 m! m j3 U
}- _ Q5 f2 }7 S
}" G& v2 d; e( p
==============================================================; ?# C) K1 g+ }1 W. k* u
【程序33】
; J& s0 b) c9 D, F1 }题目:学习gotoxy()与clrscr()函数 / ] O6 v& f( d/ z* @
1.程序分析:7 N/ [' x3 a+ E5 ^6 K
2.程序源代码:
. [/ Q8 Q4 B7 U4 }- r" [3 X+ e+ }#include ! a' U6 b9 m% M3 k+ x
void main(void)
3 T& z! P6 \4 M+ U3 `+ p1 A{
% r# d0 }3 s* |4 f; g" l0 e) cclrscr();/*清屏函数*/* d2 Q) v+ C F& `2 f
textbackground(2);
. n% M9 D- z8 O; v& Y; R9 g! G% Pgotoxy(1, 5);/*定位函数*/
7 y% n: C$ p+ H5 r9 Z1 ^5 ccprintf("Output at row 5 column 1\n");3 [3 O8 V' @3 V7 [6 p8 j; Y
textbackground(3);
* A* t1 n/ ?' H5 D z! ~7 H, `gotoxy(20, 10);
; A+ G$ Z5 A# [ Ncprintf("Output at row 10 column 20\n");
2 F' i3 q( Y" o- U2 D! N} g- ]" u7 P# D5 o( f! `, X
==============================================================
# S5 M3 F2 j2 S i& J【程序34】; y" I B1 ?3 O1 ]9 |# [$ F6 A" W
题目:练习函数调用
8 E6 Q4 Y' a1 i# @ F- w" X1. 程序分析: 9 [- M: z: ^4 j, h; `
2.程序源代码:
, p( P$ P( z4 F6 U#include $ q" J5 x" t3 H3 S0 {
void hello_world(void)" N" s9 |& p% _1 g
{
" f3 d ~ P/ \, s/ q: @( Oprintf("Hello, world!\n");
' F* a; O9 R& L4 ]}1 ]+ d3 [6 {9 H1 k1 z- r
void three_hellos(void)
# l' n* W3 b! ^# P v$ Z{& ]* X0 E5 V2 ]8 _
int counter;2 C1 u0 N5 i; ^8 A
for (counter = 1; counter <= 3; counter++)
4 ?8 R' f1 h6 S8 G& N) fhello_world();/*调用此函数*/
B! R) I" L( t0 ~- o}6 C6 o* k) O3 f# F$ Z
void main(void) \/ f4 U9 D+ y1 E& `
{( P# {1 s- o( m8 h9 T( g4 }
three_hellos();/*调用此函数*/* W: j0 b7 {4 q0 z; F
}
. e) F g+ A1 d==============================================================% E9 N/ v% e+ ?! D* t7 e
【程序35】
; ]2 v2 o" S1 e$ O8 W3 ^ s题目:文本颜色设置1 I, f9 K, Z+ l
1.程序分析:
/ t5 W: I3 X. b2.程序源代码:; Y* m3 c" \$ O# N I
#include
. r$ K" S) a" G+ evoid main(void)
y! g1 s& y. B: b. X# V{- j) g* T1 y; f) Q
int color;" g) A) t; A* U$ `8 i% S+ r
for (color = 1; color < 16; color++)4 Q2 p* C/ p4 `% y3 u% b z
{
H3 M# J9 [1 X- d, c# u textcolor(color);/*设置文本颜色*/ H' [) e( R' l3 ]1 V; S% @6 ]" v( N- D
cprintf("This is color %d\r\n", color);
$ m$ i2 g& x: o T* L }
# r7 V# g% ~6 v% Btextcolor(128 + 15);
k; Z. N& u! g3 Fcprintf("This is blinking\r\n");( a( }3 B+ \% B: F
}
& J9 u h4 x3 R* `==============================================================
- n8 H$ ]* A# \/ g【程序36】
+ i. J/ F2 I) [# K- K: T7 j题目:求100之内的素数
! w5 M0 C% B( P& S# q0 R* T# R1.程序分析:, j+ Q) |& U$ \" w
2.程序源代码:
8 Q0 C6 J& M/ w! z! C9 w#include % @: V- u: [: B( x/ p/ l" [
#include "math.h"# A0 m, |; s' p5 F5 V* `1 a
#define N 1010 I3 H( j$ l' w/ N& Z4 q, G
main()7 T2 F& i: {* Y+ [# `; C
{, w& m* k5 {/ f
int i,j,line,a[N];! H4 w+ }7 v3 |' s% u) m
for(i=2;ifor(i=2;i for(j=i+1;j {: E+ b4 ?5 x, ]6 S8 _, U2 G
if(a!=0&&a[j]!=0)3 @& A" f8 ?2 Q9 ~( n @
if(a[j]%a==0)
/ g$ |% u1 U% d% x a[j]=0;}
8 _, q& l: `% J' Lprintf("\n");
* G8 j$ J3 e# F' I8 J) |, B$ ?' Efor(i=2,line=0;i{
8 g7 P. p* v# D. A2 d% P+ R if(a!=0)( S3 ]1 D& {0 J! N- U Y& ]5 s
{printf("%5d",a);
/ \7 m B. H- X, Z line++;}
) v( N+ y+ S$ [+ n+ z if(line==10)
6 q# y* J, g% u4 ^ [# J0 I7 y {printf("\n");
- q) W( }9 {2 }& u; L1 R Lline=0;}: X# g" u3 w2 b' j |4 E4 ~
}4 ]; ]* h) L& g/ y
}' {# z$ y# C) c) m2 g! b( x% H
==============================================================" z4 c) H4 Y! l: B6 h! R! S
【程序37】
8 f; s7 x2 x# p3 X! c! q题目:对10个数进行排序
5 J( V" Y6 H% ^' d, G) p7 ?4 Q1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,9 b) K/ H9 B- ^4 U/ o" f' x( h
下次类推,即用第二个元素与后8个进行比较,并进行交换。 ; i2 |& {5 c3 ~( u$ ~/ o7 u
2.程序源代码:
4 E& f1 f( D5 \( u#define N 10& v' b2 N }7 _6 i) B
main()) x6 U6 I' w- M5 e. e
{int i,j,min,tem,a[N]; X8 A( _7 }) R- q. W0 u6 _4 ^
/*input data*/2 ?( s% p B1 t* U) C4 E& \3 a3 e6 L
printf("please input ten num:\n");
- p3 I3 v: z$ @+ `. Xfor(i=0;i{9 w% s0 j' N. ]) n( R* w; R& I5 a* W
printf("a[%d]=",i);; j i! O7 @) x6 ]
scanf("%d",&a);}: |9 N) n( j% @" ?6 [$ n/ e s: r. S
printf("\n");$ e3 L/ R" O' W! z* C1 S( t
for(i=0;iprintf("%5d",a);% t1 M( q6 W7 W# _# Q* C& Q" X
printf("\n");
+ Z) ?; \% O1 D/*sort ten num*/7 g! G l5 [: V
for(i=0;i{min=i;* } t3 \0 X2 ]2 {% J& F9 `
for(j=i+1;jif(a[min]>a[j]) min=j;' g+ ^2 e: [" Y* |. f1 P$ T h# G
tem=a;9 `% q0 O7 z1 ]4 I# y6 T2 u
a=a[min];
4 u5 r; a% R0 p( |: J! o8 s3 Sa[min]=tem;- S- r3 f7 l# w# m9 n {) T( h0 [
}; u8 }+ s4 o. r) q
/*output data*/
2 f5 ~& u# l F$ nprintf("After sorted \n");
) G: g/ R9 a9 T0 r; K" P ?$ Ifor(i=0;iprintf("%5d",a);
! [4 g1 j9 ?* T0 ^0 T" N9 X}
# {" b3 b$ F2 p" O9 Z2 z ?==============================================================
n5 ?" J' h+ N: h- B
& w5 E# V& R' j$ f6 b* j. [4 E* T9 E |