|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序27 】 + x) O* |) |+ Y* d; g
题目:利用递归函数调用方式,将所输入的5 个字符,以相反顺序打印出来。
, q& z, `5 {! m) S2 ?, ] G% y1. 程序分析:
4 e) D- H5 W4 [3 I9 P! U& q2. 程序源代码:
) k8 [- B, x* c; e0 \6 B1 w) D3 A#include "stdio.h"
& G% D- J! R4 r5 C7 g- a" r) z; imain() 7 Y [& i1 X4 _! r. U3 @
{
8 \& }" I6 N2 O0 T0 b; Dint i=5; - U+ M$ L: v9 h' w0 C2 n
void palin(int n); + m" h7 P( I' g/ @/ j$ v3 O9 o# }
printf("\40:");
$ F8 \: O' f* \palin(i); 5 m ^2 A& K$ {" O; |* G1 q
printf("\n"); 3 o( b- r+ x* |$ ~3 P* V) \
} / Y- {# o! z$ R' t+ M
void palin(n)
* ~) F5 B$ W- S R/ q* K5 `int n; 7 `) Z" f$ i: u( N) A0 }
{ 5 @1 S, ~4 s1 H( a& T
char next; , t4 }1 h; J9 ]1 y8 \7 M }7 U5 F& L
if(n<=1)
J4 H5 k& [6 H { " m9 R/ o% w; q1 q! U
next=getchar();
9 ?. Q$ T6 t" L. v6 r" R printf("\n\0:"); D( C' S$ T4 s, w
putchar(next);
5 X6 y7 E% }6 X }
/ ~* L. x5 m9 felse
# I8 m7 {9 t) K4 i0 V# c' O {
& s4 a$ e/ L6 P% Y" ?$ ^/ d. y8 b1 F next=getchar(); ; F- D+ G' h n% V* K) p2 ^; Q
palin(n-1); , B* T. P+ H/ N7 K0 C. w+ {% q
putchar(next); 4 j+ p, R5 ^( }1 @- x4 ~
} 4 ]8 |9 q1 h( [" R0 e. ~ c4 \
} ( t. ]6 F' u% t) v4 L
============================================================== + p8 n8 X8 u) h. D2 W
【程序28 】信盈达 嵌入式企鹅号要妖气呜呜吧久零就要 " J7 \/ B% E! a; r. i
题目:有5 个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
- `# w1 f* G5 E1 A7 l 3 个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
6 }6 O/ g0 o( y ]) o 问第一个人,他说是10 岁。请问第五个人多大?8 }5 P+ V9 W2 F3 O! S. y
1. 程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道# H. e" u# ^" n
第四人的岁数,依次类推,推到第一人(10 岁),再往回推。
, Q/ o7 U, f1 ?( V. P. ^1 H: O2. 程序源代码:
$ w/ L7 N) S7 u2 Aage(n) , S0 V# p' Z* x; Y7 c: u2 f$ s
int n;
- H0 O4 A+ t0 G s{ * ]6 G. d9 F- ?3 S% W2 Y ~+ k
int c;
: l ?! s o& h* G, [/ N" n* pif(n==1) c=10; ; V) r; d: H$ M7 O7 G) {6 y
else c=age(n-1)+2;
1 \' ?3 b: ~# p3 xreturn(c);
0 |, g b5 |1 r0 ~0 A# I1 Z R}
8 [1 ~! A0 q* k0 n4 Q6 O0 ]' Q6 ~main()
1 e& b- u& B/ H4 q{ printf("%d",age(5)); N0 x4 y0 c; I. [
}
+ P6 _ ?8 m7 P2 c+ C6 {+ h! [============================================================== , Q. I9 I+ L) Y
【程序29 】
/ n o+ u& y/ I3 L6 w4 X8 G2 R6 s2 b题目:给一个不多于5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。- [# K ?2 n" G& \6 e- Y
1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002班赵鑫提供)
. a; u% R/ B- L: B2. 程序源代码:" e9 s6 p) X3 ~& E2 \
main( )
0 O; X; y" ^! j; I" c. b% y' W: T2 r{
! z1 H4 Q- T$ K6 nlong a,b,c,d,e,x; * m: R4 D' {( a+ R3 v+ r# n/ L: w
scanf("%ld",&x);
$ X0 P& ~" @6 m, x: f2 Ga=x/10000;/* 分解出万位*/
" g/ a0 f) z% T# u0 z+ Ob=x%10000/1000;/* 分解出千位*/1 d# |* E0 h- E3 I8 r
c=x%1000/100;/* 分解出百位*/, h0 x2 V- k' J% a/ W1 f
d=x%100/10;/* 分解出十位*/0 ? }9 g. U" ~9 R( j- o
e=x%10;/* 分解出个位*/
/ A& r# [6 b4 g6 F5 i7 vif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); $ m: c. E; v. b- P' q
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); - Y _; E; M" g! w+ L& J
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
; ^& T) @: ~, U8 K }/ W8 _1 f else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
6 P! b; q1 [8 a3 u* k) J, ] else if (e!=0) printf(" there are 1,%ld\n",e); # @$ W3 }! [) j: S
} 6 g1 y, ^: ]! b& f
==============================================================
2 r. w6 `; p' m, H1 I! C【程序30 】 3 E2 {4 q: y3 I' g
题目:一个5 位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
' y( C, l( d. n& s1. 程序分析:同29例
3 X5 l5 k4 n! S' j# C: R: l+ _* b2. 程序源代码:4 H" ?, N! N/ X. O6 `" \! [7 @
main( )
9 C, \. U$ A- Q0 P% F{ ( w/ A: j" n5 @9 O6 m4 B% d6 M
long ge,shi,qian,wan,x; 4 P4 P8 g+ K8 @- ?' Q, }* I
scanf("%ld",&x); i' D: m# T" k! A
wan=x/10000; : i/ e# J1 p# s
qian=x%10000/1000; ' a+ i, D- l& g# [! o) M
shi=x%100/10;
4 J. j( T/ H; N% T: xge=x%10; 4 C$ X% I2 Z+ F+ ?: P, B9 t
if (ge==wan&&shi==qian)/* 个位等于万位并且十位等于千位*/
( s) v: u) r* e' p6 G printf("this number is a huiwen\n"); : ^! o h5 W5 Z' V3 _6 I
else 1 R; X+ ~# S W/ Q: C
printf("this number is not a huiwen\n");
/ Z8 T* Q9 w7 k+ M} 【程序31 】# m# Z. X) s4 c$ H- c) q0 w
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
0 N7 ^( K, B, t1 d" B 判断第二个字母。2 |1 E) V. u& x' B' q1 d2 Y- D
1. 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
* {+ Y, H) i% {8 `7 c2. 程序源代码:
+ l0 a3 e" d4 T2 J6 p# _; L#include " ^3 T5 q: }( P7 `. l
void main()
5 \8 q0 P& N& X# Q" {9 @1 }8 W& j# V{
& V+ Y& H% W7 G* cchar letter; & K/ d! d1 R5 `' t9 A/ v9 b( {
printf("please input the first letter of someday\n");
, c/ l c: { [: A5 j& Y3 m3 J( l7 Fwhile ((letter=getch())!='Y')/* 当所按字母为Y时才结束*/; e& b2 ]# b0 L" o4 a
{ switch (letter)
# M2 T) H7 N. x6 ~4 _1 Q{case 'S':printf("please input second letter\n"); ) }+ U: u- t5 j4 a
if((letter=getch())=='a') ( i- p2 a/ U! l6 S: u b
printf("saturday\n"); 0 L! O9 g; ?+ w) V. }
else if ((letter=getch())=='u') " c7 _0 Y9 ]/ T0 a& M" [% q
printf("sunday\n");
$ b$ W1 O) T& u; a9 |$ r% r" Y9 f% K else printf("data error\n"); , }4 O1 r( M5 L3 Y# T
break;
6 e: s2 O2 Q* J; Kcase 'F':printf("friday\n");break; + J( I. t0 D- p* s# x0 z: A4 d
case 'M':printf("monday\n");break;
- ^$ g7 m+ i8 _6 Y" mcase 'T':printf("please input second letter\n"); & g8 R; U6 @# f5 [" X
if((letter=getch())=='u') 5 t0 b0 R6 F# e5 Q% b! m1 s
printf("tu ESDay\n");
3 @$ v- L. w3 i2 |1 W# q else if ((letter=getch())=='h') 9 j |. I( D$ d; F6 M% ]
printf("thursday\n");
: [; b3 r& s& M& h else printf("data error\n"); 7 g% m) k9 \6 Y. r3 Z
break; 0 b( G0 w$ A2 H- s; @
case 'W':printf("wednesday\n");break; 7 u7 n, k) E, D
default: printf("data error\n");
. b0 @2 A# U2 w( N7 {/ Y } 3 R$ k9 o8 O8 S6 o( `% z
} ' Z$ j9 p1 G1 k9 I6 f( v
}
! [: {, M3 B8 q. c) u==============================================================
! W7 T# Q6 b$ ` r【程序32 】
/ h0 k7 s4 y: ^4 T0 ]7 e. \1 H, v题目:Press any key to change color, do you want to try it. Please hurry up! - M H: F+ U/ @
1. 程序分析:
: D7 J- c1 v. C3 t, b2. 程序源代码:3 K; c; ?* s1 l) j* e
#include 5 u7 `7 r( H: w6 F6 C
void main(void)
5 C$ k" ~1 r" ~ ]{
: m$ I) ]/ u! T) G3 Sint color; a$ }1 ^$ z0 W1 _4 b2 v
for (color = 0; color < 8; color++)
$ Q- Y' W, x- T; C, b0 e5 \ {
4 U* H- M# D9 q Q; ] textbackground(color);/* 设置文本的背景颜色*/! ~/ z' E; M( |+ D4 c4 g6 G
cprintf("This is color %d\r\n", color);
: N4 F( P) Y. t& n3 e+ ? cprintf("Press any key to continue\r\n"); 8 ~7 @" {0 K' l: x
getch();/* 输入字符看不见*/# Y: J [! u; i9 Q6 Z8 A; [
} 9 x; _0 L& j0 ]9 ^ z1 p- U
} , R" C- @ }, z2 }
============================================================== 9 B$ F+ E# m' {. D$ c' g2 c
【程序33 】
( A9 o% {+ D0 n1 t- G2 M4 T题目:学习gotoxy() 与clrscr()函数 # q3 g9 y3 ]! Q' }+ J5 r% i3 b/ s1 z
1. 程序分析:) A7 s7 L8 m2 t; R2 c) K8 P. ]$ l
2. 程序源代码:
# e0 ?8 U ]# ]4 j#include ) x2 E- `" k, @1 y/ {
void main(void) 1 d. W$ b- W% j G% Q+ B1 P9 t, r- |
{ 9 e* r- z- ~' R/ |% i. R
clrscr();/* 清屏函数*/2 g$ H0 d/ c( ]1 A* G; n
textbackground(2); 4 I8 U) n: N& D6 X5 W
gotoxy(1, 5);/* 定位函数*/7 ?& `) V9 E5 t! v# D: W, _3 |
cprintf("Output at row 5 column 1\n"); ( M# Y( ]% m! A, V4 D6 K* W$ o
textbackground(3);
* u5 [ U: N' v- c4 ?0 ~ cgotoxy(20, 10); - J' m; V+ C+ J1 ^! {1 f: L* r" o
cprintf("Output at row 10 column 20\n");
0 C) N4 F5 d3 Y' J) d+ ~}
% v1 Z- b& o- ^* p==============================================================
/ I4 H: Z, R: T. b N6 i$ h4 L L【程序34 】
5 x4 [: d' X! u" W. X题目:练习函数调用
( B4 x& S6 I$ D; _1. 程序分析: 2 U) b9 q$ @" |9 E M2 P
2. 程序源代码:
: W4 ` l- y+ f#include * d6 z' o; {1 H+ d
void hello_world(void) - v, v1 X* `& u; q' X1 P
{
2 B4 |/ D5 F, R) G" Tprintf("Hello, world!\n");
- R: Z& s( x. T( ~! S/ d}
4 ]% @( I( j& F3 B- tvoid three_hellos(void) 2 P3 x7 \& z0 ]
{ $ m- w$ O1 {0 a, u
int counter; 9 S# N" C$ K3 ~( Y( n& c) I- {+ t
for (counter = 1; counter <= 3; counter++)
5 N7 p4 R* o# T% r! C. Hhello_world();/* 调用此函数*/
! Z3 a9 G9 ~2 u4 d- M}
$ |/ {2 M7 b( Yvoid main(void) ; J5 ?4 ^& B" H( S* E
{ 0 k) u [: ]7 q$ @4 r# C6 h3 U
three_hellos();/* 调用此函数*/
2 h& q- n, F. I5 Z$ ^ ?3 z9 f}
8 g' u4 A# u& f% E6 ?4 p( U4 p4 ^==============================================================
7 ^' D* s& Q0 x: b" D' w' n% V【程序35 】. z& m3 t$ K2 B! c; `4 \( n
题目:文本颜色设置
# U* x b% R* m( O1. 程序分析:
5 [0 F e; v# |) e6 p0 ?: ^2. 程序源代码:
6 O6 D I2 [6 o& u3 m#include
+ U7 E0 A) H( Bvoid main(void) 5 K+ `/ }! m; ~% S0 H
{ / D. \! P) D1 D" n( J3 o9 D3 y' \
int color; ; b- Z4 Y% ~1 |% M
for (color = 1; color < 16; color++)
7 u& x/ `7 b! P {
0 s5 t7 u& [ H4 m* x" z textcolor(color);/* 设置文本颜色*/- u- r/ F9 u- B
cprintf("This is color %d\r\n", color);
+ Y( y6 W( C9 c' L" Z2 j3 [9 F4 d } 5 m( I5 W- m3 [( \
textcolor(128 + 15);
" v+ X/ p& [# w/ H* O: Rcprintf("This is blinking\r\n"); * I1 O+ ^8 ]9 }
} % J* ?' _* [. }: K! d
============================================================== & q6 L+ Y; m2 T3 U+ Q4 N( {
【程序36 】7 K5 ]- t, f( X
题目:求100 之内的素数
4 ?. O# A) y" g. r9 N. `" f1. 程序分析:) M* `9 q- E/ h3 Q5 r' b
2. 程序源代码:+ ?+ L/ g. p; W; A: k+ `
#include
- ^5 N: }/ }+ p7 L% [3 X% q9 F#include "math.h"
_# n$ ~$ _ K0 l9 F. C#define N 101
# K% a# R4 H' R0 vmain() # P; Q% }; U0 r; K5 V: ]: }
{ : p7 d% E% v+ ]4 ]! j' o
int i,j,line,a[N];
( ^, ^# g% {( j2 g# w* ifor(i=2;ifor(i=2;i for(j=i+1;j {; f1 m) S% C7 _5 W
if(a !=0&&a[j]!=0)( a2 H. W4 ^: {. s4 J
if(a[j]%a==0)4 K; E: D2 j$ z; m5 n) F5 h
a[j]=0;}. |& w9 W2 K$ V9 s0 A7 Q7 v
printf("\n");
- I$ g$ W' R" u$ w6 x5 Kfor(i=2,line=0;i{7 |& s: q, n1 x5 ^( ]3 N' ]) O
if(a!=0)* k/ r5 l3 L: o5 z
{printf("%5d",a);
% f- w( ?7 h# F line++;}! X& s- v- g& i' @" `4 M
if(line==10)5 W; l: ^1 r7 ]% I
{printf("\n");4 S4 k# c C* M/ X2 }9 N; W
line=0;}
8 E& [3 H" m8 \* k, W}/ p o3 [$ q/ O, g9 q5 y$ O2 E
}
- Z3 s2 w8 J" J1 x2 v==============================================================
. P5 l& s. N" z【程序37】7 j K5 o" y, S4 d9 M
题目:对10个数进行排序) P @' W7 h/ `$ b" @) m. |
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
# G: j0 @2 N) l7 {9 Z: n 下次类推,即用第二个元素与后8个进行比较,并进行交换。 & G. ^ j- j# d* Y4 P4 \" a
2.程序源代码:
& n# s3 n+ ?6 L#define N 10
9 Y5 `7 ]+ G4 v$ Gmain()
* b+ ^# z, M0 s% S1 U! W$ `{int i,j,min,tem,a[N];1 Y7 q+ {) t% C1 i) F( b: ^
/*input data*/, S% {4 S) o3 i. u8 i3 m3 k& B
printf("please input ten num:\n");
7 Z$ r, |) k k3 r" l' A# Gfor(i=0;i{$ `* C) J! ~! _) ^6 e
printf("a[%d]=",i);" V8 I7 D( K# M& K @& F
scanf("%d",&a);}
/ N& L4 _# e! [" {" G5 q; Uprintf("\n");
: J/ B. m/ K1 Q+ ?% s' R' j. Y5 p) xfor(i=0;iprintf("%5d",a);; H$ u: n) Q! q3 X p& I% F
printf("\n");
) a/ y% f4 Z, n* b/*sort ten num*/5 P3 a7 a, Z, \8 w& T! F) `
for(i=0;i{min=i;
t2 |3 K5 a) e. P2 \for(j=i+1;jif(a[min]>a[j]) min=j;. ?7 R7 {4 s5 K/ }0 Q
tem=a;
8 f, `; h G8 Z/ E( Za=a[min];
) ]/ V. m% r9 t+ U; Fa[min]=tem;
& ]' p$ `6 T! P% M; z; y}. d+ U' p4 g/ s. c( [
/*output data*/+ M, @1 j2 D! o Z
printf("After sorted \n");# [* O4 n0 t9 W/ c/ O% m6 `% ~7 R( g
for(i=0;iprintf("%5d",a);
- [4 j/ X( j' p}' R% m- p/ U4 I
==============================================================) s9 j3 T8 |8 W! K: p
+ s! }* p% N4 M$ B+ c! ]) ]. m2 O1 |
|
|