EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27】
7 M+ i' N( v8 [" f: V$ }$ E题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。) L. y0 ]9 O- G9 j v2 e6 s1 I0 @
1.程序分析:
6 G I: ?% ?& U/ r8 s2.程序源代码:- |( Y7 u# L4 V2 E
#include "stdio.h"
+ g/ _ g" R6 g' n# Vmain()# q/ A# M+ q0 f v; m- [+ p2 q
{
% ?! {: m/ G' w+ E$ ~int i=5;
; e/ a# J9 ?6 U2 uvoid palin(int n);: n* E6 W/ `4 x9 P+ p1 i" j
printf("\40:");
0 J9 Q3 z* L! _' r" w" d$ r7 Epalin(i);
( J5 _, c$ p$ j l/ v- M* p. Wprintf("\n");
4 U* o, o8 v' I6 M# I2 x M6 o}8 [# \/ @; s3 A& r
void palin(n)
$ l! H( q1 } `; o+ s4 [& zint n;
$ p+ z# O0 u$ F) K" [* U4 x7 x5 o{
3 I. q9 U$ l% A. u, A. ?8 k, N3 V& z& Hchar next;
: S% X0 U, @6 A7 J. u$ A. c" @if(n<=1)
* F& h* W. j; q3 w* R( Z- Q" T9 m9 a { t) \. y9 Q% z7 o: v0 b) I
next=getchar();1 k( C% e# x+ H3 {; @
printf("\n\0:");& n5 e* J% |% g2 F
putchar(next);
# b1 R3 K' O% d* w/ P }
8 p8 d* ?3 q! N( i7 Pelse X! B. r+ l( y% f0 s
{
4 b$ ]! T; t& B6 l next=getchar();1 n* z7 _, {% a0 j, i* N a+ z
palin(n-1);
# |; T; @" h0 ]& m putchar(next);
. P$ r7 A3 }" ~, ? }
) y, \4 V+ J. X. {, i) v}! ]1 [2 r) g w! d7 y9 }% Q
==============================================================
1 u7 @ O- \' d) u7 \【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要
' r& o. J" O; D, J) H0 V- u9 u题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
+ u6 X% ~ Q4 R0 U9 p$ M 3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
2 g0 @8 Q+ I2 B6 C2 H. F 问第一个人,他说是10岁。请问第五个人多大?
5 Z* P3 v4 G. I( g: W' O) H1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道4 F8 V4 V. j6 ` ^! ?# K* Q
第四人的岁数,依次类推,推到第一人(10岁),再往回推。
1 c% v( [! P1 ?! P8 n9 B( H G& a8 N2.程序源代码:% x$ s$ U3 z. l8 i2 ~
age(n)
8 }7 j; J7 G, y& ^7 `int n;) H D- _# _0 G( a/ V2 v
{- l: K% j/ C# ~: Z+ a+ G2 ~/ t2 p
int c;
# \. _( h! t/ ?+ C$ g5 tif(n==1) c=10;
- {, r; U& M; v0 Y/ Xelse c=age(n-1)+2;
$ H, Z1 \+ d6 J; preturn(c);
& J. G5 N ^& Q8 ]3 M ]5 |; }. ?}; Z D- l9 _7 }6 L0 C/ o5 w
main()
! {7 s* h; k/ I% x. v# p$ B{ printf("%d",age(5));
* C* p2 d* n* c5 y+ d8 o8 p1 f}
7 `8 L5 F+ H- z* @) Q==============================================================! D' r' C/ q4 {8 Y& j
【程序29】
! m* o9 y) a- f- ?: U题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。8 n1 e) B/ C+ p) w! d
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
0 _) p# `: i7 P* p4 v2.程序源代码:
' ]* q2 C7 w: e4 ^8 Kmain( ). z4 N# ~ K3 u
{: S- B$ @4 I$ u/ p
long a,b,c,d,e,x;
* p u' U* q# p) f! Lscanf("%ld",&x);
& W4 a0 a6 C' K0 U$ la=x/10000;/*分解出万位*/! K! @ s8 X7 ?2 W+ R" q! k
b=x%10000/1000;/*分解出千位*/- [3 i) a6 }4 p9 ^! X4 G! u
c=x%1000/100;/*分解出百位*/
7 y* ]1 o! f; d, ~2 @d=x%100/10;/*分解出十位*/7 d0 C& A1 Z; k% {
e=x%10;/*分解出个位*/
5 m. F4 @$ H# E; e3 o- ~if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);1 z1 @6 j- s* ~2 b6 O
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); _6 Z; B# R* R% P+ }9 {
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
% U# A9 b6 d7 d3 l; o" w else if (d!=0) printf("there are 2, %ld %ld\n",e,d);2 g; J) V6 J' a0 _0 }
else if (e!=0) printf(" there are 1,%ld\n",e);5 T g8 B3 e& W' x6 }1 B0 C
}2 ?. u$ ]3 z* d" \
==============================================================$ o9 `# @* Y; Y6 `# R
【程序30】
; ?9 @: B+ h" w: U, h, ]题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
}; K( v7 W( c) ]1.程序分析:同29例
. W* |) p9 g( v7 @ n$ S2.程序源代码:
8 X( \; M# N. R3 ~. J8 J: jmain( )
" K2 _5 [" R$ a9 Q! J2 Z{
1 }$ ^( O C! p- T: ^, r$ xlong ge,shi,qian,wan,x;
2 S; o4 i8 G. K# {2 ~* I% m+ [scanf("%ld",&x);
3 _3 Y7 `# q: q6 T& ^ {wan=x/10000;1 r0 t7 K& L) w, k6 F% w
qian=x%10000/1000;, ?. r7 F/ h; U# t; y+ E
shi=x%100/10;
: e( _. N9 _6 I# z1 F$ j3 dge=x%10;
& Q$ C, a) v+ @1 V4 X! J' }if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/1 L& V4 d$ n- M/ |9 i
printf("this number is a huiwen\n");6 d; O" i5 a! N* a0 I
else
; y# Y ?& k( L printf("this number is not a huiwen\n");
9 U! @, [: q* I6 {5 Q4 d5 D} 【程序31】7 v( M5 G w2 J8 X [* @6 [
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
2 A2 E- [. _& q2 ]6 {2 Y/ a6 R% O 判断第二个字母。
4 {$ ]1 W# W: f" ^! N9 b1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
; q! S/ s B: K; F( I* z8 C2.程序源代码:
, o6 C! h3 ?% i+ a#include 9 t' y: ?+ O% b7 n/ y
void main()# z# G* |& y' o" E7 I
{* v5 w- o, T: c9 k
char letter;* J( C; [6 t! d$ H& N: X
printf("please input the first letter of someday\n");" o$ X1 [5 ~6 r3 Q/ ]: E
while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/
, o0 {* u( e9 z# q{ switch (letter)- w/ u: `! `+ [" v2 o
{case 'S':printf("please input second letter\n");
+ R1 d6 ~- i3 w1 c& a if((letter=getch())=='a'); w& I& ]2 h3 H* V2 G* S
printf("saturday\n");
1 i) ]& O L5 [9 u( j8 } else if ((letter=getch())=='u')
' I) N& o' z$ r4 f7 G. R9 h' p printf("sunday\n");
/ ?& J- u5 B: B* I7 L else printf("data error\n");
- y1 k/ Y2 }+ p+ g* G' K2 L break;
% M0 Y9 Z# ?, m" k- dcase 'F':printf("friday\n");break;
: s+ b5 _, E9 \, Q( `. \7 z5 o$ Kcase 'M':printf("monday\n");break;
/ q/ A: c: V9 b/ }" d: bcase 'T':printf("please input second letter\n");& K4 ^ Z. M8 d1 b/ j% S
if((letter=getch())=='u')2 B, r5 n2 ^3 g. q" L; x
printf("tuesday\n");
# t6 `+ Q2 M) n! V else if ((letter=getch())=='h')% |3 s2 E) U2 r- F
printf("thursday\n");6 ~$ |) h' A# o9 f6 i" z5 \# ^
else printf("data error\n");
1 T9 d, O4 y. n5 N/ m* y Z) I- s, h break;8 l g* ^9 l4 i D, Q+ L
case 'W':printf("wednesday\n");break;
( S& d. _- s% Udefault: printf("data error\n");. T: l) |6 H0 `: Q. m7 ?. @
}: w3 g2 c. j L# Z1 p# X5 _
} [, {4 y+ @+ X2 K
}/ a. z/ A6 q; M* o2 ^& Y" D
==============================================================8 ~9 Y1 }1 {) ]3 d
【程序32】
8 s. J, u2 A: s5 I) z0 U$ C题目:Press any key to change color, do you want to try it. Please hurry up!
: f7 }5 n4 G2 T1.程序分析: . g! d- o, t/ `, V( E/ j
2.程序源代码:
- m4 v" S! y h. @#include
. i2 g0 I, J0 _; i( ?/ B9 e! yvoid main(void)
& p) X# @8 o4 K! w9 P{
0 f/ ?! K4 i Rint color;
p0 {' ~+ W) E) l+ sfor (color = 0; color < 8; color++)* a7 G) Q. K4 w
{
& @$ `" Y3 V7 M: m; L+ a( O+ H' g textbackground(color);/*设置文本的背景颜色*/9 Z8 G2 \6 U" E5 s1 p9 t
cprintf("This is color %d\r\n", color);, [$ F/ ~+ p9 N! u, K
cprintf("Press any key to continue\r\n");
a5 j* }( z4 b+ g/ H getch();/*输入字符看不见*/8 {+ L Q7 a4 \2 g! f
}, T) b( `. F0 P9 s+ X; g: D* j7 V$ w
}
4 n/ _$ H0 s; ~==============================================================$ F* \: L$ q7 Z$ N0 J
【程序33】
, P g1 J' V4 K/ E6 a题目:学习gotoxy()与clrscr()函数
/ C; S1 P& }* s2 q$ b! R! ^1.程序分析:7 O3 F4 {5 N" U3 s
2.程序源代码:, U; r& }5 w% h0 a
#include % C! X z0 v+ ]- |
void main(void)% V8 d. J. r$ j+ V# Z
{
! c H& |3 B" f, Jclrscr();/*清屏函数*/
% \# Y( b# U1 Ttextbackground(2);3 G" R, Y1 ^; {9 D" d0 C
gotoxy(1, 5);/*定位函数*/
( z& d: i9 l# C ccprintf("Output at row 5 column 1\n");
3 ^- u, |. \/ ~6 \0 R1 v1 l: Btextbackground(3);
8 |/ y& }, D9 ? C" _' M! [* Dgotoxy(20, 10);
# R* y7 [+ U* f0 F, z; z% N# Mcprintf("Output at row 10 column 20\n");0 V2 c% Z' N1 D' H# g3 Z
}* K1 w7 W9 w& ]0 L7 |& t3 n# M
==============================================================* L; r* Z1 [( e; C
【程序34】3 }9 J: M) U$ H8 F' L
题目:练习函数调用
% {; m( q& C) v! e1 v! a6 F1. 程序分析: 6 ~1 F7 T3 z$ n5 C: s/ k0 ^) w
2.程序源代码:( t. j( S0 C- y; x7 E$ _
#include 8 [3 P* h T: M
void hello_world(void)6 q1 f. w" g: ?0 p4 }
{
4 _, D3 t9 o8 Z0 R7 b5 c4 y0 Rprintf("Hello, world!\n");: B1 O& f+ p) ?& c9 Q) M
}
Q/ e9 e7 w6 F6 T0 q( Svoid three_hellos(void)# H' B- X V+ Y$ y
{
3 y) T, j- Q$ ?" ?3 C' Fint counter;
/ C {) k+ t5 zfor (counter = 1; counter <= 3; counter++) [$ J# X% b5 U
hello_world();/*调用此函数*/6 A4 F+ d$ u. u' V
}
+ ~. s, v( R3 i; H5 ~4 Yvoid main(void)& m5 {' A4 ]1 |
{1 z/ z1 F4 }0 Y" T) L
three_hellos();/*调用此函数*/7 T) d5 Z: ?7 w" Z/ o* w4 j& V
}
! t+ ? P: C* q8 O==============================================================& d! G- H/ U8 D. `5 P9 }
【程序35】
3 q e! @" M; e+ X) J题目:文本颜色设置
1 r6 D! q/ P0 r: _" _- g1.程序分析:- F* C" @' u0 B% {' I/ C
2.程序源代码:
9 Q) d H& G; o4 p; z4 z#include
8 g. S8 R9 C# c @: ?6 Wvoid main(void)0 x; P( Y3 p) r( u- {: y1 P6 ~
{
* _1 _; x) ^8 M4 T/ Y* r) L. Jint color;+ k% e& T+ e0 h! z
for (color = 1; color < 16; color++)$ g/ B% n, F1 g7 v6 L2 y: l7 L$ B/ g
{0 Q5 B6 M, R% x: u6 Q5 i" H" M5 e
textcolor(color);/*设置文本颜色*/
( D; r" [: \2 [1 N, F cprintf("This is color %d\r\n", color);) j+ `- @ ?; `' {6 y- ~
}0 v! y7 X/ p0 l: S) f
textcolor(128 + 15);
* r9 v9 w, r3 K) m$ H: h7 Ecprintf("This is blinking\r\n");
) b v& M3 e8 l: W5 t( W% e% H}+ q: G9 y) t2 J, a% N
==============================================================
4 X( f$ g; m" ?+ H5 I# U( G- a【程序36】( a$ Z! n# ]/ f* U! Q/ i9 `" F
题目:求100之内的素数
3 r* T6 v& w$ t1.程序分析:/ w5 E, z( s1 n3 r& M9 k% g
2.程序源代码:8 X; ?0 ^( t( _+ Y% W9 Y' P
#include % r( X$ c% q* K9 i
#include "math.h"
" |) h: V) ?9 K) z& j& d7 x+ N4 a6 f#define N 101! D1 S& N( {0 a" s/ [" Z6 n
main()0 h1 V1 s; |) m1 M$ J
{
2 S) ^0 W" ^- z3 n) A* hint i,j,line,a[N];* I: p# E# q+ R( p1 _5 e5 |: q
for(i=2;ifor(i=2;i for(j=i+1;j {1 S8 g( O3 V# ^' \
if(a!=0&&a[j]!=0)1 P. O x; u" R, @0 p1 S9 m
if(a[j]%a==0)0 ~ k! l3 R7 i: S1 p( f. B$ x
a[j]=0;}3 m' `& w9 k$ ^* @
printf("\n");4 Y3 @- A* N( B* @
for(i=2,line=0;i{
) i8 x0 ~. o- I' } if(a!=0)# h: B& r/ w3 D9 n
{printf("%5d",a);
N' f# e3 y8 N% D line++;}
, p5 x9 L9 W9 D1 d: z& Q0 ^ if(line==10)9 r1 h0 n' R8 Y! `
{printf("\n");. k$ i& i, k* ?# b) n5 X4 P
line=0;}
6 ~8 j# c( W" h/ j}
4 W; e% s8 ~ n" m}+ h, L* `/ r3 z0 `; G8 Q$ t
============================================================== D, E) }4 _; D0 h
【程序37】
3 z$ n4 m5 V3 u题目:对10个数进行排序
& M2 n& ^% A9 {1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
6 x0 I4 \! L: L. Z9 B) @ 下次类推,即用第二个元素与后8个进行比较,并进行交换。 $ t N+ T! H3 o9 Q6 B- I% O
2.程序源代码:
: N$ p+ ^ F! ?, W#define N 10
* p- u& X8 h$ kmain()
$ N; e' `* a9 H1 s. L7 k{int i,j,min,tem,a[N];
- u0 O. |* Z$ V6 L5 y( ^; \& R/*input data*/2 C1 r- J) g1 K5 D; h+ M
printf("please input ten num:\n");$ x v: ~. ?/ B9 T/ x
for(i=0;i{4 A, a* T$ H6 {6 {9 U7 W
printf("a[%d]=",i);- [) K7 J( f& h" Z
scanf("%d",&a);}
5 V* N+ ^; G5 O& d( E/ zprintf("\n");3 ~) g1 Y6 l4 P: e# {
for(i=0;iprintf("%5d",a);/ y( W ^+ n, G! E; V7 y
printf("\n");
a2 E% B4 y+ ?& a/*sort ten num*/3 f5 [, d3 ]/ S
for(i=0;i{min=i;: F/ `" F w2 J! [1 F N5 u
for(j=i+1;jif(a[min]>a[j]) min=j;
4 o# x6 N) Q6 e# P1 P: gtem=a;
/ P# ~) T. ], B: N+ G2 E3 Y: J6 Sa=a[min];
" m- y' i- M5 j; E2 G3 Q4 C( E& Ha[min]=tem;
% H: y* b3 K" h7 v! a}# @. J: |& }" ]5 I: q
/*output data*/
# [+ `$ K. t: Z% tprintf("After sorted \n");
* K3 E7 p; V7 U6 D1 o3 zfor(i=0;iprintf("%5d",a);3 B/ A% d# m0 z/ v2 E
}% v3 f. k' J1 P7 r$ D+ f* G9 W/ G& t4 R
==============================================================
) i7 O% O& l- D
# S) V( o2 w x* ?: Y* H6 K3 V |