【程序27】 2 U- R& B0 \+ R# e) T
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。/ H1 S' ~4 L( R! R1 `9 G
1.程序分析:
: f! N7 m2 Z( E- ?% _+ T* N! `2.程序源代码:/ v3 M4 }" V2 H; k8 L
#include "stdio.h"
1 o: T" o0 h. g; n0 w/ `* Umain()) K# C1 V( d* {9 u2 @4 q4 d* e" Z
{
- k5 P4 n7 d$ v8 \$ wint i=5;1 e' z- K% \& _% q
void palin(int n);6 B' O1 N% A- |2 k+ f# R2 N
printf("\40:");
9 E" h) u3 U! [- c+ _$ o1 Mpalin(i);
9 v* r9 G) K+ Bprintf("\n");/ B- g, C9 p6 y( ]' W
}1 }* U/ @5 |/ P" p
void palin(n)2 z4 F& C; p0 G% t- ^
int n;: y8 L/ g& B0 k* K
{! {0 f# d6 e* O) C& b1 E
char next;
! ~0 ?6 v# T! J8 h/ ]' e k% F3 jif(n<=1)
+ J. f3 k: |: w! L3 m6 h, o {
* f7 z! h& ^0 k4 R* M* ` next=getchar();
' T( O0 K- }7 ~/ {; G" J printf("\n\0:");
0 v0 ?& A1 f: K, G" ? putchar(next);, N# v6 G0 Z+ s3 \& F6 V
}
: ~6 H! L' E* F8 z( a o( m; Kelse; F5 J8 c: H7 U3 S
{
. a; F0 [" X, J# f next=getchar();
# T, i8 M# e7 m- ~* w' ^+ m palin(n-1);0 S+ z6 ?7 U) [/ [0 U+ i
putchar(next);7 `. \" N0 @# J$ y
}
' p& v7 Y7 Q u) h}6 H: {( S& ^4 C- P
==============================================================
* m0 S" u! Z0 S% B: s& f+ i【程序28】信盈达嵌入式企鹅号要妖气呜呜吧久零就要
! m, [( m" g5 x3 l& ^3 V6 {8 p7 W, E9 D题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第/ {, ^$ q% V3 @: H
3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
! w8 g1 D8 Y2 @5 |0 y6 @# M" ? 问第一个人,他说是10岁。请问第五个人多大?, \8 t; C0 H& D- d4 f0 f4 d" h
1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
$ X2 D) o" n' Z 第四人的岁数,依次类推,推到第一人(10岁),再往回推。
1 U0 ` O* E# H9 a/ X$ s2.程序源代码:
4 c) T% l3 J& _ D5 p* `8 Kage(n)3 t8 @) t) r3 g x
int n;
& V4 j$ Y0 W* `8 ~# ], l ~{: Y+ `' R, s, V' s% M
int c;
3 K! I, c1 Y$ {: bif(n==1) c=10;; F! B: a4 \) u
else c=age(n-1)+2;
! `, m+ m6 m9 I3 yreturn(c);
# l$ p, T( j( i) q8 H5 h0 j}
: T1 m2 e" A6 n- Y8 P" j0 a9 _4 {4 wmain()
. K4 K; n e2 T0 I$ T+ Y1 `{ printf("%d",age(5));2 [- G: ?' B& g% _4 M6 O& m
}
+ S) h) d2 j, G) [2 J==============================================================
5 l( i- x% `( H# d& o4 E% F【程序29】
y6 z+ u1 Z. u3 m9 g题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
9 D% }2 ]1 d0 K3 `# q4 l% M$ O( V1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供) ' n) H; }* L9 y# x4 ?
2.程序源代码:4 l% v- _( Z& k
main( )" i" {5 V S3 v: @! d, C) M7 n, G
{
3 E0 {% L6 U1 z' Y" Q2 }( flong a,b,c,d,e,x;
I8 p/ b0 j# o- Y, x9 G! Xscanf("%ld",&x);; _7 x, ~$ W9 n- c* ]7 m9 D$ p6 V
a=x/10000;/*分解出万位*/. g* o% h0 G& b4 ^# |# `
b=x%10000/1000;/*分解出千位*/
# V1 G ` r" d2 |; y' [; z5 J1 oc=x%1000/100;/*分解出百位*/
% Y& ~' b/ ]6 @& u: ?" C7 O' Y3 @d=x%100/10;/*分解出十位*/& L G2 F1 x; \/ j
e=x%10;/*分解出个位*/
& \% H1 p" K0 C2 Z: Y9 N2 @if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);5 y. J" C* W) A* Z
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
8 H+ m$ M: ]- F6 b9 u else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);* x' n0 m, j' I& q
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
/ n @9 Z9 T% a6 c6 p else if (e!=0) printf(" there are 1,%ld\n",e);
- E- b. F c( M- m6 l$ V* b* K) y}; t* @* S. d5 C6 ]
==============================================================
3 f* G1 R/ y2 a- U! C! H$ l! F5 q7 \【程序30】 9 p7 `5 s) r6 S5 H2 @% L2 A
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 & Y6 f$ O9 I& x# I
1.程序分析:同29例
" N" _ ~8 P4 S$ u% I1 t2.程序源代码:
`: [5 K: \* W# \6 q" C' cmain( )
1 h! A9 t5 U2 _5 O& _{
. P6 ` y3 y; T2 nlong ge,shi,qian,wan,x;( j% q) B6 s) r$ X0 \
scanf("%ld",&x);
& q( \' r6 }. h6 |- x# gwan=x/10000;5 E" }9 u+ f* U, x& l; s
qian=x%10000/1000;7 B6 i- w# W$ P& b, F, @: R
shi=x%100/10;* s+ G+ H5 @2 O" L
ge=x%10;
/ k4 n! W" d- b& j, p/ ^if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/- y. r6 h6 Q3 _- _
printf("this number is a huiwen\n");" {! g1 p0 v& `7 \) @1 o* U6 s) n
else
d6 @( Q( C$ {0 B9 G( @% P printf("this number is not a huiwen\n");
- b7 K7 y$ b7 [% L* B} 【程序31】0 A' E6 k1 P. F) a1 j9 r5 A0 h
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续6 z! f) \, ^9 e- Y/ x
判断第二个字母。- K4 h" W- Z \" f
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
5 p3 G) x0 { U/ a6 k' f& B2.程序源代码: O+ D# Y8 D7 x. }' T x( k
#include
+ P4 i/ i- t; k0 a) jvoid main()
/ I7 _ t+ P/ j{
- W, M0 N; y. s7 L( Lchar letter;" o% n v6 J8 \2 |! U
printf("please input the first letter of someday\n");
/ \1 o: x! _7 [+ e& ~- q5 E6 Bwhile ((letter=getch())!='Y')/*当所按字母为Y时才结束*/2 q. \; e! {6 _4 g5 U" w( Q
{ switch (letter)
9 V# G; A5 V" L$ f{case 'S':printf("please input second letter\n");0 s4 h# B2 Y7 c, s
if((letter=getch())=='a')3 d5 v7 y+ }" g# r
printf("saturday\n");
9 M6 F$ \+ r& f6 e3 | else if ((letter=getch())=='u')& E, w$ f9 x5 }3 y- x) H, w2 _
printf("sunday\n");
4 m* N2 y) T+ s' f- d0 |! _4 x else printf("data error\n");: V! y) f$ ^/ ]5 b% j9 ^
break;
3 ?. d2 i" w" Y0 D" Vcase 'F':printf("friday\n");break;
+ I1 a) T/ ?5 m& Mcase 'M':printf("monday\n");break;
* _ s$ f( S& ~; V6 h2 pcase 'T':printf("please input second letter\n");
G: ^; |+ A- d0 X& A if((letter=getch())=='u')9 v0 Q/ b0 m1 a$ ^) J! ]
printf("tuesday\n");* t8 \8 ]! W1 u0 Y% A5 w. I/ k1 T
else if ((letter=getch())=='h')
% R3 z( P1 ]0 ?4 p2 X printf("thursday\n");
+ M: T( k+ h$ \: J' g: F, n. H# t* @ else printf("data error\n");
, k# K* \5 f' l+ f6 h' u) q; T break;
" F# T" H( \3 ucase 'W':printf("wednesday\n");break;# r2 x7 m, f) K5 X
default: printf("data error\n");
- u) J' y0 h( G5 R; H }9 Z8 ?( K* X1 G" }4 y( ]1 |! B9 y
}: J* L; a) ^, w2 X: [4 d
}9 a' r) h0 z; j( ^ Y
==============================================================
4 W, |( {4 V- z! z j【程序32】% W4 S4 a7 u( p) u2 l
题目:Press any key to change color, do you want to try it. Please hurry up!
" S _3 A' n; x1.程序分析: * b9 E9 x$ s% }' c
2.程序源代码:0 d2 b* V- K2 |4 F2 J: {
#include 7 C4 w9 U: p# ]/ X3 ^6 m. @
void main(void)1 {1 r1 r8 ]: [: x. B" X
{
" F7 k9 V( {2 o( _" J8 Hint color;; T s) t8 E) K5 i! U
for (color = 0; color < 8; color++)7 U' [" A' o6 T
{ 6 A4 L. g" R2 E# n, V
textbackground(color);/*设置文本的背景颜色*/
7 V3 G4 I9 R& _+ y cprintf("This is color %d\r\n", color);6 ^4 V) W& J1 j, D
cprintf("Press any key to continue\r\n");! Y8 W7 c1 K J
getch();/*输入字符看不见*/+ d5 ]" C8 ?4 Z, }1 V
}6 m4 [4 I1 ?8 W& t' g
}
}; A3 k) v' l+ A3 o% g==============================================================8 A; Y9 X4 A6 }+ E! |2 y
【程序33】& T3 N T4 y3 r" A0 Z
题目:学习gotoxy()与clrscr()函数 ; m/ r: y H3 [ F# O
1.程序分析:
* ?. i; P( [, A3 z6 x+ }2.程序源代码:9 }# N0 G+ @* Y% M7 {; N9 ]
#include ( o8 }- \6 R/ c" O! T* ?
void main(void)
, {! }7 O, p; ~* @+ }/ ?{- h8 C6 T( Y6 C. }, P
clrscr();/*清屏函数*/
5 Y5 o, s" ~$ L) I' qtextbackground(2);
; ~% D, @. U6 I- H6 t, W% Mgotoxy(1, 5);/*定位函数*/& t* h* Q' D! D# [
cprintf("Output at row 5 column 1\n");1 D" p# X6 b' I; J1 E
textbackground(3);
% C0 \$ W W3 {* c ]6 |gotoxy(20, 10);, L& j7 v' ?$ u/ s" j
cprintf("Output at row 10 column 20\n");
' J( z \3 k9 {7 a6 W9 U% w h# \" G}7 @% u4 f" l" O4 c* Y t
==============================================================
/ F$ c1 J- A/ }& R& q e【程序34】- D5 E! M3 I9 ^5 u* n. b
题目:练习函数调用
+ w. S3 O+ }% ^* i1. 程序分析:
5 u5 |8 f# q. {/ Q2.程序源代码:
! D/ W6 r0 k; q( B. P/ N( a8 l7 I#include ' q7 t) r1 {- D
void hello_world(void)9 n, q- o* k$ t- S. q6 q4 n2 N
{
2 n, j# }- k. y0 L7 F* \+ Vprintf("Hello, world!\n");: U0 f% J. R- f: m, j0 Q' H2 h1 K
}
N3 `$ T q/ ~# w4 ?) f( V# qvoid three_hellos(void)( h) P+ F$ K1 [3 t% B7 }
{* E4 X! D8 y! Y# f! r% c: o
int counter;1 w& `" e7 }/ M
for (counter = 1; counter <= 3; counter++)
8 v3 J, E: v" Q9 u: V$ Shello_world();/*调用此函数*/' v8 T0 m% M+ r2 _% ?6 P
}
& F3 Z) H0 {2 N. ovoid main(void)' u+ w% |+ o" g
{7 K: q' ]7 b/ s$ r! q8 l% S7 d
three_hellos();/*调用此函数*/7 z7 _* h @9 @% n: I8 E
}! u+ U) j7 n0 _, v0 O+ h
==============================================================
0 e$ M6 G) `' _9 Q f【程序35】
; W/ W+ z9 T# g. i- S" H1 H: c题目:文本颜色设置) f4 D# c7 Q0 g# }" f( _) e
1.程序分析:: w9 K( B) x7 q6 j- b
2.程序源代码:# ~2 K) {9 f+ I
#include
/ p4 B: O9 X9 b+ Hvoid main(void)7 A. F5 J% c* T( V
{( c! _/ p7 S7 `
int color;! a5 B2 j& x/ z+ t& f. e& ~' {2 Z
for (color = 1; color < 16; color++)
+ S: T- U+ x; X. a! x {. u; P; t0 E+ j8 X8 s% W
textcolor(color);/*设置文本颜色*/
3 ^! r% O, K3 \3 L cprintf("This is color %d\r\n", color);' [& V. I3 b& x/ Q2 b; ~
}: ^* X: U6 f7 U" q1 z
textcolor(128 + 15);' `0 |+ v) i& h' p- v8 l
cprintf("This is blinking\r\n");1 `7 F; i# V5 z0 N* b. ?2 o8 s& v
}! ?1 i4 f/ f$ G1 W! [
==============================================================
8 S7 z# d1 _7 @* }/ K【程序36】* x {% R5 \# h i
题目:求100之内的素数 T0 k) _' A) C! Z% K4 C
1.程序分析:
( j7 U) T. Y2 D( d2.程序源代码:( ]$ b5 K$ ]/ z$ ?/ W6 [$ m
#include 4 c% M6 i: T2 ?; g# Y5 @, z! Z
#include "math.h"
/ v' P) }% u& [+ p! N0 ?( u \#define N 101
: Y7 l# I! l7 J% f. x' gmain()# ~+ p2 Q0 h3 T
{
3 A4 p! T) ~" e9 wint i,j,line,a[N];6 x# ~% v8 W5 D9 q5 x5 n0 h
for(i=2;ifor(i=2;i for(j=i+1;j {
/ _. U4 `" d! i' O o if(a!=0&&a[j]!=0)+ g. S$ z# b* N1 u! f3 n8 ~
if(a[j]%a==0)! N5 m& R3 N$ m, d* @7 }: `1 A' _
a[j]=0;}, h0 u1 {+ Q/ E5 y, B% l
printf("\n");
% ~) k; B# Z& M8 _3 Afor(i=2,line=0;i{5 i0 F8 N" g1 w6 h
if(a!=0)2 x/ \0 N5 C3 D" Y7 \7 R% c
{printf("%5d",a);& i+ ^- v' c- M
line++;}8 Y6 F6 e/ |# Q' J, f t& H, {
if(line==10)
% w- o1 V7 Q+ `' ^ {printf("\n");
. l+ v/ L( n+ q4 ?& eline=0;}, o7 }: { k4 l4 p+ R" d
}
: @' ^/ y1 o2 R A1 R. x, j}
4 T0 T3 @2 [% T, | `& |6 N3 c==============================================================+ W, b- _- R+ m. c, N3 T | w/ T
【程序37】
: e" X, A$ y3 a, ?6 I# G4 A- F" `题目:对10个数进行排序5 I7 f0 l: F* U7 g( Z
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
5 u3 Q4 f# F$ O2 L! k6 @ 下次类推,即用第二个元素与后8个进行比较,并进行交换。 ! A$ w: F. L' ~" G: K
2.程序源代码:& f7 U+ O: c& n+ f
#define N 101 ~9 `; u8 D% {1 r. f- [% M: q9 ]$ E
main()
$ R& H9 `- i7 z3 K1 ?$ T{int i,j,min,tem,a[N];* X' A" y j1 D3 l6 Y9 s/ B
/*input data*/9 ?0 ]/ Y& {6 @# f" L
printf("please input ten num:\n");
4 F; G: \' h# K/ S: \3 nfor(i=0;i{
& s* I1 \0 s8 ?printf("a[%d]=",i);8 ]5 S0 ]8 J( i- @$ \; ~
scanf("%d",&a);}
a9 D7 k C: }printf("\n");
& s4 c) |; V; Yfor(i=0;iprintf("%5d",a);0 D! }3 I& z7 ^, b! U# z- I8 h
printf("\n");
3 @0 {; U; W) d8 B! N7 M( X/*sort ten num*/
) p: A8 e0 W, A3 b3 K8 J: |for(i=0;i{min=i;9 b& P( G; Q* a2 k! G; b, N, r4 w, M
for(j=i+1;jif(a[min]>a[j]) min=j;+ b( _0 \/ i' \* M3 w1 Z
tem=a;
3 k& i, L }& Sa=a[min];7 n3 A, o) W% m4 L. h5 s- w3 I
a[min]=tem;) J# P2 p j. ]$ s; P+ c9 w
}0 W" X9 o( h% S. v' @: ~
/*output data*/
* o7 c% e% d, H8 k# |- |, p" |1 }printf("After sorted \n");' W8 r+ f9 t* g/ |
for(i=0;iprintf("%5d",a);
+ \1 F$ u. r. G4 \- \' J}
1 B, K/ \7 ?. ]' ]==============================================================' l5 o' P# O" j) O$ c+ h' e, q/ Y+ Z3 E
6 j: t, j T3 b3 `
|