|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27 】 " u- e" a' l2 z* _* M& x
题目:利用递归函数调用方式,将所输入的5 个字符,以相反顺序打印出来。0 Q* ~7 Y+ R4 K( K. D/ I
1. 程序分析:
% j3 H2 y" \6 F Q2. 程序源代码:. |5 ^. Y6 f! D3 \
#include "stdio.h" ! U2 F2 d6 J, d4 ?6 \- h" R
main()
# W/ g( J7 D& G* {. P M{
8 v1 ^' S% j/ D7 Tint i=5; 0 D# S) L' ?9 n. _5 P6 n. y
void palin(int n);
* |6 H, E3 \! e' f$ c$ o# C2 G7 Xprintf("\40:");
* l: C; ?3 w' k3 K+ gpalin(i);
! c2 M; W- M. }# {$ M ^9 g8 Y! V' Vprintf("\n");
, r- ]' c! v3 D5 v3 i$ t}
4 B0 y/ J' ^" xvoid palin(n) : D. [+ f, [3 W9 |& u. {
int n; . R# [& h, Y1 x
{ . ]# J) |* ?5 J5 i: h
char next;
: a+ b3 H8 E0 I. I% [5 q3 B) W' z( |if(n<=1) 1 h+ x# o# `, {+ f Y2 X
{ % c2 w& G: Q$ @- F
next=getchar(); 1 J# S* `1 C, k5 F0 A. D/ ?
printf("\n\0:"); + s6 x C' L1 W; N$ b; L+ i/ L! L9 Q
putchar(next);
/ ?; `) H: b' _6 Q" z/ c1 ] }
; v& I; B* K6 U; `5 yelse ' ?8 D H+ T% I3 K9 V& v$ s- a: v* m
{ 4 x& z+ x. }0 g1 K! Y! y
next=getchar(); # O3 }- ]$ s% T& |# O9 H7 [
palin(n-1); 6 t5 Y' {. r, U7 Q2 I
putchar(next); ! L! N( ^5 G+ |2 l: r/ L! R
} 4 t/ D8 Q" K; [- D8 k& T
}
6 Y# _/ Y4 ~/ B$ I============================================================== # y! {1 q( f. b. a' \7 d$ F
【程序28 】信盈达 嵌入式企鹅号要妖气呜呜吧久零就要
2 O- w" V; [. K: ?. X题目:有5 个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第5 }4 j5 }; _5 N2 Z
3 个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
3 F* N$ w% X# S* a! `3 S0 b 问第一个人,他说是10 岁。请问第五个人多大?
; a6 i* K. J/ d5 Z1 r Z' ]1 M1. 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
% i' D. D# S( V 第四人的岁数,依次类推,推到第一人(10 岁),再往回推。
) V& g: ~9 U# e( O# e+ f$ j2. 程序源代码:
7 V l6 ^8 x# Q* |( bage(n) 5 C! z! p) L# E6 m% [8 y" s
int n;
( L7 D7 z( E: h- q% J) P+ s{ - s) t& h+ J* H! @2 r1 d* z
int c; 8 `+ v! u) K5 W6 O* @7 Q
if(n==1) c=10;
& F1 i9 w( Z4 D9 ?else c=age(n-1)+2; / ]! @8 K; Z) u' U* C+ N; ]
return(c);
4 A. ~# Y0 C [+ B" f} D/ @* n' f/ t3 _! C* w7 ~ g% J
main() % q8 P( o& k8 T$ Q }5 [
{ printf("%d",age(5));
5 x) q; N6 l; H/ p} ! ~3 l, ~7 X7 v4 E& S% W' E/ D
==============================================================
: N: o: Z) v0 P# n2 g5 n. h/ o【程序29 】
* E9 F6 u' K A/ j7 V# u* }; S题目:给一个不多于5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。, z) O8 ~% l3 |0 k$ _1 j) y1 T
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) ) l4 `# z. v1 J8 O( U
2. 程序源代码:
" S( G6 D7 f9 emain( )
& c, @- }/ `* A& a{ ; ~0 I6 z; m# @% ^% {
long a,b,c,d,e,x;
, I4 ~3 c; M. ]5 Q9 p: Qscanf("%ld",&x);
! p3 K# E. c9 n0 z: a5 na=x/10000;/* 分解出万位*/
: t4 C& f3 l9 y. Sb=x%10000/1000;/* 分解出千位*/
8 m* d- J( o! l7 A* Z+ {: Qc=x%1000/100;/* 分解出百位*/
z0 ]5 p( W5 M1 `' U1 Z. i9 c/ C; }9 Kd=x%100/10;/* 分解出十位*/. J' H& U# K0 ?% _
e=x%10;/* 分解出个位*/
& V0 B7 Q, g9 @# J; |if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
3 J$ s0 m% C1 q! V: Felse if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
( \: _9 Y& @/ x$ u! D else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
$ F: U! G; d9 C v else if (d!=0) printf("there are 2, %ld %ld\n",e,d); , P: t# a7 n3 N! P. }
else if (e!=0) printf(" there are 1,%ld\n",e);
3 E* B' e" b0 f}
! N1 F/ u8 v5 W0 o n0 J, y: M============================================================== $ D+ _& f3 i5 S
【程序30 】
! J/ w+ P/ ~0 @! X! x' R; l$ x题目:一个5 位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 8 i C' V% K4 f( c0 ~ r' Q
1. 程序分析:同29例1 i: Q% y- V& F0 n5 L! i# c" B
2. 程序源代码:
% o) t; y$ R/ ?; ?- g" I) O3 Emain( )
, p( }, X& \2 r+ ]$ ?{
; c6 C* I8 M% [; Q( ?6 {! j* G! Olong ge,shi,qian,wan,x; & S0 o$ S/ L: z; y
scanf("%ld",&x);
. I! T4 Z& y9 w2 `: ]: X! A8 Twan=x/10000;
9 }2 I4 Y/ d1 p& r% e+ Sqian=x%10000/1000;
$ S- ^) u, t. u7 gshi=x%100/10; d4 t1 D# L3 X" |- Y# ]3 R4 A
ge=x%10; ( K7 }, m. x" A+ a9 J8 W) O
if (ge==wan&&shi==qian)/* 个位等于万位并且十位等于千位*/
/ K$ K8 y+ w! U. w printf("this number is a huiwen\n");
. H: V' Q- k: }% h) d' X1 Oelse S$ T w8 O* W4 W9 c
printf("this number is not a huiwen\n");
' `3 N# e+ ?" K/ w} 【程序31 】. k- K: m+ X, T+ a
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
7 M3 O8 W. r1 I 判断第二个字母。
3 Z8 W- V! g& b9 V' c1. 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。; g* u! C1 [+ n3 o. x2 d W
2. 程序源代码:5 Y) R( V% _! t
#include / w6 `6 a8 C# G0 R9 _: Q* V& s
void main() + E3 \9 p: X% j( S, x! V4 ^
{ & ^0 X5 q# C9 r+ J; V6 ]0 V
char letter;
( h2 x- r( u% E2 ~9 Q/ mprintf("please input the first letter of someday\n");
6 d) H6 }9 K; z, s+ hwhile ((letter=getch())!='Y')/* 当所按字母为Y时才结束*/# j# }3 T/ r& m8 {: p4 w$ ~5 G, A
{ switch (letter) 7 ?7 w% d# g9 K. N3 U1 @
{case 'S':printf("please input second letter\n");
6 S& z5 Q- `& e& w if((letter=getch())=='a')
% _& q5 {9 p4 p& Z; n printf("saturday\n"); + i+ [3 s7 J" M1 t! H$ A% }
else if ((letter=getch())=='u') * F) r5 K( J; S4 x E: O
printf("sunday\n"); [& q6 Y/ p7 G
else printf("data error\n");
; ~3 V( R) R# i9 K9 O break;
/ q0 j ^1 F3 hcase 'F':printf("friday\n");break;
# T8 G- W6 ^0 d& `0 d ? ncase 'M':printf("monday\n");break;
3 }( b: H: V8 Q" } e7 U7 W5 }( |case 'T':printf("please input second letter\n");
; `3 L4 E/ N n5 f2 [9 x if((letter=getch())=='u')
# N* K" f& e% x1 V# ^; X printf("tu ESDay\n"); / V! A7 j& k0 p" D5 ^1 R. M- ~
else if ((letter=getch())=='h')
2 b1 u8 I* V: A; {) M printf("thursday\n");
% b" p/ A5 c/ A8 `9 G" S7 a& k9 A else printf("data error\n");
2 m* `5 |: l3 D1 G6 D; [ break; V8 J: G0 h6 n% U8 }
case 'W':printf("wednesday\n");break;
2 [5 V8 ], n+ y `7 Q% \1 O# odefault: printf("data error\n");
2 @3 x) j5 G# n& S } / |3 \. O; V9 m1 d' l; W
} * C1 q( T; R+ E" S) a$ W( z" `. l0 z) S
}
/ p8 d# J- J$ [1 n* ]==============================================================
9 A1 ] t0 U, h: q }【程序32 】6 l, t; y7 y' {4 y- j7 y' o; ]
题目:Press any key to change color, do you want to try it. Please hurry up!
6 P# ]" y* E0 [8 j1. 程序分析:
! r+ U# r9 a/ `8 Y+ k& B, W2. 程序源代码:
$ a4 Y$ T/ e) X [% A2 i#include
8 v) c& ~3 a: t$ \) m9 mvoid main(void)
- j* J4 c4 ?4 D$ `- u8 W{ ) [6 B6 {4 L$ T
int color; 8 i* s9 E6 E! k- d4 h
for (color = 0; color < 8; color++)
; K! d* G7 ~! I/ ^6 @ { ( T+ R" V0 h- t
textbackground(color);/* 设置文本的背景颜色*/' B0 W" J6 [& e
cprintf("This is color %d\r\n", color);
: w% h2 u1 m& z- e) E cprintf("Press any key to continue\r\n");
3 S" ~$ r$ p2 y" e2 b getch();/* 输入字符看不见*/: P" e+ C3 R. ^: k9 ^* C
}
' a2 L) ~3 V# j7 \}
: y. o3 t( N' v% N R============================================================== 0 G& d9 g# v2 W7 C* `2 y
【程序33 】& R9 A7 g# F: P
题目:学习gotoxy() 与clrscr()函数
0 w& F! [& a# g w7 y+ c: z1. 程序分析:9 P* ? e1 r* w- D$ V. j+ N
2. 程序源代码:
9 z9 k b3 ^8 Y c5 [#include 9 g. O% p8 Q) a8 H
void main(void)
! {3 D3 n \# e1 w9 H{ & W6 B2 G( T# l' T# z7 F
clrscr();/* 清屏函数*/
% g; l5 |$ Q5 y) G+ A9 c8 O* ^textbackground(2); Q% b0 X: W, d: X$ t9 L( {
gotoxy(1, 5);/* 定位函数*/
7 k8 u. |% A1 t2 hcprintf("Output at row 5 column 1\n");
I; k# A3 N! Ztextbackground(3);
: [3 o a6 y8 ]& wgotoxy(20, 10);
! H" M* Q2 N6 U O% b% [+ F- U8 Vcprintf("Output at row 10 column 20\n"); 9 N3 o' s5 h0 R8 L7 N* L1 k
} - R% J- N2 r; y7 m. D/ p* d Z# v2 a
============================================================== ( m% V$ v0 n1 ^, I* ?) \
【程序34 】( T+ h0 F1 f/ D
题目:练习函数调用
: I" f3 j6 y: W/ ~1. 程序分析: 4 A3 ^7 J0 R: K- B9 b
2. 程序源代码:" J& }- ^2 @: c' x' {9 N
#include
7 B$ q* n+ |* q# e2 [1 p; Bvoid hello_world(void) ! p5 N1 n3 V4 F7 N8 ?8 X
{ 7 q" V& h: ~1 j9 D- V O$ Q
printf("Hello, world!\n");
( V d9 u( B* f! V6 L& C4 Y} " ^9 M4 O6 ~0 |3 T- u: n' D5 s
void three_hellos(void) 6 e" n7 M& s0 _% n$ Q- w
{
4 T/ |; N t9 {0 _int counter;
+ x, C$ f! @* Z( w, k6 d" l0 Xfor (counter = 1; counter <= 3; counter++) 7 r. ?( e) l% O; j4 j
hello_world();/* 调用此函数*/
I+ }1 O6 H( b8 S! n! P} 4 b3 j; ?1 ?( ]7 e& a' y+ D$ S
void main(void) # w0 O8 @' { ~0 F
{ : K$ W- j- n% N, u6 ^- Y0 K
three_hellos();/* 调用此函数*/
" `/ T) p G3 ~} 2 L7 U% d5 `8 U3 |- i
============================================================== $ O6 T( b( b, C9 ~/ K2 S3 _
【程序35 】5 {$ e) h8 } u4 I& F- Z7 X
题目:文本颜色设置
$ h* `3 g2 _- O! `& U; m1. 程序分析:
D2 k. D- K1 c4 G m, W% V4 ~4 k2. 程序源代码:
# C& ^( N0 R* b2 V#include
/ B1 o( Q* \1 B* c5 Uvoid main(void)
1 J' e% F4 e' m$ Z{ 5 X/ ?0 T8 b% t, r. r, U {9 B* P6 B
int color;
; v$ `# l( r' t7 {- pfor (color = 1; color < 16; color++)
) W0 ^, ~' `" T2 n { 4 f- y5 j" Y3 S- }7 v7 @- @( r7 E
textcolor(color);/* 设置文本颜色*/
: n/ A: B! G- e. s# O8 D cprintf("This is color %d\r\n", color);
# {( d' C, D" F* |7 v5 W! S& [, u } # C, N: u7 X+ W3 p, P6 _
textcolor(128 + 15); . I: ^$ j$ G' Q( \: U# ?
cprintf("This is blinking\r\n");
/ y3 R3 v' L- T; o% f} 1 `$ i5 ~; ?" c7 g- z
============================================================== 6 P1 c+ F6 ~/ ^) `" r& H- D
【程序36 】$ X0 l* O3 F: v0 Y6 N
题目:求100 之内的素数 0 b: g( s$ C C+ y3 j+ N) m
1. 程序分析:) C& N, L9 ~# U! e1 v. J
2. 程序源代码:
}7 T; k$ { g A1 O, F#include ! \' n! N9 d7 J6 K0 r
#include "math.h" # L$ H2 b. J; k
#define N 101 1 z7 O, l; p# ]2 a6 u( Q! }
main()
& `1 X: g* P4 v* \2 d; q/ _3 P{
8 k% _5 s H9 s* Vint i,j,line,a[N]; ; ]5 b. f; u' Y3 m# J7 o7 g
for(i=2;ifor(i=2;i for(j=i+1;j {! R: s0 C7 o- _, \9 z( a, B# M
if(a !=0&&a[j]!=0): Q( r! V B* x4 @5 R
if(a[j]%a==0)! ~$ {7 E/ j& c+ C$ @1 y: x5 q
a[j]=0;}* u1 M% E/ _* p- Y: a6 J
printf("\n");
) j9 X$ W) e; J" bfor(i=2,line=0;i{, }3 a" |2 c+ m l
if(a!=0)
+ B8 L3 N, ?! d6 Z7 K% R3 ? {printf("%5d",a);
% G k4 v4 Z6 K% c9 |* i line++;}6 m% w) C1 C, M, F1 N
if(line==10)
, B V+ ]9 r2 [: v9 o+ G {printf("\n");5 H5 W) G! b1 ^! P; t6 O
line=0;}
) j9 S. B& e% u: C}
' o5 b5 F) m" ?, x9 ]$ V}4 ?, ?0 L4 g( m) t
==============================================================
( G9 U7 w! F+ k7 z' D3 k" S, r【程序37】
* U* {& g7 |: Z. \题目:对10个数进行排序
+ Q b- A$ ?, f1 M1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换," ^9 K2 N4 A0 `, ^8 T& I
下次类推,即用第二个元素与后8个进行比较,并进行交换。 3 m7 ^) K4 _: w; X
2.程序源代码:
( w, `+ S9 D! | Y3 x#define N 105 m% c# X. l' g
main()
% j) W( x% u9 w/ D% h# ~1 `+ s{int i,j,min,tem,a[N];
2 H# a h5 B1 a* d6 N5 L/*input data*/
4 V7 \/ u, z4 f2 kprintf("please input ten num:\n");& B" F, B" q+ _/ ^8 f5 I% Y
for(i=0;i{
+ A; ^; U, d/ q# m: w+ I3 mprintf("a[%d]=",i);6 i! l5 @) B- ?8 o
scanf("%d",&a);}
1 \6 q- G, ?4 S% I7 F* k, Bprintf("\n");
& Z1 L& Y: w# a5 _3 f: k# J% H% ffor(i=0;iprintf("%5d",a);
( s+ w8 Y: A- l" }printf("\n");
% ] `1 R6 G- a3 M: D3 U/*sort ten num*/$ W1 A% X4 Y; s2 i% ^
for(i=0;i{min=i;, R) p# C/ I( X5 C9 m a& V
for(j=i+1;jif(a[min]>a[j]) min=j;
* Y7 N( ]$ O& C' |9 v/ item=a;, o# _, k! u' q1 b: h9 q
a=a[min];
" f8 O0 w0 l0 [, \9 T: K, w ja[min]=tem;1 {/ _, w+ f( {+ p
}5 _! L' w, i+ ~0 j9 k4 R# |
/*output data*/
; R! u; M: V2 p$ ~ Z5 Iprintf("After sorted \n");
" ]5 W6 V/ w9 P' S2 \. }for(i=0;iprintf("%5d",a);
( T: C" O; `" O9 s}+ h2 L! |* Z- ?5 K$ x1 w, d
==============================================================
/ p4 Y. H( y1 S T8 `
- I5 p$ B4 v& t; r |
|