EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27】
, }; A9 R" R7 k- `0 i# T题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。. P1 b9 e' z F5 f8 _2 b7 N
1.程序分析:
0 g8 H# W: v. f; P& J6 i3 I2.程序源代码:! o5 b6 X/ U1 Z! R i
#include "stdio.h"
, ~8 f* W3 q; {- G, V6 ?; P- Hmain()- O* k* D* Y+ Y. q
{8 ~9 r" w' y5 K
int i=5;
. {9 y1 b- ^3 F9 d) q! D! {void palin(int n);
$ U6 P0 }5 _+ @& c2 i+ fprintf("\40:");
. ?! Q* j0 b$ N& | H1 R' m" B5 j) spalin(i);
) _" r# L7 t5 w1 ~- Q2 Nprintf("\n");0 R4 g5 e; g1 H6 i- | I; G
}! h# a! A% R7 ~9 J6 e- J( ~/ L; I
void palin(n)
9 `, n& ^% N# ]' K( Jint n;
! |3 j" I: X( L{
_: B! B' W, E5 G! |0 Vchar next;
]0 b: |, S* N- a4 pif(n<=1)" Z/ U7 Q( _) L% v* n
{" X! k) J/ g7 r/ S% m0 f# H
next=getchar();
6 ]) ?9 ]# c6 H" E printf("\n\0:");
6 ^ I! T7 g" \- O putchar(next);
( O4 d: {9 \, v5 x+ G: M }5 {2 Y" j, ]+ R4 j: A. [. v
else
. n' ~# g% D8 F7 q {
4 b: U+ v1 \, i, ?3 O! [5 f next=getchar();: l& e4 r) a( C% e; y
palin(n-1);* I$ c" V( z+ d
putchar(next);6 V5 Y/ E2 M! H }: C( R u2 p
}" ?) |6 y' o# U& u
}
9 W/ ?$ R% G8 [& D* B% O, r: V+ Z==============================================================
, r q+ Q _' P4 L3 }' N! w( Y% _【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要 ) o W! l! o n D* \" X
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第/ H) M- L- Y+ h4 I( k' B
3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 ; m0 \( @* g4 N5 o0 U6 z
问第一个人,他说是10岁。请问第五个人多大?2 {3 N0 i0 o( _' I
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道! k5 ?0 ]* d$ t. u: _/ R8 Q, r* @
第四人的岁数,依次类推,推到第一人(10岁),再往回推。
9 G5 F) l/ M4 G" i2.程序源代码:: W6 s$ H( k$ b% i% @: j1 B( Y
age(n); o" a6 |$ \0 C' i# V
int n;0 T6 `3 G: D3 I/ J% O5 f& i; `
{; R2 f% A: ]0 h: D/ z
int c;
. o7 d6 ~0 J% \9 p: A: kif(n==1) c=10;
( r, |2 h6 @5 r/ u; Q" \4 Melse c=age(n-1)+2;, Y3 S8 }% I' R3 }9 B f7 N+ r6 `" B
return(c);6 J" l2 h1 m* g
}
0 z$ g* e/ E) U7 b$ H& R% q* Lmain()! g+ E! E; B8 z3 X( i/ \ S
{ printf("%d",age(5)); S: @& B/ F" w: S6 D) G
}
# e/ J" n, t: ]' o==============================================================
% y% N. y& f: n/ N【程序29】 8 ?/ L3 q- P8 t4 M- s
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。8 h, C: [& `6 F. f$ J
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) ; J8 Q" X s: ~1 B$ L( l
2.程序源代码:
' J2 F, v2 M7 c$ xmain( ); H1 O( V2 z3 k5 j: G7 C
{! g1 U! ?& C% h- R
long a,b,c,d,e,x;; ` o @- ^3 x, C9 p
scanf("%ld",&x);
" q' h0 e7 g6 f/ va=x/10000;/*分解出万位*/* ^! {7 k/ z4 P- w) ]3 V8 o
b=x%10000/1000;/*分解出千位*/
" l: {7 t6 F6 |4 ~* d. K$ Qc=x%1000/100;/*分解出百位*/
1 p: K& u$ O. A6 zd=x%100/10;/*分解出十位*/
0 Q6 y, z3 `: U9 Xe=x%10;/*分解出个位*/
* o6 s4 f2 b! d8 R- vif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
) S5 t( G" @+ [. |: [else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
3 ]2 r" _8 a x4 h" g+ L else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
5 V$ A8 I2 S c4 s else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
% M( g1 Q! Q0 W+ w' ]2 `5 g% ]1 R else if (e!=0) printf(" there are 1,%ld\n",e);
/ b8 g. c# j, T0 E& I}
8 g7 i1 F- |& q6 B9 E% @" ~==============================================================
, ~0 Z+ P/ r5 D7 Q4 E0 U6 {【程序30】
% N0 X3 G. e+ C, [6 a( O, K题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
a0 t% e- S* B! o+ K$ ~' }1.程序分析:同29例( U8 r1 o1 S E. i$ u2 Y' Y! j
2.程序源代码:) _. F4 m4 `2 m- k& I" \
main( )) l! E$ d9 }4 Z2 u
{
$ I8 O4 o* {# p1 q0 Q; k& qlong ge,shi,qian,wan,x;
2 n4 {# e% H9 c. S8 b, d, Jscanf("%ld",&x);
* P: z' \' n* D% o) ywan=x/10000;* Z% P: z# D% [$ l# z4 p
qian=x%10000/1000;+ M/ }* G/ k4 v8 c% E2 f: t9 a
shi=x%100/10;
+ p; Q6 Q V4 Z2 ^ge=x%10;& l* Y& o# K- W# {9 h& \" d! `, D
if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
0 |7 p& o& D. c# ^7 e printf("this number is a huiwen\n");% X* F) _( V0 {5 z" W( M
else4 U$ k" _" _& P3 F
printf("this number is not a huiwen\n");* A' v) I' O: b3 j- z; C7 q+ j$ n
} 【程序31】- C2 V% X5 _$ @( {6 f+ o- r) ] T
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
& f9 H5 m; c; g& ~7 [* ^7 F 判断第二个字母。; c1 H1 g( [* k3 _0 c# e
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
2 P6 Y8 u; y) o$ d$ a8 _5 ?; Q- [* b2.程序源代码:
3 ~) L! I: w. ~; S+ j#include ) D- `! r! q) V) y+ R7 b, o
void main()1 e! W* F1 u) s! N9 `
{
3 V/ ^& K/ ~9 F6 S" m& ?8 _! Wchar letter;0 q: B. s5 v6 h! g5 {9 `
printf("please input the first letter of someday\n");
' C- K! P* m+ @& I! Vwhile ((letter=getch())!='Y')/*当所按字母为Y时才结束*/
1 Y( v" S; J, A: M. s{ switch (letter): V7 R' A9 d7 U+ i8 I
{case 'S':printf("please input second letter\n");
7 O+ {9 J* y. v9 J8 ~ ?0 D$ I if((letter=getch())=='a')
# O1 Q% U8 y8 I( f2 V9 c+ t printf("saturday\n");( f; F" g' g+ b/ w# \ @, z. [
else if ((letter=getch())=='u')
, a I' u/ _8 | w2 |8 J9 k printf("sunday\n");$ y* ^) k, F1 v5 e% I Q' S1 m+ W9 y
else printf("data error\n");' p) H0 x6 ^* F: {
break;
% D% D" k$ ?! b% T& mcase 'F':printf("friday\n");break;; H4 d* l3 p0 R" {5 c3 w+ S& |
case 'M':printf("monday\n");break;: w$ q' R8 y& K; {* z; U M
case 'T':printf("please input second letter\n");
# o* w" m3 K% B% y if((letter=getch())=='u')% r' i h8 T" y2 H( F1 V- h& ^
printf("tuesday\n");* i. P/ c% c w q( U& c* O5 u
else if ((letter=getch())=='h')' e Z& m( h* n$ Q
printf("thursday\n");% ]/ B0 A; A. Z% L6 z
else printf("data error\n");- x" C- g: b0 c5 k& A& k8 v
break;; E/ e' F# K8 a: [7 n# b; K
case 'W':printf("wednesday\n");break;
) t# Y3 Y) k* I- @5 w# Y: i [default: printf("data error\n");
3 Q/ G0 M$ P6 p6 E, {- X }
2 v& Y, j0 j' D, p% k }1 F% } B n8 g0 z o1 r' }# e
} f& N) @9 O: N5 o) y, q; o
==============================================================* I7 L0 [" M; C, R0 ~9 {2 z
【程序32】
+ d' j0 g: i, n% U) D9 W( O- h6 A" A题目:Press any key to change color, do you want to try it. Please hurry up!
: v7 }% D7 s, y9 X; R! n1.程序分析: % b9 x; o% l8 b& `8 {& H
2.程序源代码:
3 T1 w9 c: i( ~/ _#include
0 y) f7 s" h+ uvoid main(void)
) q4 |- X( q4 t |; w: F! D/ c{
: b) A: k4 x) x1 j- F6 }* U+ hint color;
" Q) \' y- \% y. j' c4 G. Tfor (color = 0; color < 8; color++)4 y( g. B* S' e* G* Y9 V
{ % y' v* ]4 x( s7 l2 M
textbackground(color);/*设置文本的背景颜色*/
$ `- A) T7 Q( j# v cprintf("This is color %d\r\n", color);
1 h0 |6 ^7 s& D! { V \ cprintf("Press any key to continue\r\n");
' q3 C. d9 b8 c* K getch();/*输入字符看不见*/
+ _! s- g% x1 N2 T }7 _. x4 U3 w" `: Q4 y i5 S
}
1 R" Y5 o% \7 V0 a& @5 n2 V==============================================================
/ d* I* k7 Q! ~) p/ ?- ~【程序33】2 s/ Y% }4 L& W9 Y- D4 ^/ C( O7 z+ o
题目:学习gotoxy()与clrscr()函数
( {# H4 e$ t9 C2 ~7 X5 x+ a1.程序分析:8 M% _$ X$ t$ K) @; [3 V6 {
2.程序源代码:( O9 `9 V1 N# z* D
#include 8 b' \2 M$ ~- B9 J; o, `7 x: c
void main(void)* N5 V/ d( t% t( {
{
( ]0 @& a. s- Z6 k: aclrscr();/*清屏函数*/, n9 b. J; l/ R1 p" q0 Q
textbackground(2);
. ^& U* h- `9 q, B `gotoxy(1, 5);/*定位函数*/0 m; ^0 |! g( _, T
cprintf("Output at row 5 column 1\n");! ?, u0 B/ m* Z- o8 O# T
textbackground(3);# B K. I, I k- E5 \0 r$ E
gotoxy(20, 10);
8 k- J/ g Q ~* V5 Kcprintf("Output at row 10 column 20\n");
, {! _* c& B: ?! K, H+ E( o}
* K1 I- c' A. U, W% |# ~==============================================================
3 {! O: M8 R! C9 H: x9 X【程序34】$ Y1 N T- `( H# c2 v8 V# G
题目:练习函数调用
; x7 F; f8 k M9 Q1. 程序分析:
( r: H, n) L# m B3 l2.程序源代码:
U* B0 U! f7 L! ]. Q# A2 v#include ; W' G7 L0 i) a* }0 ^0 T
void hello_world(void)
( X8 T& x( U) [1 p. A0 ]& F$ m{
* G" g! }6 g$ l4 K8 ^" nprintf("Hello, world!\n");
4 W# D+ M; g# Z: _" W6 z* E0 t}
; L6 c4 f% o6 Z: N9 u! C3 {void three_hellos(void)
" e) a. v' Y6 A' ?{$ V7 h8 [9 I6 w) a% j
int counter;
& X* S6 o0 X; Q4 ?, p3 ^7 K- ?$ Lfor (counter = 1; counter <= 3; counter++)2 H2 E/ i1 a7 h
hello_world();/*调用此函数*/
& L% l- [) f; m4 `/ s5 B' I}
' J! r- i* U" V3 Rvoid main(void)
! |0 m- w- @* e{+ @9 A$ B! ]4 v3 W5 Q1 l8 u# a' S
three_hellos();/*调用此函数*/; I+ n* |+ r% V! `* [! t
}
% b! d) |/ e# U; i) E5 {+ N' G==============================================================
: h( Q* }7 O) s F【程序35】
0 H6 H/ y7 [5 v7 i! f$ t! [! N题目:文本颜色设置
b6 b7 _; j$ R" j& s# Q& `1.程序分析:
$ S$ E; Z0 I. t3 {: v+ c6 o2.程序源代码:
- a* K3 N+ T% ^0 l" K#include
4 m0 u+ h* I3 C; I' O' ivoid main(void)
6 K1 d; j: f% S* D, g" U{7 g! }6 t' W9 V a8 i+ F
int color;
& U- I( o6 a" m2 T N" G! W" jfor (color = 1; color < 16; color++)
1 o% T: R( D. `& k3 U {! O' q2 g' h, O+ n+ q8 Q! i( h6 v
textcolor(color);/*设置文本颜色*/& E m* J7 x. P' e, [. O
cprintf("This is color %d\r\n", color);
+ T4 w6 l( m& p7 I }
) L D8 h3 H' x4 V# X$ Htextcolor(128 + 15);
! x2 J5 g# i6 D5 S* P& w; X% b: f, e$ \cprintf("This is blinking\r\n");
- w6 R7 h7 N9 {* F2 i4 a/ E9 n" ]}
! ~3 P5 a6 I+ w/ w==============================================================0 ]% d T- J: T' u( {
【程序36】6 n# l) x4 z P( f1 V% B7 I- H( ]
题目:求100之内的素数 0 s+ t7 L: o9 _+ E) m
1.程序分析:5 P- J; t# _, X6 w- y8 u* @7 W9 A
2.程序源代码:! h3 V1 v) m$ y" V" j& ^
#include / s( C3 W# l8 J' N# w
#include "math.h"
- R7 v) f( s [! s8 S#define N 101
" G7 m+ w' B$ ~7 p+ x5 E" N/ \main()
: M1 Q# c) U5 e9 `& [' u2 z{4 `* w. ]0 n9 [9 u: a* A: v8 ]
int i,j,line,a[N];
( {& [: E" u8 P, Vfor(i=2;ifor(i=2;i for(j=i+1;j {) e* K% k. f% |! ^; ^( C
if(a!=0&&a[j]!=0)
2 G5 i! e t Y* F4 ? if(a[j]%a==0); r. M1 F3 D/ w6 }) O: ~
a[j]=0;}) K6 _& c% P3 g4 p0 A, J; f
printf("\n");
/ }; b# \, {2 V, V+ s% Bfor(i=2,line=0;i{! O6 ^/ D* {( w! p
if(a!=0)1 f( f( k2 l$ g( r" X# X& [
{printf("%5d",a);
% a5 l! v Y3 K$ d7 L n" D line++;}- c3 l+ f9 i5 u4 s: @
if(line==10)/ z. n6 I- ?; h E. E g- G8 a
{printf("\n");7 T9 H$ a1 C" p! Q
line=0;}
. h3 q+ ~1 {$ a8 y- x2 l- }4 X# ^}
4 X0 I9 R/ ] h4 A* } x}" F0 m+ U# u( C4 R4 e! j* k) b
==============================================================
0 t* O' J5 y0 _【程序37】
/ X0 k' ^. O) _ [4 \9 z题目:对10个数进行排序( u! N2 n/ H8 e
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,0 H3 B- R4 l: m/ d$ V
下次类推,即用第二个元素与后8个进行比较,并进行交换。 # ?: `0 o( ]0 }8 b4 ^* e7 y2 b
2.程序源代码:
# G! o& y$ @: _2 Z; S" R#define N 105 P$ j2 ?. E0 x) c/ b, c: z, K0 Z# R
main()5 e l/ r! o4 e0 \! F1 s
{int i,j,min,tem,a[N];" O7 `# _. I3 k- e5 S
/*input data*/
* w, `. N6 k" L Nprintf("please input ten num:\n");% ^5 F- |4 F+ v" J
for(i=0;i{
% x- k4 ^# ~; N) w! qprintf("a[%d]=",i);
/ R0 b0 U. ~: H f8 o$ H& J3 Uscanf("%d",&a);}' M; `& v- C U
printf("\n");
9 v- w+ _$ [% X+ S2 `# lfor(i=0;iprintf("%5d",a);0 b* \$ E3 f( r: n# G5 ?; {
printf("\n");
4 C' k9 c n E: K6 K9 l( K6 ~/*sort ten num*/
) U; Y: L3 n" X# p) C3 G4 Q2 T$ ?for(i=0;i{min=i;4 X* B3 A( [) U/ ^. d E R
for(j=i+1;jif(a[min]>a[j]) min=j;
# U- p8 ^1 z3 p* r: Xtem=a;3 `" D% S) h u) i
a=a[min];
- P1 d5 H8 J+ L% f! }% J6 ?a[min]=tem;' _6 h8 W9 n* c; U' ]+ ~1 A
}% o4 I6 o$ p% j, v& Z: z' v+ L
/*output data*/6 l% ~9 h2 h: c3 B( s" @- C
printf("After sorted \n");8 l( o, b* R( k4 ]5 v9 i
for(i=0;iprintf("%5d",a);
% @8 t+ p* |6 y; k$ {}
1 k) l( M8 d% F5 A2 S==============================================================% T9 g h3 g- G: l* R
! g6 d% d5 j9 ~
|